本文へ移動
runlot
リファレンスAPIrepos

repos

repos カテゴリの 24 個の API オペレーションを対象としています。

メソッドパス説明
GET/v1/orgs/{orgSlug}/projects/{projectName}/reposプロジェクトのリポジトリ一覧(runlot repo list)
POST/v1/orgs/{orgSlug}/projects/{projectName}/reposリポジトリを作成します(runlot repo create)
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}単一のリポジトリ
PATCH/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}名前、可視性、またはデフォルトブランチを変更します(runlot repo rename|visibility)
DELETE/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}リポジトリを削除します(runlot repo delete)
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/ref-updatesRef 履歴(runlot repo history)
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy-hookプッシュデプロイの設定(runlot repo hook status)
PUT/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy-hookプッシュデプロイをオンにする、または設定を変更する(runlot repo hook set)
DELETE/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy-hookプッシュデプロイを完全にオフにする(runlot repo hook unset)
POST/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deployプッシュせずにコミットをビルドしてデプロイする
GET/v1/orgs/{orgSlug}/projects/{projectName}/buildsビルド履歴(runlot builds list)
GET/v1/orgs/{orgSlug}/projects/{projectName}/builds/{buildId}個々のビルド(runlot builds show)
GET/v1/orgs/{orgSlug}/projects/{projectName}/builds/{buildId}/logビルドの出力(runlot builds log)
POST/v1/orgs/{orgSlug}/projects/{projectName}/builds/{buildId}/cancelキュー内のビルドをキャンセルする(runlot builds cancel)
GET/v1/me/ssh-keys自分の SSH 公開鍵(runlot key list)
POST/v1/me/ssh-keysSSH 公開鍵を登録します(runlot key add)
DELETE/v1/me/ssh-keys/{keyId}SSH 公開鍵を削除します(runlot key rm)
GET/v1/me/tokens自分のアクセストークン(runlot token list)
POST/v1/me/tokensアクセストークンを発行します(runlot token create)
DELETE/v1/me/tokens/{tokenId}アクセストークンを失効させます(runlot token revoke)
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/refsブランチとタグを一覧表示する
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/tree1 つのディレクトリを一覧表示する
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/blob1 つのファイルを読み取る
GET/v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/commitsコミットログ

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos

viewer 以上が必要です。

リポジトリはプロジェクトに属します。 アクセス権は org 内のロールによって管理され、リポジトリ名はプロジェクト内で一意です。1 つのプロジェクトに複数のリポジトリ(アプリ・API・インフラ)を持たせることができます。

operationId listRepos

ステータスコード説明レスポンスボディ
200リポジトリ一覧object
403——
404——

POST /v1/orgs/{orgSlug}/projects/{projectName}/repos

member 以上が必要です。repo.create として監査記録されます。

リポジトリは直ちに登録されます。ストレージは初回アクセス時に作成されるため、リポジトリサーバーが一時的に利用できない場合でもこの呼び出しは成功します。

operationId createRepo

リクエストボディ: application/json ・ object

ステータスコード説明レスポンスボディ
201作成されたリポジトリRepo
400——
403——
404——
409このプロジェクトには同じ名前のリポジトリが既に存在します(repo_exists)Error

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}

単一のリポジトリ

operationId getRepo

ステータスコード説明レスポンスボディ
200リポジトリRepo
403——
404——

PATCH /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}

管理者権限が必要です。repo.updateとして監査されます。

名前の変更はメタデータの変更のみです。名前を変更しても、進行中のプッシュが中断されることはありません。

operationId updateRepo

リクエストボディ: application/json ・ object

ステータスコード説明レスポンスボディ
204変更済み—
400——
403——
404——
409その名前のリポジトリは既に存在します(repo_exists)Error

DELETE /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}

管理者権限が必要です。repo.deleteとして監査されます。

これはソフトデリートです。 リポジトリは URL への応答を直ちに停止しますが、保存されているコピーは保持期間の経過後に削除されるため、削除を取り消せる猶予期間があります。

operationId deleteRepo

ステータスコード説明レスポンスボディ
204削除済み—
403——
404——

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/ref-updates

閲覧者以上の権限が必要です。直近200件のエントリです。

