TravisCIでGitHubのTokenを暗号化する

TravisCIでGitHubのpagesをテストする際、GitHubのトークンが必要になります。.travis.ymlに直接書き込むと、自分のトークンを公開してしまうことになるので、暗号化して登録してみました。本記事では、その方法について記録します。

  • クライアント環境
  • GitHubトークンを入手する
  • Travis CLIのインストール
  • トークンの暗号化

クライアント環境


本記事では、以下の環境で実施しています。

  • MacOS Catalina バージョン10.15.5

GitHubトークンを入手する


GitHubトークンを入手します。

ユーザーアイコンの[Settings]から[Developer Settings]→[Personal access token]→[Generate new token]でトークンを作成します。必要な権限は以下の通りです。

  • repo
  • read:org
  • user:email

今回は入手したトークンを環境変数に設定します。

$ export TRAVIS_GITHUB_TOEKN=[入手したトークン]

Travis CLIのインストール


暗号化に必要なTravis CLIをインストールし、CLIからログインします。

以下のコマンドでTravisをインストールします。

$ gem instal travis

Travis CLIからログインします。

$ travis login --github-token $TRAVIS_GITHUB_TOEKN

デフォルトだとgithub.comにログインしにいくので、エンタープライズ版のGitHubとTravisを利用している場合は、以下のコマンドでエンタープライズ版のURLをエンドポイントに設定します。

. $ travis endpoint --set-default -X -e https://[エンタープライズ版TravisのURL]/api

トークンの暗号化


Travis CLIを利用してトークンの登録及び暗号化を行います 。詳細は公式ドキュメントをご参照ください。

GitHubのトークンを暗号化して、.travis.ymlに設定します。このコマンドは.travis.ymlが置かれているパスで実行する必要があります。

$ travis encrypt GITHUB_TOKEN=$TRAVIS_GITHUB_TOEKN -r [対象レポジトリ] --add

–addオプションによって、同一パス上にある.travis.ymlに以下を追記します。

env:
  global:
    secure: [暗号化されたToken]

最後に、.travis.ymlに暗号化したトークンをdeployブロックで指定して登録しておく必要があります。

deploy:
  github_token: "$GITHUB_TOKEN"

これでTravis CIからGitHubのテストを行うことができました。

以上です。