是否可以使用 GitHub API 更改私有存储库的可见性?

Alo*_*ois 5 github github-api

我一直在寻找一种将我的私有存储库转换为公共存储库的方法,但由于它们有很多,我更喜欢用简单的方法并诉诸 GitHub API,但就我而言,这个find,仅允许编辑公共存储库的可见性。查看最新的文档,我意识到经过身份验证时可访问的唯一端点是(存储库可用端点):

  • GET /user/repos
  • POST /user/repos
  • POST /user/projects

我还尝试使用浏览器控制台并在请求更改可见性时生成日志,但它似乎没有向 GitHub API 发出任何请求。

ton*_*y19 6

您可以使用此REST 端点将存储库的可见性设置为公共(或私有):

PATCH /repos/{owner}/{repo}
Run Code Online (Sandbox Code Playgroud)

确实适用于私有存储库(尽管您有评论)。如果存储库已经具有所请求的可见性,API 将返回一条错误消息来指示该状态。

visibility范围

可以是publicprivate. 如果您的组织使用 GitHub Enterprise Cloud 或 GitHub Enterprise Server 2.20+ 与企业帐户关联,visibility也可以是internal. 当您将两者与预览标题一起使用时,该visibility参数将覆盖该参数。privatenebula-preview

例子

curl

PATCH /repos/{owner}/{repo}
Run Code Online (Sandbox Code Playgroud)

gh

curl \
  -X PATCH \
  -H "Accept: application/vnd.github.nebula-preview+json" \
  https://api.github.com/repos/octocat/hello-world \
  -d '{"visibility":"public"}'
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 2

2022:我将使用GitHub CLI及其gh repo edit命令

cd /path/to/local/repo
gh repo edit --visibility=public 
Run Code Online (Sandbox Code Playgroud)

2020:是的,可以,但正如存储库 API中提到的,这仍处于测试阶段:

您可以使用存储库 API 中的新visibility参数设置存储库的可见性,并使用新的响应键获取存储库的可见性。
有关更多信息,请参阅博客文章

要在预览期间访问存储库可见性,您必须在 Accept 标头中提供自定义媒体类型:

应用程序/vnd.github.nebula-preview+json