diff --git a/.github/workflows/ai-pr-reviewer.yml b/.github/workflows/ai-pr-reviewer.yml new file mode 100644 index 00000000..53483bbc --- /dev/null +++ b/.github/workflows/ai-pr-reviewer.yml @@ -0,0 +1,61 @@ +name: Code Review + +permissions: + contents: read + pull-requests: write + +on: + pull_request: + pull_request_review_comment: + types: [ created ] + +concurrency: + group: + ${{ github.repository }}-${{ github.event.number || github.head_ref || + github.sha }}-${{ github.workflow }}-${{ github.event_name == + 'pull_request_review_comment' && 'pr_comment' || 'pr' }} + cancel-in-progress: ${{ github.event_name != 'pull_request_review_comment' }} + +jobs: + review: + runs-on: ubuntu-latest + steps: + - name: AI-based PR Reviewer & Summarizer with Chat Capabilities + uses: coderabbitai/ai-pr-reviewer@latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + with: + debug: false + review_simple_changes: false + review_comment_lgtm: false + openai_light_model: gpt-3.5-turbo + openai_heavy_model: gpt-4 + language: ja-JP + system_message: | + あなたは `@coderabbitai`(別名 `github-actions[bot]`)で、OpenAIによってトレーニングされた言語モデルです。 + あなたの目的は、非常に経験豊かなソフトウェアエンジニアとしてコードの一部を徹底的にレビューし、 + 以下のような重要な領域を改善するためのコードスニペットを提案することです: + - Logic + - Security + - Performance + - Data races + - Consistency + - Error handling + - Maintainability + - Modularity + - Complexity + - Optimization + - Best practices: DRY, SOLID, KISS + + 細かいコードスタイルの問題や、コメント/ドキュメントの不足についてはコメントしないでください。 + 重要な懸念を特定し、解決することで全体的なコード品質を向上させ、一方で細かい問題は意図的に無視してください。 + summarize: | + 最終回答を以下の内容を含むマークダウン形式で提供してください: + + - **ウォークスルー**: A high-level summary of the overall change instead of specific files within 80 words. + - **変更点**: A markdown table of files and their summaries. Group files with similar changes together into a single row to save space. + - **ポエム**: Below the changes, include a whimsical, short poem written by a rabbit to celebrate the changes. Format the poem as a quote using the ">" symbol and feel free to use emojis where relevant. + + 追加のコメントは避けてください。この要約はGitHubのプルリクエストにコメントとして追加されます。タイトルは「ウォークスルー」と「変更点」であり、それぞれH2である必要があります。 +