News

AI Agent如何自动审查GitHub PR并赚取150美元报酬?

AI Agent如何自动审查GitHub PR并赚取150美元报酬?

设想一下,如果您的代码能够自动审查其他代码并从中赚取报酬,这听起来是不是很酷?一位开发者正是这样做的:他创建了一个AI代码审查Agent,能够自主审查GitHub上的Pull Request(PR),并以此赢得了加密货币形式的赏金。

本文将深入探讨这款名为claude-review-agent的CLI工具的构建过程。这款工具能够获取GitHub PR的差异(diff),生成结构化的代码审查意见,并成功为开发者赢得了150美元的赏金。

解决痛点:开源维护者的困境

当前,开源项目的维护者们往往不堪重负。大量的PR堆积如山,代码审查耗时数小时,贡献者们也常常需要等待数天才能得到反馈。那么,如果AI能够承担起第一轮的初步审查工作,岂不是能极大缓解这一压力?

DePIN区块链项目RustChain就曾发布了一项悬赏任务,目标正是为此:

“构建一个CLI工具,能够审查PR并发布结构化评论。”

该任务的奖励是150美元的RTC代币。

解决方案:claude-review-agent

开发者构建了一个基于Node.js的CLI工具,其核心功能包括:

  • 通过GitHub API获取PR的差异(diff)。
  • 利用Claude AI生成结构化的代码审查意见。
  • 直接在PR上发布评论。
  • 输出易于阅读的Markdown格式审查报告。

系统架构

整个系统架构清晰明了:

  • 首先,claude-review.js工具通过GitHub API获取指定PR的差异内容。
  • 接着,这些差异内容被发送至Claude AI进行分析,生成审查报告。
  • 最终,生成的Markdown格式审查报告可以被发布到PR评论区。

实现步骤详解

第一步:解析PR URL

工具首先需要从GitHub PR的URL中提取关键信息,包括仓库所有者(owner)、仓库名称(repo)和PR编号(prNumber)。这通过一个简单的正则表达式匹配函数实现,确保URL格式正确并能准确提取所需参数。

第二步:获取PR差异(Diff)

在获取了PR的关键信息后,工具会利用GitHub API来获取PR的完整差异内容。这通过发送一个带有特定认证头(Authorization: Bearer [token])和接受头(Accept: application/vnd.github.v3.diff)的curl请求来完成。application/vnd.github.v3.diff这个接受头指示GitHub返回PR的统一差异格式,这是进行代码审查的基础。

第三步:生成审查报告

这是Claude AI发挥核心作用的环节。工具将获取到的PR差异内容构建成一个结构化的提示(prompt),发送给Claude AI。这个提示会明确要求Claude AI充当“专家代码审查员”,并输出包含以下几个部分的报告:

  • 总结(Summary): 2-3句话概述变更。
  • 风险(Risks): 列出潜在问题或担忧(项目符号列表)。
  • 建议(Suggestions): 改进建议(项目符号列表)。
  • 信心度(Confidence): 对审查结果的信心评级:高/中/低。

Claude AI会根据提供的差异内容,结合其强大的代码理解能力,生成符合上述结构的审查报告。开发者可以进一步将这份报告格式化并发布到GitHub PR中。

↗ 阅读原文