這是CodeRabbit的舊版本,現在處於維護模式。我們建議安裝 CodeRabbit 的專業版。專業版進行了徹底的重新設計,提供了更好的評論,可以從您的使用中學習並隨著時間的推移而改進。 CodeRabbit Pro 對於開源專案是免費的。
CodeRabbit ai-pr-reviewer
是一個基於 AI 的程式碼審查器和摘要器,使用 OpenAI 的gpt-3.5-turbo
和gpt-4
模型來處理 GitHub 拉取請求。它被設計為用作 GitHub Action,並且可以配置為在每個拉取請求和審核評論上運行
gpt-3.5-turbo
)和「重」審查模型(例如gpt-4
)一起使用。為了獲得最佳結果,請使用gpt-4
作為「重」模型,因為徹底的程式碼審查需要強大的推理能力。review_simple_changes
和review_comment_lgtm
設為true
來停用它。system_message
、 summarize
和summarize_release_notes
提示,以專注於審核過程的特定方面,甚至更改審核目標。要使用此工具,您需要將提供的 YAML 檔案新增至儲存庫並配置所需的環境變量,例如GITHUB_TOKEN
和OPENAI_API_KEY
。有關使用、示例、貢獻和常見問題解答的更多信息,您可以參考以下部分。
ai-pr-reviewer
作為 GitHub Action 運行。將以下檔案新增至您的儲存庫: .github/workflows/ai-pr-reviewer.yml
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 : 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
GITHUB_TOKEN
:這應該已經可用於 GitHub Action 環境。這用於向拉取請求添加評論。OPENAI_API_KEY
:使用它來透過 OpenAI API 進行身份驗證。你可以在這裡得到一個。請將此金鑰新增至您的 GitHub Action 金鑰。OPENAI_API_ORG
:(可選)如果您有多個組織,則使用此選項將指定的組織與 OpenAI API 一起使用。請將此金鑰新增至您的 GitHub Action 金鑰。gpt-4
和gpt-3.5-turbo
建議使用gpt-3.5-turbo
來完成較輕的任務,例如總結變更(配置中的openai_light_model
),並使用gpt-4
來完成更複雜的審查和評論任務(配置中的openai_heavy_model
)。
成本: gpt-3.5-turbo
非常便宜。 gpt-4
價格要貴幾個數量級,但結果卻優越得多。我們通常每天花費 20 美元為 20 名開發人員團隊提供基於gpt-4
的審查和評論。
請參閱:action.yml
提示:您可以透過配置system_message
值來更改機器人個性。例如,要查看文件/部落格文章,您可以使用以下提示:
system_message : |
You are `@coderabbitai` (aka `github-actions[bot]`), a language model
trained by OpenAI. Your purpose is to act as a highly experienced
DevRel (developer relations) professional with focus on cloud-native
infrastructure.
Company context -
CodeRabbit is an AI-powered Code reviewer.It boosts code quality and cuts manual effort. Offers context-aware, line-by-line feedback, highlights critical changes,
enables bot interaction, and lets you commit suggestions directly from GitHub.
When reviewing or generating content focus on key areas such as -
- Accuracy
- Relevance
- Clarity
- Technical depth
- Call-to-action
- SEO optimization
- Brand consistency
- Grammar and prose
- Typos
- Hyperlink suggestions
- Graphics or images (suggest Dall-E image prompts if needed)
- Empathy
- Engagement
您可以回覆此操作所做的審閱評論,並根據差異上下文獲得回應。此外,您可以透過在評論中標記機器人來邀請機器人加入對話 ( @coderabbitai
)。
例子:
@coderabbitai 請為此文件產生測試計劃。
注意:審查評論是對拉取請求中的差異或文件所做的評論。
有時忽略 PR 是有用的。例如,如果您使用此操作來檢視文檔,則可以忽略僅變更文檔的 PR。若要忽略 PR,請在 PR 描述中新增下列關鍵字:
@coderabbitai: ignore
ai-pr-reviewer 完成的一些評論
任何改進提示的建議或拉取請求都將受到高度讚賞。
首先,您需要有一個相當現代的
node
版本,並使用 Node 17+ 進行了測試。
安裝依賴項
$ npm install
建立打字稿並將其打包以供分發
$ npm run build && npm run package
GitHub Actions 限制對分叉儲存庫中機密的存取。要啟用此功能,您需要在工作流程檔案中使用pull_request_target
事件而不是pull_request
。請注意,使用pull_request_target
,您需要額外的配置以確保檢查正確的提交:
name : Code Review
permissions :
contents : read
pull-requests : write
on :
pull_request_target :
types : [opened, synchronize, reopened]
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/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
另請參閱:https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target
在工作流程檔案中設定debug: true
以啟用偵錯模式,這將顯示訊息