SpecDown

Git同期

SpecDownのドキュメントをGitHubまたはGitLabリポジトリと同期。毎回の保存がコミットになり、 毎回のpushがpullをトリガーします。

Git同期には Pro プラン以上が必要です。

リポジトリの接続

  1. プロジェクト設定 → Git Integration に移動。
  2. プロバイダー(GitHub または GitLab)を選択。
  3. リポジトリURL(例: https://github.com/org/repo)を入力。
  4. リポジトリ読み書き権限を持つ Personal Access Token (PAT) を生成。
  5. PATをトークンフィールドに貼り付けて Connect をクリック。

必要なPAT権限

GitHub PAT
  • repo(読み書き)
  • workflow(CI用、オプション)
GitLab PAT
  • read_repository
  • write_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-docs

Webhook(受信同期)

リポジトリへのpush時に自動pullを有効にするには、Gitプロバイダーで以下のwebhookを設定:

https://specdown.app/api/webhooks/git

Content-Typeapplication/json に、プロジェクト設定のwebhookシークレットでペイロードに署名。

同期ログ

全同期操作(push/pull)は プロジェクト設定 → Git Logs に記録。 ログにはコミットSHA、タイムスタンプ、ステータス(成功/エラー)、エラーメッセージが含まれます。

SpecDownから離れずに同期トラブルをデバッグできます。

切断

Git同期を切断するには プロジェクト設定 → Git IntegrationDisconnect をクリック。 既存ドキュメントには影響しません — 今後の同期が停止するだけです。PATは即座にデータベースから削除されます。

始める準備はできていますか?

コードのようにSpecを書く。Gitと同期する。チームと共有する。