GitHub ActionsでAPIキーなど機密情報を扱う場合、Secretを使うと安全に利用できます。
Secretには2種類あり、Environment SecretとRepository Secretです。Environment Secretは本番環境や検証環境などで区別して利用できます。Repository Secretはリポジトリ内で同一の値を利用できます。
2つのSecretはActionsでの使い方が違います。
GitHub上での設定方法が似ており、微妙に異なる利用方法を誤ると値を取得できないので、どちらを使うのか気をつけてください。
Environment Secret
追加方法
既存のものに追加する場合は、Environment名のリンクをクリックします。
環境名(production, stagingなど)を入力し、「Configure environment」ボタンをクリック
ページ下部の「Environment secrets」内の「Add Secret」をクリック
Name、Valueを入力し、「Add secret」をクリック
Environment secretsに追加したNameがあれば完了。
追加後にValueの内容は表示できません。Updateボタンから更新はできます。
Actionsでの使い方
# .github/workflows/****.yml
jobs:
check-bats-version:
runs-on: ubuntu-latest
environment:
name: production # 環境名を指定(記載しないとSecretを取得不可)
steps:
- run: |
# secretは ${{ secrets.<Name> }} 形式で取得可能
echo ${{ secrets.API_KEY }}
Repository Secret
追加方法
右上の「New repository secret」をクリック
Name、Valueを入力し、「Add secret」をクリック
Repository Secretsに追加したNameがあれば完了
追加後にValueの内容は表示できません。Updateボタンから更新はできます。
Actionsでの使い方
# .github/workflows/****.yml
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- run: |
# secretは ${{ secrets.<Name> }} 形式で取得可能
echo ${{ secrets.APP_ID }}
Environment Secretのように、YAML内で上記以外の設定は不要です。
まとめ
Secretには2種類あり、Environment SecretとRepository Secretがあります。Environment SecretはEnvironmentsから追加可能です。Repository SecretはSecrets→Actionsから追加可能です。
Actionsではいずれも${{ secrets.<Secret名> }}
で参照可能です。Environment Secretの場合は、environment
で環境名を指定することを忘れないでください。