feat(chat): Add MCP UI support for interactive tool rendering #4721
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Bounty Bot | |
| on: | |
| issue_comment: | |
| types: [created] | |
| permissions: | |
| issues: write | |
| contents: read | |
| jobs: | |
| bounty-assignment: | |
| runs-on: ubuntu-latest | |
| # Only run on issue comments, not PR comments | |
| if: ${{ !github.event.issue.pull_request }} | |
| steps: | |
| - name: Check for bounty command | |
| uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| script: | | |
| const comment = context.payload.comment.body; | |
| const commenter = context.payload.comment.user.login; | |
| // List of authorized users who can assign bounties | |
| const authorizedUsers = [ | |
| 'joeyorlando', | |
| 'iskhakov' | |
| ]; | |
| // Check if the commenter is authorized | |
| if (!authorizedUsers.includes(commenter)) { | |
| console.log(`User ${commenter} is not authorized to assign bounties`); | |
| return; | |
| } | |
| const bountyMatch = comment.match(/^\/bounty-bot\s+(\d+)$/); | |
| if (bountyMatch) { | |
| const bountyAmount = bountyMatch[1]; | |
| // Post the bounty confirmation comment | |
| await github.rest.issues.createComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| body: `${bountyAmount}$ Bounty assigned to this issue! Read more here: https://archestra.ai/docs/bounty` | |
| }); | |
| // Add bounty label to the issue | |
| await github.rest.issues.addLabels({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| labels: ['💎 Bounty'] | |
| }); | |
| } |