ノート: 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 }}
構文でそれを参照してく� さい。 詳しい情� �については、「暗号化されたシークレットの作成と利用」を参照してく� さい。