自动代码审查、质量门禁与PR分析。集成GitHub、GitLab、Bitbucket,支持代码风格规范强制执行、缺陷检测与安全漏洞扫描。
代码审查者 Skill是一项面向实际任务的技能,主要用于自动码审查;快速地使用;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
自动化代码审查。更快速、更自信地交付代码。
✅ 请在以下情况使用该技能:
❌ 请勿在以下情况使用该技能:
人工代码审查令人痛苦:
我们的解决方案:即时、一致、全面的审查 节省时间:每位开发者每周节省 5–10 小时 价值:按 $60/小时计,相当于 $12,000–24,000/月/开发团队
定价:$29–99/月/仓库 投资回报率(ROI):首周即开始节省工时
rules:
- style:
tools: ["eslint", "prettier", "rubocop", "black", "gofmt"]
auto_fix: true
comment: |
发现风格问题。运行 `pnpm run lint:fix` 自动修复。
- complexity:
max_cyclomatic: 10
max_nesting: 4
comment: |
函数过于复杂(圈复杂度:{{complexity}}/10)。建议重构。
- duplication:
max_lines_duplicate: 10
ignore_tests: true
bugs:
- null_pointer:
languages: ["java", "csharp", "kotlin"]
severity: "high"
- resource_leak:
languages: ["go", "rust", "c++"]
severity: "critical"
- race_condition:
languages: ["go", "java", "javascript"]
patterns: ["mutex", "atomic", "promise"]
- off_by_one:
languages: ["c", "cpp", "java"]
patterns: ["loop_index", "array_access"]
- improper_error_handling:
languages: ["python", "javascript", "ruby"]
patterns: ["try-catch", "throw", "except"]
security:
- secrets_detection:
patterns:
- aws_secret_key: "AKIA[0-9A-Z]{16}"
- slack_token: "xox[baprs]-[0-9a-zA-Z-]+"
- github_token: "ghp_[0-9a-zA-Z]{36}"
- private_key: "-----BEGIN [A-Z ]+ PRIVATE KEY-----"
action: "fail_ci" # 阻止合并
comment: |
🚨 **检测到密钥**
切勿提交凭据!请改用环境变量或密钥管理服务。
此 PR 必须移除密钥后方可合并。
- sql_injection:
patterns: ["exec(.*SQL)", "raw_query(.*)", "format(.*SELECT)"]
languages: ["python", "php", "javascript"]
severity: "critical"
- xss:
patterns: ["innerHTML", "document.write", "dangerouslySetInnerHTML"]
languages: ["javascript", "typescript", "react"]
severity: "high"
- path_traversal:
patterns: ["__dirname+", "os.path.join(user_input)"]
languages: ["node", "python"]
severity: "high"
- license_compliance:
check: ["commercial_use", "copyleft", "patent_risk"]
block_merge: true
performance:
- n+1_queries:
languages: ["ruby", "javascript", "python"]
frameworks: ["rails", "django", "express"]
comment: |
检测到 N+1 查询!请使用预加载(`.includes()` 或 `select_related`)。
- inefficient_loop:
patterns: ["for(i=0;i
5. 架构与设计审查
architecture:
- god_object:
max_methods: 20
max_lines: 500
comment: |
此类过大({{methods}} 个方法,{{lines}} 行代码)。
建议拆分职责。
- feature_envy:
pattern: "class A using data from class B extensively"
suggest: "将方法移至 class B"
- circular_dependency:
modules: ["a", "b", "c"]
severity: "high"
快速入门
1. 连接仓库
# 在 GitHub 仓库中安装 Code Reviewer
clawhub code-reviewer install --repo github.com/yourorg/yourrepo
# 配置(将打开编辑器)
clawhub code-reviewer config --repo github.com/yourorg/yourrepo
2. 启用规则
# ~/.openclaw/code-reviewer/rules.yaml
include:
- "security-high"
- "style"
- "performance"
exclude:
- "performance/n_plus_one" # 存在部分误报
when: "test_files_only"
severity_overrides:
- "sql_injection": "block" # CI 失败
- "style/variable_name": "comment" # 仅提示警告
3. 配置操作行为
actions:
on_pr_open:
- "review" # 发布审查评论
- "label" # 添加标签(needs-work / safe / security)
on_pr_update:
- "review" # 重新审查
auto_approve:
when:
- "all_checks_pass == true"
- "author in [maintainer_team]"
- "changed_files < 5"
# 跳过必需的审阅人
block_merge:
when:
- "security_issues_found"
- "test_coverage < 80%"
message: |
❌ 合并被阻止:
- {{security_issues_found}} 个安全问题
- 测试覆盖率 {{test_coverage}}% < 80%
请修复后再合并。
GitHub App 配置
# 创建 GitHub App(一次性操作)
clawhub code-reviewer create-app
--name "Code Reviewer"
--webhook-url "https://api.clawhub.com/webhooks/github"
--permissions "contents=read, pull_requests=write"
# 安装至指定仓库
clawhub code-reviewer install
--app-id 12345
--repo github.com/yourorg/yourrepo
# 或批量安装至组织下所有仓库
clawhub code-reviewer install-org
--org yourorg
--app-id 12345
审查评论示例
审阅者在 PR 中看到的内容:
🔍 **代码审查摘要**
✅ **通过**:12 项检查
⚠️ **警告**:3 项
❌ **失败**:1 项(阻断性)
---
### 安全 🛡️
- ❌ **硬编码密钥**,位于第 42 行(`config.py`)
> 请立即移除并轮换该凭据。
### 性能 ⚡
- ⚠️ **N+1 查询**,位于 `user_controller.rb:28`
> 使用 `.includes(:profile)` 在单次查询中加载关联记录。
### 风格 🎨
- ⚠️ **变量名** `x` 过短(第 15 行)
> 请使用描述性名称;最小长度为 3 个字符。
- ⚠️ **多行数组缺少尾随逗号**(第 78 行)
---
💡 **建议**
1. 运行 `./gradlew test` → 3 个测试失败
2. 代码覆盖率:75%(目标:80%)
3. 建议为 `PaymentProcessor` 类补充单元测试
---
🔒 **自动批准状态**:❌ 不符合资格(存在安全问题,已阻断)
自定义规则
编写您自己的规则(YAML 格式)
custom_rules:
- id: "no_todo_comments"
pattern: "TODO|FIXME|HACK"
message: "合并前请移除技术债务注释"
severity: "warning"
- id: "no_debugger"
pattern: "debugger|pdb.set_trace|console.log"
message: "请移除调试代码"
severity: "fail"
- id: "no_console_in_prod"
pattern: "console.log"
files: "src/**/*.js"
except: "tests/**"
severity: "warning"
- id: "feature_flag_required"
pattern: "if.*new_feature"
message: "请包裹在功能开关中:`if (flags.newFeature)`"
severity: "warning"
- id: "require_tests"
condition: "added_lines > 50 && test_files_modified == 0"
message: "大范围变更未附带测试,请为新代码添加测试。"
severity: "fail"
Python 规则示例
# rules/python/no_assert_in_prod.py
from codereviewer import Rule
class NoAssertInProd(Rule):
def check(self, file, line):
if line.contains("assert ") and not file.path.contains("test"):
return self.fail("请移除生产代码中的 assert")
GitHub Actions 集成
.github/workflows/code-review.yml:
name: Code Review
on:
pull_request:
branches: [main, develop]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Code Reviewer
uses: clawhub/code-reviewer@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
config: .codereview.yaml
GitLab CI/CD
.gitlab-ci.yml:
code-review:
stage: test
script:
- clawhub code-reviewer run --config .codereview.yaml
artifacts:
reports:
code-review: review-report.json
Slack 通知
notifications:
slack:
channel: "#code-reviews"
on:
- "security_issue"
- "pr_blocked"
- "pr_approved"
format:
blocks:
- type: "header"
text: "{{pr_title}}"
- type: "section"
text: "{{review_summary}}"
- type: "actions"
elements:
- type: "button"
text: "查看 PR"
url: "{{pr_url}}"
定价方案
开源版(免费)
- 公开仓库:免费
- 仅支持社区规则
- 基础风格检查
Pro 版($29/月/仓库)
- 私有仓库支持
- 支持自定义规则
- 安全扫描
- Slack / Teams 实时告警
- 不限制审阅者数量
Business 版($99/月/组织)
- 包含全部 Pro 功能
- 企业级安全规则
- 支持 SSO / SAML
- 审计日志
- 优先技术支持
Enterprise 版($499+/月)
- 无任何限制
- 提供定制化规则编写服务
- 支持本地化部署(on-premise)
- SLA 服务等级协议保障
- 专属工程师支持
竞品对比
功能
ReviewDog
SonarQube
CodeClimate
Code Reviewer
价格
免费(需自托管)
$150/月
$49/月
$29/月
GitHub 集成
✅
✅
✅
✅
自定义规则
✅
✅
⚠️ 有限支持
✅ 无限支持
自动批准
❌
❌
❌
✅
AI 建议
❌
❌
❌
✅
配置耗时
数小时
数天
数小时
数分钟
上线计划
- 构建核心审查引擎
- 发布 50+ 内置规则
- 建立规则市场(支持社区贡献)
- 接入 AI 驱动建议(GPT-4)
- 支持 Bitbucket、Azure DevOps
- 上架 GitHub Marketplace
- 与 OpenClaw 达成集成合作
自动化代码审查。更快交付,安心入睡。 🔍✨
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章