Skip to content

Actions Reference

All composite actions are referenced as fetch-rewards/buck-bronson/.github/actions/<action>@v1 (pinned to the floating major version tag).

Runs Claude against a GitHub issue with AWS Bedrock auth. Supports a flexible mode system: empty/default mode lets Claude decide what to do, plan mode restricts to planning only. Prompt templates live in prompts/ with {{PLACEHOLDER}} substitution.

InputRequiredDescription
modeNoEmpty (Claude decides) or plan (planning only)
issue-numberYesGitHub issue number
claude-argsNoAdditional arguments to pass to Claude CLI
additional-promptNoExtra instructions appended to the base prompt
additional_permissionsNoExtra GitHub permissions beyond defaults
pluginsNoComma-separated plugins from buck-bronson marketplace
sourcegraph-tokenNoSourcegraph API token
rollbar-tokenNoRollbar access token
posthog-tokenNoPostHog API token (web presets only)
github-tokenYesGitHub App token with cross-repo access
oidc-roleYesAWS IAM role ARN for OIDC authentication

Prompt placeholders: {{REPOSITORY}}, {{ISSUE_NUMBER}}, {{ADDITIONAL_PROMPT}}

Multi-repo prompts (in .github/actions/bucky-execute/prompts/) use additional placeholders: {{ISSUE_REPO}}, {{REPO_LIST}}, {{REPO_PATHS}}


Detects whether Bucky should run and extracts mode from comment content and event type.

InputRequiredDescription
modeNoExplicit mode override — skips event detection
OutputDescription
modeEmpty (Claude decides) or plan (planning only)
should-runtrue if Bucky should run
is-issuetrue if the event is on an issue (not a PR)

Detection logic:

  • @bucky /planplan mode
  • @bucky (without /plan) → empty mode (Claude decides)
  • Explicit mode input → uses that value with should-run=true

AI code review on a pull request.

InputRequiredDescription
claude-argsNoAdditional arguments to Claude CLI
pluginsNoComma-separated plugins
sourcegraph-tokenNoSourcegraph API token
rollbar-tokenNoRollbar access token
posthog-tokenNoPostHog API token
github-tokenYesGitHub App token
oidc-roleYesAWS IAM role ARN

Handles @bucky ad-hoc mentions on PRs.

InputRequiredDescription
claude-argsNoAdditional arguments to Claude CLI
promptNoCustom prompt (default: use comment content)
additional_permissionsNoExtra GitHub permissions (default: actions: read)
pluginsNoComma-separated plugins
sourcegraph-tokenNoSourcegraph API token
rollbar-tokenNoRollbar access token
posthog-tokenNoPostHog API token
github-tokenYesGitHub App token
oidc-roleYesAWS IAM role ARN

Reads presets.json and resolves runtime configuration for a preset.

InputRequiredDescription
presetYesPreset name (web, golang, none)
github-tokenYesToken with access to buck-bronson
OutputDescription
pluginsPlugin list (multiline, one per line)
setup-actionSetup action name (setup-web, setup-golang, or empty)
has-posthog-tokenWhether this preset requires the PostHog token

Sets up Node.js development environment.

InputRequiredDescription
npm-registryYesNPM registry URL
buf-access-token-secret-arnYesARN for Buf access token secret
web-auth-cookiesNoBase64-encoded cookie JSON for browser auth

What it does: Detects pnpm vs npm, detects .node-version vs .nvmrc, installs dependencies, then calls setup-playwright.


Sets up Go development environment.

InputRequiredDescription
go-proxyYesArtifactory proxy URL

What it does: Sets GOPROXY env var, uses mise for version management, runs go mod download.


Installs browser automation tooling.

InputRequiredDescription
cookiesNoBase64-encoded JSON array of cookies

What it does:

  1. Installs Playwright Chromium (npx playwright install --with-deps chromium)
  2. Installs playwright-cli globally (npm install -g @playwright/cli)
  3. Writes .playwright/cli.config.json with headless Chromium and ignoreHTTPSErrors
  4. If cookies provided, writes a Playwright storage state file to /tmp/playwright-storage-state.json

Collects Claude session artifacts and POSTs results back to the agent callback endpoint.

InputRequiredDescription
callback-urlYesAgent callback endpoint URL
session-idYesWorkflow session UUID
issue-numberYesGitHub issue number
modeNoSession mode (empty or plan)
statusYesJob status (pass job.status)

Artifacts collected: Recent bot comment, linked PR, labels (needs-review, needs-attention).

Authentication: Gets an OIDC token with the callback URL as audience. Retries 3 times with exponential backoff.