Skip to content

linode: delete orphaned account tags, volumes, and NodeBalancers on teardown #43

linode: delete orphaned account tags, volumes, and NodeBalancers on teardown

linode: delete orphaned account tags, volumes, and NodeBalancers on teardown #43

name: Claude Code Review
on:
pull_request:
# No `synchronize`: a review on every push spams the PR and spends a full
# Opus run per commit. Re-review on demand instead -- draft then ready for
# review, or `@claude review this with /qa-code-review`.
types: [opened, ready_for_review, reopened]
# A second trigger supersedes a review still running on the previous head.
concurrency:
group: claude-review-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
claude-review:
# GitHub withholds secrets from fork pull requests on public repositories and
# the action rejects bot actors, so either would fail the check instead of
# reviewing. The skill skips drafts itself; not starting the runner is cheaper.
if: >-
github.event.pull_request.head.repo.full_name == github.repository &&
github.event.pull_request.draft == false &&
!endsWith(github.event.pull_request.user.login, '[bot]')
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
pull-requests: write
issues: write
id-token: write
actions: read
steps:
# Full history: the skill compares a finding against `main` before calling
# it new, and counts a method's callers across the tree.
- name: Checkout repository
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
# This job runs an agent over PR-controlled content; nothing here pushes.
persist-credentials: false
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
prompt: '/qa-code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
# Read-only file and git tools come with the action. These are the
# additions the skill needs: the inline-comment server only starts when
# --allowedTools names its tool, and `gh` is not granted by default.
claude_args: |
--model claude-opus-5
--allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr view:*),Bash(gh pr diff:*),Bash(gh pr comment:*),Bash(gh api:*)"
# Grants the mcp__github_ci__* tools section 1 of the skill needs.
additional_permissions: |
actions: read