ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情� �を見ることができます。
GITHUB_TOKENシークレットについて
At the start of each workflow run, GitHub automatically creates a unique GITHUB_TOKEN secret to use in your workflow. このGITHUB_TOKENは、ワークフローの実行内での認証に利用できます。
GitHub Actionsを有効化すると、GitHubはリポジトリにGitHub Appをインストールします。 GITHUB_TOKENシークレットは、GitHub Appインストールアクセストークンです。 このインストールアクセストークンは、リポジトリにインストールされたGitHub Appの代わりに認証を受けるために利用できます このトークンの権限は、ワークフローを含むリポジトリに限定されます。 詳しい情� �については「GITHUB_TOKENの権限」を参照してく� さい。
各ジョブの開始前に、GitHub はジョブのインストールアクセストークンをフェッチします。 The GITHUB_TOKEN expires when a job finishes or after a maximum of 24 hours.
このトークンは、github.tokenコンテキストにもあります。 詳細については、「コンテキスト」を参照してく� さい。
ワークフロー内でのGITHUB_TOKENの利用
シークレットを参照するための標準構文 ${{ secrets.GITHUB_TOKEN }} を使用して、GITHUB_TOKEN を使用できます。 Examples of using the GITHUB_TOKEN include passing the token as an input to an action, or using it to make an authenticated GitHub Enterprise Server API request.
When you use the repository's GITHUB_TOKEN to perform tasks, events triggered by the GITHUB_TOKEN will not create a new workflow run. これによって、予想外の再帰的なワークフローの実行が生じないようになります。 たとえば、ワークフローの実行によってリポジトリのGITHUB_TOKENを使ったコードのプッシュが行われた� �合、そのリポジトリにpushイベントが生じた際に実行されるよう設定されたワークフローが含まれていても、新しいワークフローの実行は行われません。
例 1: GITHUB_TOKEN を入力として渡す
以下のワークフローの例ではlabeler actionを使用しています。これには、repo-token入力パラメータの値としてGITHUB_TOKENを渡すことが必要です。
name: Pull request labeler on: [ pull_request_target ] jobs: triage: runs-on: ubuntu-latest steps: - uses: actions/labeler@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }}例 2: REST API を呼び出す
GITHUB_TOKENを使って、認証されたAPIコールを発行できます。 以下のワークフローの例では、GitHub REST APIを使ってIssueを作成しています。
name: Create issue on commit on: [ push ] jobs: create_commit: runs-on: ubuntu-latest steps: - name: Create issue using REST API run: | curl --request POST \ --url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \ --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ --header 'content-type: application/json' \ --data '{ "title": "Automated issue for commit: ${{ github.sha }}", "body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_." }' \ --fail GITHUB_TOKENの権限
GitHub Apps が各権限でアクセスできる API エンドポイントについては、「GitHub App の権限」を参照してく� さい。
| スコープ | アクセスタイプ | フォークしたリポジトリからのアクセス |
|---|---|---|
| actions | 読み取り/書き込み | 読み取り |
| checks | 読み取り/書き込み | 読み取り |
| contents | 読み取り/書き込み | 読み取り |
| deployments | 読み取り/書き込み | 読み取り |
| issues | 読み取り/書き込み | 読み取り |
| メタデータ | 読み取り | 読み取り |
| パッケージ | 読み取り/書き込み | 読み取り |
| pull-requests | 読み取り/書き込み | 読み取り |
| repository-projects | 読み取り/書き込み | 読み取り |
| statuses | 読み取り/書き込み | 読み取り |
GITHUB_TOKENで利用できない権限を要求するトークンが必要な� �合は、個人アクセストークンを生成して、それをリポジトリのシークレットに設定できます。
- リポジトリに対して適切な権限を持つトークンを利用もしくは生成してく� さい。 詳しい情� �については、「個人アクセストークンを作成する」を参照してく� さい。
- ワークフローのリポジトリにそのトークンをシークレットとして追� し、
${{ secrets.SECRET_NAME }}構文でそれを参照してく� さい。 詳しい情� �については、「暗号化されたシークレットの作成と利用」を参照してく� さい。