这是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
以启用调试模式,这将显示消息