Skip to main content

Enterprise Server 3.20 は、現在リリース候補として使用できます。

GITHUB_TOKEN

          `GITHUB_TOKEN` とは何か、そのしくみ、GitHub Actions ワークフローの自動化を安全に行う上でなぜ重要なのかについて説明します。

この記事の内容

          `GITHUB_TOKEN` について

各ワークフロー ジョブの開始時に、GitHub によって、ワークフローで使用する一意の GITHUB_TOKEN シークレットが自動的に作成されます。 GITHUB_TOKEN はワークフロー ジョブでの認証に使用できます。

GitHub Actionsを有効化すると、GitHubはリポジトリにGitHub Appをインストールします。 GITHUB_TOKEN シークレットは GitHub App インストール アクセス トークンです。 このインストールアクセストークンは、リポジトリにインストールされたGitHub Appの代わりに認証を受けるために利用できます。 このトークンの権限は、ワークフローを含むリポジトリに限定されます。 詳しくは、「GitHub Actions のワークフロー構文」をご覧ください。

各ジョブが開始される前に、GitHub はジョブのインストール アクセス トークンをフェッチします。 GITHUB_TOKENは、ジョブが終了するか、最大有効期間が経過すると期限切れになります。

トークンの有効な最大有効期間は、ランナーの種類によって異なります。

  •         **GitHub-hosted runners** ジョブの最大実行時間は 6 時間であるため、`GITHUB_TOKEN` は最大で 6 時間稼働できます。
    
  •         **セルフホステッド ランナー** ジョブの最大実行時間は 5 日です。 ただし、 `GITHUB_TOKEN` はインストール アクセス トークンであるため、更新できるのは最大 24 時間のみです。 ジョブの実行時間が 24 時間を超える場合は、personal access token または他の認証方法を代わりに使用します。
    

トークンは github.token コンテキストでも使用できます。 詳しくは、「コンテキスト リファレンス」をご覧ください。

          `GITHUB_TOKEN` がワークフローの実行をトリガーしたとき

リポジトリの GITHUB_TOKEN を使ってタスクを実行した場合、GITHUB_TOKEN によってトリガーされたイベントでは (workflow_dispatchrepository_dispatch を除きます)、新しいワークフロー実行は作成されません。 これによって、予想外の再帰的なワークフローの実行が生じないようになります。 たとえば、ワークフロー実行でリポジトリの GITHUB_TOKEN を使用してコードがプッシュされた場合、push イベントの発生時に実行するように構成されたワークフローがリポジトリに含まれている場合でも、新しいワークフローは実行されません。

GITHUB_TOKEN を使う GitHub Actions ワークフローによってプッシュされたコミットでは、GitHub Pages ビルドがトリガーされません。

次のステップ

  •         [AUTOTITLE](/actions/how-tos/security-for-github-actions/security-guides/use-github_token-in-workflows)
    
  •         [AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#permissions)