GitHub软件包注册表中的公共和私有软件包

9
有可能将软件包的可见性从私有更改为公共,反之亦然吗?
文档中有这样一句话:
“私有和公共软件包:您可以将软件包保存为私有或使其公开。您可以将软件包保存为私有并与同事或组织共享,也可以将其公开给整个世界。”
但是我无法在存储库中找到任何设置或文档信息来使软件包变为公共。 我想要实现的用例:具有SDK源代码的私有存储库以及公共(稳定版本)/私有(内部测试)软件包。
我们可以创建一个单独的公共存储库以发布公共版本,但这会增加一些额外的工作量,并破坏主要思想:将代码和软件包托管在一个地方。
GitHub Package Registry是一个软件包托管服务,类似于npmjs.org、rubygems.org或hub.docker.com,它允许您将软件包和代码放在一个地方。
非常感谢您的帮助和信息。
3个回答

5

正如你所怀疑的那样,目前无法按软件包设置可见性。它基于存储库的可见性。

根据发布说明

Github上的软件包继承与存储库相关联的可见性和权限,组织不再需要维护单独的软件包注册表,并在系统间镜像权限。


3
这很奇怪,因为我在公共仓库中发布了一个包,但如果您尝试下载它,它会要求进行身份验证。另请参阅:https://dev59.com/Lb3pa4cB1Zd3GeqPlMcC(目前没有答案)。 - Frans
1
好的,"public"并不意味着“通过Maven访问时公开可见" - 你仍然需要进行身份验证。 - Frans
2
很奇怪,但我的具有内部可见性的存储库创建的是私有包而不是内部包。即使在组织设置中启用了它。 - Souyama

2

包含组织级别权限的软件包。在组织内使用时,请确保启用所需内容。

设置 -> 软件包 -> 软件包权限 -> 软件包创建

GitHub organization settings screenshot - changing package visibility

之后返回组织主页,选择“包”选项卡 -> 点击您想更改可见性的包 -> 包设置(如下图所示)

enter image description here


1
记录一下:在点击“包设置”后,更改可见性的按钮位于“危险区域”下方。 - undefined

1

目前有一些限制,主要是针对公共包。Github 不希望用户删除或私有化公共包,因为其他人可能依赖它们。因此,即使通过 GraphQL API(只能删除私有包),也无法删除公共包。

enter image description here

如果仓库是从公共仓库派生的,您无法将仓库更改为私有仓库(从而使包变为私有)。 您需要复制存储库,这样它就成为了另一个存储库。
因此,在发布时请尽量避免出错 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接