【发布时间】:2020-05-29 03:58:36
【问题描述】:
通常,在网络浏览器中访问“https://github.com///settings/access”后,必须点击链接“邀请团队或人员”。 但是,我希望通过命令行界面来执行此操作,因为我必须邀请 许多人。是否可以?
【问题讨论】:
标签: github
通常,在网络浏览器中访问“https://github.com///settings/access”后,必须点击链接“邀请团队或人员”。 但是,我希望通过命令行界面来执行此操作,因为我必须邀请 许多人。是否可以?
【问题讨论】:
标签: github
您可以使用 GitHub API 来add a collaborator
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 CLI gh is now 1.0,添加它可能是一个很好的功能(一种 gh repoinvite)
同时,您可以使用gh pi 进行类似的API 调用,自动进行身份验证,使用-f 添加POST 字段。
gh api repos/YOUR_USER_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME" -f '{"permission":"admin"}'
【讨论】:
gh api 替代方案,因为旧的 CLI hub 现在已经过时了。
gh api orgs/YOUR_ORG/repos/YOUR_USER_NAME/YOUR_REPO/collaborators/COLLABORATOR_USER_NAME 检查用户是否被列为协作者时,它总是返回一个404,我是不是做错了什么?
gh auth login 无效,或者您无权访问存储库。
使用hub 的替代方法:
1- 检查您的 repo 中所有具有权限的用户:
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 将成员添加到公司 repo:
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
【讨论】: