安装 GitHub App,自动为你的提交添加时间戳
你已经自动化了构建、测试、代码检查和部署。那么,当你需要证明在先技术时,为什么还要手动为提交添加时间戳呢?困难的方式是逐个提交运行协议工具,并自己跟踪证明文件。Timestamp GIT 用一个托管式 GitHub App 取代了这一切,它会自动为每个提交添加时间戳,并将其锚定到比特币区块链上。
安装完成后的工作流刻意设计得平淡无奇:一次性安装 GitHub App,选择你要监控的仓库,然后让夜间流水线创建 .ots 证明回执。开发者机器上无需安装 CLI,发布前无需记住任何手动命令,也没有脆弱的本地时间戳存档。
本文涵盖一次性设置、从提交到比特币锚定之间发生的过程、如何监控证明,以及让你的证据经得起法庭检验的实践方法。
一次性设置:连接 GitHub App
自动化始于一次安装。之后,用于提交时间戳的 GitHub App 会为你完成重复性工作。
1. 安装 Timestamp GIT GitHub App
从 Timestamp GIT 仪表板将应用安装到你的个人账户或组织上。安装过程中,你像授权任何其他 GitHub App 一样授予仓库访问权限。
在标准模式下,应用需要:
- 对源仓库的读取权限。 GitHub 不提供仅提交哈希的权限,因此应用至少需要只读权限来检测提交哈希。
- 对目标仓库或分支的写入权限。 证明文件需要有存放位置。可以是源仓库中专用的
timestamps分支,也可以是单独的影子仓库。
即使拥有读取权限,应用也只会读取被监控仓库的 HEAD 提交哈希。它不会读取源文件、差异、议题或拉取请求内容。
2. 选择要监控的仓库
安装后,选择应接收自动时间戳的仓库。公共仓库可在免费计划中使用。私有仓库需要付费的 Pro 或 Enterprise 计划,具体取决于你的安全和合规需求。
无需修改任何应用代码。你不需要在开发者机器上安装任何东西,你的团队也不需要改变他们的提交工作流。
3. 选择证明交付方式
默认情况下,应用会创建一个专用的 Git 分支或影子仓库来存放证明工件。这样可以将证据与主源历史分开,避免用 .ots 文件污染拉取请求。
企业 ZK 模式:零代码访问
如果你的代码是专有的、受监管的或处于隔离网络中,企业 ZK 模式是更严格的选择。一个 12 行的 GitHub Action 在你的基础设施上运行,只将提交哈希推送到 Timestamp GIT API。
在此模式下,Timestamp GIT 应用完全不需要对你的源仓库拥有读取权限。你安装 GitHub Action,只有提交哈希离开你的环境。你的源代码永远不会离开。
可选:Docker 自托管模式
为了获得最大控制权,Timestamp GIT 也以 Docker 镜像的形式提供。这对于隔离环境或必须将所有基础设施保留在本地的组织非常有用。
一个最小的 Compose 配置如下:
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
使用以下命令启动:
docker compose pull
docker compose up -d
docker compose logs -f timestampgit
应用可在 http://localhost:8080 访问。首次启动时,设置向导会引导你连接 GitHub App 并配置实例。
自动化流水线:从提交到比特币锚定
GitHub App 安装完成后,时间戳流程会自动运行。
第 1 步:提交检测
在标准模式下,GitHub App 通过 webhook 检测新提交。在企业 ZK 模式下,你的 GitHub Action 在 CI/CD 过程中将提交哈希推送到 API。
无论哪种方式,进入 Timestamp GIT 流水线的唯一数据就是提交哈希。
第 2 步:夜间批处理和比特币锚定
提交哈希存储在内存键值存储中以进行批处理。每晚,一个 cron 工作进程会:
- 将所有待处理的提交哈希分组。
- 为每个仓库创建清单文件。
- 从每日批次构建 Merkle 树。
- 使用公共 OTS 日历创建 OpenTimestamps 证明。
- 将 Merkle 根锚定到比特币区块链中。
每日的 Merkle 根就是被嵌入比特币的内容。一旦该交易确认,哈希就被永久冻结在特定的比特币区块中。
第 3 步:证明交付
比特币交易确认后,Timestamp GIT 会将清单和 .ots 回执文件推送回专用的时间戳分支或影子仓库。
比特币确认通常在夜间批次提交后大约需要三小时。这意味着白天做出的提交通常会在第二天获得证明文件。
第 4 步:状态与验证
你可以从仓库状态仪表板查看锚定历史。公共仪表板显示:
- 证明持久性
- 最早锚定日期
- 每日锚定规律性
- 比特币区块和交易数据
- 日历热力图
- 可下载的审计 CSV 和 PDF 证书
对于程序化访问,提供了公共状态端点:
# 最后锚定的比特币区块信息
curl -s https://timestampgit.dev/api/statusLast/acme/payments-api
# 已提交和已盖戳的提交总数
curl -s https://timestampgit.dev/api/statusCount/acme/payments-api
# 用于 Shields.io 徽章的综合摘要
curl -s https://timestampgit.dev/api/statusSummary/acme/payments-api
该产品还提供了一个经过认证的徽章端点,让你可以通过一次请求生成 README 徽章。对于私有仓库,徽章 URL 包含加密的 HMAC,只有授权用户才能看到状态。
监控与故障处理
自动化并不意味着可以忽视系统。你应该像监控 CI 健康状况一样监控锚定规律性。
状态仪表板是发现缺失日期的最快方式。如果夜间批次没有产生证明,缺失的日期会在日历热力图和每日规律性视图中显示为空白。
对于程序化检查,上述端点可以接入你的内部监控:
- 使用
/api/statusLast/{user}/{repo}确认最近的比特币锚定。 - 使用
/api/statusCount/{user}/{repo}将已盖戳的提交数与预期提交数进行比较。 - 使用
/api/audit/{user}/{repo}以 CSV 格式下载完整的审计台账。
示例:
# 下载完整的审计台账
curl -OJ https://timestampgit.dev/api/audit/acme/payments-api
# 下载特定日期的 PDF 证书
curl -OJ https://timestampgit.dev/api/report/acme/payments-api/2026-09-13
由于系统在午夜批处理哈希,比特币确认大约需要三小时,因此在证明文件出现在时间戳分支之前,不要将新推送的提交视为已完成时间戳。
最后,任何人都可以独立地对照比特币区块链验证 .ots 文件。证明依赖于标准的 OpenTimestamps 回执和比特币区块数据,因此验证不依赖于 Timestamp GIT 的持续可用性。
自动时间戳的最佳实践
1. 在所有关键仓库上启用
只对公共仓库添加时间戳会让私有内部工作得不到保护。专利流氓和员工纠纷往往涉及从未离开你基础设施的专有系统。对这些仓库使用私有仓库计划或企业 ZK 模式。
2. 对商业秘密使用企业 ZK 模式
如果仓库包含商业秘密或受监管的代码,不要授予任何第三方应用读取权限。使用 GitHub Action,让只有提交哈希离开你的环境。
3. 保护时间戳分支
.ots 回执和清单文件是你的证据。将专用的时间戳分支或影子仓库视为不可变的证据存储。将写入权限限制为应用和必需的管理员。
4. 定期归档审计记录
按计划下载审计 CSV 和 PDF 证书,例如每季度一次或在重大发布之前。将副本保存在你的合规或法律档案中。区块链证明独立存在,但将审计轨迹整理好会让法律审查容易得多。
5. 在 README 中添加验证徽章
公开验证徽章是表明仓库已启用自动时间戳的简单方式。使用仪表板或认证 API 中的徽章链接,在 README 中嵌入 Shields.io 徽章。
常见问题
GitHub App 会读取我的源代码吗?
不会。在标准模式下,应用只读取 HEAD 提交哈希。在企业 ZK 模式下,你方的 GitHub Action 只将提交哈希推送到 API,因此应用对你的仓库没有任何访问权限。
一个提交需要多长时间才能完成时间戳?
提交在一天中持续收集,并在夜间批次中锚定到比特币。批次提交后,比特币确认通常需要大约 3 小时。确认后你会收到 .ots 证明文件。
我可以在不使用 Timestamp GIT 的情况下验证时间戳吗?
可以。证明是标准的 OpenTimestamps .ots 文件。任何人都可以下载该文件,并使用开源工具在本地对照比特币区块链进行验证。Timestamp GIT 还提供基于 Web 的验证器和 PDF 证书。
是否支持自托管?
支持。Timestamp GIT 提供用于自托管的 Docker 镜像,适用于隔离网络或高度受监管的环境。可应要求提供限时演示许可证。
结论:设置一次,高枕无忧
手动时间戳之所以脆弱,是因为它依赖于有人记得去做。基于 GitHub App 的流水线消除了这种故障模式。
使用 Timestamp GIT,你只需安装一次,选择仓库,然后让夜间工作进程将提交哈希锚定到比特币。你的团队继续正常编写代码。证据以 .ots 文件、审计报告和状态徽章的形式自动积累。
立即安装 Timestamp GIT GitHub App,或从公共仓库的免费计划开始。Pro 和 Enterprise 计划适用于私有仓库和更严格的零知识部署。
相关文章
- 初创公司如何在不申请专利的情况下保护软件知识产权
- 使用 Timestamp GIT 进行免费开源 Git 时间戳
- 什么是密码学时间戳,它如何保护你的代码?