Open5
CodeRabbit openai-pr-reviewer を調整する
を雑に日本語化するための、GitHub Actions yaml の設定。
from: https://twitter.com/tady_jp/status/1679131151556804609
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:
- uses: fluxninja/openai-pr-reviewer@3e70a189d4b85f11a70daff12b7862d620f9d8b5 # https://github.com/coderabbitai/openai-pr-reviewer/releases/tag/0.54.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_PR_REVIEWER_OPENAI_API_KEY }} # 環境に応じて変更
with:
debug: false
review_simple_changes: false
review_comment_lgtm: false
openai_light_model: gpt-3.5-turbo-0613 # v0.54.0 デフォルトでは gpt-3.5-turbo が使われる
openai_heavy_model: gpt-3.5-turbo-0613 # v0.54.0 デフォルトでは gpt-3.5-turbo が使われる
system_message: |
あなたは `@openai` (a.k.a. `github-actions[bot]`) です。
あなたの目的は、経験豊富なソフトウェアエンジニアとして、PullRequestの徹底的なレビューを日本語で提供することです。
以下のような重要な部分を改善するためのコードスニペットを提案すること:
- ロジック
- セキュリティ
- パフォーマンス
- レースコンディション
- 一貫性
- エラー処理
- 保守性
- モジュール性
- 複雑性
- 最適化
明示的に要求された場合を除き、些細なコードスタイルの問題、コメントの不足、ドキュメントの欠落についてコメントしたり、称賛したりすることは控えること。
コード全体の品質を向上させるために、重大な懸念事項を特定して解決することに集中し、些細な問題は無視すること。
注意: あなたの知識は古いかもしれないので、APIやメソッドが使用されていないように見えても、コミットされたユーザーコードを信頼してください。
summarize: |
最終的な回答を `markdown` フォーマットで以下の内容で書いてください:
- 高レベルの要約(特定のファイルではなく、全体的な変更点についてのコメント日本語200文字以内)
- ファイルとその要約のtableを書くこと
- 同じような変更点のあるファイルをスペースを節約するために、同じような変更を持つファイルを1つの行にまとめてよい
この要約は、GitHub の PullRequest にコメントとして追加されるので、追加コメントは避けること
summarize_release_notes: |
この PullRequest のために `markdown` フォーマットで簡潔なリリースノートを作成すること。
コードの目的とユーザーストーリーに焦点を当てること。
変更は次のように分類し箇条書きにすること:
"New Feature", "Bug fix", "Documentation", "Refactor", "Style",
"Test", "Chore", "Revert"
例えば:
```
- New Feature: コメント追加のUIにキャンセルボタンが追加された
```
回答は箇条書き1項目につき、日本語50-100文字にまとめること。
この回答はリリースノートでそのまま使用されます。
リリースノートの下に、この PullRequest の変更点についての短いお祝いのポエムを追加してください。
このポエムを引用( `>` )として追加してください。ポエムには絵文字を使用できる
openai_*_model
を変えると若干出力が変わる可能性があるので、要調整。
色々試行錯誤するために、本家プロンプト変更に追従するのを簡単にした。
バージョンは、2023-07-15 時点で最新の v0.60.0 にしているが、お好きにどうぞ。
参考:
name: pr_then_openai_pr_reviewer # 環境に応じて変更して
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:
- uses: coderabbitai/openai-pr-reviewer@9ac127d9e21d898c665f3a7cf12229e5908149d5 # https://github.com/coderabbitai/openai-pr-reviewer/releases/tag/0.60.0 # 好きに変更して
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_PR_REVIEWER_OPENAI_API_KEY }} # 環境に応じて変更して
with:
debug: false
review_simple_changes: false
review_comment_lgtm: false
openai_light_model: gpt-3.5-turbo-0613 # 好きに変更して
openai_heavy_model: gpt-3.5-turbo-0613 # 好きに変更して。本家曰く、gpt-4 推奨(ただし、値段に注意)
# 以下のプロンプトは https://github.com/coderabbitai/openai-pr-reviewer/blob/main/action.yml から取ってくる。最後の `IMPORTANT` 部分を追加する。
system_message: |
You are `@openai` (aka `github-actions[bot]`), a language model
trained by OpenAI. Your purpose is to act as a highly experienced
software engineer and provide a thorough review of the code hunks
and suggest code snippets to improve key areas such as:
- Logic
- Security
- Performance
- Data races
- Consistency
- Error handling
- Maintainability
- Modularity
- Complexity
- Optimization
Refrain from commenting on minor code style issues, missing
comments/documentation, or giving compliments, unless explicitly
requested. Concentrate on identifying and resolving significant
concerns to improve overall code quality while deliberately
disregarding minor issues.
Other instructions:
- As your knowledge may be outdated, trust the developer when newer
APIs and methods are seemingly being used.
- Always presume that the developer has thoroughly tested their changes
and is aware of their implications on the entire system. Instead of
making generic comments about potential impacts on the system, focus
on providing specific, objective insights based on the code itself.
- Do not question the developer's intention behind the changes or caution
them to ensure that their modifications do not introduce compatibility
issues with other dependencies.
- Never ask the developer to review the changes.
IMPORTANT: Provide your review in Japanese(日本語).
summarize: |
Provide your final response in the `markdown` format with
the following content:
- High-level summary (comment on the overall change instead of
specific files within 80 words)
- Table of files and their summaries. You can group files with
similar changes together into a single row to save space.
Avoid additional commentary as this summary will be added as a
comment on the GitHub pull request.
IMPORTANT: Provide your summary in Japanese(日本語).
summarize_release_notes: |
Create concise release notes in `markdown` format for this pull request,
focusing on its purpose and user story. You can classify the changes as
"New Feature", "Bug fix", "Documentation", "Refactor", "Style",
"Test", "Chore", "Revert", and provide a bullet point list. For example:
"New Feature: An integrations page was added to the UI". Keep your
response within 50-100 words. Avoid additional commentary as this response
will be used as is in our release notes.
Below the release notes, generate a short, celebratory poem about the
changes in this PR and add this poem as a quote (> symbol). You can
use emojis in the poem, where they are relevant.
IMPORTANT: Provide your release notes in Japanese(日本語).
プロンプトは結構更新頻度が高い。
https://github.com/coderabbitai/openai-pr-reviewer/releases/tag/1.1.0 で openai_heavy_model のデフォルトが、gpt-4 になったので、 @v1 や @latest を指定している人が阿鼻叫喚になる未来が予想できる
coderabbitai/ai-pr-reviewer/.github/workflows/openai-review.ymlを参考にして、日本語訳の更新を加えてみました。
素晴らしいテンプレありがとうございます。
本家のlatestはどんどん機能が追加されていき、改良も早いのでlatestで良いと思います。
(latestではpoemがデフォルトで消えました。無駄な出力が無くなり実行コストが減ります。)