サイトのコードをGitHubで管理
GitHub連携では、サイト自身のコードをGitHubのリポジトリに保管し、双方向で同期した状態を保ちます。公開されたバージョンはすべて、そのリポジトリにコミットとして記録されます。接続したブランチにプッシュすると、チェックとビルドが行われ、サイトに公開されます。
GitHubに送られるもの
サイト自身のファイルだけです。ファイルエクスプローラーに表示され、ダウンロードに含まれるものです。すべてのBriksサイトが動く共通部分、サイトの設定、キー、データベースのレコードは、そこには送られません。そのため、リポジトリ単体ではビルドも実行もできません。プッシュした内容をビルドして公開するのはBriksです。
| フォルダ | 含まれるもの |
|---|---|
app/ | サイトのページ。 |
components/custom/ | サイト用に書かれたセクション。 |
content/ | サイトの文章と事実情報です。 |
api/ | サイト独自のサーバーコード(ある場合)。 |
db/schema.ts と db/data/ | サイトのデータの構造と、最初に入っているレコード。 |
public/ | サイト自身の画像とファイルです。 |
リポジトリにREADMEがない場合、Briksはこれらのフォルダと同期の仕組みを説明するREADMEを追加します。
リポジトリを接続する
Connect GitHubを押す
場所: Settings, GitHub
GitHubが開きます。BriksのアプリがまだGitHubのアカウントまたは組織に入っていない場合は、インストール先と使用を許可するリポジトリをGitHubが尋ね、その後こちらに戻ります。
リポジトリとブランチを選ぶ
場所: Settings, GitHub
アカウントを選び、次にリポジトリを選びます。ブランチは最初はリポジトリのデフォルトです。別の名前も指定でき、まだ存在しないブランチはデフォルトブランチから作られます。Create a repository on GitHubを押すとGitHubが開き、サイト名を付けた非公開のリポジトリを作れます。Repository not listed? Give Briks access to itを押すと、GitHub上のアプリの設定が開きます。
Connectを押す
場所: Settings, GitHub
空のブランチはすぐに接続されます。ブランチにすでにファイルがある場合は、Briksがまずその数と、そのうちサイトのフォルダにあるもの、そして最初のコミットでそれらがどうなるかを表示します。進めるには Connect and commit this site を押し、やめるには Choose another を押してください。
数分以内に、最初のコミットで本番環境の最新版が反映されます。サイトのフォルダー内のファイルはサイト自体のファイルに置き換えられ、サイトにないファイルは削除されます。リポジトリ内のそれ以外はそのままです。Briksは強制プッシュをしないので、履歴から失われるものはありません。
BriksからGitHubへ
- 公開されてサイトのファイルを変更したバージョンは、作成方法にかかわらず、ブランチ上の1つのコミットになります。ビルド、変更、File ExplorerやVisual Editorでの保存、復元のいずれも同様です。A/Bテストの実行中は、そのバージョンはテストが終わるまで待機します。
- コミットのメッセージは、スタジオで読める要約に、バージョン番号と依頼した人の名前を添えたものです。
- GitHubには、各コミットの状態が Live as version 15 のように表示されます。
- ファイルにキーのような形のものがある場合や、Briks自身のサービスの名前が含まれる場合は、何も送信されず、どのファイルかが通知されます。キーはシークレットに保管してください。
GitHubからBriksへ
接続したブランチへプッシュすると、AIもクレジットも使わずにサイトへ公開されます。まず、File Explorerでの保存と同じ安全チェックを通ります。ほかのウェブサイトに届くスクリプト、フレーム、フォームは、Settings、Preferences、Allowed websites でそのサイトを追加していない限り拒否されます。そのあとBriksがビルドし、1〜2分ほどでコミットのステータスに Live as version 16 と表示されます。公開されなかった場合は、その理由が表示されます。
| プッシュで変わること | 何が起きるか |
|---|---|
app/、components/custom/、content/、api/、db/schema.ts、db/data/、public/ にあるファイル | サイトに公開されます。 |
リポジトリのルートにあるREADME、ライセンス、その他のファイルと、.github/ | GitHubに保管されます。サイトの一部にはなりません。 |
db/migrations/ | 拒否されます。Briksはデータの変更を db/schema.ts から作成するので、代わりにスキーマを変更してください。 |
| 画像など、テキストではないファイル | 拒否されます。メディアライブラリから追加してください。削除は問題ありません。 |
それ以外のもの。たとえば設定ファイル、.env ファイル、キーのような形のファイルなどです | 理由をコミットに添えて拒否されます。そのプッシュは何も公開されません。 |
- 1回のプッシュで変更できるのは、最大300ファイル、1ファイルあたり256 KBまで、合計8 MBまでです。
- 公開されるプッシュは、サイトごとに1時間あたり最大20回、1日あたり最大100回です。上限を超えたプッシュは待機し、GitHub上のステータスに公開される時刻が表示されます。待機中に届いたプッシュは、まとめて公開されます。
- A/Bテストの実行中は、プッシュはテストが終わるまで待機します。
双方が同じファイルを変更した場合
Briksの公開中に届いたプッシュは、順番を待ちます。プッシュとBriksが別々のファイルを変更した場合は、どちらも残ります。同じファイルを異なる形で変更した場合は、そのプッシュは何も公開されません。Briksは自分の版を briks-sync というブランチに置き、プッシュのステータスにそのファイル名が示されます。GitHubで briks-sync をマージして再度プッシュするか、SettingsのGitHubで解決してください。
- Use GitHub's version は、プッシュ全体を公開します。双方で変更されたファイルも含まれます。
- Keep Briks's version は、双方が変更したファイルを除いてプッシュを公開します。
force-pushなどでブランチの履歴が書き換えられた場合、同じ2つのボタンのどちらかを選ぶまで、同期は一時停止します。
通知される内容
正常に動いた同期は静かに終わり、プッシュが公開されたというメッセージだけが届きます。公開されなかったプッシュ、マージ待ちのプッシュ、止まってしまった接続は、ベルのアイコンと、Builds finished or failed アラートをオンにしているTelegramとDiscordのチャットに表示されます。SettingsのGitHubには、双方向の直近20件の同期が、コミット、ファイル、結果とともに表示されます。
接続を解除する
- Settings、GitHub の Disconnect で、両方向の同期が止まります。リポジトリとその履歴は、そのまま残ります。
- プロジェクトを別のワークスペースに移動すると、接続は解除されます。
- GitHubでアプリがアンインストールされたり、リポジトリがアクセス対象から外されたりすると、同期は止まり、その旨が通知されます。
- プロジェクトを削除しても、リポジトリには一切影響しません。
すでにあるリポジトリからプロジェクトを始められますか?
まだできません。既存のリポジトリのインポートには対応していません。サイトをBriksで作ってから、リポジトリを接続してください。
リポジトリを自分のコンピューターで実行できますか?
いいえ。保持するのはサイト自体のファイルで、Briksのサイトがすべて共通で使う部分は含まれないため、単独ではビルドできません。変更をプッシュすると、Briksがビルドして公開します。
BriksはGitHubアカウントで何ができますか?
インストール時にアプリが求める権限だけです。渡したリポジトリのファイルの読み書きと、コミットのステータスの設定です。書き込むのは接続したブランチだけで、双方が同じファイルを変更した場合は briks-sync ブランチにも書き込みます。
Briksはコミットメッセージを読みますか?
いいえ。同期ログには、各プッシュのコミット、ファイル、プッシュした人が表示されます。メッセージは表示されません。