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

GITHUB_TOKENでの認証

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

GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. GitHub Actions is unavailable for per-repository plans, which are legacy billing plans. For more information, see "GitHub's products."

リポジトリに対してwriteアクセスがあるユーザなら、誰でもシークレットの作成、読み取りおよび使用ができます。

ここには以下の内容があります:

GITHUB_TOKENシークレットについて

GitHubは、ワークフローで利用するGITHUB_TOKENシークレットを自動的に生成します。 このGITHUB_TOKENは、ワークフローの実行内での認証に利用できます。

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

インストールアクセストークンは、60分後に期限切れになります。 GitHubは、それぞれのジョブを開始する前にトークンをフェッチします。

ノート: ワークフローの実行や、ジョブがキューイングされた状態が1時間以上続くと、トークンはジョブの開始前に期限切れになってしまうことがあります。

ワークフロー内でのGITHUB_TOKENの利用

To use the GITHUB_TOKEN secret, you must reference it in your workflow file. トークンの利用には、そのトークンを要求するアクションへ入力としてそのトークンを渡すことや、認証を受けたGitHub APIコールの発行が含まれます。

GITHUB_TOKENを入力として渡す例

以下のワークフローの例ではlabeler actionを使用しています。これには、repo-token入力パラメータの値としてGITHUB_TOKENを渡すことが必要です。

name: Pull request labeler
on:
- pull_request
jobs:
  triage:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/labeler@v2
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}

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 https://api.github.com/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 }}_."
          }'

GITHUB_TOKENの権限

GitHub Appsが各権限でアクセできるAPIエンドポイントについては、GitHub 開発者ドキュメンテーションで「GitHub Appの権限」を参照してください。

権限 アクセスタイプ フォークしたリポジトリからのアクセス
チェック 読み取り/書き込み 読み取り
コンテンツ 読み取り/書き込み 読み取り
デプロイメント 読み取り/書き込み 読み取り
Issue 読み取り/書き込み 読み取り
メタデータ 読み取り 読み取り
パッケージ 読み取り/書き込み 読み取り
プルリクエスト 読み取り/書き込み 読み取り
リポジトリプロジェクト 読み取り/書き込み 読み取り
ステータス 読み取り/書き込み 読み取り

GITHUB_TOKENで利用できない権限を要求するトークンが必要な場合は、個人アクセストークンを生成して、それをリポジトリのシークレットに設定できます。

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

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください