使用 github cli 将外部协作者添加到组织存储库

Posted

技术标签:

【中文标题】使用 github cli 将外部协作者添加到组织存储库【英文标题】:Add outside collaborator to organization repository using github cli 【发布时间】:2021-02-09 23:31:27 【问题描述】:

我正在使用gh-cli

我想将外部协作者添加到我组织中的私有存储库 (my-repo-in-org) (my-org)

我可以使用这个gh显示协作者

gh api repos/my-org/myrepo-in-org/collaborators

基于文档Add a repository collaborator 我尝试使用以下方式添加具有push 权限的协作者(collaborator_name):

gh api repos/my-org/my-repo-in-org/collaborators/collaborator-name -f '"permission"="push"'

但是得到:


  "message": "Not Found",
  "documentation_url": "https://docs.github.com/rest"

gh: Not Found (HTTP 404)

任何线索我该怎么做? 我需要管理具有多个用户的多个存储库并希望将其自动化。

【问题讨论】:

【参考方案1】:

使用-f/--raw-field 指定参数时使用的默认http 方法是POST,但此调用需要PUT 方法。您可以告诉 gh 使用 -X--method 指定方法:

gh api repos/owner/repo/collaborators/username -X PUT -f permission='push'

来自documentation:

默认的 HTTP 请求方法通常是“GET”,如果有的话是“POST” 添加了参数。用“--method”覆盖方法。

在选项列表中:

-X, --method string           The HTTP method for the request (default "GET")

【讨论】:

感谢@Bertrand Martel 它有效。 -X Put 是我错过的东西。 我不得不使用-F permission=read,因为-f permission=read会被忽略。

以上是关于使用 github cli 将外部协作者添加到组织存储库的主要内容,如果未能解决你的问题,请参考以下文章

GitHub创建项目并添加协作者

协作者如何将他们的更改推送到我在 GitHub 中的存储库

学习github -- 同步到github多人协作

向我的免费 G​​itHub 帐户添加协作者?

github的私有库给与他人权限

来 GitHub 参与 Jetpack 开源协作!