如何在GitHub Workflow作业中同时启用全部读写权限?
如何在GitHub Workflow作业中同时启用全部读写权限?
嘿,我完全懂你试了各种配置却碰壁的心情——GitHub Actions的权限设置有时候确实有点反直觉,尤其是想一次性开启所有资源的读写权限时。
其实你不用纠结同时写read-all和write-all,因为**write-all本身就已经包含了对应资源的读取权限**,这是GitHub权限模型的设计逻辑:要对某个资源执行写操作,必然需要先拥有读取它的权限。
所以正确的配置方式非常简单,直接在作业(或整个Workflow)的permissions字段里设置write-all就行,示例如下:
jobs: your-job-name: runs-on: ubuntu-latest # 在这里配置全量读写权限 permissions: write-all: true steps: - name: 你的步骤 run: echo "执行你的操作"
如果是想给整个Workflow的所有作业都配置这个权限,也可以把permissions放在jobs外面:
name: 你的Workflow名称 on: [push] # 全局配置全量读写权限 permissions: write-all: true jobs: your-job-name: runs-on: ubuntu-latest steps: - name: 你的步骤 run: echo "执行你的操作"
你之前尝试的那些写法(比如permissions: all、write-all|read-all、{write-all, read-all})都是不合法的YAML语法或者GitHub不支持的配置值,所以才没生效。
另外再补充一点:如果某些场景下你只需要特定资源的读写权限,也可以单独指定,比如只给代码内容和PR开读写:
permissions: contents: write pull-requests: write
但如果是要全量的读写,write-all就是最简洁且有效的方式啦。
备注:内容来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

