自動Gitコミットのタイムスタンプを数分で設定
自動Gitコミットタイムスタンプを数分でセットアップ
コードがいつ書かれたのかを証明しようとしたことがある人なら、手作業の繰り返しをご存じでしょう。重要なコミットのたびにタイムスタンプコマンドを実行し、レシートを耐久性のある場所に保存し、どのファイルが対象かを覚えておき、後で紛争の中心になるかもしれないコミットを1つでもスキップしていないことを祈る。それは反復的で、エラーが起こりやすく、実際のプロジェクトの寿命全体にわたって維持するのはほぼ不可能です。
自動Gitコミットタイムスタンプは、その負担を完全に取り除きます。適切なマネージドサービスを使えば、それは数分で完了する一度きりのセットアップであり、継続的な雑務ではありません。Timestamp GITはまさにそれを提供します。毎晩、あなたのコミットハッシュをBitcoinブロックチェーンに固定するGitHub Appで、CLIを操作したりレシートファイルを管理したりする必要はありません。
この記事では、セットアップ、自動化パイプライン、監視、ベストプラクティスについて説明します。これで設定したらあとは忘れるだけです。
排除できる反復的なタスク
従来のタイムスタンプワークフローでは、開発者は手動ステップのループに追い込まれます。
- 各コミット後にタイムスタンプツールを実行する(さもなければ重要なものを逃すリスクがある)
- マシンやリポジトリをまたいで
.otsレシートファイルを追跡する - どのコミットが固定済みで、どれが未固定かを覚えておく
- 新しいブランチやリポジトリにプッシュするたびにプロセスを再実行する
- 先行技術を証明する必要があるときにレシートを手動で検証する
これは脆いものです。人間は忘れます。レシートは失われます。「このコードをこの日付に書いた」ことを証明するという考え全体が、プロセスが記憶と規律に依存していると崩壊します。
基盤となるOpenTimestampsプロトコルを自分で実行することもできますが、それはCLIコマンドのスクリプト化、レシートの処理、ブロックチェーンの確認の追跡を意味します。それは難しい方法であり、まさにTimestamp GITが排除するものです。
Timestamp GITはすべてのステップを自動化します。GitHub Appがインストールされると、監視対象リポジトリへのすべてのコミットが収集され、バッチ処理され、毎晩Bitcoinに固定されます。コマンドを実行したり、レシートを管理したり、何かをタイムスタンプすることを覚えておく必要はありません。それは最も真の意味での自動Gitコミットタイムスタンプです。
インストール自体の詳細な手順については、自動コードタイムスタンプのためのGitHub Appのインストールを参照してください。この記事では、エンドツーエンドのセットアップとその後に実行される自動化に焦点を当てます。
一度きりのセットアップ:リポジトリを接続する
セットアップには数分かかります。流れは次のとおりです。
- Timestamp GIT GitHub AppをGitHub Marketplaceからインストールします。
- 監視したいリポジトリを選択します。 プランに応じてパブリックまたはプライベートリポジトリがサポートされます。
- 権限モデルを選択します:
- 標準モード:GitHub Appはソースリポジトリへの読み取り専用アクセスを必要とします。読み取るのはHEADコミットハッシュのみで、ファイルの内容は決して読み取りません。
- Enterprise ZKモード:ソースコードへの読み取りアクセスは一切ありません。インフラストラクチャ上のGitHub ActionがコミットハッシュのみをTimestamp GIT APIにプッシュします。ソースコードが環境から出ることはありません。
- インストールを確認します。
その後、手動のステップは一切ありません。システムはリポジトリを監視し、新しいコミットを自動的に検出し、毎晩タイムスタンプパイプラインを実行します。
Dockerイメージを介してセルフホスティングする場合、セットアップウィザードがGitHub Appの接続とインスタンスの設定を案内します。ほとんどのチームにとって、SaaS GitHub Appが最速の道です。
自動化パイプライン:コミットからBitcoinアンカーまで
リポジトリを接続した後に起こることは次のとおりです。
毎晩のバッチ処理
すべてのコミットハッシュは、到着時にインメモリキューに保存されます。毎晩、ワーカーが実行され、各リポジトリの保留中のすべてのハッシュをグループ化します。マニフェストファイル(.txt)を作成し、Merkleツリーをネイティブに構築し、公開カレンダーを使用してOpenTimestamps証明を生成します。
毎日のバッチのMerkleルートは、OpenTimestampsプロトコルを介してBitcoinブロックに固定されます。ブロックチェーンで確認されると、タイムスタンプは不変になります。Timestamp GITを含むいかなるエンティティも、それを変更または偽造することはできません。
証明の配信
アンカーが確認された後(通常約3時間)、Timestamp GITはマニフェストと.otsレシートファイルを専用のtimestampsブランチまたはシャドウリポジトリのリポジトリにプッシュバックします。手動で何かを取得する必要はありません。証明はコードと並んでバージョン管理されます。
Enterprise ZKモードを12行で
ソースコードへの読み取りアクセスを付与できない場合、Enterprise ZKモードはインフラストラクチャ上で実行されるGitHub Actionを使用します。コミットハッシュのみをAPIにプッシュします。最小限の動作例は次のとおりです。
name: Timestamp commit hash
on: [push]
jobs:
anchor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
curl -X POST "https://timestampgit.dev/api/timestamp/${{ github.repository }}/${{ github.ref_name }}/${{ github.sha }}/${{ secrets.TIMESTAMPGIT_HMAC }}"
これがアクション全体です。実際のテンプレートはEnterprise ZKセットアップ中に提供されますが、原則はシンプルです。コミットIDと署名付きHMACをAPIに送信するだけで、それ以外は環境から出ません。
ステータス、検証、監査のためのREST API
自動化はレポートにも及びます。公開エンドポイントを使用すると、ダッシュボードにログインせずに証明状態を照会できます。
# 最後に固定されたBitcoinブロック情報
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
# コミット/スタンプ済みコミットの総数
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
# Shields.ioバッジ用の結合サマリー
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
# 完全な監査台帳をCSVとしてダウンロード
curl -O https://timestampgit.dev/api/audit/your-org/your-repo
# 特定の日付のPDF証明書をダウンロード
curl -O https://timestampgit.dev/api/report/your-org/your-repo/2026-08-19
プライベートリポジトリの場合、これらのURLにはインスタンス固有の暗号化されたHMACが含まれるため、許可されたユーザーのみがステータスにアクセスできます。これらはすべて自動であり、開発者の介入は必要ありません。
監視と障害処理
パイプラインが実行されたら、証明ステータスの可視性と問題を検出する方法が必要です。
公開ステータスダッシュボード
各リポジトリには、https://timestampgit.dev/status/{user}/{repo}で公開ダッシュボードが用意されています。表示される内容:
- 証明の寿命と最も早いアンカー日
- コミットとアンカーの毎日の規則性
- 各アンカーのBitcoinブロックとトランザクションデータ
- タイムスタンプアクティビティのカレンダーヒートマップ
任意の日付の監査CSVとPDF証明書をダウンロードすることもできます。これらはコンプライアンスとオフラインの記録保持に役立ちます。
埋め込み可能な検証バッジ
Timestamp GITは、READMEに貼り付けることができるバッジスニペットを提供します。バッジはライブ検証ステータスを表示し、誰でもMerkleチェーンを検査できる公開検証ページにリンクします。ページはすべての計算をブラウザ内でローカルに実行します — ゼロ知識検証です。
遅延と欠落日の処理
Bitcoinの確認には時間がかかり、通常約3時間です。システムはこの遅延を自動的に処理します。証明はアンカーが確認されると書き込まれます。毎晩の締め切り後にコミットした場合、ハッシュは翌日のバッチに含まれます。
ある日にコミットがない場合、その日のタイムスタンプは生成されません。既存の証明は有効なままで、システムは単に空のバッチをスキップします。
プライベートリポジトリの場合、HMAC署名付きURLがステータスおよび検証ページへのアクセスを保護します。正しいHMACを持つ人だけが証明状態を見ることができます。
信頼性の高いタイムスタンプのためのベストプラクティス
自動Gitコミットタイムスタンプを最大限に活用するには、次のガイドラインに従ってください。
- 定期的にコミットする。 システムは毎晩保留中のハッシュを固定します。毎日のコミットは毎日のアンカーを意味し、継続的な記録を構築します。
- 証明ブランチまたはシャドウリポジトリをそのまま維持する。
.otsファイルやtimestampsブランチを削除しないでください。それらはあなたの証拠です。 - ソースアクセスが制限されている場合はEnterprise ZKモードを使用する。 ソースリポジトリへの読み取りアクセスを付与できない場合、GitHub Actionアプローチはコードをローカルに保ちながらハッシュを固定します。
- エアギャップまたは高セキュリティ環境では、Dockerセルフホストライセンスを検討する。 Docker Composeファイルを使用して、Timestamp GITを完全に独自のインフラストラクチャ上で実行できます。
- 定期的に監査CSVとPDF証明書をダウンロードする。 法的またはコンプライアンスの目的で、別のアーカイブ場所に保存してください。
- ダッシュボードのヒートマップを監視する。 ヒートマップのギャップは、その日にコミットが固定されなかったことを示します。コミットがなかったか、何かがうまくいかなかったかのどちらかです。ダッシュボードはこれを明確にします。
FAQ
自動Gitコミットタイムスタンプはどのように機能しますか?
Timestamp GITはGitHub Appを使用して新しいコミットを自動的に検出します。毎晩、コミットハッシュを収集し、Merkleツリーを構築し、OpenTimestampsを介してルートをBitcoinブロックチェーンに固定します。証明レシート(.otsファイル)はリポジトリにプッシュバックされ、存在の不変の証拠を提供します。
ソースコードがTimestamp GITに公開されることはありますか?
いいえ。標準モードでは、GitHub Appはコミットハッシュのみを読み取り、ファイルの内容は読み取りません。Enterprise ZKモードでは、インフラストラクチャ上のGitHub ActionがハッシュのみをAPIにプッシュするため、ソースコードが環境から出ることはありません。
1日コミットを逃した場合はどうなりますか?
ある日にコミットがない場合、その日のタイムスタンプは生成されません。システムは発生したコミットのハッシュのみを固定します。既存の証明は有効なままで、将来のコミットは自動的にタイムスタンプされます。
Timestamp GITのサーバーに依存せずにタイムスタンプを検証できますか?
はい。.otsレシートファイルは、標準のOpenTimestampsツールを使用してBitcoinブロックチェーンに対して独立して検証できます。Timestamp GITは、すべての計算をローカルで実行するブラウザベースの検証ページも提供します。
設定したらあとは忘れるだけ
自動Gitコミットタイムスタンプは、退屈でエラーが起こりやすい雑務をバックグラウンドプロセスに変えます。GitHub Appを一度インストールし、リポジトリを接続すれば、すべてのコミットが毎晩Bitcoinに固定されます。手動コマンドも、レシート管理も、覚えておくこともありません。
Timestamp GITはこれを可能にするマネージドサービスです。OpenTimestampsの複雑さをクリーンなGitHub Appの背後に隠し、証明をリポジトリに直接配信し、検証のためのダッシュボード、バッジ、APIを提供します。始める準備はできましたか?GitHub Appをインストールし、リポジトリを接続して、毎晩のアンカーを開始しましょう。