Code Reviewer

Polar Sponsor
爱发电 赞助
.NET 9.0

自动代码审查、质量门禁与PR分析。集成GitHub、GitLab、Bitbucket,支持代码风格规范强制执行、缺陷检测与安全漏洞扫描。

代码审查者 Skill

功能概述

代码审查者 Skill是一项面向实际任务的技能,主要用于自动码审查;快速地使用;

核心要点

  • 当使用时, 需要自动检查我所有的拖动请求;
  • “ 执行我们的编码标准 ”;
  • “ 检测安全 ”。

使用与执行

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Code Reviewer 技能

自动化代码审查。更快速、更自信地交付代码。

适用场景

✅ 请在以下情况使用该技能:

  • “自动审查我所有的 Pull Request”
  • “强制执行我们的编码规范”
  • “在 PR 中检测安全漏洞”
  • “拦截性能反模式”
  • “自动批准微小变更”
  • “为 PR 生成审查评论”
  • “确保不提交任何密钥或凭证”

不适用场景

❌ 请勿在以下情况使用该技能:

  • 架构级变更(需资深工程师人工审查)
  • 复杂的业务逻辑重写
  • 安全关键型变更(仍需人工审批)
  • 项目初始搭建(需手动配置)

💪 开发者痛点

人工代码审查令人痛苦:

  • 上下文切换:每个 PR 平均耗时 15 分钟 → 每周 5 小时
  • 遗漏细微缺陷:导致线上事故
  • 标准不一致:代码质量参差不齐
  • 反馈延迟:开发者需等待数小时甚至数天
  • 审查疲劳:关键问题被忽略

我们的解决方案:即时、一致、全面的审查 节省时间:每位开发者每周节省 5–10 小时 价值:按 $60/小时计,相当于 $12,000–24,000/月/开发团队

定价:$29–99/月/仓库 投资回报率(ROI):首周即开始节省工时

功能特性

1. 风格与 Lint 规则强制执行

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

2. 缺陷检测

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"]

3. 安全扫描

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

4. 性能反模式识别

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 建议 ❌ ❌ ❌ ✅
配置耗时 数小时 数天 数小时 数分钟

上线计划

  1. 构建核心审查引擎
  2. 发布 50+ 内置规则
  3. 建立规则市场(支持社区贡献)
  4. 接入 AI 驱动建议(GPT-4)
  5. 支持 Bitbucket、Azure DevOps
  6. 上架 GitHub Marketplace
  7. 与 OpenClaw 达成集成合作

自动化代码审查。更快交付,安心入睡。 🔍✨

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习