我一直在寻找一种将我的私人存储库转换为公共存储库的方法,但由于它们太多,我更喜欢用简单的方法并诉诸 GitHub API,但据我所知,这是一个可以找到,只允许编辑公共存储库的可见性。查看最新的文档,我意识到经过身份验证时可访问的唯一端点是(存储库,可用端点):
GET /user/repos
POST /user/repos
POST /user/projects
我还尝试使用浏览器控制台并在请求更改可见性时生成日志,但它似乎没有向 GitHub API 发出任何请求。
您可以使用此 REST 端点设置存储库对公共(或私有)的可见性:
PATCH /repos/{owner}/{repo}
这确实适用于私有存储库(尽管您的评论)。如果存储库已经具有所请求的可见性,API 将返回一条错误消息来指示该状态。
visibility
参数可以是
或public
。如果您的组织使用 GitHub Enterprise Cloud 或 GitHub Enterprise Server 2.20+ 与企业帐户关联,则private
也可以是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
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