3行でいうと
- GitHub同期は、新しいプライベートリポジトリを作って、双方向に同期します。既存のリポジトリにはつなげない、と公式に書かれています。
- LovableのGitHub Appが求める権限(Contents、Administration などのWrite)は、公式のページに表があります。GitHubの承認の画面で、原文と見比べてください。
- 外し方は、プロジェクトからの切断、ワークスペースからのリンク解除、接続そのものの削除の3段で、公式に手順があります。切っても、GitHubのリポジトリは残ります。
- Supabaseは、Lovable内蔵のバックエンドの代わりに、自分のSupabaseプロジェクトを使う連携です。まずSupabaseの組織を1回つなぎ(オーナー・管理者)、次にプロジェクトを選びます。外し方は More → Supabase の Disconnect です。
この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。
画面の表記は変わります。公式ページの表記を使っているので、手元の画面と照らして読んでください。GitHubへのアプリの許可のように、外のシステムに権限を登録する操作は、登録の前に、公式ページの原文を見てください。「この記事の案」は、公式の手順ではなく、この記事で組んだ例です(動作は確かめていません)。
先に結論
- 向きを確かめる。 Git同期は「Lovable→GitHub(と、GitHubでの変更→Lovable)」、Supabaseは「バックエンドの置き場」です。
- 権限は、設定の画面で決まる。 GitHubのアプリの権限は、公式が一覧しています(1節の表)。Supabaseは、オーナー・管理者が組織をつなぎ、エディターがプロジェクトを選びます。
- 外し方は、どちらも公式に手順が書かれています。 GitHubは3段(プロジェクトの切断、リンク解除、接続の削除)、Supabaseは More → Supabase の Disconnect です。
前提:用語をそろえる
- リポジトリ:コードと、その変更の履歴をためる場所です。GitHubは、そのサービスの1つです。
- ブランチ:変更の流れを枝分かれさせる仕組みです。
mainが本線になることが多いです。 - コミット:変更の1回分の記録です。
- Supabase:データベースやログインを提供する、Lovableとは別の会社のサービスです。
- Edge Function(エッジ関数):アプリの裏側で動く、小さなプログラムです。
- シークレット:APIキーのような、人に見せてはいけない値です。
たとえ話:事務所から外への、いくつもの通路
Lovableの事務所から、図面の写しを置く倉庫(GitHub)、材料を置く資材置き場(Supabase)、取引先への電話(コネクタ)、パソコン上の道具(ローカルMCP)へ、それぞれ別の通路がつながるイメージです。通路ごとに、通せるものと、鍵の持ち主が違います。これは僕らのたとえで、公式の表現ではありません。
1. GitHubとコードを同期する
構造
公式の「GitHub」のページでは、2段になっています。
- ワークスペースの接続:GitHubのアカウントまたは組織に、Lovableの許可を与える。
- プロジェクトとリポジトリのリンク:Lovableの1プロジェクトを、1つのリポジトリにつなぐ。
手順1:ワークスペースの接続を作る(オーナーと管理者)
場所: Workspace settings → Git → GitHub → Add connection。または、まだつないでいないプロジェクトの Project settings → Git → GitHub → Add connection。すでに入っているインストールを再利用するときは、そのアカウントか組織の横の Connect。
github.com(全プラン)の場合:
- Add account を押す(Enterpriseは、3つの選択肢から github.com)。
- GitHubのポップアップで、アカウントか組織を選ぶ。
- All repositories か Only select repositories を選ぶ。
- Install & Authorize を押す。Lovableが、インストールを検知し、再利用できる接続として保存します。
GitHub Enterprise Cloud(データ居住地)とGitHub Enterprise Serverは、Enterpriseプランです。手順(インスタンスURLの入力、IP許可リストの追加、GitHub Appの作成など)は、公式のページに書かれています。Enterprise Serverのアプリの秘密鍵は、Lovable側で暗号化して保存され、手で扱う必要はない、とあります。この記事では、細部は写しません。
Lovable GitHub Appが求める権限(公式の記載)
| 項目 | 権限 |
|---|---|
| Contents | Write |
| Metadata | Read |
| Pull requests | Write |
| Workflows | Write |
| Administration | Write |
購読するイベントは、push、pull_request、repository、delete です。GitHubの画面で承認するときは、この表を、公式ページの原文と見比べてください。
手順2:プロジェクトをリポジトリにつなぐ(ワークスペースかプロジェクトのオーナー・管理者)
- Project settings → Git → GitHub を開く。またはチャット欄の横の + → Project → GitHub。
- Accounts の下で、リポジトリを作りたい接続の横の Connect を押す。
- Lovableが新しいプライベートリポジトリを作り、双方向の同期を自動で始めます。
1つのプロジェクトは、1つのプロバイダーの1つのリポジトリにだけリンクできます。
手順3:同期の様子を見る
接続したプロジェクトのGitHub設定に、次が出ます。
- リポジトリの状態 Connected
- LovableとGitHubが同じコミットかを示す、同期の状態のカード
- 今のブランチを示す branch picker
- HTTPS、SSH、GitHub CLI のクローンURL
- 接続のドロップダウンの View on GitHub と Disconnect
ブランチ
- Lovableは、一度に1つのブランチだけを編集・同期します。既定は、リポジトリの既定のブランチ(多くは
main)です。 - 切り替え:ブランチピッカーで、検索して選ぶと、すぐ同期が始まります。
- 作成:ブランチピッカーの下の Create branch を押し、名前を入れる。新しいブランチは、
mainではなく、今のブランチ(Sourceとして表示)から作られ、自動で切り替わります。 - Lovableが編集中のあいだは、切り替えも作成もできません。
何が同期されるか
- Lovableでの変更は、GitHubへ。GitHubの今のブランチへのpushは、Lovableへ戻ります。
- Lovableのコミットの作者は、github.comとGitHub Enterprise Cloudでは
lovable-dev[bot]、Enterprise Serverでは<アプリ名>[bot]です。操作したワークスペースのメンバーの名前が付くこともあります。 - 「Lovable and GitHub have diverged」と出たとき、Lovableは自分の変更を、同期中のブランチの代わりに
lovable-syncブランチへpushします。 - 03の整理では、同期されるのはコードで、データベースの中身は含まれません(このページの取得では、その点は確認していません)。
外し方
- プロジェクトの設定から:GitHub設定の接続のドロップダウンの Disconnect → 必要な確認の文を打つ → Disconnect。
- ワークスペースの設定から(オーナー・管理者):Workspace settings → Git → GitHub で接続を選び、Linked projects のプロジェクトにチェックを入れ、Unlink N projects → Unlink。
- 切っても、GitHubのリポジトリと履歴、Lovable内のコードは残ります。ワークスペースの接続も残ります。
- 接続そのものの削除:Workspace settings → Git → GitHub → 接続を選び、Delete this connection → 確認の文を打つ → Delete。すべてのプロジェクトの同期が止まり、リポジトリは残り、保存されていた資格情報が消えます。
- 切ったあとにつなぎ直すと、新しいリポジトリが作られます(古いものは再利用されません)。
うまくいかないとき
| 症状 | 公式の確認点 |
|---|---|
| アプリが停止、アンインストール、リポジトリへのアクセスを失った | プロジェクトのGitHub設定で Reconnect を押し、GitHub側でアクセスを直す。公式の表は、停止ならGitHubで停止を解除、アンインストールなら再インストールして各プロジェクトを再接続(新しいリポジトリが作られる)、アクセス喪失ならGitHubのインストールの設定でアクセスを戻す、と分けて書いています |
| GitHubのコミットがLovableに出ない | 同期するのは今のブランチだけ。コミットのあるブランチに切り替える。または同期中のブランチに新しいコミット(空でもよい)をpushする。Reconnect と Re-check は、欠けたコミットを取り込まない |
| 同期中のブランチを消した | Lovableが自動で lovable-fallback ブランチへ切り替える |
| pushが拒否された | Lovableが lovable-sync ブランチへpushする。いつもの手順で見直して、マージする |
| 大きなファイル | GitHubは100 MBを超えるファイルを拒否する。設定に「Your project contains files that exceed the maximum file size limit (100 MB)」と出る。一覧のファイルを消して、同期の再試行を待つ |
制限(公式の記載)
- 既存のリポジトリにはつなげません。いつも新しく作られます。既存のものから始めるには、ZIPでダウンロードし、Upload code で取り込んでから、同期をつなぎます。
- 同じアカウントや組織に、LovableのGitHub Appは、2回入れられません。
この記事の案:GitHubを経由して、別のAIでコードを触る
公式は、GitHubのリポジトリを、HTTPS、SSH、GitHub CLIでクローンできると書いています。そのうえで、今のブランチへのpushはLovableへ戻る、と書いています。この2つを合わせると、ローカルのCursorやClaude Codeなど、別のツールで、クローンしたコードを編集して、同期中のブランチにpushする、という使い方ができるはずです(これは、僕らの見立てで、公式の手順ではありません)。そのとき、公式が書く次の注意があります(03)。同期したブランチでは、強制push、リベース、スカッシュをしないこと。
2. 自分のSupabaseにつなぐ
構造
Lovable内蔵のバックエンドの代わりに、自分のSupabaseプロジェクトを、アプリのバックエンドにします。全プランで使えます。
手順1:Supabaseの組織をつなぐ(ワークスペースのオーナー・管理者、組織ごとに1回)
次のどれかから始めます。
- ダッシュボードのサイドバーの Connectors → Supabase → Connect Supabase または Manage Connected Organizations
- プロジェクトの Settings → General → External Supabase → Connect → Add Organization
- ダッシュボードのプロンプト欄の + → Databases → Add Supabase organization
Supabaseの窓が開き、ログインして、選んだ組織にLovableを許可します。組織が Linked Supabase organizations に出ます。ワークスペースの全メンバーが使え、各自のSupabaseアカウントは要らない、と書かれています。
手順2:プロジェクトをSupabaseのプロジェクトにつなぐ(編集権限のある人)
- 新しいプロジェクト:ダッシュボードの + → Databases → Supabase の見出しの下で、プロジェクトを選ぶ。
- 既存のプロジェクト:Settings → General → External Supabase → Connect → Linked Supabase organizations の Continue → Connect project の段で、プロジェクトの横の Connect。
- まだSupabaseのプロジェクトがない:Create Project で、Supabaseのダッシュボードで作り、Lovableに戻る。
- 警告のアイコンは、すでに別のLovableプロジェクトが使っている印です。共有すると、
LOVABLE_API_KEYを含む秘密の値を、上書きし合います。 - 確かめ方:More → Supabase で、プロジェクト名と状態を見る。「Wait for Lovable to finish working」と出たら、今の依頼が終わるのを待って、やり直す。
Lovableに、Supabaseのプロジェクトを作らせる場合
次の3つがすべて必要、と書かれています:ワークスペースで組み込みのバックエンドが無効、Supabaseの組織がつながっている、プロジェクトにまだバックエンドがない。Buildモードで、バックエンドを足すよう頼み、承認のカードで、Supabaseの組織と地域を選んで Create project を押します。地域はあとで変えられません。Lovableは、自分が作ったSupabaseのプロジェクトを、失敗のあとでも、消しません。
権限(公式)
| 誰 | できること |
|---|---|
| オーナー・管理者 | 組織のリンクと再接続 |
| エディター | リンク済みの組織のプロジェクトを接続 |
| ビューアー | 接続できない |
Lovableは、スキーマのマイグレーション、データの挿入・変更、ストレージのバケットの作成・変更の前に、承認を求めます。読み取りだけのデバッグは、何も変えません。
渡るデータと、できること
- データベース:必要なデータを説明すると、Lovableが、テーブルを設計し、承認されたマイグレーションを実行し、
supabase/migrations/に保存し、TypeScriptの型を作り直します。 - 認証:メールとパスワードのログインは、Supabase Authで足します。ソーシャルログインは、Supabaseの Authentication で有効にして、チャットでアプリにつなぎます。
- エッジ関数:Lovableが書いて、デプロイし、つなぐ。失敗すると、ログを出します。
- シークレット:APIキーは、専用の入力欄(公式の表記は secure input)で聞かれ、Supabaseに保存され、Lovableは読み戻せない、と書かれています。
- ストレージ、リアルタイム、セキュリティ(スキーマの変更のあと、RLSの網羅を確かめる。公開前にRLSのポリシーを見直す、と書かれています)。
外し方
- More → Supabase を開く。
- Disconnect を押す。
- Disconnect Supabase のダイアログで確定する。
Lovableは、エッジ関数のデプロイと、スキーマの読み取りをやめます。コードとSupabaseのプロジェクトは変わらず、あとでつなぎ直せます。
制限と、うまくいかないとき
- 1つのLovableプロジェクトは、1つのSupabaseプロジェクトにしかつなげません。
- 組み込みのバックエンドとSupabaseの間の、自動の移行は、どちら向きもありません。
- 使用量の上限は、Supabaseのプランに従います。
- 次の機能は、組み込みのバックエンドが必要です:エディタのDatabase、Users、Storage、Secrets、Jobs、Usage、Logs、管理されたバックアップ、一時停止とサイズ変更、古いReact+Viteのアプリの組み込みの決済、自分のドメインからの認証メール、チャットでのソーシャルログインの設定、ログインした状態のブラウザテスト、機微な情報(PII)のスキャン。
| 症状 | 公式の確認点 |
|---|---|
| 「Supabase connection issue」 | プロジェクトの削除や、アクセスの変更の可能性。Disconnect または Manage organizations |
| Connect が押せない | プロジェクトの一時停止、準備中の可能性。Supabaseで状態を確かめる |
| Add Organization が押せない | ワークスペースのオーナーか管理者に、リンクを頼む |
気をつけること
- この記事は、実際に使って確かめた記録ではありません。公式ドキュメントのページを、要約の形で取得して読んだ範囲です。
- GitHubのアプリの権限(Contents、Administration などのWrite)は、リポジトリに大きな力を与えます。承認の画面で、公式の表と見比べてください。
- Supabaseのプロジェクトを、別のLovableプロジェクトと共有すると、秘密の値が上書きされます。
- GitHubやSupabaseのような別の会社には、それぞれの規約が適用されます。Lovableの資料に、それらの扱いは書かれていません。
- 年齢、利用規約、機密情報の取り扱いの判断は、公式や専門家に確認してください。
- 価格、上限、日付は、確認日 2026-10-25 のものです。