これは監査ログではなく、リポジトリ自体の ref 履歴です。old は、force-push で失われたコミットを復元する際に必要になります。

operationId listRefUpdates

ステータスコード説明レスポンスボディ
200Ref履歴object
403——
404——

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy-hook

viewer 以上が必要です。

configured は、一度もフックが設定されたことがない場合に false になります。これは、フックが存在していてオフになっている状態(enabled)とは異なります。フックが存在しない場合、branch にはリポジトリのデフォルトブランチが提案値として設定されます。

operationId getDeployHook

ステータスコード説明レスポンスボディ
200フックDeployHook
403——
404——

PUT /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy-hook

admin 権限が必要です。一方、デプロイ自体には member 権限が必要です。

フックをオンにすると、書き込み権限を持つ誰かが今後 branch にプッシュするたびに、それは本番デプロイとなり、フックをオンにした本人として実行されます。これは恒常的な権限付与であるため、deploy スコープのトークンではフックを作成できません。

省略されたフィールドは現在の値を保持するため、スイッチとブランチを別々に送信しても、一方がもう一方をリセットすることはありません。

operationId setDeployHook

リクエストボディ: application/json ・ object

ステータスコード説明レスポンスボディ
200現在のフックの状態DeployHook
400——
403——
404——

DELETE /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy-hook

admin 権限が必要です。プッシュデプロイを完全にオフにします。過去のビルドは、現在も稼働しているデプロイを生成したものであるため保持されます。

operationId deleteDeployHook

ステータスコード説明レスポンスボディ
204削除済み—
403——
404——

POST /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/deploy

member 権限が必要です。commitSha のビルドをキューに追加します。commitSha が省略された場合は、フック対象ブランチの先端のビルドをキューに追加します。

これはプッシュによるデプロイと同じ設定を使用するため、プッシュデプロイフックがオフまたは未設定のリポジトリでは、ビルドの代わりに 409 deploy_hook_off が返されます。フックがなければ、ルートディレクトリも、デプロイを実行する主体も存在しないためです。

operationId deployRepoNow

リクエストボディ: application/json ・ object

ステータスコード説明レスポンスボディ
202キューに追加されましたobject
400——
403——
404——
409deploy_hook_off — このリポジトリではプッシュデプロイがオンになっていませんError

GET /v1/orgs/{orgSlug}/projects/{projectName}/builds

viewer 以上の権限が必要です。新しい順に表示され、キュー内のビルドが先頭に表示されます。

当月のビルド時間(分)が一覧と一緒に返されるため、1 回のリクエストでビルド画面の表示に必要な情報がすべて揃います。

ログはこの一覧には含まれません。 ログは最大 1 MiB になることがあるため、/builds/{buildId}/log から個別に取得します。

operationId listBuilds

パラメーター場所必須型説明
limitquery不可integer—
ステータスコード説明レスポンスボディ
200ビルドobject
400——
403——

GET /v1/orgs/{orgSlug}/projects/{projectName}/builds/{buildId}

個々のビルド(runlot builds show)

operationId getBuild

ステータスコード説明レスポンスボディ
200ビルドBuild
403——
404——

GET /v1/orgs/{orgSlug}/projects/{projectName}/builds/{buildId}/log

viewer 以上の権限が必要です。JSON ではなく text/plain として返されます。これは生のビルド出力であり、クライアント側でそのまま表示できます。

上限は 1 MiB で、末尾が保持されます。失敗したビルドではエラーが末尾に現れるためです。上限が適用された場合、その旨が 1 行目に記載されます。

operationId getBuildLog

ステータスコード説明レスポンスボディ
200ログstring
403——
404——

POST /v1/orgs/{orgSlug}/projects/{projectName}/builds/{buildId}/cancel

member 権限が必要です。キャンセルできるのはキュー内のビルドのみです。 すでに開始されたビルドは停止できず、20 分後に自動的に終了します。

operationId cancelBuild

ステータスコード説明レスポンスボディ
204キャンセルされました—
403——
404——
409build_not_queued — すでにビルド中か、すでに終了していますError

GET /v1/me/ssh-keys

自分の SSH 公開鍵(runlot key list)

