Как проанализировать вывод JSON запроса gerrit для извлечения данных? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть сценарий, в котором я пытаюсь извлечь некоторые данные из вывода запроса Gerrit. Но не в состоянии сделать с помощью awk

Команда:

ssh -p 29418 gerrit.abc.se gerrit query --format=JSON project:dddd status:merged branch:master change:Ie2ef9e47f --submit-records

Вывод вышеуказанной команды:

{
  "project": "dddd",
  "branch": "master",
  "id": "Ie2ef9e47fc6c046091d93521198bf0a1075cb77e",
  "number": 3984134,
  "subject": "adding configuration",
  "owner": {
    "name": "abc",
    "email": "abc.com",
    "username": "eshakuy"
  },
  "url": "https://gerrit.abc.se/3984134",
  "commitMessage": "adding configuration\n\nChange-Id: Ie2ef9e47fc6c046091d93521198bf0a1075cb77e\n",
  "createdOn": 1533208993,
  "lastUpdated": 1536301464,
  "open": false,
  "status": "MERGED",
  "submitRecords": [
    {
      "status": "OK",
      "labels": [
        {
          "label": "Verified",
          "status": "OK",
          "by": {
            "name": "ADP Automation",
            "username": "adpauto"
          }
        },
        {
          "label": "Code-Review",
          "status": "OK",
          "by": {
            "name": "abc",
            "email": "abc.com",
            "username": "eeeee"
          }
        }
      ]
    }
  ]
}
{
  "type": "stats",
  "rowCount": 1,
  "runTimeMilliseconds": 10,
  "moreChanges": false
}

Что я хочу извлечь из вышеприведенного вывода:

submit Records:

label:Verified status:OK name:ADP Automation
lable:Code-Review status:OK name:abc

Это единственная информация, которую мне нужно отобразить / сохранить в CSV-файле.

1 Ответ

0 голосов
/ 06 ноября 2018

Вы можете использовать программу jq, как в следующем примере:

ssh -p 29418 gerrit.abc.se gerrit query --format=JSON project:dddd status:merged branch:master change:Ie2ef9e47f --submit-records |
 jq --raw-output '
   .submitRecords[]? 
   | .labels[]
   | .label + " = " + .status + " by " + .by.name'

Code-Review => OK by Marcelo Avila de Oliveira
Verification => OK by Gerrit

Подробнее о jq см. Здесь .

...