使用 GitHub 应用自动化代码时间戳
如果你曾经手动为代码添加时间戳,你一定熟悉这套流程:生成哈希、将其复制到安全的地方、保存回执,然后为每一次有意义的提交重复以上步骤。这个过程重复、容易遗忘,而且在你最需要它的时候往往不堪一击。使用 GitHub 应用进行自动化代码时间戳可以彻底消除这些手动负担。
Timestamp GIT 是一个托管型 GitHub 应用,它能自动将你受监控仓库中的每一个提交哈希锚定到比特币区块链上。无需运行 CLI 工具,无需手动归档回执,也无需记住任何夜间批处理任务。你只需安装一次应用,系统就会在后台处理提交检测、密码学锚定和证明交付。
本文介绍一次性设置、自动化夜间流水线、监控与故障处理,以及构建持久化在先技术轨迹的最佳实践。
一次性设置:安装 GitHub 应用
整个设置过程都在 GitHub 界面中完成。
- 从 GitHub Marketplace 安装 Timestamp GIT GitHub 应用。
- 选择你想要监控的仓库。公共仓库在免费的 Open Source 计划中受支持;私有仓库可在 Pro Agency 和 Enterprise ZK 计划中使用。
- 授予所需权限。
权限要求取决于部署模式:
- 标准模式:应用需要对源仓库的只读访问权限。GitHub 不提供“仅提交哈希”的权限选项,因此应用需要读取权限才能获取 HEAD 提交哈希。应用还需要对存储证明的目标仓库具有读写访问权限。
- Enterprise ZK 模式:应用完全不需要对源仓库的读取权限。你基础设施上的 GitHub Action 仅将提交哈希推送到 Timestamp GIT API。你只需授予对目标证明仓库的读写访问权限。
无需安装 CLI 工具,也无需维护配置文件。安装完成后,应用即可使用。
对于隔离环境或完全自托管的环境,Timestamp GIT 也提供 Docker 镜像。如果你需要本地部署控制,请参阅专门介绍使用 Docker 自托管时间戳的文章。对于大多数团队来说,托管型 GitHub 应用是最快的路径。
自动化流水线:从提交到比特币锚定
Timestamp GIT 的核心是一条夜间自动化流水线,开发者无需任何日常操作。
每次提交后发生的事情
-
提交检测
在标准模式下,当你向受监控仓库推送新提交时,GitHub 应用会收到一个 webhook。在 Enterprise ZK 模式下,你的 GitHub Action 会将提交哈希推送到 API。 -
哈希队列
提交哈希被存储在一个内存键值存储中,等待批处理。 -
午夜 cron 工作进程
每晚,一个工作进程会将所有待处理的哈希分组,为每个仓库创建清单文件,原生构建 Merkle 树,并创建 OpenTimestamps 证明。每日批次的 Merkle 根被锚定到比特币区块链中。 -
证明交付
清单和.ots回执文件被推送回专用的 timestamps 分支或影子仓库。比特币确认通常需要大约三个小时,因此证明文件会在夜间锚定后的几个小时内出现。
该过程在架构上实现了零知识。Timestamp GIT 只能看到提交哈希——一个单向指纹——永远看不到你的源代码。在标准模式下,应用只读取 HEAD 提交哈希。在 Enterprise ZK 模式下,源代码永远不会离开你的环境,因为提交哈希是从你自己的 GitHub Action 运行器发送的。
使用 GitHub Action 的 Enterprise ZK 模式
如果你需要严格的源代码隔离,Enterprise ZK 模式是更强的选择。一个简短的 GitHub Action 在你的基础设施上运行,仅将提交哈希推送到 Timestamp GIT API。
一个典型的工作流如下:
name: Push commit hash to Timestamp GIT
on:
push:
branches:
- main
jobs:
timestamp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Send commit hash
run: |
curl -X POST "${{ secrets.TIMESTAMPGIT_SIGNED_URL }}" \
-H "Content-Type: application/json" \
-d "{\"commitId\":\"${{ github.sha }}\"}"
签名 URL 来自 Enterprise 设置向导,并作为 GitHub secret 存储。该 action 没有源代码检查步骤,也没有文件上传。
两种部署模式一览
| 模式 | 源代码访问 | 证明存储 | 最适合 |
|---|---|---|---|
| 标准 GitHub 应用 | 只读源仓库 | 专用分支或影子仓库 | 快速、零设置的自动化 |
| Enterprise ZK | 无源代码访问 | 你控制的目标仓库 | 商业机密、合规、严格安全 |
在两种模式下,底层的比特币锚定完全相同:每日 Merkle 根使用 OpenTimestamps 协议嵌入到比特币交易中。一旦交易在区块中得到确认,时间戳就无法被任何人篡改,包括 Timestamp GIT。
监控与故障处理
自动化只有在你能确信它仍在运行时才有价值。Timestamp GIT 提供了多个监控界面。
公开状态仪表板
每个仓库都有一个状态页面,显示:
- 最早的锚定日期
- 每日锚定规律性
- 比特币区块和交易数据
- 已打时间戳日期的日历热力图
- 可下载的审计 CSV 和 PDF 证书
你可以通过公开状态 API 查看最后锚定的比特币区块:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
示例响应如下:
{
"blockHeight": 862400,
"timestamp": "2026-09-25T00:37:00Z",
"status": "confirmed"
}
对于私有仓库,状态 URL 包含加密的 HMAC,只有授权用户才能查看时间戳状态。HMAC 特定于服务器实例。
出现故障时会发生什么
由于夜间批次按计划运行,一次失败的作业不会悄无声息地丢弃你的证明轨迹。系统会自动重试锚定过程。状态页面可以帮助你发现每日规律性中的缺口,并调查某个仓库是否停止发送新的提交哈希。
为了合规和记录保存,你可以下载完整的审计账本 CSV 以及特定日期的 PDF 证书:
GET /api/audit/{user}/{repo}— 完整审计 CSVGET /api/report/{user}/{repo}/{date}— 单日 PDF 证书
独立验证
任何人都可以在不信任 Timestamp GIT 仪表板的情况下验证时间戳。验证页面会在浏览器中本地逐步展示多层 Merkle 链验证。对于公共仓库,.ots 回执文件也可以使用标准 OpenTimestamps 验证工具对照比特币区块链进行验证。由于证明嵌入在比特币中,即使 Timestamp GIT 服务消失,它仍然可以验证。
自动化时间戳的最佳实践
当自动化锚定成为仓库生命周期的默认组成部分时,效果最佳。
- 为所有活跃仓库启用,而不仅仅是关键仓库。 广泛的在先技术轨迹比稀疏的轨迹更有力。有了自动化,为每个提交打时间戳的边际成本很低。
- 对专有或商业机密代码使用 Enterprise ZK 模式。 如果你希望时间戳服务提供商对源代码零访问,请从你自己的 GitHub Action 仅推送提交哈希。
- 定期下载审计 CSV 并单独存储。 在 GitHub 之外保留冗余副本。你的
.ots文件已经在你的仓库中,但额外的离线副本对于法律审计来说是廉价的保险。 - 在 README 中嵌入验证徽章。 公开徽章向协作者、客户和竞争对手发出明确信号,表明你的提交历史已被锚定。它们链接到公开验证查看器和 PDF 报告。
- 向客户发送 PDF 证书。 对于代理机构和自由职业者来说,每日 PDF 证书可以附加到发票或里程碑交付中,以证明工作完成日期。
- 考虑在隔离环境中使用 Docker 自托管。 如果你无法使用托管 SaaS,Docker 自托管许可证可以在你自己的基础设施上提供相同的自动化。
常见问题
使用 GitHub 应用进行自动化代码时间戳到底是什么?
使用 GitHub 应用进行自动化代码时间戳意味着你对受监控仓库的每一次提交都会自动以密码学方式锚定到比特币区块链,无需人工干预。应用检测新提交,每晚进行批处理,并创建不可篡改的证明回执。无需 CLI 工具或手动步骤。
Timestamp GIT 如何确保我的源代码永远不会被暴露?
Timestamp GIT 使用零知识架构。在标准模式下,应用只从你的仓库读取提交哈希——一个单向指纹。在 Enterprise ZK 模式下,你基础设施上的 GitHub Action 仅将提交哈希推送到 API,因此应用对你的源代码完全没有任何访问权限。
我可以在私有仓库中使用 Timestamp GIT 吗?
可以。Timestamp GIT 在 Pro Agency 和 Enterprise ZK 计划中支持私有仓库。对于私有仓库,状态徽章和验证 URL 包含加密的 HMAC,只有授权用户才能查看时间戳状态。
如果 Timestamp GIT 的服务宕机了怎么办?我还能验证我的时间戳吗?
即使 Timestamp GIT 消失,你的时间戳仍然可以完全验证。证明使用 OpenTimestamps 协议嵌入在比特币区块链中,你可以使用标准工具在本地进行验证。.ots 回执文件存储在你的仓库中,因此你始终保留着证据。
结论:设置一次,高枕无忧
手动时间戳是一种自动化可以彻底消除的负担。Timestamp GIT 将每一次提交转化为比特币锚定的存在证明,无需 CLI、无需夜间脚本、无需手动回执管理。你只需安装一次 GitHub 应用,系统就会处理其余的一切:提交检测、Merkle 树构建、比特币锚定和证明交付。
如果你准备好保护你的在先技术,而无需在工作流程中增加另一个手动过程,请从 GitHub Marketplace 安装 Timestamp GIT。定价从公共仓库免费的 Open Source 计划开始,Pro Agency 为 $49/月用于私有仓库,Enterprise ZK 为 $199/月提供零源代码访问。Docker 自托管许可证也适用于隔离环境或本地部署。
相关文章
- 为你的提交打时间戳的最佳 GitHub 应用
- 面向开发者的比特币时间戳:初学者指南
- 使用 Docker 自托管时间戳:Timestamp GIT
- 如何证明软件作者身份:开发者指南
- 如何验证 Git 提交时间戳
- 使用 GitHub 应用自动为 Git 提交打时间戳