如何通过Octokit/GitHub API为团队赋予仓库写入权限?
问题
我正在用JavaScript和Octokit在组织里动态创建仓库并配置各项选项,其他操作都正常,唯独给创建好的仓库给团队添加Write权限(就是仓库设置路径Settings > Collaborators and teams > Manage Access > Role: Write对应的权限)这一步失败。
我尝试使用Octokit中的octokit.rest.teams.addOrUpdateRepoPermissionsInOrg方法,代码如下:
octokit.rest.teams.addOrUpdateRepoPermissionsInOrg({ org: "org-name", team_slug: "team-name", owner: "owner-name", repo: "repo-name", permission: "write", })
执行该代码时收到Validation Failed错误。查阅GitHub API文档后发现,permission的有效值为pull、push、admin、maintain、triage,因此怀疑用错了操作函数,请问正确的操作函数是什么?
回答
你并没有选错方法,问题出在UI权限名称和API参数值的对应关系上:
GitHub界面里显示的Write权限,对应API接口里的push参数值,而非你代码中写的write。
修正后的代码如下:
octokit.rest.teams.addOrUpdateRepoPermissionsInOrg({ org: "org-name", team_slug: "team-name", owner: "owner-name", repo: "repo-name", permission: "push", // 将write替换为push })
顺便补充下GitHub UI权限与API参数的完整对应关系:
- UI中的
Read→ API参数pull - UI中的
Write→ API参数push - UI中的
Maintain→ API参数maintain - UI中的
Admin→ API参数admin
修改后就能正确为团队设置目标仓库的Write权限了。
内容的提问来源于stack exchange,提问作者Carlo
相关产品推荐
相关产品推荐

