Git同期
SpecDownのドキュメントをGitHubまたはGitLabリポジトリと同期。毎回の保存がコミットになり、 毎回のpushがpullをトリガーします。
Git同期には Pro プラン以上が必要です。
リポジトリの接続
- プロジェクト設定 → Git Integration に移動。
- プロバイダー(GitHub または GitLab)を選択。
- リポジトリURL(例:
https://github.com/org/repo)を入力。 - リポジトリ読み書き権限を持つ Personal Access Token (PAT) を生成。
- PATをトークンフィールドに貼り付けて Connect をクリック。
必要なPAT権限
GitHub PAT
repo(読み書き)workflow(CI用、オプション)
GitLab PAT
read_repositorywrite_repository
PATはpgcryptoで保存時に暗号化されます。APIレスポンスでは絶対に露出しません。
同期の仕組み
接続後、SpecDownは次のようにドキュメントを同期します:
- 保存時: SpecDownは設定されたブランチにドキュメントの
full_pathをファイルパスとして、.md拡張子でコミット。 - push時: リポジトリが新しいコミットを受信すると、SpecDownが変更をpullして対応ドキュメントを更新。
- 競合処理: 最後に書いた人が勝ち。SpecDownとGitの両方で同時に更新された場合、最新の変更が適用されます。
ブランチ設定
デフォルトでは SpecDown は main ブランチに同期。プロジェクト設定 → Git Integration → Target Branch で変更可能。
パス guides/api/auth のドキュメントは次のようにコミットされます:
docs/guides/api/auth.mdコミットメッセージ
コミット形式:
docs(specdown): update "Authentication Guide"
Updated via SpecDown editor
User: user@example.com
Project: my-api-docsWebhook(受信同期)
リポジトリへのpush時に自動pullを有効にするには、Gitプロバイダーで以下のwebhookを設定:
https://specdown.app/api/webhooks/gitContent-Type を application/json に、プロジェクト設定のwebhookシークレットでペイロードに署名。
同期ログ
全同期操作(push/pull)は プロジェクト設定 → Git Logs に記録。 ログにはコミットSHA、タイムスタンプ、ステータス(成功/エラー)、エラーメッセージが含まれます。
SpecDownから離れずに同期トラブルをデバッグできます。
切断
Git同期を切断するには プロジェクト設定 → Git Integration で Disconnect をクリック。 既存ドキュメントには影響しません — 今後の同期が停止するだけです。PATは即座にデータベースから削除されます。