2016-10-23 37 views
0

我正在尝试为gerrit触发器jenkins插件设置Rest API。 我在git中创建了一个服务用户。在Gerrit触发器中未经授权的Http连接

但现在,当我进入了服务用户的HTTP用户名/密码,并按下测试连接。我越来越Http连接未经授权的连接。

HTTP密码是什么,但在格里特配置用户界面添加了SSH公共密钥。

最好的问候, Saurav

+0

你是如何创建此用户?您是否使用“gerrit create-account”命令?你有没有设置HTTP密码?我认为这是一个好主意,设置密码... –

+0

我通过gerrit网络用户界面创建...我没有明确设置http密码...它把ssh公钥作为密码...我没有得到任何选项来更改它... – saurav

+0

您是如何使用Gerrit UI创建帐户的? SSH密钥不能代替密码... SSH密钥用于SSH访问,另一方面,密码用于HTTP连接(REST)。 –

回答

0

尝试是这样的:

  1. 通过确保您有用户在格里特
  2. 生成HTTP密码,该用户在格里特设置
  3. 复制库使用HTTP(以下命令)

    GIT中克隆http://gerrituser:[email protected]_url/p/nameofproject.git

  4. 如果你想使用JSON文件尝试这个例子命令,创建文件body.json:

    卷曲-H “内容类型:应用程序/ JSON” -X POST --data @ body.json http://gerrituser:[email protected]_url/a/changes/Change_Id/revisions/commit/review

  5. JSON文件和格里特REST API的其他命令,你可以在这里找到: https://gerrit-review.googlesource.com/Documentation/rest-api.html

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

1

我正面临类似的问题,然后我发现这里的解决方案: https://dev.vaadin.com/review/Documentation/dev-rest-api.html#_authentication

的gerrituser和应该的HTTPPassword从http://gerrit-url/#/settings/http-password链接使用。你也可以用.netrc文件来测试。

我不知道你的格里特是如何配置的,所以我建议你也应该尝试从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 
+0

有些解释会很有帮助。不仅将一些代码作为答案! – g0hl1n

+0

@ g0hl1n:对不起,我认为额外摘要是自我解释的。 –

相关问题