用途:该技能让使用者通过 Gerrit Code Review 的 REST API 与 Gerrit 实例交互,支持查询开放变更、读取 diff、发布代码评审以及管理变更生命周期(submit、abandon、restore)。
主要能力:提供辅助脚本 scripts/gerrit_api.sh,封装了查询变更(query)、获取变更详情(get-change)、列出文件(list-files)、获取文件 diff(get-diff)、获取文件内容(get-content)、列出已发布评论(list-comments)、创建草稿评论(create-draft)、发布评审(review)、提交(submit)、放弃(abandon)、恢复(restore)、添加评审人(add-reviewer)、设置主题(set-topic)等操作。支持在评审 JSON 中设置 message、labels(如 Code-Review)、行内 comments、notify、drafts 等字段。
使用方式:需先配置认证。脚本优先读取 ~/.netrc(推荐,建议 chmod 600 ~/.netrc),未配置时回退到环境变量 GERRIT_USERNAME 与 GERRIT_HTTP_PASSWORD;GERRIT_URL 必须始终设置,且不带结尾斜杠。HTTP 密码并非登录密码,需在 Gerrit 网页 Settings → HTTP Credentials 生成。依赖 curl、jq、base64,python3 可选用于 URL 编码。使用前执行 chmod +x scripts/gerrit_api.sh,随后即可调用各子命令,例如: ./scripts/gerrit_api.sh query "status:open+limit:5" ./scripts/gerrit_api.sh get-change 12345 ./scripts/gerrit_api.sh review 12345 current '{"message":"Looks good!","labels":{"Code-Review":1}}'
限制与注意事项:所有请求使用 /a/ 前缀;响应首行带 XSSI 前缀 )]}',需剥离后再解析(脚本已处理);项目名与文件路径需 URL 编码(/ → %2F,脚本已处理)。错误时可能遇到 401、404、409 等状态。GERRIT_URL 可能出现在输出中,但不应打印 GERRIT_HTTP_PASSWORD 或凭证。资料说明该技能面向交互式使用,可能未覆盖全部 Gerrit API 边界情况。评分标签范围依项目而定。具体收费与平台支持情况暂未提供。