GitHub尝试更改发布档案的校验和。你应该开始自己举办。
通过使用像Artifactory这样的二进制包管理器,将您的CI/CD管道与校验和和不可变性问题隔离开来。

昨天,GitHub改变了他们提供的档案的制作方式。这一变化的结果令开发人员感到惊讶,在世界各地的大多数生态系统中引发了管道故障。根据这篇GitHub文章这是最近Git本身变化的结果,Git在大约六个月前发布,现在刚刚部署在GitHub中,具有不可预见的影响。值得庆幸的是,这个改变已经被撤销了。
为什么这个改变到GitHub档案破坏了你的管道?
对于开发人员和CI工具来说,验证从互联网上下载的内容是标准实践。通常情况下,这只是提前保存已知的校验和,然后将其与后续的每次下载进行比较,以确保它没有更改。想象一下,有人用恶意的东西替换了源代码或工具,你想在打开它之前知道。
通过更改用于生成源存档的默认压缩,这些存档包的校验和也发生了变化。因此,当验证你刚刚试图从GitHub下载的文件的校验和时,它不再匹配已知的校验和,抛出一个错误并破坏你的管道。
如何防止校验和更改破坏我的管道?
值得庆幸的是,GitHub很快就恢复了这个更改,但到恢复的时候,大多数人可能失去了一天的生产力(或者最终花了一天时间弄清楚发生了什么,然后写了一篇关于它的博客)。
那么,未来如何防止输油管道中断呢?简单回答——使用Artifactory.
你可以很容易地通过代理GitHub tarball,甚至整个分支风投公司库哪些提供了常用的代理和缓存功能远程存储库.
为了亲自测试,我遵循了设置以创建新的存储库使用默认设置。我使用“Set Me Up”向导复制了提供的命令,然后我就重新启动并运行了。

现在我在JFrog平台的云实例中有了这些版本的副本。测试我自己的一个项目,强行将一个标签推到不同的提交,我仍然收到原始的校验和!
保护自己免受上游中断或更改的影响,托管自己的关键组件副本。
GitHub很可能会在不久的将来再次尝试更新他们的压缩文件。希望它的破坏性会小一些,但为什么要冒这个险呢?
现在使用Artifactory代理GitHub,以避免未来出现恶意代码或被阻止在项目中构建的问题。这也是你今天可以免费做的事情。只要注册你的免费云实例JFrog的入门。
