71 lines
3.1 KiB
YAML
71 lines
3.1 KiB
YAML
name: Claude Assistant
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
pull_request_review_comment:
|
|
types: [created]
|
|
issues:
|
|
types: [opened, assigned]
|
|
pull_request_review:
|
|
types: [submitted]
|
|
jobs:
|
|
claude-response:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
(github.actor == 'dodox') && (
|
|
(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'))
|
|
)
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: markwylde/claude-code-gitea-action@gitea
|
|
with:
|
|
model: claude-sonnet-4-6
|
|
allowed_tools: |
|
|
Bash
|
|
claude_code_oauth_token: ${{ secrets.CLAUDE_CREDENTIALS }}
|
|
gitea_token: ${{ secrets.CLAUDE_USER_GITEA_TOKEN }}
|
|
claude_git_name: Claude
|
|
claude_git_email: claude_code@dominik-roth.eu
|
|
trigger_phrase: "@claude"
|
|
|
|
opus-response:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
(github.actor == 'dodox') && (
|
|
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@opus')) ||
|
|
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@opus')) ||
|
|
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@opus')) ||
|
|
(github.event_name == 'issues' && contains(github.event.issue.body, '@opus'))
|
|
)
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: markwylde/claude-code-gitea-action@gitea
|
|
with:
|
|
model: claude-opus-4-6
|
|
allowed_tools: |
|
|
Bash
|
|
claude_code_oauth_token: ${{ secrets.CLAUDE_CREDENTIALS }}
|
|
gitea_token: ${{ secrets.CLAUDE_USER_GITEA_TOKEN }}
|
|
claude_git_name: Claude
|
|
claude_git_email: claude_code@dominik-roth.eu
|
|
trigger_phrase: "@opus"
|
|
|
|
access-denied:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
(github.actor != 'dodox') && (
|
|
(github.event_name == 'issue_comment' && (contains(github.event.comment.body, '@claude') || contains(github.event.comment.body, '@opus'))) ||
|
|
(github.event_name == 'pull_request_review_comment' && (contains(github.event.comment.body, '@claude') || contains(github.event.comment.body, '@opus'))) ||
|
|
(github.event_name == 'pull_request_review' && (contains(github.event.review.body, '@claude') || contains(github.event.review.body, '@opus'))) ||
|
|
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.body, '@opus')))
|
|
)
|
|
steps:
|
|
- name: Access denied - only dodox can use Claude
|
|
run: |
|
|
echo "❌ Access Denied: User '${{ github.actor }}' is not authorized to use Claude"
|
|
echo "Only the repository owner 'dodox' can use the @claude or @opus assistant to prevent quota abuse"
|
|
exit 1
|