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

ワークフローで認証する

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

GitHub ActionsはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Oneで利用できます。 GitHub Actionsは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。

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

注釈: GitHub Enterprise Server 2.22 での GitHub Actions サポートは、限定パブリックベータです。 To review the external storage requirements and request access to the beta, see "Getting started with GitHub Actions for GitHub Enterprise Server."

Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.

GITHUB_TOKENシークレットについて

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

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

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

このトークンは、github.tokenコンテキストにもあります。 詳しい情報については、「GitHub Actions のコンテキストと式構文」を参照してください。

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

GITHUB_TOKENシークレットを利用するためには、ワークフローファイル内で参照しなければなりません。 トークンの利用には、そのトークンを要求するアクションへ入力としてそのトークンを渡すことや、認証を受けたGitHub APIコールの発行が含まれます。

リポジトリのGITHUB_TOKENを使ってGitHub Actions アプリケーションの代わりにタスクを実行した場合、そのGITHUB_TOKENによって生じたイベントは、新たなワークフローの実行を生じさせません。 これによって、予想外の再帰的なワークフローの実行が生じないようになります。 たとえば、ワークフローの実行によってリポジトリのGITHUB_TOKENを使ったコードのプッシュが行われた場合、そのリポジトリにpushイベントが生じた際に実行されるよう設定されたワークフローが含まれていても、新しいワークフローの実行は行われません。

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 App の権限」を参照してください。

権限アクセスタイプフォークしたリポジトリからのアクセス
actions読み取り/書き込み読み取り
checks読み取り/書き込み読み取り
contents読み取り/書き込み読み取り
deployments読み取り/書き込み読み取り
issues読み取り/書き込み読み取り
メタデータ読み取り読み取り
パッケージ読み取り/書き込み読み取り
pull requests読み取り/書き込み読み取り
repository projects読み取り/書き込み読み取り
statuses読み取り/書き込み読み取り

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

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

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.