Redmine Gerrit 通过 API 进行访问

bernardlai · 发布于 2017年7月12日 · 最后由 bernardlai 回复于 2018年2月02日 · 208 次阅读
53642

Gerrit通过API进行访问 Gerrit提供API方式进行访问,访问特定的接口返回指定的json数据。 默认Gerrit的配置不开启这个功能,需要进行配置修改。

  1. 修改配置文件 [auth] type = HTTP gitBasicAuth=true 新增gitBasicAuth=true
  2. 设置用户的HTTP访问token

在使用Gerrit的帮助文档中给出示例 curl --digest --user username:password http://localhost:8080/a/path/to/api/ 这里的用户名和密码为红色内容。 实际使用中这个—digest会加密导致无法访问需要去掉。 curl --user username:password http://localhost:8080/a/path/to/api/ 就可以正常返回数据。 Ruby有个名为gerry的gem可以访问Gerrit的数据,同样有这个验证的问题。

共收到 2 条回复
96
kilo_0115 · #1 · 2017年7月19日

这个问题我恰巧有一阵也研究过,我得出的结论是:

  1. gerrit默认使用的是digest认证, 也就是示例中需要加authencation类型--digest
  2. 在gerrit的配置中,如果使用了auth.gitBasicAuth则启动了basic认证 是不是basic认证不需要加authencation类型?这个我倒不清楚,按你的结果应该是basic类型就不需要额外加authencation类型的选项了。 然后我觉得可以补充说一点,也许对从来没用过的人来说会有用。因为gerrit的官方api提供的url路径中并没有/a/(这点也曾经让我一个REST API的初使用者苦恼了一阵),对于匿名访问的情况并不需要加/a/就能得到结果,但是大部分情况下我们都是非匿名访问,需要用户认证,所以url也相应需要在官网提供的api中url的前面加上/a/
53642
bernardlai · #2 · 2018年2月02日
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册