Skip to main content
ドキュメントには� �繁に更新が� えられ、その都度公開されています。本ページの翻訳はま� 未完成な部分があることをご了承く� さい。最新の情� �については、英語のドキュメンテーションをご参照く� さい。本ページの翻訳に問題がある� �合はこちらまでご連絡く� さい。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2022-06-03. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてく� さい。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してく� さい。

Automatic token authentication

GitHubは、GitHub Actionsの代理で認証を受けるために利用できるトークンを提供します。

ノート: 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を渡すことが必要です。

YAML
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で利用できない権限を要求するトークンが必要な� �合は、個人アクセストークンを生成して、それをリポジトリのシークレットに設定できます。

  1. リポジトリに対して適切な権限を持つトークンを利用もしくは生成してく� さい。 詳しい情� �については、「個人アクセストークンを作成する」を参照してく� さい。
  2. ワークフローのリポジトリにそのトークンをシークレットとして追� し、 ${{ secrets.SECRET_NAME }}構文でそれを参照してく� さい。 詳しい情� �については、「暗号化されたシークレットの作成と利用」を参照してく� さい。

参考リンク