如何为GitHub CLI在不同GitHub组织配置不同权限
解决gh CLI权限分组织控制的问题
问题翻译
我在多个GitHub组织中拥有所有者权限,还在这些组织的大量仓库里有管理员权限。现在我正在写一个用gh创建和删除仓库的脚本,需要把gh和我的GitHub账号认证,但认证的时候只能授权所有我有足够权限的组织,没法区分权限。请问怎么配置才能让gh在某一个组织里可以创建和删除仓库,在另一个组织里不行?
解决方案
默认的gh OAuth认证确实没法细分组织权限,这里有两个实用解决办法:
方法一:用**细粒度个人访问令牌(PAT)**精准控制
这是个人使用最灵活的方案:
- 登录GitHub,进入「设置」→「开发者设置」→「个人访问令牌」→「精细粒度令牌」
- 新建令牌时:
- 在「仓库访问」里选「仅选择仓库」,勾选目标组织下的所有仓库(或直接选择整个组织)
- 在「权限」模块,找到「仓库权限」,勾选「管理(Administration)」——这个权限包含创建、删除仓库的操作
- 其他组织相关权限一律不选,保存生成令牌
- 本地终端先运行
gh auth logout注销现有认证,再运行gh auth login,选择「粘贴认证令牌」,把刚才生成的PAT粘贴进去 - 完成后gh就只能在你指定的组织/仓库里执行创建、删除操作,其他组织完全没有权限
方法二:自定义OAuth应用(适合团队共享场景)
如果是团队共用的脚本,不想用个人PAT,可以自定义OAuth应用限制授权范围:
- 进入GitHub「设置」→「开发者设置」→「OAuth Apps」→「新建OAuth应用」
- 随便填写应用名称、主页URL(比如
http://localhost:3000)、授权回调URL(同样填http://localhost:3000) - 生成客户端ID和密钥后,本地运行:
gh auth login --oauth-client-id 你的客户端ID --oauth-client-secret 你的客户端密钥 - 跳转授权页面后,只勾选你需要的那个组织,其他组织一律不选,完成授权
- 这样gh就只会拥有该组织的操作权限,其他组织无法执行创建/删除仓库的操作
内容的提问来源于stack exchange,提问作者hepabolu
相关产品推荐
相关产品推荐

