Skip to content

test workflow

test workflow #22

Workflow file for this run

name: Claude PR Assistant
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude-code-action:
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 == 'pull_request' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Extract Job ID from comment
id: extract
uses: actions/github-script@v7
with:
script: |
const comment = context.payload.comment.body;
const match = comment.match(/Job ID:\s*(\d+)/);
if (!match) {
core.setFailed("No Job ID found in the comment.");
} else {
const jobId = match[1];
core.setOutput("job_id", jobId);
console.log(`Found Job ID: ${jobId}`);
}
- name: Install GH CLI
uses: dev-hanz-ops/install-gh-cli-action@v0.2.1
- name: Download job log
id: grep-errors
run: |
gh api /repos/${{ github.repository }}/actions/jobs/${{ steps.extract.outputs.job_id }}/logs > job-log.txt
grep -iE 'error|✗|failed|panic' job-log.txt > errors.txt
cat errors.txt
echo "errors<<EOF" >> $GITHUB_OUTPUT
cat errors.txt >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.CICD_GH_PAT }}
- name: Output error logs
run: |
echo "----- ERROR LOGS -----"
echo "${{ steps.grep-errors.outputs.errors }}"
- name: Run Claude PR Action
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
timeout_minutes: "60"
model: "claude-opus-4-20250514"
direct_prompt: |
Please check the error ${{ steps.grep-errors.outputs.errors }}
and fix the issue in the code.