Release checksums on GitHub #23512
-
Hi, how can I view the SHA256 checksum for a release on GitHub? I need such checksums for new easyconfig files in EasyBuild. Can’t find checksums anywhere! Thanks. |
Beta Was this translation helpful? Give feedback.
Replies: 14 comments 7 replies
-
Hello and welcome to the community @Ghepardo. GitHub doesn’t have built-in support for checksums in Releases. The author of the release would have to include that information in the release notes. Let us know if you have more questions. |
Beta Was this translation helpful? Give feedback.
-
Hi, thanks and noted, @lee_dohm. Given that GitHub is a software repository, it is very strange that it does not enforce checksums for releases. Otherwise, how is any consumer of the software to have confidence that their copy of it has not been tampered with or damaged? This is a basic requirement for any respectable repository. |
Beta Was this translation helpful? Give feedback.
-
Ghepardo:
Traditional checksum systems don’t give any real evidence that the file downloaded has not been tampered with or damaged. It only signifies that the person who was able to modify two separate files on the same server was able to make them agree. There is no evidence available to the person downloading those two files that the person who last modified them is someone they trust. For example, Linux Mint was compromised in exactly this way. In order to offer evidence that a file has not been tampered with or damaged, it would require a digital certificate as part of the file itself, signed with a key that can be verified by a trusted mechanism. The GitHub releases system works well with these kinds of protocols. When using one of these protocols, checksums are superfluous. |
Beta Was this translation helpful? Give feedback.
-
Thanks @lee-dohm for your excellent observations, from which I have learned much. |
Beta Was this translation helpful? Give feedback.
-
In my case, an installer file (70MB) takes forever to download from Amazon S3 (20KB/s) and it always times out before completion. I had to download it from other sources, but I want to verify that the downloaded file is identical to the release on Github. Providing a hash of the release files would be valuable to many users. |
Beta Was this translation helpful? Give feedback.
-
SHA256 is pretty solid and definitely not easily reproducible! Thanks |
Beta Was this translation helpful? Give feedback.
-
I also miss checksums. If I would make one myself, maybe the file got corrupted while downloading it on my machine. |
Beta Was this translation helpful? Give feedback.
-
While there are still many attacks when sums are just published on the same site with the release, sums still do their job to prove that:
Moreover many package managers REQUIRE AND ENFORCE presence of checksums. If you want to download something in your automated builds you MUST specify checksum. Ignoring this just makes github and its flows extremely unfriendly to software engineers. Making this question as solved just show that github pays little attention to its users’ problems. |
Beta Was this translation helpful? Give feedback.
-
I agree that checksums should be standard on GitHub releases, and there are multiple reasons to do so as well as ways to deal with the security weaknesses of doing so. However, I don’t think commenting here is going to do anything to encourage that or even likely be seen by anyone who can push to make that happen. I may be wrong, but I think the GitHub feedback is the place to do so, so I created an issue there. Everyone who agrees checksums are important and should be added should +1 that issue. |
Beta Was this translation helpful? Give feedback.
-
This can be accomplished by Github Actions. Here is a primitive release action I have created for a project that calculated the sha256 when a release is published:
The one thing I am still looking for is a simple way to write that SHA 256 back into the release notes |
Beta Was this translation helpful? Give feedback.
-
Could potentially use the Releases API for this. |
Beta Was this translation helpful? Give feedback.
-
I expected this to be part of the Releases API |
Beta Was this translation helpful? Give feedback.
-
https://github.com/wangzuo/action-release-checksums I created this github action for generating checksums in github release. It will automatically generate a name: Release
permissions:
contents: write
on:
push:
tags:
- "v*.*.*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Release
uses: softprops/action-gh-release@v1
- name: Checksums
uses: wangzuo/action-release-checksums@v1 |
Beta Was this translation helpful? Give feedback.
-
It appears when downloading a file from GitHub releases, a |
Beta Was this translation helpful? Give feedback.
Hello and welcome to the community @Ghepardo.
GitHub doesn’t have built-in support for checksums in Releases. The author of the release would have to include that information in the release notes.
Let us know if you have more questions.