operationId listSSHKeys

ステータスコード説明レスポンスボディ
200キー一覧object

POST /v1/me/ssh-keys

公開鍵のフィンガープリントはグローバルに一意です。 鍵そのものが識別子であるため、同じ鍵を 2 回登録することはできません。既に存在する鍵は 409 ssh_key_exists を返します。

許可される鍵種別: ed25519、ecdsa-sha2-nistp256/384/521、rsa(2048ビット以上)。DSAは拒否されます。

operationId addSSHKey

リクエストボディ: application/json ・ object

ステータスコード説明レスポンスボディ
201登録された鍵SSHKey
400——
409公開鍵は既に登録済みです(ssh_key_exists)Error

DELETE /v1/me/ssh-keys/{keyId}

即座に反映されます。 このキーは、この呼び出しが返ると同時に Git アクセスで使用できなくなります。キャッシュによる遅延はありません。

operationId deleteSSHKey

ステータスコード説明レスポンスボディ
204削除済み—
404——

GET /v1/me/tokens

トークンの平文は保存されないため、ここで返されることはありません。

operationId listAccessTokens

ステータスコード説明レスポンスボディ
200トークン一覧object

POST /v1/me/tokens

平文のトークンはこのレスポンスでのみ返されます。 再度取得することはできません。

Git は HTTPS 経由で Basic 認証を送信します。ユーザー名は無視され、パスワードフィールドのトークンのみが読み取られます。プレフィックス runlot_pat_ は固定されており、リポジトリ・ログ・ペーストの中で漏洩したトークンを機械的に検出できるようになっています。

トークンは、scopes の集合・org または project の制限・有効期限という 3 つの独立した軸で絞り込めます。デフォルトの有効期限は90 日で、最大は 365 日です。noExpiry は期限のないクレデンシャルを作成する唯一の方法であり、明示的に設定する必要があります。

org または project の制限は、あなた自身のメンバーシップと照合されるため、所属していない org にトークンを固定することはできません。

operationId createAccessToken

リクエストボディ: application/json ・ object

ステータスコード説明レスポンスボディ
201発行されたトークン(平文を含む)AccessTokenCreated
400——

DELETE /v1/me/tokens/{tokenId}

トークンを削除する代わりに revokedAt を設定するため、その存続期間はトークン一覧に表示され続けます。即座に反映されます — キャッシュによる遅延はありません。

operationId revokeAccessToken

ステータスコード説明レスポンスボディ
204破棄済み—
404——

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/refs

viewer 以上が必要です。

リポジトリ内のすべてのブランチとタグを、デフォルトブランチとともに一覧表示します。これはダッシュボードが使用する閲覧用 API です。クローン・フェッチ・プッシュは代わりに Git トランスポート経由で行われます。

operationId getRepoRefs

ステータスコード説明レスポンスボディ
200Refの一覧RepoRefs
403——
404——
503Git ホスティングが一時的に利用できません(git_unavailable、git_unreachable)Error

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/tree

viewer 以上が必要です。path が空の場合はリポジトリのルートになります。

ディレクトリは 1000 件のエントリで切り詰められます。 その場合、レスポンスの truncated が true になります。

リポジトリの外に出るパス(a/../..)は 404 を返します。

operationId getRepoTree

ステータスコード説明レスポンスボディ
200ディレクトリRepoTree
403——
404リポジトリ、ref、またはパスが存在しません(no_ref・no_path)Error

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/blob

viewer 以上が必要です。

1 MiB を超えるファイルは content を伴って返されません — tooLarge が true になり、content は空になります。バイナリファイルも content を持ちません(binary が true)。

operationId getRepoBlob

ステータスコード説明レスポンスボディ
200ファイルRepoBlob
403——
404リポジトリ、ref、またはパスが存在しません(no_ref・no_path)Error

GET /v1/orgs/{orgSlug}/projects/{projectName}/repos/{repoName}/commits

viewer 以上が必要です。最大 200 件のコミットを返します。デフォルトも 200 件です。

operationId getRepoCommits

パラメーター場所必須型説明
limitquery不可integer—
ステータスコード説明レスポンスボディ
200コミット一覧object
403——
404——

このページの目次