1. python
cmd = 'ssh -o ConnectTimeout={timeout} -p {port} {server} gerrit query --format JSON --patch-sets {change_number}'
在python中就通过
output = subprocess.check_output([cmd], shell=True).decode('utf-8')
来获得patchset相关的内容。
得到的是一个json格式的串,通过解析该json就可以得到你想要的内容。
tidy_json = json.loads(output.split("n")[0])
接下来就可以直接从里面获取key value
如:
branch = tidy_json['branch']
2. shell
此处只获取的changed files信息,其他的类似,主要使用jq去提取信息。
cmd="ssh -o ConnectTimeout=${timeout} -p ${port} gerrit.ericsson.se gerrit query --format=JSON --files --current-patch-set change:${change}"
GERRIT_CHANGE_FILES=$($cmd | jq ".currentPatchSet | select(.!=null) | .files[] |
.file, .fileOld | select(.!=null) | select(.!="/COMMIT_MSG")" -r | uniq )
or
cmd="ssh -o ConnectTimeout=${timeout} -p ${port} gerrit.ericsson.se gerrit query --format=JSON --files --patch-sets change:${change}"
GERRIT_CHANGE_FILES=$($gqcmd | jq ".patchSets | select(.!=null) | .[] |
select(.number==${patchset}) | .files[] | .file, .fileOld | select(.!=null) |
select(.!="/COMMIT_MSG")" -r | uniq )



