无组织管理员权限时使用PAT通过Github API触发企业仓库Github Actions
无需组织管理员权限使用个人PAT触发企业仓库Github Actions操作指南
你需要先确认已获得目标企业仓库的写入(Write)权限,该权限仅需对应仓库的管理员单独开通,无需组织管理员权限。
步骤1:配置个人PAT权限
- 进入Github个人设置→开发者设置→个人访问令牌页面,新建或修改现有PAT,仅需勾选以下权限,无需勾选任何组织相关权限:
repo权限组(若为私有仓库勾选全量repo,公开仓库勾选public_repo即可)workflow权限
步骤2:选择触发方式调用Github API
方式1:触发workflow_dispatch事件(适用已配置手动触发入口的工作流)
首先确认目标仓库的工作流文件已添加workflow_dispatch触发器配置示例如下:
# 目标仓库 .github/workflows/[工作流文件名].yml on: workflow_dispatch: inputs: env: description: '部署环境' required: true default: 'test'
调用API的curl命令如下,替换占位符后即可执行:
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer 你的个人PAT字符串" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/[企业组织名]/[目标仓库名]/actions/workflows/[工作流文件名].yml/dispatches \ -d '{"ref":"main","inputs":{"env":"test"}}'
参数说明:
ref:填写要触发的分支/标签名inputs:内容和工作流中定义的入参对应,无入参可省略该字段,仅传{"ref":"分支名"}即可
方式2:触发repository_dispatch事件(适用自定义外部触发场景)
首先确认目标仓库的工作流文件已添加repository_dispatch触发器配置示例如下:
# 目标仓库 .github/workflows/[工作流文件名].yml on: repository_dispatch: types: [自定义事件名]
调用API的curl命令如下,替换占位符后即可执行:
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer 你的个人PAT字符串" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/[企业组织名]/[目标仓库名]/dispatches \ -d '{"event_type":"自定义事件名","client_payload":{"env":"test","version":"v1.0.0"}}'
参数说明:
event_type:必须和工作流中配置的types值一致client_payload:可自定义透传参数,在工作流中可通过github.event.client_payload.参数名读取
常见问题排查
- 触发失败先检查PAT是否在有效期内,且权限配置正确
- 若企业组织开启了PAT访问限制,仅需联系组织管理员将你的个人账号加入PAT访问白名单即可,无需开通组织管理员权限
- 确认你对目标仓库的写入权限未被取消
内容的提问来源于stack exchange,提问作者MaylorTaylor
相关产品推荐
相关产品推荐

