自動コードタイムスタンプ用GitHubアプリのインストール
自動コードタイムスタンプのための GitHub App のインストール
コードタイムスタンプ用の GitHub App をインストールして、すべてのコミットを自動的に Bitcoin ブロックチェーンに固定したいと考えています。スクリプトのメンテナンス、cron ジョブの実行、OpenTimestamps を自分で操作する必要はありません。それがまさに Timestamp GIT の機能です。GitHub App を一度インストールし、保護するリポジトリを選択するだけで、すべてのコミットがハッシュ化され、バッチ処理され、毎晩 Bitcoin に固定されます。セットアップ後の手動手順は一切ありません。
このガイドは実践的な内容です。評価だけでなく、実装する準備ができている方を対象としています。最後には、Timestamp GIT GitHub App がインストールされ、最初のリポジトリが接続され、検証バッジまたは監査証跡が整っている状態になります。
OpenTimestamps を手動で実行し、Bitcoin トランザクションを手作業で作成し、cron ジョブの面倒を見ることもできますが、それは大変な方法です。または、マネージド GitHub App をインストールして、Timestamp GIT にプロトコル全体をゼロセットアップのワークフローの背後に隠してもらうこともできます。この記事では最初の方法を説明します。
Timestamp GIT GitHub App をインストールするための前提条件
始める前に、以下を確認してください。
- GitHub 管理者権限: 保護したいリポジトリまたは組織に対する権限。GitHub App をインストールし、リポジトリアクセスを付与する権限が必要です。
- Timestamp GIT アカウント: timestampgit.dev で取得。GitHub ID でサインアップします。
- 2 つのデプロイモードの理解:
- 標準モード (GitHub App): アプリは監視対象リポジトリの HEAD コミットハッシュを自動的に読み取ります。GitHub はコミットハッシュのみの権限を提供していないため、ソースリポジトリへの読み取り専用アクセスが必要です。また、証明が保存されるターゲットリポジトリへの読み書きアクセスも必要です。
- Enterprise ZK モード (GitHub Action): 12 行の GitHub Action が独自のインフラストラクチャで実行され、コミットハッシュのみを Timestamp GIT API にプッシュします。アプリはソースリポジトリに一切アクセスしません。必要なのはターゲットリポジトリへの読み書きアクセスのみです。
- プライベートリポジトリをタイムスタンプする場合は有料プラン。無料の Open Source プランはパブリックリポジトリを対象としています。プライベートリポジトリには Pro Agency ($49/月) または Enterprise ZK ($199/月) が必要です。プライベートステータスページとバッジは暗号化された HMAC トークンで保護されます。
- ローカルツールや CLI ユーティリティは不要。すべては Timestamp GIT Web アプリと GitHub App を通じて管理されます。開発マシンには何もインストールしません。
ステップバイステップ: GitHub App のインストールと設定
ステップ 1: Timestamp GIT にログインし、GitHub App インストールページを開く
timestampgit.dev でサインインします。ログイン後、リポジトリ設定ページ(通常はダッシュボードの Your Repositories)に移動します。GitHub App をインストールするオプションをクリックします。
ステップ 2: GitHub アカウントまたは組織で Timestamp GIT を承認する
Install GitHub App をクリックします。GitHub は、個人アカウントと管理している組織のいずれかを選択するよう求めます。保護したいリポジトリを所有するアカウントを選択します。
ステップ 3: リポジトリを選択し、ソース権限を設定する
Timestamp GIT が監視するリポジトリを選択します。
- 標準モードでは、ソースリポジトリへの読み取り専用アクセスを付与します。GitHub はコミットハッシュのみの権限を提供していないため、GitHub App にはこの権限が必要です。Timestamp GIT はコミットハッシュのみを抽出し、ソースコードを読み取ったり保存したりすることはありません。
- Enterprise ZK モードでは、ソースリポジトリへのアクセスを一切付与しません。GitHub Action は CI パイプラインで実行され、ハッシュのみを API に送信するため、アプリがコードに触れることはありません。
ステップ 4: タイムスタンプ証明の保存先を選択する
ターゲットリポジトリを選択します。ソースコードと同じリポジトリでも、別のシャドウリポジトリでもかまいません。Timestamp GIT は、マニフェストファイルと .ots レシートをターゲットリポジトリの専用 timestamps ブランチにプッシュします。
標準モードでは、ターゲットリポジトリに読み書きアクセスが必要です。Enterprise ZK モードでは、ターゲットリポジトリへの読み書きアクセスのみが必要です。
ステップ 5: Enterprise ZK モードの場合、GitHub Action ワークフローを追加する
Enterprise ZK モードを選択した場合、Timestamp GIT ダッシュボードが 12 行の YAML スニペットを生成します。それをソースリポジトリのワークフローファイル(例: .github/workflows/timestampgit.yml)にコピーします。
生成されるワークフローは次のようになります(ダッシュボードの正確なスニペットを使用してください)。
# Enterprise ZK Mode workflow generated by Timestamp GIT.
# This runs on your infrastructure and sends only commit hashes.
name: timestamp-git-zk
on:
push:
branches: [main]
jobs:
send-hash:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Send commit hash to Timestamp GIT
env:
TIMESTAMPGIT_HMAC: ${{ secrets.TIMESTAMPGIT_HMAC }}
run: |
# The exact command is generated by Timestamp GIT.
# It pushes the HEAD commit hash to the API endpoint.
このアクションはコミットハッシュのみをプッシュします。ソースコードが環境の外に出ることはありません。
ステップ 6: Timestamp GIT ダッシュボードでセットアップを確認する
Timestamp GIT に戻り、インストールを確認します。標準モードでは、GitHub App が GitHub Webhook を通じて自動的にコミットの検出を開始します。Enterprise ZK モードでは、Action が各プッシュ時にコミットハッシュを API にプッシュします。
この時点で、Your Repositories にリポジトリがリストされ、接続済みであることを示すステータスが表示されるはずです。
ステップ 7: README に検証バッジを追加する
リポジトリ接続ページ(https://timestampgit.dev/connected/{user}/{repo})から、Shields.io バッジのマークダウンスニペットをコピーします。実際のユーザー名とリポジトリ名を入れると、次のようになります。
[](https://timestampgit.dev/status/your-user/your-repo)
これを README.md に貼り付けます。公開訪問者はバッジをクリックして、リポジトリの公開検証ステータスを確認できます。
タイムスタンプが機能していることを確認する方法
インストール後、毎晩のバッチ処理と Bitcoin の承認を待ちます。最初のコミットが正しく固定されたことを確認する方法は次のとおりです。
-
リポジトリステータスページを確認する。
https://timestampgit.dev/status/{user}/{repo}を開きます。最も古いアンカー日、毎日の規則性、Bitcoin ブロックとトランザクションデータ、スタンプされたコミットのカレンダーヒートマップが表示されます。 -
timestamps ブランチを探す。 ターゲットリポジトリ(またはシャドウリポジトリ)で、専用の timestamps ブランチを確認します。各日次バッチのマニフェストファイルと
.otsレシートファイルが含まれています。 -
ブラウザでローカル検証を実行する。
https://timestampgit.dev/verification/{user}/{repo}/{date}にアクセスします。このページは、Merkle チェーン検証をブラウザ内でローカルに段階的に実行します。ゼロ知識であり、何を検証しているかは誰にも見えません。何もインストールする必要はありません。 -
コンプライアンス記録をダウンロードする。 監査 CSV および PDF 証明書エンドポイントを使用します。例:
https://timestampgit.dev/api/audit/{user}/{repo}は完全な監査台帳を CSV としてダウンロードします。https://timestampgit.dev/api/report/{user}/{repo}/{date}は特定の日の PDF 証明書をダウンロードします。
-
タイミングを覚えておく。 コミットは毎晩 cron ワーカーによってバッチ処理されます。その後、Merkle ルートが Bitcoin トランザクションに固定されます。Bitcoin の承認には通常約 3 時間かかるため、証明は通常翌日に利用可能になります。コミット直後に証明が表示されなくても、それは想定どおりです。
一般的なインストール問題のトラブルシューティング
問題: コミットがタイムスタンプされない。
GitHub App に正しい権限があり、Timestamp GIT ダッシュボードでリポジトリが選択されていることを確認してください。標準モードでは、アプリはソースリポジトリへの読み取り専用アクセスとターゲットリポジトリへの読み書きアクセスが必要です。Enterprise ZK モードでは、GitHub Action がソースリポジトリにインストールされ、API にプッシュするように設定されている必要があります。
問題: 1 日経っても証明が表示されない。
毎晩の cron ワーカーが実行され、Bitcoin トランザクションが承認されたことを確認してください。Bitcoin の承認には通常、バッチ処理後約 3 時間かかります。リポジトリステータスページで最後に固定されたブロック情報を確認してください。24 時間以上経過している場合は、ターゲットリポジトリに timestamps ブランチがあり、GitHub App にまだ書き込みアクセスがあることを確認してください。
問題: プライベートリポジトリのステータスが表示されない。
プライベートリポジトリのステータスページとバッジは、暗号化された HMAC トークンで保護されています。HMAC 値を含む認証済み URL を使用していることを確認してください。また、有料プラン(Pro Agency または Enterprise ZK)に加入していることも確認してください。無料の Open Source プランはプライベートリポジトリを対象としていません。
問題: Enterprise ZK モードでハッシュがプッシュされない。
GitHub Action ワークフローファイルが .github/workflows/ に存在し、TIMESTAMPGIT_HMAC シークレットがリポジトリ設定で正しく設定されていることを確認してください。GitHub Actions のワークフロー実行ログを確認して、API エンドポイントに到達可能であり、アクションが正常に完了したことを確認してください。
問題: 公開検証ページまたはダウンロードした .ots ファイルでローカル検証が失敗する。
特定の日付に対して正しい .ots ファイルを使用していることを確認してください。ブラウザ外で検証する場合は、ローカルの OpenTimestamps ツールが最新であることも確認してください。検証ページ自体はすべての計算をローカルで実行するため、最新のブラウザであれば動作するはずです。
FAQ
Timestamp GIT GitHub App は私のソースコードにアクセスできますか?
標準モードでは、GitHub がコミットハッシュのみの権限を提供していないため、GitHub App はソースリポジトリへの読み取り専用アクセスを必要とします。ただし、Timestamp GIT はコミットハッシュのみを抽出し、ソースコードを読み取ったり保存したりすることはありません。Enterprise ZK モードでは、GitHub Action が独自のインフラストラクチャで実行され、コミットハッシュのみを API にプッシュするため、アプリはソースリポジトリに一切アクセスしません。
コミットが Bitcoin ブロックチェーンにタイムスタンプされるまでどのくらいかかりますか?
コミットは毎晩バッチ処理されます。バッチ処理後、Merkle ルートが Bitcoin トランザクションに固定されます。Bitcoin の承認には通常約 3 時間かかるため、証明は通常翌日に利用可能になります。リポジトリダッシュボードでステータスを監視できます。
プライベートリポジトリで Timestamp GIT を使用できますか?
はい、プライベートリポジトリは Pro Agency ($49/月) および Enterprise ZK ($199/月) プランでサポートされています。無料の Open Source プランはパブリックリポジトリに限定されています。プライベートリポジトリのステータスページとバッジは、暗号化された HMAC トークンで保護されています。
Timestamp GIT が廃業した場合はどうなりますか? タイムスタンプはまだ検証できますか?
証明は .ots ファイルとしてリポジトリに保存され、Bitcoin ブロックチェーンに固定されています。標準の OpenTimestamps ツールと Bitcoin ブロックデータを使用して独立して検証できます。独自技術は必要ないため、Timestamp GIT がなくても証拠は有効です。
結論: 今日からコードの保護を始めましょう
Timestamp GIT GitHub App のインストールには数分しかかかりません。その後は、監視対象リポジトリへのすべてのコミットが自動的にフィンガープリント化され、バッチ処理され、Bitcoin ブロックチェーンに固定されます。裁判で使用できる証拠、ベンダー非依存の証明、継続的な労力ゼロを手に入れられます。
エアギャップ環境やセルフホスト環境で最大限のセキュリティが必要な場合、Timestamp GIT は期間限定のデモライセンス付き Docker イメージとしても利用可能です。しかし、ほとんどのチームにとって、マネージド GitHub App は暗号学的先行技術への最速の道です。
Timestamp GIT から始めて、サインアップし、GitHub App をインストールし、今日最初のリポジトリを接続しましょう。