THINKING MEGANE

Jenkinsのジョブ定義でGitHub AccessTokenを隠す

Jenkinsのジョブ定義にGitHubのAccessTokenを直接書きたくないときに使えるプラグインがあったのでメモしておきます。

使い方

プラグインをインストールすると、各ジョブ設定のビルド環境Mask passwords (and enable global passwords)という項目が追加されます。

NamePasswordの組み合わせを追加すると、ビルドスクリプトのなかで${Name}として利用することができます。

jenkins-mask-access-token

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は、ジョブごとのパスワード設定だけではなく、グローバルで使えるパスワードやマスキング対象を設定できるみたいです。 プラグインだと設定にパスワードフィールドが用意されていますが、自作のジョブでマスキングしたいときは使えるプラグインだと思います ╭( ・ㅂ・)و ̑̑ グッ !

このエントリーをはてなブックマークに追加