web-dev-qa-db-ja.com

gitlabとjenkinsの統合における例外

プライベートGitlabv9.0インスタンスで作成および構成されたプロジェクトがあります。このプロジェクトをJenkinsv2.46.1にインポートしましたが、gitlabとの接続は成功しています。その後、gitlabのリポジトリからPushイベントでビルドトリガーを構成しようとしました。 jenkinsでシークレットトークンを生成し、Gitlab CI URLとシークレットトークンを使用してウェブフックを追加しました。ウェブフックをテストしようとすると、例外が発生しました。

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>

誰かが私がこれを解決するのを手伝ってくれますか?

10
vsbehere

このためにJenkinsに特別なユーザーを追加し、それに応じてGitLabでWebhookを構成するか、グローバルJenkins構成のGitLabセクションで['/ project'エンドポイントの認証を有効にする]チェックボックスをオフにすることができます。ただし、これはデフォルトでオフになっている必要があります。

4
lax1089

最良のオプションは、(Jenkinsから)シークレットトークンを作成し、それをgitlabwebhookのシークレットキーに追加することです。

これを構成する最良の方法は

  1. Jenkinsグローバル構成->

/ projectエンドポイントの認証が必要ですジョブを実行する権限を持つJenkinsユーザーのユーザーIDとAPIキーをコピーします

  1. GitLabでWebhookを作成して、ジョブをトリガーします

  2. 次に、HTTP基本認証(以下の形式)を使用します。

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

1
Manikandan Ram