Reusable GitHub Actions workflows for CI/CD and Claude Code integration.
Automatic multi-agent review on pull requests using Anthropic's Claude Code Review plugin. Dependabot pull requests are skipped, and the plugin owns its review prompt, tool permissions, comments, and inline findings.
Usage:
# .github/workflows/claude-code-review.yml
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
jobs:
review:
uses: EmbarkStudios/johlander-claude-workflows/.github/workflows/claude-code-review.yml@main
secrets:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}Inputs:
| Input | Default | Description |
|---|---|---|
max_turns |
50 |
Maximum number of Claude turns |
review_prompt |
(ignored) | Deprecated compatibility input |
allowed_tools |
(ignored) | Deprecated compatibility input |
The reviewer invokes /code-review:code-review --comment directly. Action-generated fix links and tracking comments are disabled so they cannot consume turns or cause the plugin's existing-comment guard to skip the active review.
Respond to @claude mentions in issues, PR comments, and reviews.
Usage:
# .github/workflows/claude.yml
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:
uses: EmbarkStudios/johlander-claude-workflows/.github/workflows/claude-interactive.yml@main
secrets:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}Inputs:
| Input | Default | Description |
|---|---|---|
claude_args |
(empty) | Additional Claude CLI arguments |
CI pipeline for Node.js/TypeScript projects: linting, type-checking, testing, security audit, and build validation.
Usage:
# .github/workflows/ci.yml
name: CI
on:
pull_request:
branches: [master]
push:
branches: [master]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
ci:
uses: EmbarkStudios/johlander-claude-workflows/.github/workflows/node-ci.yml@main
with:
node_version: '20'
lint_command: 'npm run lint'
typecheck_command: 'npx tsc --noEmit'
# build_command: 'npm run build'
# test_command: 'npm test'Inputs:
| Input | Default | Description |
|---|---|---|
node_version |
20 |
Node.js version |
lint_command |
npm run lint |
Lint command (empty to skip) |
typecheck_command |
npx tsc --noEmit |
Type-check command (empty to skip) |
build_command |
(empty) | Build command (empty to skip) |
test_command |
(empty) | Test command (empty to skip) |
test_runs_on |
ubuntu-latest |
Runner for test job |
security_audit |
true |
Run npm audit |
Each consuming repo needs the CLAUDE_CODE_OAUTH_TOKEN secret configured for Claude workflows.
- Create thin wrapper workflow files in your repo's
.github/workflows/directory - Point them at the shared workflows using
uses: EmbarkStudios/johlander-claude-workflows/.github/workflows/<workflow>.yml@main - Pass required secrets and customize inputs as needed
The trigger events (on:) must be defined in the calling workflow since reusable workflows only support workflow_call triggers.