gerrit查询选项只打印第一行

时间:2018-01-18 16:45:43

标签: python shell gerrit

此脚本有效:

!#/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"
  1. gerrit query命令中是否有一个选项只能打印第一行,所以我可以避免第2行中的| head -n 1?如果gerrit_querry_output将{"type":"stats","rowCount":1,"runTimeMilliseconds":9,"moreChanges":false}作为第二行,则python中的json解析失败。

  2. 有没有更好的方法来获取没有Change-Id:行的commitMessage,所以我可以避免| grep -v ^Change-Id:

1 个答案:

答案 0 :(得分:0)

1)使用“jq”而不是phthon来获取提交消息:

ssh -p 29418 GERRIT-SERVER gerrit query --format=JSON --commit-message change:CHANGE-NUMBER | jq -r --raw-output '.commitMessage // empty'

2)没有办法做到这一点。