2

我在本地地址http://192.168.0.18/上运行 GitLab 。Upsource 在http://192.168.0.11/上运行。

我在 GitLab 上将 Upsource 应用程序添加为管理员。正如 GitLab 所说,我已经设置了客户端 ID 和秘密令牌。授权设置为http://192.168.0.18/oauth/authorize,令牌设置为http://192.168.0.18/oauth/token ,用户数据设置为http://192.168.0.18/api/v4/user(根据GitLab文档)。在字段映射中,我将用户 ID 设置为“id”,两个电子邮件都设置为“email”。

然后,在 Upsource 的日志页面上,我有 oath authentication 图标。单击它后,GitLab 需要登录,并且用户必须为其帐户授权应用程序:

需要授权

授权 Upsource 使用您的帐户?

您是管理员,这意味着授予对 Upsource 的访问权限将允许他们也以管理员身份与 GitLab 进行交互。谨慎行事。

此应用程序将能够:

访问您的 API

读取用户信息

但是,单击authorize按钮后,Upsource 会显示 info: Authentication failed. Check your credentials and try again.。我设置错了什么?字段映射?

4

1 回答 1

4

哦,我找到了答案。正如经常发生的那样,我为此奋斗了好几个小时,就在我问了这个问题之后,我有了自己运行这个的想法。橡皮鸭法,我猜...

正如我所怀疑的,问题出在字段映射中。

我查看Network了 Chrome 中的选项卡,有这样的响应:

http://192.168.0.11/hub/auth/login?response_type=token&client_id=[CLIENT_ID]&redirect_uri=[REDIRECT_URI]&message=hub-auth-failed&developer_message=getValueByPath%28json%2C+aut%E2%80%A6userIdPath%29% 21%21.textValue%28%29+must+not+be+null

我已经手动完成了所有 Gitlab 工作流程,然后我可以登录 - 在运行http://192.168.0.18/api/v4/user端点之后,我得到了用户数据:

{"name":"username","username":"username","id":3,"state":"active","avatar_url":" http://www.gravatar.com/avatar/94232f2d1f8bb2fe940de439a4df1014? s=80&d=identicon ","web_url":" http://debian/username ","created_at":"2017-03-25T22:28:21.375Z","is_admin":true,"bio":null, "location":null,"skype":"","linkedin":"","twitter":"","website_url":"","organization":null,"last_sign_in_at":"2017-03-25T22 :28:21.487Z","confirmed_at":"2017-03-25T22:28:21.376Z","email":"username@username.username","color_scheme_id":1,"projects_limit":100000,"current_sign_in_at":"2017-03-25T22:36:31.853Z","identities":[],"can_create_group":true,"can_create_project":true,"two_factor_enabled" :false,"外部":false}

问题在于设置 ID 字段名称。正如我们在上面的 JSON 数据中看到的,id字段应该映射到name/ username,而不是id它本身。进行此更改后,我可以成功登录到 Upsource。

于 2017-03-27T20:44:55.410 回答