OpenWriterControle/.github/workflows/opencode.yml
2025-08-25 23:40:30 +01:00

113 lines
No EOL
3.5 KiB
YAML

name: opencode
on:
# Trigger on issue/PR comments for manual requests
issue_comment:
types: [created]
# Trigger on PR events for automatic reviews
pull_request:
types: [opened, synchronize, ready_for_review]
# Trigger on PR review requests for re-reviews
pull_request_review:
types: [submitted]
jobs:
# Manual opencode execution via comments
opencode-manual:
if: |
github.event_name == 'issue_comment' && (
contains(github.event.comment.body, ' /oc') ||
startsWith(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, ' /opencode') ||
startsWith(github.event.comment.body, '/opencode')
)
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run opencode
uses: sst/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
# Automatic PR review when PR is opened or updated
opencode-pr-review:
if: |
github.event_name == 'pull_request' && (
github.event.action == 'opened' ||
github.event.action == 'synchronize' ||
github.event.action == 'ready_for_review'
) && !github.event.pull_request.draft
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout PR branch
run: |
gh pr checkout ${{ github.event.number }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Auto-review PR
uses: sst/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENCODE_COMMENT: "/opencode @codebase-agent Please review this PR. Check for code quality, potential bugs, security issues, and adherence to best practices. Provide constructive feedback and suggestions for improvement."
with:
model: anthropic/claude-sonnet-4-20250514
# Re-review when specifically requested via PR review
opencode-re-review:
if: |
github.event_name == 'pull_request_review' &&
github.event.review.state == 'commented' && (
contains(github.event.review.body, 're-review') ||
contains(github.event.review.body, 'check again') ||
contains(github.event.review.body, '/oc') ||
contains(github.event.review.body, '/opencode')
)
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout PR branch
run: |
gh pr checkout ${{ github.event.pull_request.number }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Re-review PR
uses: sst/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENCODE_COMMENT: "/opencode Please re-review this PR based on the latest changes. Focus on the recent updates and provide feedback on improvements made."
with:
model: anthropic/claude-sonnet-4-20250514