仅打印第一行的 Gerrit 查询选项
Gerrit query option to print just the first line
此脚本有效:
!#/bin/bash
gerrit_query_output=$(ssh -p 29418 my_review-server.com gerrit query --format=JSON --commit-message change:66664 | head -n 1)
commit_message=$(echo $gerrit_query_output | python -c "import sys, json; print json.load(sys.stdin)['commitMessage']" | grep -v ^Change-Id:)
echo "commit msg= $commit_message"
gerrit 查询命令中是否有一个选项只打印第一行,这样我就可以避免在第 2 行中出现 | head -n 1
?如果 gerrit_query_output 得到 {"type":"stats","rowCount":1,"runTimeMilliseconds":9,"moreChanges":false}
作为第二行,json 在 python 中解析失败。
有没有更好的方法在没有 Change-Id:
行的情况下获取 commitMessage,这样我就可以避免 | grep -v ^Change-Id:
1) 使用“jq”代替python获取提交信息:
ssh -p 29418 GERRIT-SERVER gerrit query --format=JSON --commit-message change:CHANGE-NUMBER | jq -r --raw-output '.commitMessage // empty'
2) 没有办法做到这一点。
此脚本有效:
!#/bin/bash
gerrit_query_output=$(ssh -p 29418 my_review-server.com gerrit query --format=JSON --commit-message change:66664 | head -n 1)
commit_message=$(echo $gerrit_query_output | python -c "import sys, json; print json.load(sys.stdin)['commitMessage']" | grep -v ^Change-Id:)
echo "commit msg= $commit_message"
gerrit 查询命令中是否有一个选项只打印第一行,这样我就可以避免在第 2 行中出现
| head -n 1
?如果 gerrit_query_output 得到{"type":"stats","rowCount":1,"runTimeMilliseconds":9,"moreChanges":false}
作为第二行,json 在 python 中解析失败。有没有更好的方法在没有
Change-Id:
行的情况下获取 commitMessage,这样我就可以避免| grep -v ^Change-Id:
1) 使用“jq”代替python获取提交信息:
ssh -p 29418 GERRIT-SERVER gerrit query --format=JSON --commit-message change:CHANGE-NUMBER | jq -r --raw-output '.commitMessage // empty'
2) 没有办法做到这一点。