배포
deployments 카테고리의 API 작업 3개를 다룹니다.
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /v1/orgs/{orgSlug}/projects/{projectName}/deployments | 배포 이력 |
| POST | /v1/orgs/{orgSlug}/projects/{projectName}/deployments | 아티팩트를 업로드한 뒤 배포합니다 |
| POST | /v1/orgs/{orgSlug}/projects/{projectName}/rollback | 이전 버전으로 롤백합니다 |
GET /v1/orgs/{orgSlug}/projects/{projectName}/deployments
최신 버전이 먼저 옵니다. 아티팩트는 불변이며 절대 삭제되지 않습니다.
operationId listDeployments
| 상태 코드 | 설명 | 응답 본문 |
|---|---|---|
| 200 | 배포 목록 | object |
| 403 | — | — |
| 404 | — | — |
POST /v1/orgs/{orgSlug}/projects/{projectName}/deployments
본문은 번들 tarball 자체입니다. 메타데이터는 따로 받지 않는데, 번들이 스스로를 설명하기 때문입니다 — 매니페스트가 번들 안에 있으므로 다이제스트 하나가 코드, 에셋, 설정을 한 번에 모두 다룹니다. 별도 필드로 받으면 다이제스트가 다루지 않는 입력이 생기게 됩니다.
번들 구조 (gzip tar):
runlot.json manifest (required) worker/ worker 코드. 정적 사이트인 경우 생략 가능 assets/ 정적 에셋. 생략 가능
동일한 다이제스트를 다시 업로드하면 새 버전이 생성됩니다 — 배포는 "이 코드를 업로드한다"가 아니라 "지금 이것을 제공한다"는 이벤트이며, 롤백 이력을 읽을 수 있게 유지하려면 이런 이벤트 각각이 독립적으로 남아야 합니다.
업로드가 성공하면 새 배포가 즉시 라이브로 전환됩니다.
출처 헤더(선택 사항)입니다. 본문이 번들 자체이므로 메타데이터는 헤더로 전달됩니다. CLI는 배포하는 폴더의 git을 읽어 포함시키며, git이 없으면 생략합니다. CP는 이를 검증할 수 없으므로 표시 전용이며 — 인가나 배치의 근거가 되지 않습니다.
X-Runlot-Git-Commit HEAD 해시(16진수, 7-64자) X-Runlot-Git-Message 커밋 메시지의 첫 줄, percent-encoding 처리됨(200자에서 잘림) X-Runlot-Git-Branch 브랜치 이름, percent-encoding 처리됨 X-Runlot-Git-Dirty true|false — 커밋되지 않은 변경 사항이 있었는지 여부
operationId createDeployment
| 매개변수 | 위치 | 필수 | 타입 | 설명 |
|---|---|---|---|---|
X-Runlot-Git-Commit | 헤더 | 아니오 | 문자열 | — |
X-Runlot-Git-Message | 헤더 | 아니오 | 문자열 | — |
X-Runlot-Git-Branch | 헤더 | 아니오 | 문자열 | — |
X-Runlot-Git-Dirty | 헤더 | 아니오 | 불리언 | — |
요청 본문: application/gzip · string
| 상태 코드 | 설명 | 응답 본문 |
|---|---|---|
| 201 | 생성된 배포 | Deployment |
| 400 | — | — |
| 403 | — | — |
| 404 | — | — |
| 413 | 번들이 한도를 초과했습니다 | Error |
POST /v1/orgs/{orgSlug}/projects/{projectName}/rollback
새 배포를 생성하지 않고 project_live를 이전 배포로 이동합니다. 아티팩트는 불변이므로 롤백 결과는 당시 제공되던 바이트와 정확히 동일합니다.
operationId rollback
요청 본문: application/json · object
| 상태 코드 | 설명 | 응답 본문 |
|---|---|---|
| 200 | 롤백된 배포 | Deployment |
| 403 | — | — |
| 404 | — | — |