AlexStocks commented on issue #878:
URL:
https://github.com/apache/incubator-seata-go/issues/878#issuecomment-3261112613
Grok suggestion:
```markdown
以下是一些**免费的**、可以在 GitHub Actions 中配置并自动触发的代码审查工具,特别适合在 GitHub Pull Request
(PR) 流程中使用的工具。这些工具要么完全免费,要么提供开源项目的免费使用选项,并且可以轻松集成到 GitHub Actions
工作流中。以下是详细总结,基于当前可用的信息:
---
### 1. CodiumAI PR-Agent
- **描述**: 一个开源的 AI 驱动工具,专注于自动化 PR 审查,提供代码建议、PR 描述生成和合规性检查。它使用大语言模型(如 GPT-4
或兼容模型),但对开源仓库提供免费使用。
- **特点**:
- 自动分析 PR 变更,生成代码改进建议。
- 支持检查代码是否符合仓库指南。
- 可生成 PR 摘要或改进描述。
- 对开源项目完全免费,私人仓库可能需要付费计划。
- **GitHub Actions 配置**:
- 通过 GitHub Marketplace 安装或手动添加 Actions YAML 文件。
- 配置简单的触发事件(如 `pull_request`)。
- 如果使用自托管模型,可能需要 API 密钥(但开源仓库通常免配置)。
- **触发方式**:
```yaml
name: PR Agent
on:
pull_request:
types: [opened, synchronize]
jobs:
pr-agent:
runs-on: ubuntu-latest
steps:
- uses: Codium-ai/pr-agent@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
```
- **链接**: [CodiumAI PR-Agent](https://github.com/Codium-ai/pr-agent)
- **免费说明**: 开源仓库免费,易于设置,社区支持活跃。
---
### 2. LlamaPReview
- **描述**: 一个新兴的免费工具,利用链式推理(Chain-of-Thought)LLM 进行 PR 审查,专注于发现潜在 bug
和代码问题。特别适合希望一键安装的团队。
- **特点**:
- 完全免费,无需额外 API 密钥。
- 提供详细的 PR 评论,突出潜在 bug。
- 支持自动化触发,安装简单。
- **GitHub Actions 配置**:
- 通过 GitHub Marketplace 一键安装。
- 配置触发事件(如 PR 创建或更新)。
- 示例 YAML:
```yaml
name: LlamaPReview
on:
pull_request:
types: [opened, edited, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: QuasarByte/llama-preview@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
```
- **链接**:
[LlamaPReview](https://github.com/QuasarByte/llm-code-review-maven-plugin)
- **免费说明**: 完全免费,专为开源项目设计,适合快速上手。
---
### 3. CodeQL (GitHub 官方)
- **描述**: GitHub 提供的静态代码分析工具,内置于 GitHub Actions,特别适合检测安全漏洞和代码质量问题。虽然不是基于
GPT,但功能强大且免费。
- **特点**:
- 检测常见的安全问题(如 SQL 注入、XSS)。
- 支持多种语言(C/C++、Java、Python、JavaScript 等)。
- 自动在 PR 上生成评论或问题。
- 对开源仓库完全免费,私人仓库在 GitHub Advanced Security 下可能需要付费。
- **GitHub Actions 配置**:
- 使用 GitHub 提供的 CodeQL Action。
- 示例 YAML:
```yaml
name: CodeQL Analysis
on:
pull_request:
branches: [main]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: github/codeql-action/init@v3
with:
languages: javascript,python
- uses: github/codeql-action/analyze@v3
```
- **链接**:
[CodeQL](https://docs.github.com/en/code-security/code-scanning/using-codeql-code-scanning-with-github-actions)
- **免费说明**: 开源仓库免费,GitHub 官方支持,适合安全和质量审查。
---
### 4. Reviewdog
- **描述**: 一个轻量级的代码审查工具,支持集成多种静态分析工具(如 ESLint、Pylint)并在 PR 上添加评论。它不是 AI
驱动,但结合静态分析器可实现类似审查效果,且完全免费。
- **特点**:
- 支持多种 linter 工具,生成 PR 注释。
- 轻量且高度可定制。
- 与 GitHub Actions 无缝集成。
- **GitHub Actions 配置**:
- 配置 linter 和 Reviewdog Action。
- 示例 YAML(以 ESLint 为例):
```yaml
name: Reviewdog
on:
pull_request:
branches: [main]
jobs:
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: reviewdog/action-eslint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
```
- **链接**: [Reviewdog](https://github.com/reviewdog/reviewdog)
- **免费说明**: 完全免费,支持多种语言和 linter,适合轻量级审查。
---
### 5. Danger
- **描述**: 一个自动化代码审查工具,支持自定义规则和脚本,允许在 PR 上添加评论。它不基于 GPT,但可以通过插件集成 AI
模型,且核心功能免费。
- **特点**:
- 高度可定制,支持 Ruby、JavaScript 或 Python 脚本。
- 可检查代码规范、提交消息格式等。
- 直接在 PR 上添加评论。
- **GitHub Actions 配置**:
- 配置 Danger Action,运行自定义规则。
- 示例 YAML:
```yaml
name: Danger
on:
pull_request:
types: [opened, synchronize]
jobs:
danger:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: danger/danger-js@11
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
- **链接**: [Danger](https://danger.systems)
- **免费说明**: 核心功能免费,适合需要自定义审查规则的团队。
---
### 注意事项
- **AI 工具限制**: 像 CodiumAI PR-Agent 和 LlamaPReview 这样的 AI
工具可能依赖外部模型,免费版本可能有使用限制(如 API 调用次数)。但对开源项目通常足够。
- **静态分析 vs AI**: CodeQL 和 Reviewdog 更适合检测明确的代码问题(如安全漏洞或风格问题),而 CodiumAI 和
LlamaPReview 提供更智能的语义审查。
- **触发配置**: 所有工具都支持 `on: pull_request` 事件,确保 PR 创建或更新时自动运行。
- **隐私**: 使用 GitHub Secrets 存储任何 API 密钥(如 GITHUB_TOKEN),避免泄露。
- **扩展性**: 如果需要更智能的审查,可以考虑结合免费工具和自托管 LLM(如 LLaMA),但需要更多配置。
### 推荐
- **简单上手**: LlamaPReview(一键安装,完全免费)。
- **安全审查**: CodeQL(GitHub 官方,适合安全检测)。
- **灵活性**: Reviewdog 或 Danger(支持多种 linter 或自定义规则)。
- **AI 驱动**: CodiumAI PR-Agent(开源项目免费,智能建议)。
如果需要帮助配置某个工具的 YAML 文件或想深入探讨某个工具的优缺点,请告诉我!
```
下面是示例:
```markdown
- **项目背景**:
- 这是一个 Apache 项目(假设是 Java 项目,但如果你需要其他语言支持,可以调整)。
- 我是 committer,有权限提交 PR 和修改代码,但无法访问 GitHub 仓库的 Settings。
- GitHub Actions 已启用(假设如此,若未启用,我会通过邮件列表推动)。
- 目标是自动触发 PR 审查,优先使用免费工具(如 LlamaPReview、CodeQL 或 Reviewdog)。
- **要求**:
- 配置尽量简单,适合 Apache 项目的开源性质。
- 无需外部 API 密钥或 Secrets,只使用默认的 `GITHUB_TOKEN`。
- 能在 PR 创建或更新时触发。
- 提供代码审查反馈(如安全检查、风格问题或潜在 bug)。
请将 YAML 文件包裹在 `<xaiArtifact>` 标签中,包含一个唯一的 `artifact_id` 和合适的 `title`,并确保
`contentType` 为 `text/yaml`。如果有多个工具的配置建议,可以选择一个最适合的(如 LlamaPReview 或
CodeQL),或者提供多个 YAML 文件(每个用单独的 `<xaiArtifact>` 包裹)。完成后,我会通过 PR 提交到
`.github/workflows/`,并在邮件列表中讨论。
````
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]