web-dev-qa-db-ja.com

JenkinsとGitHubのWebhook:HTTP 403

受信後のフックを介して新しいコミットをJenkinsに通知したいGitHubリポジトリがあります。 GitHubプラグインをJenkinsにインストールし、Jenkinsが独自のフックURLを管理できるようにしました。プロジェクトには正しいgitリポジトリURLがあり、「変更がGitHubにプッシュされたときにビルドする」ように指示されています。 GitHubにテストペイロードを送信させると、フロントのJenkinsであるnginxWebサーバーでこれを見つけます。

207.97.227.233 - - [15/Sep/2011:07:36:51 +0000] "POST /github-webhook/ HTTP/1.1" 403 561 "-" "-"

SSLを実行していたので、無効にして効果がありませんでした。権限マトリックスで匿名ユーザーに特別な権限を提供する必要がありますか?

構成ファイルが不足していることをご容赦ください。存在する可能性のあるファイルを共有できてうれしいですが、何を共有すると便利かわかりません。

15
troutwine

匿名アクセスを許可しないため、GitHubプッシュ用に特定のユーザーを作成し、全体的な読み取り、ジョブの作成、ジョブの読み取りを許可する必要がありました。次のように、認証をWebhookURLにバンドルする必要もありました。

https://foo:[email protected]/github-webhook/
33
troutwine

前述のように、Jenkinsは匿名アクセスを許可していません(他の人がビルドをトリガーすることを望まないでしょう!)。ユーザー名とパスワードを平文で追加することは最善の解決策ではありません。

1)JenkinsがVPNの背後にある場合は、JenkinsWebhookのURLが公開されていることを確認する必要があります

2)GitHubプラグイン構成で、アクセス可能な正しいJenkins Webhook URL( https://jenkins.example.com/github-webhook/ )をOverride Hook URLに追加します。

3)Shared secretセクションにシークレットを追加します(できれば長いランダムな文字列)。これは、認証のためにJenkinsからGitHubに、またはその逆に送信されるトークンになります。これは、GitHubサーバーの資格情報とは異なる必要があります。

4)ユーザーがGitHubリポジトリにWebhookを追加するための所有者アクセス権を持っていることを確認します

5)この後、Webhookを再登録することを忘れないでください

1
Joe Haddad

https://username:[email protected]/github-webhook/は私のために働いたが、ペイロードが機能するためにはパスワードをエンコードする必要がある。私のgithubはnginx認証のためにjenkinsに接続できませんでしたが、ユーザー名とエンコードされたパスワードを渡すことはできました!

0
Bhumika Goyal