set up claude pr auto-review

adds auto-review and migrates the existing @claude mention workflow to
the org-wide reusable workflows in bluesky-social/.github, matching
tango. adds a social-app-specific review prompt covering platform
parity, ALF/Lingui conventions, React Compiler, and the design system.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Samuel Newman
2026-05-18 10:35:55 +03:00
parent 45597de6e0
commit 0de049bd97
4 changed files with 127 additions and 54 deletions
+23
View File
@@ -0,0 +1,23 @@
name: claude-mention
# Thin caller for the org-wide reusable @-mention workflow in
# bluesky-social/.github. Shares the same prompt as claude-review.yml.
on:
issue_comment:
types: [created]
# See the corresponding comment in claude-review.yml re: why these
# explicit permissions are necessary for reusable workflows.
permissions:
contents: read
pull-requests: write
issues: write
id-token: write
jobs:
mention:
uses: bluesky-social/.github/.github/workflows/claude-mention.yml@v1
secrets: inherit
with:
prompt-file: .github/claude-review-prompt.md
+24
View File
@@ -0,0 +1,24 @@
name: claude-review
# Thin caller for the org-wide reusable review workflow in
# bluesky-social/.github. See .github/claude-review-prompt.md for
# social-app-specific prompt content.
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
# Reusable workflows can only use permissions granted by the caller.
# Default repo setting is read-only; this caller explicitly opts in to
# the writes the reusable workflow needs (comment on PRs, get OIDC token).
permissions:
contents: read
pull-requests: write
id-token: write
jobs:
review:
uses: bluesky-social/.github/.github/workflows/claude-review.yml@v1
secrets: inherit
with:
prompt-file: .github/claude-review-prompt.md
-54
View File
@@ -1,54 +0,0 @@
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'
# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://code.claude.com/docs/en/cli-reference for available options
# claude_args: '--allowed-tools Bash(gh pr:*)'
# NOTE(sfn): we can add a custom system prompt here
claude_args: |
--model claude-opus-4-7