Spaces:
Running
Running
name: Code Review Bot (Codex) | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
workflow_dispatch: | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
code-review: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # 完全な履歴を取得 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' | |
- name: Install OpenAI Codex | |
run: | | |
npm install -g codex | |
- name: Review PR with Codex | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
CODEX_QUIET_MODE: "1" | |
run: | | |
# PRの差分を取得 | |
git fetch origin ${{ github.base_ref }} | |
git diff origin/${{ github.base_ref }}...${{ github.head_ref }} > pr_diff.txt | |
# Codexを使ってコードレビュー | |
codex -a auto-edit "$(cat << 'EOF' | |
プルリクエストのコードレビューを実施してください。 | |
PR番号: #${{ github.event.pull_request.number }} | |
タイトル: ${{ github.event.pull_request.title }} | |
以下の観点でレビューしてください: | |
1. コード品質 | |
- 命名規則が一貫しているか | |
- 未使用のコードやコメントアウトされたコードがないか | |
- コードの重複が最小限か | |
2. セキュリティ | |
- APIキーやパスワードなどの機密情報が含まれていないか | |
- 適切なエラーハンドリングがされているか | |
3. パフォーマンス | |
- 効率的なアルゴリズムが使用されているか | |
- 不要な処理がないか | |
4. ドキュメント | |
- 適切なコメントが付けられているか | |
- READMEが更新されているか(必要な場合) | |
レビュー結果は以下の形式で出力してください: | |
1. PRにコメントを投稿 | |
2. 改善が必要な場合は、新しいブランチを作成して修正プルリクエストを作成 | |
重要: GitHubのトークンは環境変数 GITHUB_TOKEN で利用可能です。 | |
差分は pr_diff.txt として保存されています。 | |
EOF | |
)" | |
- name: Post review comments | |
if: always() | |
run: | | |
if [ -f "review_comments.txt" ]; then | |
gh pr comment ${{ github.event.pull_request.number }} --body-file review_comments.txt | |
fi | |