You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API管理GitHub Packages的Actions访问权限?

如何通过API管理GitHub Packages的Actions访问权限?

嗨,我刚好碰到过和你一模一样的需求——要批量管理GitHub Packages的Actions访问权限,不想手动一个个点那个设置页面!其实GitHub确实提供了REST API来干这个,完全能满足你用GITHUB_TOKEN批量操作的需求,不用折腾系统用户。

先给你理清楚具体怎么操作:

首先,你要用到的是GitHub Packages的Actions权限仓库管理API,分组织名下的包和个人用户名下的包两种情况:

1. 操作组织名下的包

  • 授予仓库访问权限:用这个PUT请求端点
    PUT /orgs/{org}/packages/{package_type}/{package_name}/actions/permissions/repositories/{repository_id}
    
    举个curl的示例(替换掉里面的占位符):
    curl -L \
      -X PUT \
      -H "Accept: application/vnd.github+json" \
      -H "Authorization: Bearer <你的GITHUB_TOKEN>" \
      -H "X-GitHub-Api-Version: 2022-11-28" \
      https://api.github.com/orgs/你的组织名/packages/npm/你的包名/actions/permissions/repositories/目标仓库ID
    
    这里的package_type要对应你的包类型,比如npm、maven、docker这些,得和你实际的包一致。
  • 批量获取仓库ID:如果要给多个仓库授权,可以先调用GET /orgs/{org}/repos拿到组织下所有仓库的ID列表,方便后续批量循环调用授权API。
  • 查看已授权的仓库:用GET /orgs/{org}/packages/{package_type}/{package_name}/actions/permissions/repositories就能看到当前这个包已经授权了哪些仓库。

2. 操作个人用户名下的包

如果你的包是存在个人账号下的,只需要把上面的端点里的orgs/{org}换成user就行:

  • 授权端点:PUT /user/packages/{package_type}/{package_name}/actions/permissions/repositories/{repository_id}
  • 查看授权端点:GET /user/packages/{package_type}/{package_name}/actions/permissions/repositories

注意事项

  • 你的GITHUB_TOKEN需要有packages:write和repo权限,而且操作的账号必须是这个包的所有者或者有管理权限。
  • 要是包数量和仓库数量都很多,完全可以写个简单的脚本(比如Python或者Shell),先拉取所有目标仓库的ID,然后循环调用授权API,几分钟就能搞定所有配置,比手动点高效太多。

对了,就是你截图里的这个页面:
Manage Actions access section
之前我也是找了好久才发现这个API藏在Packages的权限分类下面,确实不太显眼,不过用它就能完美解决批量授权的问题啦。

备注:内容来源于stack exchange,提问作者Matt Immer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:14:34