mirror of
https://github.com/zoriya/v10.git
synced 2026-08-05 13:48:14 +00:00
feat(ci): add issue-to-pr claude workflow (#675)
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
name: Issue To PR
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled]
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
contents: write
|
||||
pull-requests: write
|
||||
issues: write
|
||||
id-token: write
|
||||
|
||||
concurrency:
|
||||
group: issue-to-pr-${{ github.event.issue.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
implement:
|
||||
if: github.event.issue.pull_request == null && github.event.label.name == 'agent:pr'
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Run Claude issue implementer
|
||||
uses: anthropics/claude-code-action@v1
|
||||
with:
|
||||
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
label_trigger: agent:pr
|
||||
track_progress: true
|
||||
use_sticky_comment: true
|
||||
claude_args: |
|
||||
--model opus
|
||||
--max-turns 20
|
||||
prompt: |
|
||||
You are the issue-to-PR implementation agent for this repository.
|
||||
|
||||
Issue context:
|
||||
- Number: #${{ github.event.issue.number }}
|
||||
- Title: ${{ github.event.issue.title }}
|
||||
- URL: ${{ github.event.issue.html_url }}
|
||||
- Labels:
|
||||
${{ toJson(github.event.issue.labels) }}
|
||||
- Body:
|
||||
${{ github.event.issue.body }}
|
||||
|
||||
Goal:
|
||||
- Implement the requested change from this issue.
|
||||
- Run appropriate checks.
|
||||
- Open a PR for human review.
|
||||
|
||||
Execution policy:
|
||||
1. Assess scope and verify if an open PR already exists for this issue.
|
||||
- If an open PR already covers this issue, do not create a duplicate PR; leave a concise issue comment with the existing PR link and what remains.
|
||||
2. If implementable, make a focused change set with tests for behavior changes.
|
||||
3. Run relevant checks before opening a PR:
|
||||
- At minimum run `pnpm typecheck`.
|
||||
- Run targeted tests for affected package(s). If targeted scope is unclear, run broader tests as needed.
|
||||
- Run lint where needed (`pnpm lint` or file-targeted lint checks).
|
||||
4. If checks fail, iterate to fix failures before opening PR.
|
||||
5. Open a PR with:
|
||||
- Clear summary of what changed.
|
||||
- Explicit link back to this issue.
|
||||
- Validation section with commands run and pass/fail results.
|
||||
6. Leave a concise issue comment with PR link and current status.
|
||||
7. If blocked by missing requirements or impossible constraints:
|
||||
- Do not open a speculative PR.
|
||||
- Leave a concise issue comment describing blocker(s), required input, and next action.
|
||||
|
||||
Quality constraints:
|
||||
- Keep changes minimal and aligned with repository conventions.
|
||||
- Do not add unrelated refactors.
|
||||
- Be explicit and concise in PR/issue communication.
|
||||
Reference in New Issue
Block a user