注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
概述
可以使用 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 设置中选择了“通过拉取请求向工作流发送写入令牌”选项。 有关详细信息,请参阅“[管理存储库的 GitHub Actions 设置](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks)”。
### 示例:为 GITHUB_TOKEN 分配权限
此示例显示为将要应用到工作流中所有作业的 `GITHUB_TOKEN` 设置的权限。 所有权限都被授予读取权限。
```yaml
name: "My workflow"
on: [ push ]
permissions: read-all
jobs:
...
为特定作业分配权限
在特定的作业中,� 可以使用 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 设置中选择了“通过拉取请求向工作流发送写入令牌”选项。 有关详细信息,请参阅“[管理存储库的 GitHub Actions 设置](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks)”。
#### 示例:为特定作业设置权限
本示例显示为将仅应用到作业 `stale` 的 `GITHUB_TOKEN` 设置的权限。 为 `issues` 和 `pull-requests` 范围授予写入权限。 所有其他范围将没有访问权限。
```yaml
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v4