不使用个人访问令牌如何使用Github Packages?

5

我目前从事的项目使用GitHub Packages来部署我们的私有节点包。我们当前的工作流程是每个开发人员都创建和维护自己的个人访问令牌,然后我们使用一个中央帐户的PAT进行AWS自动化。

我想知道是否可能在不使用Actions或PAT的情况下验证GitHub Packages?

2个回答

7

截至2022年7月30日

不,无法在没有个人访问令牌(PAT)的情况下使用 GitHub Packages:

  • 没有 PAT 就无法上传(这很合理,因为它可以防止随意向您的包存储库上传二进制文件的人)。
  • 没有 PAT 就无法下载(即使是公开可用的软件包也不能使用)。

早在 2019-10-20,人们就要求 GitHub 删除 PAT 作为主要下载公共软件包的要求。
其想法是,库的用户不应该需要拥有 GitHub 帐户才能访问开发者的软件包。

遗憾的是,到今天为止, Github 没有授予无需 PAT 下载软件包的请求。

如果您想要一个免费麻烦的软件包注册表,最好寻找其他注册表,例如 MavenCentral 或 JitPack(不一定适用于节点包),
或者自己托管服务。


我甚至只能链接一个缓存的网页,因为原问题已经与一堆相关问题从 Github 社区中删除了。 Github 上另一个问题声称“无需 PAT 访问包”仍在计划中,预计于“2021年秋季”推出,链接在这里。 我找不到这个特性的当前状态。


编辑:使用 jitpack.io,可以在没有 PAT 的情况下从公共存储库下载二进制文件。 Jitpack 在其服务器上构建给定的 jar/aar。 您可以将jitpack添加为构建系统的存储库,并使用jitpack指定的URL引用发布、分支或特定提交。 遗憾的是,目前还没有办法引用包。 但是,此系统允许用户在不需要 PAT 或 Github 帐户的情况下使用您的代码。


2
你确定这仍然是正确的吗?文档表明公共包可以在没有身份验证的情况下访问:https://docs.github.com/en/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility - Jeff Widman
1
有趣!由于这种“必须验证才能安装公共包”的愚蠢行为,我已经完全迁移到了 GitHub Packages 之外。根据 https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry:“您需要访问令牌才能发布、安装和删除私有、内部和公共软件包。”看起来 GitHub 的文档自相矛盾。如果有人正在使用 GitHub Packages,请给予建议。 - Sebastiaan Alvarez Rodriguez

0
我想提供一种替代方案。
您可以使用我的Gradle插件(magik,我曾经和您一样处境),以更轻松地从Github Packages获取构件,供Gradle客户端使用。
它要求您将只读PAT保存在仓库本身上,这样用户就不必处理任何身份验证问题(除了使用上述插件)。

想再次强调,这是针对一个node.js项目的。Gradle并没有涉及,仅仅为了避免管理一个令牌而采取这种方式是不明智的,会带来很大的负担。强烈建议不要采用这种方法。 - therealdakotal
哦,抱歉!我没有意识到这是关于Node.js的。 - elect
@Djlewald,思考一下,你想合作支持 Node.js 吗? - elect

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