返回顶部
c

code-review代码审查工作流

Complete code review workflow for GitCode PRs. Combines automated security scanning with manual code review, outputs formatted findings, and posts comments to PR. Use when reviewing GitCode pull requests - follows 5-step process: automated scan, manual review, issue selection, formatted output, and optional PR comment posting.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.3
安全检测
已通过
270
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

code-review

代码审查技能

针对 GitCode PR 的完整 5 步代码审查工作流程。

📁 临时目录管理

所有审查过程中生成的临时文件必须存放在 temp/ 目录下

文件说明
temp/reviewresult.json步骤 1 自动化扫描结果
temp/top3issues.json
步骤 3 选择的 Top 问题 |
| temp/formatted_review.json | 步骤 4 格式化后的评论 |
| temp/*.py | 脚本运行时缓存的文件 |
| temp/* | 获取的 diff 文件,下载的代码文件 |

⚠️ 重要:审查完成后必须清理 temp/ 目录,删除所有临时文件。

5 步审查流程

步骤 1:自动化扫描

运行脚本检测关键问题:

bash
python scripts/reviewpr.py url> [token]

检测内容:SQL 注入、命令注入、XSS、eval()、硬编码凭据、资源泄漏、无限循环。

特性

  • - ✅ 自动行号验证 - 下载实际文件并验证行号与代码片段匹配
  • 智能缓存 - 避免对同一 PR 进行冗余下载
  • 行号修正 - 自动修正不正确的行号并记录更改

输出:temp/review_result.json(包含已验证的行号)

步骤 2:人工审查(必需)

始终手动阅读所有更改的代码。 脚本会遗漏:

  • - 逻辑错误和边界情况
  • 设计缺陷
  • 性能问题
  • 缺少错误处理
  • 业务逻辑错误
  • 代码重复
  • 测试覆盖率不足

如何获取 diff

bash
curl -H Authorization: Bearer \
https://gitcode.com/api/v5/repos///pulls//diff

重要:对于发现的每个问题,记录:

  • - 文件路径:例如 src/components/Table.tsx
  • 行范围:例如 L42-L45(问题代码的行号)
  • 问题代码:实际的代码片段
  • 描述:问题的详细说明
  • 建议:具体的修复建议

如何在新文件中找到正确的行号

使用提供的辅助脚本查找精确行号:

bash

单行


python scripts/findlinenumbers.py 代码片段

多行(使用 \n 分隔行)

python scripts/findlinenumbers.py 第1行\n第2行\n第3行

示例
bash
python scripts/findlinenumbers.py file_parser.py return entries

输出:第 119 行

python scripts/findlinenumbers.py file_parser.py line.startswith([ERROR] HCCL) or\n line.startswith([INFO] HCCL)

输出:第 103-104 行

重要:JSON 中的 position 必须是问题代码范围的最后一行(例如,如果问题跨越 L103-L105,则使用 105)。

手动方法(如果脚本不可用):

审查 diff 文件时,diff 中显示的行号(在 @@ 标记之后)可能与新文件中的实际行号不匹配。要找到 PR 评论的正确 position:

理解 diff 块头

@@ -oldstart,oldcount +newstart,newcount @@

  • - -oldstart,oldcount:旧文件的起始行和行数
  • +newstart,newcount:新文件的起始行和行数

如何计算新文件中的精确行号

  1. 1. 找到包含 +new_start 的块头(+ 后面的数字)
  2. 从该起始行开始计数,包括
- 上下文行(无前缀) - 添加的行(以 + 开头) - 修改的行(显示为删除的 - 然后添加的 +)
  1. 3. 排除块头行本身和文件元数据行

示例

@@ -40,7 +39,7 @@ bool QueryTableDataDetailHandler::HandleRequest(...)
} else if (request.params.type == 1) {
ComputeLinkPageDetail(request, response, database);
}

  • - session.OnResponse(std::move(responsePtr));

+ SendResponse(std::move(responsePtr), true);
return true;
}

  • - 新文件从第 39 行开始
  • 第 39 行:} else if ...
  • 第 40 行:ComputeLinkPageDetail...
  • 第 41 行:}
  • 第 42 行:SendResponse(std::move(responsePtr), true); ← 这是第 42 行
  • 第 43 行:return true;
  1. 2. 对于新文件(文件模式为 new file mode):
powershell # 仅统计以 + 开头的行(排除 +++ 头) $lines = Get-Content pr_diff.txt $inFile = $false $lineNum = 0 for ($i = 0; $i -lt $lines.Count; $i++) { if ($lines[$i] -match ^diff --git.*your-file.py) { $inFile = $true } if ($inFile -and $lines[$i] -match ^\+.*your-target-code) { Write-Output 新文件行号:$lineNum break } if ($inFile -and $lines[$i] -match ^\+ -and $lines[$i] -notmatch ^\+\+\+) { $lineNum++ } }
  1. 3. 快速检查:position 应指向新文件中问题代码范围的最后一行(PR 更改后)。

提示:如果 GitCode API 返回 400 Bad Request 并提示 diff failed to be generated due to invalid params under position param,则行号可能不正确。

重要:始终通过从块头中的 +new_start 行号手动计数来验证。不要猜测或估算行号。

步骤 3:选择 Top 3 问题

⚠️ 流程决策

问题数量后续步骤
0 个直接退出,输出0 问题,审查通过,跳过步骤 3/4/5
1-3 个
继续步骤 3/4,按实际数量处理(不必凑满 3 个) |
| >3 个 | 选择最严重的 3 个问题,继续后续步骤 |

合并自动化和人工发现:

  • - 过滤脚本中的误报
  • 添加人工审查中发现的问题
  • 按严重程度排序(1-10)
  • 选择 Top 问题(最多 3 个,不必强制凑满 3 个)

注意:当问题数量为 0 时,直接退出整个审查流程,无需生成任何 JSON 文件。

为这些问题生成 JSON 格式文件 temp/top3_issues.json,供下一步使用。

temp/top3issues.json 必须创建在 formatreview.py 所在目录中,以便下一步读取。

重要

  • - description 字段必须包含步骤 1 和步骤 2 发现的完整描述,而非简化版本。包含所有上下文和细节。
  • position 字段必须是问题代码范围的最后一行号(例如,如果问题代码在 L42-L45,则使用 45)

结构

json
{
meta: {
total_issues: 5,
selected_issues: 3,
automated_count: 2,
manual_count: 3
},
top3_issues: [
{
number: 1,
path: src/file.py,
lines: L42-L45,
position: 45,
severity: 8,
type: 安全问题,
description: 步骤 1/2 发现的完整描述,非简化版本,
suggestion: 包含具体操作的详细建议,
code: L42-L45 的问题代码片段,
code_context:
}
// 问题数量可以是 1-3 个,不必强制凑满 3 个
]
}

注意:position 使用代码范围的最后一行,用于 GitCode API 定位。

重要:position 必须是新文件中的行号(PR 更改后),而非 diff 文件中的行号。参见步骤 2 了解如何计算正确的行号。

如果总问题数 = 0:跳过整个步骤 3/4/5,直接输出审查通过结论。

如果总问题数

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 code-review-for-gitcode-1776123542 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 code-review-for-gitcode-1776123542 技能

通过命令行安装

skillhub install code-review-for-gitcode-1776123542

下载

⬇ 下载 code-review v0.1.3(免费)

文件大小: 19.18 KB | 发布时间: 2026-4-15 12:13

v0.1.3 最新 2026-4-15 12:13
**Summary: Adds mandatory temp directory usage, strict file clearing, and automatic line number verification to the review process.**

- All temporary/code review files are now required to be stored in the `temp/` directory; cleanup after review is mandatory.
- Automated scanning now checks and auto-corrects line numbers against actual file content, with smart download caching.
- Step 3 now supports exits with "0 issues, review passed" if no problems found, and does not require selecting 3 issues if fewer exist.
- JSON output locations updated: all outputs (e.g., `review_result.json`, `top3_issues.json`, `formatted_review.json`) must be in `temp/`.
- Step-by-step instructions updated for clarity, and file management requirements made explicit throughout.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部