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

问题描述 投票:0回答:2

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

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

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

github github-api
2个回答
7
投票

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

PATCH /repos/{owner}/{repo}

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

visibility
参数

可以是

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

示例

curl

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

gh

gh api -X PATCH /repos/octocat/hello-world -fvisibility=public --preview nebula

3
投票

2022:我将使用 GitHub CLI 及其

gh repo edit
命令:

cd /path/to/local/repo
gh repo edit --visibility=public

请注意,在

gh
v2.61.0(2024 年 11 月)中,
gh repo edit
命令已得到增强,可告知用户更改可见性的后果,并确保用户在进行不可逆转的更改之前是有意的。

非交互式

gh repo edit --visibility
更改需要新的
--accept-visibility-change-consequences
标志来确认。


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

您可以使用存储库 API 中新的

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

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

application/vnd.github.nebula-preview+json

© www.soinside.com 2019 - 2024. All rights reserved.