Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Claude Code Review

on:
pull_request:
types: [opened, synchronize]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"

jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

runs-on: 'ubuntu-latest'
permissions:
contents: read
pull-requests: read
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The permissions only grant read access, but the workflow prompt instructs Claude to "Use gh pr comment with your Bash tool to leave your review as a comment on the PR" (line 53). This requires write permissions on pull-requests. The permissions should include "pull-requests: write" to allow Claude to post review comments.

Suggested change
pull-requests: read
pull-requests: write

Copilot uses AI. Check for mistakes.
issues: read
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The checkout action version is inconsistent across workflows. This file uses actions/checkout@v4, while devbird.yml uses actions/checkout@v5 (line 77). For consistency and to ensure all workflows benefit from the latest features and fixes, consider using the same version across all workflow files.

Suggested change
uses: actions/checkout@v4
uses: actions/checkout@v5

Copilot uses AI. Check for mistakes.
with:
fetch-depth: 1

- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
use_sticky_comment: true
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number }}

Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage

Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow references a CLAUDE.md file that doesn't exist in the repository. The prompt instructs Claude to "Use the repository's CLAUDE.md for guidance on style and conventions", but this file is not present in the codebase. Either this file should be created to provide Claude with project-specific guidance, or the reference should be removed from the prompt.

Suggested change
Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.
Follow the existing project style and conventions as inferred from the codebase. Be constructive and helpful in your feedback.

Copilot uses AI. Check for mistakes.

Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.

# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.claude.com/en/docs/claude-code/cli-reference for available options
claude_args: '--allowed-tools Bash,WebSearch,WebFetch'

50 changes: 50 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
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
Comment on lines +22 to +24
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The permissions for the Claude Code workflow only grant read access to contents, pull-requests, and issues. However, Claude Code may need write permissions to perform actions like creating commits, updating PRs, or commenting on issues. Consider whether write permissions should be granted for contents, pull-requests, and issues similar to the DevBird workflow configuration (lines 70-72 in devbird.yml), depending on what actions Claude is expected to perform.

Suggested change
contents: read
pull-requests: read
issues: read
contents: write
pull-requests: write
issues: write

Copilot uses AI. Check for mistakes.
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The checkout action version is inconsistent across workflows. This file uses actions/checkout@v4, while devbird.yml uses actions/checkout@v5 (line 77). For consistency and to ensure all workflows benefit from the latest features and fixes, consider using the same version across all workflow files.

Suggested change
uses: actions/checkout@v4
uses: actions/checkout@v5

Copilot uses AI. Check for mistakes.
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://docs.claude.com/en/docs/claude-code/cli-reference for available options
claude_args: '--allowed-tools Bash,WebFetch,WebSearch'

93 changes: 93 additions & 0 deletions .github/workflows/devbird.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: 'DevBird'
run-name: 'DevBird: ${{ inputs.task_title }}'

env:
DEVBIRD: 1

on:
workflow_dispatch:
inputs:
devbird_api_url:
description: "The URL of the DevBird instance"
type: string
required: false
default: 'https://devbird.api.delino.io'

prompt:
description: "Instructions for DevBird. Can be a direct prompt or custom template."
type: string
required: true

base_branch:
description: "The branch to use as the base/source when creating new branches (defaults to repository default branch)"
type: string
required: false
default: 'main'

agent:
description: "The agent to use for the action. Can be 'claude_code', 'gemini_cli', 'codex_cli' or 'opencode'"
type: choice
default: 'claude_code'
options:
- claude_code
- gemini_cli
- codex_cli
- opencode
- crush_cli
- github_copilot_cli
Comment on lines +28 to +37
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description on line 28 lists available agents as 'claude_code', 'gemini_cli', 'codex_cli' or 'opencode', but the options list on lines 32-37 also includes 'crush_cli' and 'github_copilot_cli' which are not mentioned in the description. The description should be updated to include all available agent options for consistency and clarity.

Copilot uses AI. Check for mistakes.

agent_model:
description: "The (optional) model to use for the agent"
type: string
required: false
default: ''


devbird_workflow_execution_token:
description: "The token to use for the DevBird task"
type: string
required: false
default: ''

devbird_mode:
description: "The DevBird execution mode. Can be 'develop' (default) or 'plan' (for task graph planning)"
type: choice
default: 'develop'
options:
- develop
- plan

task_title:
description: "The title of the DevBird task"
type: string
required: false
default: ''

jobs:
devbird:
runs-on: 'ubuntu-latest'
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Run DevBird
uses: delinoio/devbird-action@main
with:
agent: ${{ inputs.agent }}
agent_model: ${{ inputs.agent_model }}
devbird_mode: ${{ inputs.devbird_mode }}
devbird_workflow_execution_token: ${{ inputs.devbird_workflow_execution_token }}
prompt: ${{ inputs.prompt }}
base_branch: ${{ inputs.base_branch }}
delino_access_token: ${{ secrets.DELINO_ACCESS_TOKEN }}
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
openai_api_key: ${{ secrets.OPENAI_API_KEY }}
gemini_api_key: ${{ secrets.DEVBIRD_GEMINI_API_KEY }}
env:
DEVBIRD_API_URL: ${{ inputs.devbird_api_url }}
Loading