You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Gerrit命令行查询的JSON结果导出为CSV或Excel?

Gerrit查询结果转CSV/Excel解决方案

一、修正Gerrit查询命令,正确输出JSON文件

你的原命令存在语法问题,修正后才能正常输出JSON结果到文件:

  • 查询参数(--format=JSON、--patch-sets等)需放在查询条件之后
  • 正则表达式修正为正确格式(示例匹配以my_gerrit_project开头的项目)
  • 确保引号闭合

修正后的命令:

ssh -p 29418 uie7*@buic-scm-*.com gerrit query "project:^my_gerrit_project branch:master status:merged after:2023-01-01" --patch-sets --files --comments --dependencies --all-approvals --submit-records --format=JSON > gerrit_results.json

执行后当前目录会生成gerrit_results.json,注意文件最后一条是统计信息的JSON,后续需要过滤。

二、用jq解析JSON生成CSV

1. 过滤无效统计记录

先去掉文件末尾的统计条目,只保留有效变更数据:

jq 'select(.type != "stats")' gerrit_results.json > filtered_results.json

2. 生成自定义字段的CSV

以下示例提取变更ID、主题、提交者、合并时间、补丁集数、审批人,你可以根据需求调整字段:

jq -r '["Change-ID", "Subject", "Owner", "Merged-Time", "Patch-Set-Count", "Approvers"],
       (.[] | [.id, .subject, .owner.name, .merged, (.patchSets | length), (.allApprovals | map(.by.name) | join(";"))])
       | @csv' filtered_results.json > gerrit_output.csv
  • -r:输出原始字符串,避免JSON引号干扰
  • .files | join(";"):如果需要添加变更文件列表,可在字段数组中加入该表达式
  • .comments | map(.message) | join("\n"):如需提取评论内容,可添加此表达式

三、CSV转Excel(可选)

直接用Microsoft Excel或LibreOffice Calc打开gerrit_output.csv,再另存为.xlsx格式即可。也可以用命令行批量转换(需安装LibreOffice):

libreoffice --headless --convert-to xlsx gerrit_output.csv

常见问题排查

  • SSH权限错误:检查Gerrit账户是否已添加你的SSH密钥,或尝试密码登录(若允许)
  • jq解析报错:用jq . filtered_results.json验证JSON格式是否有效
  • CSV字段缺失:确认Gerrit返回的JSON中存在对应字段(比如status:merged的变更必然有.merged字段)

内容的提问来源于stack exchange,提问作者Carmen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:46:24