Skip to content

ci(review): allowlist claude bot actor at the action level - #58

Merged
heskew merged 1 commit into
mainfrom
workflow/allow-bot-actor
Apr 23, 2026
Merged

ci(review): allowlist claude bot actor at the action level#58
heskew merged 1 commit into
mainfrom
workflow/allow-bot-actor

Conversation

@heskew

@heskew heskew commented Apr 23, 2026

Copy link
Copy Markdown
Member

Summary

Follow-up to #57. Adds allowed_bots: claude to the Claude review action inputs.

Why

My job-level if: gate in #57 correctly admits claude[bot]-authored PRs to the workflow. But claude-code-action has its own bot-actor gate, separate from the workflow's, and rejects any run triggered by a Bot unless the bot is on this allowlist:

Action failed with error: Workflow initiated by non-human actor:
claude (type: Bot). Add bot to allowed_bots list or use '*' to allow
all bots.

That's what made the review run on #55 fail with exit 1 after all the setup work (checkout, skills clone, layer compose, prompt assembly). The action reached the gate and bailed before even calling the API.

Scope of the allowlist

allowed_bots: claude — slug match, no [bot] suffix at this input layer. Specifically Anthropic's Claude GitHub App. Not *: if any other bot ever triggers this workflow (imagine a future "issue-to-PR v2" from a different app), we'd want to gate it deliberately rather than auto-admit.

Test plan

🤖 Generated with Claude Code

Follow-up to #57. The job-level `if:` gate now admits PRs authored by
claude[bot], but claude-code-action itself has a SEPARATE bot-actor
check that refused with:

  Action failed with error: Workflow initiated by non-human actor:
  claude (type: Bot). Add bot to allowed_bots list or use '*' to
  allow all bots.

Fix: pass `allowed_bots: claude` (slug match — no `[bot]` suffix at
this layer). Deliberately not `*` so any other bot that somehow
triggers this workflow still gets refused at the action level.

Without this, the review job on #55 (our first real test of an
AI-authored PR getting auto-reviewed) reaches the action, gets
rejected, and exits 1 — looking like a workflow failure when the
intent is just "review this PR."

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@heskew
heskew requested a review from a team as a code owner April 23, 2026 14:18
@heskew
heskew merged commit f30629b into main Apr 23, 2026
4 of 5 checks passed
@heskew
heskew deleted the workflow/allow-bot-actor branch April 23, 2026 14:19
heskew added a commit that referenced this pull request Jun 9, 2026
Bumps the `claude-issue-to-pr` reusable pin (both `uses:` ref and
`ai-review-prompts-ref:`) from f6daed30 to the #58 merge commit
441d2a31, keeping this repo on the same issue-to-PR version as
HarperFast/harper and HarperFast/harper-pro.

Net change for this repo (clean forward bump, 441d2a31 descends from
f6daed30):
- :bug/:test issue-to-PR runs now use claude-opus-4-8 (authoring-heavy);
  :typo/:docs/:deps stay on claude-sonnet-4-6
- prompt steers toward sub-agent-delegated exploration over spelunking
- read-only gh pr list / gh search are pre-approved
- max-turns ceiling 72 -> 100
- (also picks up the :test format:check tweak and the
  authorize-ai-workflow.sh rename that moved in with the pin)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant