This repository includes an automated workflow that creates OpenTimestamps proofs for commits and releases. Below are recommended steps and background to create stronger, verifiable timestamps for your work.
- Git commit metadata includes author and committer dates, which can be changed locally before pushing.
- GitHub release publish times are recorded by GitHub servers and are more trustworthy than local commit dates.
- For cryptographic, tamper-evident proof, combine signed commits/tags with an external timestamping system such as OpenTimestamps or a commercial TSA (RFC3161).
-
Create GPG-signed commits or tags
- Configure GPG and git (example):
git config user.signingkey <your-key-id>git config commit.gpgsign truegit commit -S -m "Your signed commit message"
- For signed tags:
git tag -s v1.0.0 -m "Release version 1.0.0"
- Configure GPG and git (example):
-
Use GitHub Releases for major milestones
- Tag and sign a release version:
git tag -s v1.0.0 -m "Release 1.0.0"git push origin v1.0.0
- Create a GitHub Release from the tag with release notes.
- The workflow will automatically stamp the release commit.
- Tag and sign a release version:
-
Manual OTS stamping (optional, for extra verification)
- Export a commit SHA to a file:
git rev-parse HEAD > sha.txtots stamp sha.txt- Keep
sha.txtandsha.txt.otstogether as your proof.
- Export a commit SHA to a file:
-
Verifying an OTS proof
- Install the OpenTimestamps client and run:
ots verify sha.txt
- The proof will show that the SHA existed at or before the anchored blockchain time.
- Install the OpenTimestamps client and run:
- The workflow
.github/workflows/ots-stamp.ymlstamps the commit SHA on push and publishes the proof as an artifact namedots-proof-<commit-sha>. - To download the proof:
- Go to the GitHub Actions tab
- Click on the workflow run for your commit
- Download the artifact from the artifacts section
- Extract and verify with
ots verify commit-sha.txt
- OpenTimestamps documentation: https://opentimestamps.org
- GPG signing guide: https://docs.github.com/en/authentication/managing-commit-signature-verification
- RFC3161 timestamping: https://www.ietf.org/rfc/rfc3161.txt