ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
概要
permissions
を使ってGITHUB_TOKEN
に付与されているデフォルトの権限を変更し、必要に応じてアクセスを追加または削除して、必要最小限のアクセスのみを許可することができます。 詳しい情報については、「ワークフローでの認証」を参照してください。
permissions
は、最上位キーとしてワークフロー内のすべてのジョブに適用するために、または特定のジョブ内で使用できます。 特定のジョブ内に permissions
キーを追加すると、GITHUB_TOKEN
を使用するそのジョブ内のすべてのアクションと実行コマンドが、指定したアクセス権を取得します。 詳しい情報については、jobs.<job_id>.permissions
を参照してください。
利用可能なスコープとアクセス値:
permissions:
actions: read|write|none
checks: read|write|none
contents: read|write|none
deployments: read|write|none
issues: read|write|none
discussions: read|write|none
packages: read|write|none
pages: read|write|none
pull-requests: read|write|none
repository-projects: read|write|none
security-events: read|write|none
statuses: read|write|none
これらのスコープのいずれかのアクセスを指定した場合、指定されたなかったものはすべてnone
に設定されます。
以下の構文を使って、読み取りもしくは書き込みアクセスを利用可能なすべてのスコープに定義できます。
permissions: read-all|write-all
以下の構文を使って、利用可能なすべてのスコープの権限を無効化できます。
permissions: {}
permissions
キーを使って、フォークされたリポジトリの読み取り権限の付与や削除ができますが、通常は書き込みアクセス権を付与することはできません。 この動作の例外としては、管理ユーザがGitHub Actionsの設定でSend write tokens to workflows from pull requests(Pull Requestからワークフローに書き込みトークンを送る)を選択している場合があります。 詳しい情報については、「リポジトリの GitHub Actions 設定の管理」を参照してください。
例: GITHUB_TOKENへの権限の割り当て
この例は、ワークフロー内のすべてのジョブに適用される GITHUB_TOKEN
に設定されている権限を示しています。 すべての権限に読み取りアクセスが付与されます。
name: "My workflow"
on: [ push ]
permissions: read-all
jobs:
...
Assigning permissions to a specific job
特定のジョブについて、jobs.<job_id>.permissions
を使ってGITHUB_TOKEN
に付与されたデフォルトの権限を変更し、必要に応じてアクセスを付与したり削除したりして、必要最小限のアクセスだけを許可できます。 詳しい情報については、「ワークフローでの認証」を参照してください。
ジョブ定義内で権限を指定することで、必要に応じて、ジョブごとに GITHUB_TOKEN
に異なる権限のセットを設定できます。 または、ワークフロー内のすべてのジョブの権限を指定することもできます。 ワークフローレベルでの権限の定義については、 permissions
を参照してください。
利用可能なスコープとアクセス値:
permissions:
actions: read|write|none
checks: read|write|none
contents: read|write|none
deployments: read|write|none
issues: read|write|none
discussions: read|write|none
packages: read|write|none
pages: read|write|none
pull-requests: read|write|none
repository-projects: read|write|none
security-events: read|write|none
statuses: read|write|none
これらのスコープのいずれかのアクセスを指定した場合、指定されたなかったものはすべてnone
に設定されます。
以下の構文を使って、読み取りもしくは書き込みアクセスを利用可能なすべてのスコープに定義できます。
permissions: read-all|write-all
以下の構文を使って、利用可能なすべてのスコープの権限を無効化できます。
permissions: {}
permissions
キーを使って、フォークされたリポジトリの読み取り権限の付与や削除ができますが、通常は書き込みアクセス権を付与することはできません。 この動作の例外としては、管理ユーザがGitHub Actionsの設定でSend write tokens to workflows from pull requests(Pull Requestからワークフローに書き込みトークンを送る)を選択している場合があります。 詳しい情報については、「リポジトリの GitHub Actions 設定の管理」を参照してください。
例: 特定のジョブに対する権限の設定
この例では、stale
という名前のジョブにのみ適用される GITHUB_TOKEN
に設定されている権限を示しています。 issues
および pull-requests
のスコープに対して書き込みアクセスが許可されます。 他のすべてのスコープにはアクセスできません。
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v4