リポジトリ
Runlot が自分で運用する Git リポジトリです。clone も push も Runlot のアドレスに対して行い、アクセス権は組織のロールが決めます。
Runlot には Git リポジトリがあります。GitHub 連携ではなく、git clone と
git push が私たちのアドレスに対して動くリポジトリです。
cd my-project # runlot.json のあるプロジェクトのディレクトリ
runlot repo create app
# my-org/my-project/app を作成しました
# origin を登録しました: [email protected]:my-org/my-project/app.git
git push -u origin mainリポジトリはプロジェクトのものです。アドレスが <組織>/<プロジェクト>/<リポジトリ>
の 3 つの部分からなるのはそのためで、1 つのプロジェクトに複数のリポジトリを
置けます — アプリと API、フロントとワーカーのように。名前はプロジェクト内で
重ならなければ構いません。誰が読み書きできるかは組織のロールが決めます。
はじめる
1. 公開鍵を登録します
runlot key add
# ~/.ssh/id_ed25519.pub を登録しました (ssh-ed25519, SHA256:…)引数なしで実行すると ~/.ssh から既定の鍵を探します。別の鍵を使うときは
パスを指定してください: runlot key add ~/.ssh/work.pub。
鍵そのものが身元になるため、同じ公開鍵を二人が登録することはできません。 登録済みの鍵を再度登録しようとすると拒否されます。
最初の接続でフィンガープリントを確認してください
ssh が表示するホストのフィンガープリントが以下と異なる場合は接続しないでください。
ed25519 SHA256:C7pTddRdCM1JuEbdi+73oBN+sNAZhb1H5t3CJSlyPj4
rsa SHA256:+6PMLfTVpcjjLOVSWgiRI0nVQ5f9bVl0nuzcJ0EfTfE2. リポジトリを作ります
runlot repo create app # 既定は非公開です
runlot repo create app --public # 誰でも clone できますrunlot deploy・runlot pg と同じ場所に作ります — カレントディレクトリの
runlot.json が指すプロジェクトです。実行したディレクトリが Git リポジトリなら
origin まで登録します。すでに origin がある場合は登録せず、コマンドだけを
表示します。
3. push します
git push -u origin mainHTTPS で接続する
SSH の代わりに HTTPS も使えます。トークンを 1 つ発行し、git がパスワードを 尋ねたらそこに入力してください(ユーザー名は何でも構いません)。
runlot token create laptop # 読み書き
runlot token create ci --read-only # clone のみ
git clone https://git.runlot.io/my-org/my-project/app.gitHTTPS と SSH はどちらも git.runlot.io で、SSH は通常の 22 番ポートです —
~/.ssh/config に書き足すものはありません。
トークンの値は発行時に一度だけ表示します。そのとき保管してください —
あとから読み直すことはできません。失くしたら runlot token revoke <id> で
失効させ、新しく作ってください。
読み取り専用トークンでの push は理由とともに拒否します — リポジトリが無いように は見せません。
コマンド
| コマンド | 内容 |
|---|---|
runlot repo create <名前> [ディレクトリ] | リポジトリを作り origin を登録します (--public) |
runlot repo list | リポジトリ一覧 (--json) |
runlot repo rename <旧> <新> | 名前を変更します (admin) |
runlot repo visibility <名前> <public|private> | 公開範囲を変更します (admin) |
runlot repo delete <名前> | リポジトリを削除します (admin) |
runlot repo history <名前> | 誰がどのブランチをどう動かしたか |
runlot key add [パス] / runlot key list / runlot key rm <id> | SSH 公開鍵 |
runlot token create <名前> / runlot token list / runlot token revoke <id> | HTTPS 用トークン |
runlot repo はプロジェクトを対象にします。プロジェクトのディレクトリ外で使う
ときは --org と --project の両方を指定してください。key と token は
ユーザーのものなので、どこからでも使えます。
誰が何をできるか
| 非公開リポジトリ | 公開リポジトリ | |
|---|---|---|
| 組織 admin | 読み・書き・設定 | 読み・書き・設定 |
| 組織 member | 読み・書き | 読み・書き |
| 組織 viewer | 読み | 読み |
| 他の組織のユーザー | — | 読み |
| 未ログイン | — | 読み |
権限の変更は最大 10 秒で反映されます。公開鍵の削除とトークンの失効は即時 反映されます — 今すぐ止めたいときに使う機能だからです。
履歴
push は一行ずつ残ります。force-push で失ったコミットを探す手がかりが ここにあります。
runlot repo history app
# 2026-09-09T07:38:30Z 作成 refs/heads/main ae4bb959clone と fetch は記録しません。
できること・まだできないこと
できること: clone、fetch、push、ブランチ、タグ、force-push、ブランチ削除。
まだ無いもの
- shallow clone(
--depth 1)に対応していません。CI でよく使う書き方なので 不便かもしれません。 - Pull Request、Issue、コードレビュー、CI はありません。リポジトリはリポジトリです。
- push はデプロイを起動しません。 デプロイは
runlot deployです。 - バックアップは同じマシンに置いています。誤って削除したリポジトリは戻せますが、 マシンごと失われる場合にはまだ備えていません。今の安全網は Git 自身です — 各開発者のマシンに完全なコピーがあります。
ウェブで見る
ダッシュボードでプロジェクトを開くとリポジトリタブがあります。リポジトリを作成し、 ブランチやタグを選び、ファイルツリー、ファイルの内容、コミット一覧、そして ref 履歴(誰がどのブランチをどう動かしたか)を見られます。管理者は設定タブで名前・ 既定ブランチ・公開範囲を変更し、リポジトリを削除できます。Clone ボタンが HTTPS と SSH のアドレスを示します。
画面には上限がそのまま出ます — 1 MiB を超えるファイルとバイナリファイルには プレビューがなく、ディレクトリの項目は 1,000 件までです。その場合は clone して 確認してください。
上限
| 項目 | 値 | 超えたとき |
|---|---|---|
| リポジトリのサイズ | 1GiB | push を拒否します |
| 1 回の push | 500MiB | push を拒否します |
| ファイル 1 つ | 100MiB | push を拒否します |
| 既定ブランチの削除 | — | 拒否します(元に戻せないため) |
上限に触れると git push が理由をそのまま表示します。
よくある問題
Permission denied (publickey) — runlot key list でその鍵が登録されて
いるか確認してください。複数の鍵を使い分けている場合は、どれを使うかを
指定してください。
Host git.runlot.io
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesnon-fast-forward (fetch first) — その間に誰かが push しています。
git pull --rebase のあとで push し直すか、本当に上書きするなら
git push --force です。
以前の 2 つの部分からなるアドレスで push・clone すると — アドレスは
3 つの部分(<組織>/<プロジェクト>/<リポジトリ>)になりました。SSH は何を直せば
よいかを教えます。HTTPS はリポジトリが見つからないと答えます。remote を指定し
直してください。
runlot repo list # 現在のアドレスを確認します
git remote set-url origin [email protected]:my-org/my-project/my-app.gitリポジトリ名を変えた — 登録済みの remote も変更してください。
git remote set-url origin [email protected]:my-org/my-project/new-name.git