프로젝트 관계 내보내기 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API는 직접 전송을 통한 그룹 마이그레이션 중에 대상 인스턴스가 프로젝트 구조를 마이그레이션하는 데 사용됩니다. 이 컨텍스트에서 는 머지 리퀘스트와 같이 내보낼 수 있는 항목입니다. 이 API를 사용하려면 GitLab 인스턴스가 특정 사전 요구 사항을 충족해야 합니다.
이 API는 직접 전송을 통한 그룹 마이그레이션 중에 대상 인스턴스가 프로젝트 구조를 마이그레이션하는 데 사용됩니다. 일반적으로 이 API를 직접 사용할 필요는 없습니다.
이 컨텍스트에서 는 머지 리퀘스트와 같이 내보낼 수 있는 항목입니다. 내보낼 때 관계에는 레이블과 같이 해당 관계와 관련된 항목이 포함됩니다.
이 API를 사용하려면 GitLab 인스턴스가 특정 사전 요구 사항을 충족해야 합니다.
이 API는 파일 기반 마이그레이션을 위한 그룹 가져오기 및 내보내기 API와 함께 사용할 수 없습니다.
새 내보내기 예약#
새 프로젝트 관계 내보내기를 시작합니다:
POST /projects/:id/export_relations
| 속성 | 타입 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID. |
batched |
boolean | 아니요 | 배치로 내보낼지 여부. |
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/export_relations"
{
"message": "202 Accepted"
}
내보내기 상태#
관계 내보내기의 상태를 봅니다:
GET /projects/:id/export_relations/status
| 속성 | 타입 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID. |
relation |
string | 아니요 | 볼 프로젝트 최상위 관계의 이름. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/1/export_relations/status"
상태는 다음 중 하나일 수 있습니다:
0:started1:finished-1:failed
[
{
"relation": "project_badges",
"status": 1,
"error": null,
"updated_at": "2021-05-04T11:25:20.423Z",
"batched": true,
"batches_count": 1,
"batches": [
{
"status": 1,
"batch_number": 1,
"objects_count": 1,
"error": null,
"updated_at": "2021-05-04T11:25:20.423Z"
}
]
},
{
"relation": "boards",
"status": 1,
"error": null,
"updated_at": "2021-05-04T11:25:20.085Z",
"batched": false,
"batches_count": 0
}
]
내보내기 다운로드#
완료된 관계 내보내기를 다운로드합니다:
GET /projects/:id/export_relations/download
| 속성 | 타입 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID. |
relation |
string | 예 | 다운로드할 프로젝트 최상위 관계의 이름. |
batched |
boolean | 아니요 | 내보내기가 배치로 처리되는지 여부. |
batch_number |
integer | 아니요 | 다운로드할 내보내기 배치의 번호. |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--remote-header-name \
--remote-name \
--url "https://gitlab.example.com/api/v4/projects/1/export_relations/download?relation=labels"
ls labels.ndjson.gz
labels.ndjson.gz
