如何使用Gerrit REST API

时间:2017-04-04 11:19:49

标签: rest api gerrit

我正在尝试设置Teamcity并从Gerrit验证补丁集。如果构建失败,最后一步应将Verify设置为-1。我正在玩Gerrit REST API,我想我找到了一个合适的命令:

https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-review

文档说:

  

作为响应,返回描述已应用的ReviewInfo实体   标签

我的请求如下:

POST <gerrit-url>/a/changes/I696f00f4968fcb35fa614ce6325499aa15367150/revisions/current/review

{
    "message": "Build failed",
    "labels": {
        "Verified": -1
   }
}

作为回复,我获得完整的修订信息:

{
  "id": "dev_test~master~<change-id>",
  "project": "dev_test",
  "branch": "master",
  "hashtags": [],
  "change_id": "<change-id>",
  "subject": "a test",
  "status": "NEW",
  "created": "2017-04-03 07:53:19.000000000",
  "updated": "2017-04-04 08:47:34.000000000",
  "submit_type": "MERGE_IF_NECESSARY",
  "mergeable": true,
  "insertions": 133,
  "deletions": 7,
  "unresolved_comment_count": 0,
  "_number": 381,
  "owner": {
    "_account_id": 4,
    "name": "<my-name>",
    "email": "<my-email>",
    "username": "<my-username>",
  },
  "labels": {
    "Code-Review": {
      "all": [
        {
          "value": 1,
          "date": "2017-04-04 08:47:34.000000000",
          "permitted_voting_range": {
            "min": -2,
            "max": 2
          },
          "_account_id": 4,
          "name": "<my-name>",
          "email": "<my-email>",
          "username": "<my-username>"
        }
      ],
      "values": {
        "-2": "This shall not be merged",
        "-1": "I would prefer this is not merged as is",
        " 0": "No score",
        "+1": "Looks good to me, but someone else must approve",
        "+2": "Looks good to me, approved"
      },
      "default_value": 0
    },
    "Verified": {
      "all": [
        {
          "value": 0,
          "permitted_voting_range": {
            "min": -1,
            "max": 1
          },
          "_account_id": 4,
          "name": "<my-name>",
          "email": "<my-email>",
          "username": "<my-username>"
        }
      ],
      "values": {
        "-1": "Fails",
        " 0": "No score",
        "+1": "Verified"
      },
      "default_value": 0
    }
  },
  "permitted_labels": {},
  "removable_reviewers": [],
  "reviewers": {
    "REVIEWER": [
      {
        "_account_id": 4,
          "name": "<my-name>",
          "email": "<my-email>",
          "username": "<my-username>"
      }
    ]
  },
  "current_revision": "913330441711b067899a664a60c78be518e547b4",
  "revisions": {
    "913330441711b067899a664a60c78be518e547b4": {
      "kind": "REWORK",
      "_number": 6,
      "created": "2017-04-03 14:08:14.000000000",
      "uploader": {
        "_account_id": 4,
          "name": "<my-name>",
          "email": "<my-email>",
          "username": "<my-username>"
      },
      "ref": "refs/changes/81/381/6",
      "fetch": {
        "ssh": {
          "url": "ssh://<url>",
          "ref": "refs/changes/81/381/6"
        },
        "http": {
          "url": "http://<url>",
          "ref": "refs/changes/81/381/6"
        }
      }
    }
  }
}

它不受请求的影响。当我使用GET方法发送请求或在body(!)

中使用带有无效JSON的POST方法时,返回相同的响应

Gerrit版本是:2.13.6-3008-gcdc381e

我有什么问题吗?

PS。这是类似的问题,但它没有帮助:Gerrit set-review api doesn't work

编辑: 似乎我从GET请求获得响应而不是POST

1 个答案:

答案 0 :(得分:0)

我明白了。这不是遗传问题。我使用了http请求,我们的服务器重定向到带有301的https,Postman已经休息并返回了对GET请求的响应。