在gerrit触发器中未经授权的Http连接

时间:2016-10-23 15:48:27

标签: git jenkins gerrit gerrit-trigger sonar-gerrit

我正在尝试为gerrit触发器jenkins插件设置Rest API。 我在git中创建了一个服务用户。

但现在当我输入服务用户的http用户名/密码并按下测试连接时。我正在获得Http连接未经授权的连接。

HTTP密码只不过是gerrit配置UI中添加的SSH公钥。

最诚挚的问候, Saurav

2 个答案:

答案 0 :(得分:3)

我遇到了类似的问题然后我在这里找到了解决方案: https://dev.vaadin.com/review/Documentation/dev-rest-api.html#_authentication

应从http://gerrit-url/#/settings/http-password链接使用gerrituser和httppassword。您也可以使用.netrc文件对其进行测试。

我不知道你的gerrit是如何配置的所以我建议你也应该尝试从basic_auth切换到digest_auth。例如:

curl -X GET --digest -u gerrituser:httppassword http://gerrit-url/a/path/to/api

curl -X POST --digest -u gerrituser:httppassword -d '{json data}' http://gerrit-url/a/path/to/api

答案 1 :(得分:0)

尝试这样的事情:

  1. 确保您拥有Gerrit上的用户
  2. 在Gerrit设置中为此用户生成HTTP密码
  3. 使用http(下面的命令)

    复制存储库

    git clone http://gerrituser:httppassword@gerrit_url/p/nameofproject.git

  4. 如果要使用JSON文件,请尝试此示例命令,创建文件body.json:

    curl -H“Content-Type:application / json”-X POST --data @ body.json http://gerrituser:httppassword@gerrit_url/a/changes/Change_Id/revisions/commit/review

  5. 您可以在此处找到Gerrit REST API的JSON文件和rest命令: https://gerrit-review.googlesource.com/Documentation/rest-api.html

  6. PS。字母/ a /和/ p /是必要的,记住用户权限和HTTP密码应该没有斜线。