上周五,GitHub 发布了一项重要更新:
GitHub Package Registry
,它可以帮助开发者们轻松查找、管理和发布确保项目正常运行的软件包。
这是 GitHub 在 2018 年 6 月被微软以75亿美元收购以后,公司推出的第一个重要新产品。Package Registry
对于个人用户是免费
的,不过 GitHub 表示将会在未来提供付费企业版,并添加围绕安全与合规性的附加功能。
GitHub Package Registry 目前尚处于公开测试阶段,注册使用链接:
https://github.com/features/package-registry/signup
有了它,用户可以把自己的软件包传上GitHub,就像发布源码那样。
GitHub 的新功能为开发者们解决了大问题,
有人表示开心:“好事啊,我现在同时用着好几个包管理器,都能放到一起来搞的话,真是诱人。”
也有不少人担心:“我的NPM是不是药丸?”“看到GitHub垄断就不高兴。”
那么,这到底是一项怎样的服务?会给包管理工具的世界,带来怎样的震荡?
据 GitHub 产品负责人 Bryan Clark 等人介绍,Package Registry 被设计得非常易于使用,并
已支持多种编程语言和工具
,如:
-
npm (JavaScript)
-
Maven (Java)
-
RubyGems (Ruby)
-
NuGet (.NET)
-
Docker images
GitHub 正在努力增加对其他语言的支持,并计划每年推出新功能。
GitHub Package Registry 与 GitHub 完全集成,用户可以使用相同的搜索、浏览和管理工具来查找和发布包,这与存储库的使用方式一样。用户还可以使用相同的用户和团队权限来同时管理代码和包。依托 GitHub 的全球加速 CDN,GitHub Package Registry 可提供快速可靠的下载。
包与代码一起
在进行一个依赖于包的项目时,用户通常需要信任这些包,了解它们的代码,并且需要与创建它们的团队联系。在组织内部,你需要快速找出被允许使用的内容。GitHub Package Registry 使用户能够更方便地使用同一个 GitHub 界面来查找 GitHub 上的任意公共包或者自己组织、存储库内部的私有包。
GitHub Package Registry 与常见包管理客户端兼容,用户可自行选择工具来发布包。如果用户的存储库更复杂,则能够发布不同类型的多个包。同时,借助于 webhooks 和 GitHub Actions,用户可以完全自定义自己的发布和发布后工作流程。
发布一个开源包?大多数开源项目在 GitHub 上有自己的代码,用户可以先发布包的预览版本(prerelease version),在社区内部进行测试,之后就可以将包的特定版本(specific version)推介到自己选择的 public registry。
统一的标识和权限
如果,你用了许多不同的系统来发布代码和软件包,那就需要许多套不同的 (身份认证用的) 用户凭据和权限。
但现在在GitHub上,代码和包可以用一套用户凭据,也可以用同样的工具来管理访问权限。
GitHub上的软件包,延用了Repo的可见性 (Visibility) 和权限 (Permissions) ,这样团队就不用再跨系统去维护一个单独的Registry,以及镜像的权限了。
包视图
GitHub上托管的软件包,都有详细信息、下载统计,以及完整的历史记录可以查看。