ai-pr-review.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. name: AI 自动审查 PR
  2. on:
  3. pull_request_target:
  4. branches:
  5. - master
  6. - dev
  7. types:
  8. - opened
  9. - edited
  10. - synchronize
  11. - reopened
  12. - ready_for_review
  13. concurrency:
  14. group: ai-pr-review-${{ github.event.pull_request.number }}
  15. cancel-in-progress: true
  16. jobs:
  17. review-and-merge:
  18. if: ${{ !github.event.pull_request.draft }}
  19. runs-on: ubuntu-latest
  20. timeout-minutes: 10
  21. permissions:
  22. contents: write
  23. issues: write
  24. pull-requests: write
  25. steps:
  26. - name: 检出当前基准分支上的工作流文件
  27. uses: actions/checkout@v4
  28. with:
  29. ref: ${{ github.event.pull_request.base.ref }}
  30. fetch-depth: 1
  31. persist-credentials: false
  32. - name: 执行 AI 审查并处理 dev 合并
  33. env:
  34. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  35. OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
  36. OPENAI_API_BASE_URL: ${{ vars.OPENAI_API_BASE_URL }}
  37. OPENAI_MODEL: ${{ vars.OPENAI_MODEL }}
  38. OPENAI_REVIEW_REASONING_EFFORT: ${{ vars.OPENAI_REVIEW_REASONING_EFFORT }}
  39. AI_REVIEW_MERGE_METHOD: ${{ vars.AI_REVIEW_MERGE_METHOD }}
  40. AI_REVIEW_SKIP_AUTHORS: ${{ vars.AI_REVIEW_SKIP_AUTHORS }}
  41. AI_REVIEW_TRUSTED_ASSOCIATIONS: ${{ vars.AI_REVIEW_TRUSTED_ASSOCIATIONS }}
  42. AI_REVIEW_MAX_FILES: ${{ vars.AI_REVIEW_MAX_FILES }}
  43. AI_REVIEW_MAX_PATCH_CHARS_PER_FILE: ${{ vars.AI_REVIEW_MAX_PATCH_CHARS_PER_FILE }}
  44. AI_REVIEW_MAX_PATCH_CHARS_TOTAL: ${{ vars.AI_REVIEW_MAX_PATCH_CHARS_TOTAL }}
  45. AI_REVIEW_TARGET_BRANCH: dev
  46. REPO: ${{ github.repository }}
  47. REPO_OWNER: ${{ github.repository_owner }}
  48. PR_NUMBER: ${{ github.event.pull_request.number }}
  49. PR_AUTHOR: ${{ github.event.pull_request.user.login }}
  50. PR_AUTHOR_ASSOCIATION: ${{ github.event.pull_request.author_association }}
  51. PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
  52. GITHUB_API_URL: ${{ github.api_url }}
  53. run: node .github/scripts/ai-pr-review.mjs