Bring Back Buddy — A Consolidated Plea from the Community #206836
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: Claude Issue Triage | |
| on: | |
| issues: | |
| types: [opened] | |
| issue_comment: | |
| types: [created] | |
| jobs: | |
| triage-issue: | |
| # This job calls Claude, so it runs on GitHub's egress-firewall runner, which | |
| # filters the job's outbound network traffic (allow list: .github/egress-firewall.yaml). | |
| runs-on: ubuntu-24.04-firewall | |
| timeout-minutes: 10 | |
| if: >- | |
| github.event_name == 'issues' || | |
| (github.event_name == 'issue_comment' && !github.event.issue.pull_request && github.event.comment.user.type != 'Bot') | |
| concurrency: | |
| group: issue-triage-${{ github.event.issue.number }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| issues: write | |
| # Required to mint the OIDC token exchanged for a Claude API access token (Workload Identity Federation) | |
| id-token: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Run Claude Code for Issue Triage | |
| timeout-minutes: 5 | |
| uses: anthropics/claude-code-action@v1 | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_REPO: ${{ github.repository }} | |
| CLAUDE_CODE_SCRIPT_CAPS: '{"edit-issue-labels.sh":2}' | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| allowed_non_write_users: "*" | |
| prompt: "/triage-issue REPO: ${{ github.repository }} ISSUE_NUMBER: ${{ github.event.issue.number }} EVENT: ${{ github.event_name }}" | |
| # Authenticate to the Claude API via Workload Identity Federation | |
| # (the workflow's OIDC token is exchanged for a short-lived access | |
| # token) instead of a static API key. | |
| anthropic_federation_rule_id: ${{ vars.ANTHROPIC_FEDERATION_RULE_ID }} | |
| anthropic_organization_id: ${{ vars.ANTHROPIC_ORGANIZATION_ID }} | |
| anthropic_service_account_id: ${{ vars.ANTHROPIC_SERVICE_ACCOUNT_ID }} | |
| anthropic_workspace_id: ${{ vars.ANTHROPIC_WORKSPACE_ID }} | |
| # --permission-mode auto: a tool call that needs permission and is outside the allowed-tools | |
| # list in .claude/commands/triage-issue.md runs only if Claude Code's safety review passes | |
| # it. Tools in --disallowedTools never run. | |
| claude_args: | | |
| --permission-mode auto | |
| --disallowedTools "WebFetch,WebSearch,Write,Edit,MultiEdit,NotebookEdit" | |
| --model claude-opus-4-6 |