将GitLab与Jenkins集成时出现异常

11

我在一个私有Gitlab v9.0实例上创建和配置了一个项目。我已经将这个项目导入到Jenkins v2.46.1中,与Gitlab的连接成功。然后,我尝试在从gitlab仓库推送事件触发器上进行配置。我在Jenkins上生成了秘密令牌,并添加了一个Webhook,其中包括Gitlab CI URL和秘密令牌。当我尝试测试Webhook时,它返回了以下异常

Hook executed successfully but returned HTTP 403 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Error 403 anonymous is missing the Job/Build permission</title> </head> <body><h2>HTTP ERROR 403</h2> <p>Problem accessing /project/tapp-builder-service. Reason: <pre> anonymous is missing the Job/Build permission</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/> </body> </html>

有人能帮我解决这个问题吗?

5个回答

5
您可以在Jenkins中添加一个特殊的用户,并相应地配置GitLab中的Webhook,或者您可以在全局Jenkins配置的GitLab部分中取消选中“为'/project'端点启用身份验证”复选框。但这应该默认为未选中状态。

5

配置的最佳方式是:

  1. Jenkins全局配置 ->

需要授权才能访问 /project 终端点
复制用户ID和API密钥,用于具有运行该作业授权的Jenkins用户

  1. 在GitLab上创建Webhook以触发作业

  2. 然后使用HTTP基本身份验证(以下格式):

http://user:apikey@gitlab/project/jobname


我不知道为什么这个答案到目前为止没有得到投票,但这是我迄今为止尝试过的唯一可行的例子。 - gogagubi

2
最好的选择是创建一个秘密令牌(来自Jenkins),然后将其添加到gitlab webhook的秘密密钥中。

2
我已经从Jenkins创建了秘密令牌,并将其包含在gitlab的Jenkins集成中,但我仍然遇到相同的错误。我还尝试在我要运行的Jenkins项目中生成密钥。我还能尝试什么? - Vin Shahrdar

0

在将配置更改(即生成的密钥令牌)复制到Gitlab Webhook页面之前,请确保首先保存Jenkins服务器上的更改。


0
去Jenkins仪表盘,点击“管理Jenkins”,然后点击“安全性”,在身份验证部分将授权下拉菜单更改为“任何人都可以做任何事”。

1
你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接