繁星点点 Logo 繁星点点

Github-Actions默认用户变量GITHUB_TOKEN的提权语法

Github-Actions默认用户变量GITHUB_TOKEN的提权语法

约 2 分钟阅读 作者: 繁星点点
Github-Actions默认用户变量GITHUB_TOKEN的提权语法

Github-Actions默认用户变量GITHUB_TOKEN的提权语法

  • 众所周知工作流默认用户变量GITHUB_TOKENGitHub自动生成并提供的,不需要你手动创建,非常方便。
  • 但是默认权限很低,这意味着你无法使用它执行超出工作流范围的操作。
  • 好在可以通过permissions来修改GITHUB_TOKEN的权限范围,比如允许它访问更多的仓库数据或执行更高级的操作。

开启工作流的仓库文件路径.github/workflows/xxxxx.yml

资源类别类别说明权限权限说明配置语法示例
contents仓库内容(代码、文件)read只读权限,允许读取仓库内容,如查看文件和提交历史。contents: read
write写权限,允许修改、推送、更改文件。contents: write
delete删除权限,允许删除仓库内容。contents: delete
packagesGitHub 容器(GHCR)read只读权限,允许读取容器镜像或包。packages: read
write写权限,允许推送容器镜像或其他包。packages: write
delete删除权限,允许删除 GitHub 容器中的镜像或包。packages: delete
actionsGitHub Actionsread只读权限,允许查看工作流和运行状态。actions: read
write写权限,允许触发、管理和更新工作流的状态。actions: write
delete删除权限,允许删除工作流运行历史记录。actions: delete
issues问题(Issue)read只读权限,允许查看、评论问题。issues: read
write写权限,允许创建、编辑、关闭问题。issues: write
pull-requests拉取请求(PR)read只读权限,允许查看和评论 PR。pull-requests: read
write写权限,允许创建、更新、合并拉取请求。pull-requests: write
workflows工作流(workflow)read只读权限,允许查看工作流定义和状态。workflows: read
write写权限,允许触发、管理、更新工作流。workflows: write
commit-status提交状态read只读权限,允许查看提交的状态。commit-status: read
write写权限,允许设置提交的状态。commit-status: write
deployments部署操作read只读权限,允许查看部署的状态。deployments: read
write写权限,允许触发部署操作。deployments: write

示例:完整的权限配置

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: write    # 允许推送代码,修改仓库文件,也包括操作标签和Release
      packages: write    # 允许推送 Docker 镜像到 GitHub 容器注册表
      actions: read      # 允许查看工作流执行状态和日志
      workflows: write   # 允许触发和管理工作流
      issues: write      # 允许创建、编辑和关闭问题
      pull-requests: write # 允许创建和合并拉取请求

标签