claude (default), codex or gemini.
The pack, on every pull request.
Security review in CI. Watchdog comments on risky lines with a fix, then posts one summary. Bring Claude, GPT, Gemini or Codex.
Three steps.
- 1
Add your AI key as a repo secret, e.g.
ANTHROPIC_API_KEY(Settings → Secrets and variables → Actions). - 2
Save the workflow as
.github/workflows/watchdog-review.yml. - 3
Open a PR. Watchdog comments on risky lines and posts a summary.
name: Watchdog PR Review
on:
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
permissions:
contents: read
pull-requests: write
id-token: write
jobs:
review:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: watchdoglab/watchdog-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
dogs: all # or web, api, auth, ai-app, secrets, ...
min_severity: mediumPick the AI and how you pay.
anthropic_api_keyclaude_code_oauth_token (from claude setup-token)provider: bedrock + AWS credentials stepprovider: vertex + Google auth stepprovider: openrouter, openrouter_api_key, modelengine: codex, openai_api_keyengine: codex, codex_auth_jsonengine: gemini, gemini_api_keyengine: gemini, gemini_auth + gcp_* inputsStore every key or token as a repo secret.
Tune the review.
Which review: all, web, api, auth, ai-app, secrets, …
Skip findings below this. Default medium.
Model ID for your provider. Empty uses the engine default.
Claude only: anthropic, bedrock, vertex or openrouter.
Token used to post comments. Defaults to the job token.
Built for untrusted PRs.
- 1
Runs on pull_request, not pull_request_target, so PRs from forks never see your secrets.
- 2
The reviewer can only read code and post comments. It cannot push or run project code.
- 3
Codex runs in a read-only sandbox and Gemini gets read-only tools.
- 4
PR text is treated as untrusted input, never as instructions.