Jenkinsのジョブ定義でGitHub AccessTokenを隠す
Jenkinsのジョブ定義にGitHubのAccessTokenを直接書きたくないときに使えるプラグインがあったのでメモしておきます。
使い方
プラグインをインストールすると、各ジョブ設定のビルド環境
にMask passwords (and enable global passwords)
という項目が追加されます。
Name
とPassword
の組み合わせを追加すると、ビルドスクリプトのなかで${Name}
として利用することができます。
AccessTokenを使う
前回のエントリの例だと
access_token
という名前でトークンを保存して、シェル内で以下のように使えます。
curl -X POST -H "Authorization: token ${access_token}" \
https://api.github.com/repos/:owner/:repo/statuses/${revision} -d "{ \
\"state\": \"${state}\", \
\"target_url\": \"${target_url}\", \
\"description\": \"${description}\" \
}"
実行結果もマスキングされるので安心です。
+ curl -X POST -H 'Authorization: token ********' https://api.github.com/repos/:owner/:repo/statuses/revision -d ...
その他、Mask Passwords Plugin
は、ジョブごとのパスワード設定だけではなく、グローバルで使えるパスワードやマスキング対象を設定できるみたいです。
プラグインだと設定にパスワードフィールドが用意されていますが、自作のジョブでマスキングしたいときは使えるプラグインだと思います ╭( ・ㅂ・)و ̑̑ グッ !