如何通过命令行界面邀请人们访问私有 GitHub 存储库?



通常在Web浏览器中访问"https://github.com///settings/access"后,必须单击链接">邀请团队或人员"。 但是,我希望通过命令行界面执行此操作,因为我必须邀请 很多人。可能吗?

您可以使用 GitHub API 来添加协作者

PUT /repos/:owner/:repo/collaborators/:username

例如,请参阅此处:

curl -H "Authorization: token YOUR_TOKEN" "https://api.github.com/repos/YOUR_USER_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME" -X PUT -d '{"permission":"admin"}'

权限级别为以下级别之一:

  • pull- 可以拉取,但不能推送到或管理此存储库。
  • push- 可以拉取和推送,但不能管理此存储库。
  • admin- 可以拉取、推送和管理此存储库。
  • maintain- 建议需要管理存储库而无法访问敏感或破坏性操作的项目经理使用。
  • triage- 建议需要主动管理问题和拉取请求而无需写入访问权限的参与者使用。

(默认为"推送"(

2020 年 9 月更新,考虑到 GitHub CLIgh现在是 1.0,它可能是一个很好的功能添加(一种gh repoinvite(

同时,您可以使用gh pi进行类似的 API 调用,自动进行身份验证,并-f添加POST字段。

gh api repos/YOUR_USER_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME" -f '{"permission":"admin"}'

使用 hub 的替代方法:

1-检查存储库中具有权限的所有用户:

hub api --flat 'repos/YOUR_USER_OR_ORGANIZATION_NAME/YOUR_REPO/collaborators' | grep -E 'login|permissions'

2-向用户授予权限:

hub api 'repos/YOUR_USER_OR_ORGANIZATION_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME' -H X:PUT -H d:'{"permission":"admin"}'

您可以使用 github cli 或直接通过 curl 调用 github api。在此示例中,我使用 github cli 将成员添加到公司存储库:

gh api "orgs/$target_repo/teams/$team/repos/$target_repo/$repo_new_name" -X PUT -f permission=admin

另请参阅文档:https://docs.github.com/en/rest/reference/teams#add-or-update-team-repository-permissions

对于您的情况,您可以使用此端点:

https://docs.github.com/en/rest/reference/repos#add-a-repository-collaborator

最新更新