GitHub
Jenkins

GithubからJenkinsへのServer Hook

More than 5 years have passed since last update.

GithubからJenkinsへのServer Hookを調べた結果をまとめておく。

以下の3つの方法を調べた。


  • WebHook URLsを用いる方法

  • Jenkins (GitHub plugin) を用いる方法


    • Ver1.8で確認



  • Jenkins (Git plugin) を用いる方法


    • Ver2.0で確認



この方法を用いるとGithubのコードに修正を加えると対応するJenkinsジョブを走らせることができる



WebHook URLsを用いる方法


Jenkinsの設定


HookするJenkinsのジョブの設定


  • 「ビルドのパラメータ化」で「文字列」のpayloadを指定しておく



  • セキュリティ設定時は「リモートからビルド」をチェックして認証トークンを設定しておく

  • payloadで渡されたパラメータを解析して対象のリポジトリやブランチのジョブを呼び出すなりする


Githubの設定


  • 「Settings」=> 「Server Hooks」=>「WebHook URLs」 で「URL」に[Jenkins URL]/job/[Job Name]/buildWithParametersを指定して「Update Settings」する


    • セキュリティ設定時は「URL」に?token=[Token Name]を追加



webhook.jpg



Jenkins (GitHub plugin) を用いる方法


  • GithubからHookを受け取ると対応したジョブが実行される


Jenkinsの設定



  • GitHub pluginをインストールしておく

  • セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)


HookするJenkinsのジョブ設定


  • 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく

  • 「ビルド・トリガ」の「Build when a change is pushed to GitHub」を設定しておく


Githubの設定


  • 「Settings」=> 「Server Hooks」=>「 Jenkins (Github plugin)」で「Jenkins Url」に[JenkinsのURL]/github-webhookを設定する

jenkins-github-plugin.jpg



Jenkins (Git plugin) を用いる方法


  • GithubからHookを受け取ると対応したジョブが実行される


Jenkinsの設定



  • Git pluginをインストールしておく

  • セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)


HookするJenkinsジョブ設定


  • 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく

  • 「ビルド・トリガ」の「SCMのポーリング」を設定しておく


GIthubの設定


  • 「Settings」=> 「Server Hooks」=>「 Jenkins (Git plugin)」で「Jenkins Url」にJenkinsのURLを設定する

jenkins-git-plugin.jpg



その他


githubからのHookアクセスIPについて

GithubのWebHookの説明によると204.232.175.64/27, 192.30.252.0/22らしい。

https://api.github.com/metaのhooksで確認可能(コメントで教えて頂きました)

* API仕様:Meta | GitHub API


httpsでのHookについて



  • 2013/11/07時点のhttpsでのHookはWebHook URLs/Jenkins (GitHub plugin) /Jenkins (Git plugin) でほぼ不可能だった


    • JenkinsでHookされない、Apacheレベルでログが残っていない


    • GitHub pluginのコメントでGithubの問題でhttpsが使えないらしいというものがあった



  • Hook可否について(×:Hook不可、○:Hook可)


-
WebHook URLs
Jenkins (GitHub plugin)
Jenkins (Git plugin)

https(自己署名証明書)
×
×
×

https(ジオトラストの証明書)
×

×