mirror of
https://github.com/anthropics/claude-code-action.git
synced 2026-01-22 22:44:13 +08:00
* feat: improve documentation with solutions guide and GitHub context - Add comprehensive solutions.md with 9 complete use case examples - Fix migration guide examples to include required GitHub context - Update examples missing GitHub context (workflow-dispatch-agent, claude-modes) - Enhance README with prominent Solutions & Use Cases section - Document tracking comment behavior change in automation mode - All PR review examples now include REPO and PR NUMBER context Fixes issues reported in discussions #490 and #491 where: - Migration examples were dysfunctional without GitHub context - Users lost PR review capability after v0.x migration - Missing explanation of tracking comment removal in agent mode 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: apply prettier formatting to fix CI Co-authored-by: kashyap murali <km-anthropic@users.noreply.github.com> * refactor: streamline examples and remove implementation details - Remove 5 redundant examples (57% reduction: 12→7 files) - Deleted: claude.yml, claude-auto-review.yml, claude-modes.yml, claude-args-example.yml, auto-fix-ci-signed/ - Rename examples for clarity - pr-review-with-tracking.yml → pr-review-comprehensive.yml - claude-pr-path-specific.yml → pr-review-filtered-paths.yml - claude-review-from-author.yml → pr-review-filtered-authors.yml - workflow-dispatch-agent.yml → manual-code-analysis.yml - auto-fix-ci/auto-fix-ci.yml → ci-failure-auto-fix.yml - Update all examples from @v1-dev to @v1 - Remove implementation details (agent mode references) from docs - Delete obsolete DIY Progress Tracking section - Add track_progress documentation and examples Addresses PR feedback about exposing internal implementation details and consolidates redundant examples into focused, clear use cases. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: apply prettier formatting to fix CI Applied prettier formatting to 3 files to resolve CI formatting issues. Co-authored-by: kashyap murali <km-anthropic@users.noreply.github.com> --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: kashyap murali <km-anthropic@users.noreply.github.com> Co-authored-by: Kashyap Murali <13315300+katchu11@users.noreply.github.com>
98 lines
3.3 KiB
YAML
98 lines
3.3 KiB
YAML
name: Auto Fix CI Failures
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: ["CI"]
|
|
types:
|
|
- completed
|
|
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
actions: read
|
|
issues: write
|
|
id-token: write # Required for OIDC token exchange
|
|
|
|
jobs:
|
|
auto-fix:
|
|
if: |
|
|
github.event.workflow_run.conclusion == 'failure' &&
|
|
github.event.workflow_run.pull_requests[0] &&
|
|
!startsWith(github.event.workflow_run.head_branch, 'claude-auto-fix-ci-')
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.workflow_run.head_branch }}
|
|
fetch-depth: 0
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Setup git identity
|
|
run: |
|
|
git config --global user.email "claude[bot]@users.noreply.github.com"
|
|
git config --global user.name "claude[bot]"
|
|
|
|
- name: Create fix branch
|
|
id: branch
|
|
run: |
|
|
BRANCH_NAME="claude-auto-fix-ci-${{ github.event.workflow_run.head_branch }}-${{ github.run_id }}"
|
|
git checkout -b "$BRANCH_NAME"
|
|
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
|
|
|
|
- name: Get CI failure details
|
|
id: failure_details
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const run = await github.rest.actions.getWorkflowRun({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
run_id: ${{ github.event.workflow_run.id }}
|
|
});
|
|
|
|
const jobs = await github.rest.actions.listJobsForWorkflowRun({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
run_id: ${{ github.event.workflow_run.id }}
|
|
});
|
|
|
|
const failedJobs = jobs.data.jobs.filter(job => job.conclusion === 'failure');
|
|
|
|
let errorLogs = [];
|
|
for (const job of failedJobs) {
|
|
const logs = await github.rest.actions.downloadJobLogsForWorkflowRun({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
job_id: job.id
|
|
});
|
|
errorLogs.push({
|
|
jobName: job.name,
|
|
logs: logs.data
|
|
});
|
|
}
|
|
|
|
return {
|
|
runUrl: run.data.html_url,
|
|
failedJobs: failedJobs.map(j => j.name),
|
|
errorLogs: errorLogs
|
|
};
|
|
|
|
- name: Fix CI failures with Claude
|
|
id: claude
|
|
uses: anthropics/claude-code-action@v1
|
|
with:
|
|
prompt: |
|
|
/fix-ci
|
|
Failed CI Run: ${{ fromJSON(steps.failure_details.outputs.result).runUrl }}
|
|
Failed Jobs: ${{ join(fromJSON(steps.failure_details.outputs.result).failedJobs, ', ') }}
|
|
PR Number: ${{ github.event.workflow_run.pull_requests[0].number }}
|
|
Branch Name: ${{ steps.branch.outputs.branch_name }}
|
|
Base Branch: ${{ github.event.workflow_run.head_branch }}
|
|
Repository: ${{ github.repository }}
|
|
|
|
Error logs:
|
|
${{ toJSON(fromJSON(steps.failure_details.outputs.result).errorLogs) }}
|
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
claude_args: "--allowedTools 'Edit,MultiEdit,Write,Read,Glob,Grep,LS,Bash(git:*),Bash(bun:*),Bash(npm:*),Bash(npx:*),Bash(gh:*)'"
|