【发布时间】:2020-11-17 11:07:41
【问题描述】:
我正在尝试通过拉取请求 ID 获取代码扫描的状态,但我无法获取状态的值。 json 文件如下所示。
{
"pullRequests": [
{
"key": "11346",
"title": "feature/XXX-Validation",
"branch": "feature/XXX-Validation",
"base": "develop",
"status": {
"qualityGateStatus": "OK",
"bugs": 0,
"vulnerabilities": 0,
"codeSmells": 1
},
"analysisDate": "2020-07-27T14:22:36+0000",
"url": "https://abc/org/_git/repo/pullrequest/11346",
"target": "develop"
},
{
"key": "11151",
"title": "feature/xxx-data",
"branch": "feature/xxx-data",
"base": "develop",
"status": {
"qualityGateStatus": "OK",
"bugs": 0,
"vulnerabilities": 0,
"codeSmells": 0
},
"analysisDate": "2020-07-22T11:11:11+0000",
"url": "https://abc/org/_git/repo/pullrequest/11151",
"target": "develop"
}
]
}
我需要按键值对这个 json 进行排序(因为这是最简单的方法 - 之前我曾尝试按 analysisDate 排序)并获取该键的 qualityGateStatus 值。
我尝试使用此命令首先按 key 或 analysisDate 排序,然后尝试使用 key,但我不断收到错误消息。我想也许值不是字符串,所以尝试将键映射到数字,但仍然不起作用。
jq: error (at <stdin>:0): Cannot index string with string
尝试过的命令:
jq '.pullRequests[] |sort_by(.analysisDate)[-1].key'
jq '.pullRequests[] | sort_by(.key|tonumber)'
错误:
jq: error (at :0): Cannot index string with string "key"
【问题讨论】: