Files
demo-workflow-repo/.gitea/workflows/code-review.yml

51 lines
1.9 KiB
YAML

name: AI Code Review (on comment)
on:
issue_comment:
types: [created, edited]
jobs:
code-review:
runs-on: ubuntu-latest
if: github.event.issue.pull_request && (startsWith(github.event.comment.body, 'openai') || github.event.comment.body == 'openai')
steps:
- name: OpenAI Code Review
uses: sgxya/gitea-code-review-action@main
# env:
# # 可直连则删除本行;需代理则改成你的代理地址
# OPENAI_PROXY: https://aiyjg.lol
# NODE_TLS_REJECT_UNAUTHORIZED: '0'
with:
SOURCE_AT: gitea
GITHUB_BASE_URL: 'https://49.235.186.195'
OPENAI_BASE_URL: 'https://aiyjg.lol'
PROGRAMMING_LANGUAGE: 'JavaScript' # 避免使用 auto
FULL_REVIEW_COMMENT: openai
REVIEW_COMMENT_PREFIX: 'openai:'
MAX_CODE_LENGTH: 6000
OPENAI_TOKEN: ${{ secrets.OPENAI_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
- name: Comment on PR when AI review fails (Gitea API)
if: failure() # 仅在 AI Review 步骤失败时执行
env:
GITEA_BASE_URL: https://49.235.186.195
TOKEN: ${{ secrets.GH_TOKEN }} # 或者使用你在 Gitea 配置的 PAT
OWNER: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}
ISSUE_NUMBER: ${{ github.event.issue.number }} # PR 在 API 上也是 issue
run: |
set -e
api="$GITEA_BASE_URL/api/v1/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER/comments"
body=$(cat <<'EOF'
{
"body": "AI 自动审查未通过,请根据机器人评论修复问题后,在此评论 `openai` 以重新触发审查。"
}
EOF
)
curl -sS -X POST "$api" \
-H "Content-Type: application/json" \
-H "Authorization: token $TOKEN" \
--data "$body"