그룹 가져오기 및 내보내기 API
그룹 가져오기 및 내보내기 API를 사용하여 그룹 구조를 내보내고 새 위치로 가져올 수 있습니다. 프로젝트 가져오기 및 내보내기 API와 함께 사용하면 프로젝트 문제와 그룹 에픽과 같은 그룹 수준의 관계를 보존할 수 있습니다.
그룹 내보내기에는 다음이 포함됩니다:
- 그룹 마일스톤
- 그룹 보드
- 그룹 라벨
- 그룹 뱃지
- 그룹 멤버
- 그룹 위키 (Premium 및 Ultimate 전용)
- 하위 그룹들. 각 하위 그룹에는 위의 모든 데이터가 포함됩니다.
가져온 프로젝트로부터 그룹 수준의 관계를 보존하려면, 먼저 그룹을 내보내고 가져와야 합니다. 이렇게 하면 원하는 그룹 구조로 프로젝트를 가져올 수 있습니다.
가져온 그룹에 멤버 디렉터리과 해당 권한을 보존하려면, 해당 그룹의 사용자를 확인하세요. 원하는 그룹을 가져오기 전에 해당 사용자가 존재하는지 확인하세요.
전제 조건
- 그룹 가져오기와 내보내기 API의 전제 조건에 대한 정보는 내보낼 파일을 업로드하여 그룹을 이관를 참조하세요.
새로운 내보내기 일정
새 그룹 내보내기를 시작합니다.
POST /groups/:id/export
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 그룹의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/export"
{
"message": "202 Accepted"
}
내보내기 다운로드
완료된 내보내기를 다운로드합니다.
GET /groups/:id/export/download
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 그룹의 ID |
group=1
token=secret
curl --request GET\
--header "PRIVATE-TOKEN: ${token}" \
--output download_group_${group}.tar.gz \
"https://gitlab.example.com/api/v4/groups/${group}/export/download"
ls *export.tar.gz
2020-12-05_22-11-148_namespace_export.tar.gz
그룹을 내보내는 데 소요되는 시간은 그룹 크기에 따라 다를 수 있습니다. 이 엔드포인트는 다음 중 하나를 반환합니다:
- 내보낸 아카이브(사용 가능한 경우)
- 404 메시지
파일 가져오기
최대 가져올 파일 크기는 Self-Managed형 인스턴스에서 관리자가 설정할 수 있습니다 (기본값은 0
(무제한)입니다).
관리자로서 최대 가져올 파일 크기를 수정할 수 있습니다:
- 관리 영역에서
-
응용프로그램 설정 API에서
max_import_size
옵션 사용
GitLab.com에서 최대 가져올 파일 크기에 대한 정보는 계정 및 한도 설정를 참조하세요.
POST /groups/import
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
name
| string | yes | 가져올 그룹의 이름 |
path
| string | yes | 새 그룹의 이름 및 경로 |
file
| string | yes | 업로드할 파일 |
parent_id
| integer | no | 가져올 그룹을 가져올 부모 그룹의 ID. 제공하지 않으면 현재 사용자의 네임스페이스로 기본 설정됩니다. |
파일을 파일 시스템에서 가져오려면 --form
인수를 사용하세요. 이렇게 하면
cURL이 Content-Type: multipart/form-data
헤더를 사용하여 데이터를 게시합니다.
file=
매개변수는 파일 시스템의 파일을 가리키고 @
로 선행되어야 합니다. 예:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--form "name=imported-group" --form "path=imported-group" \
--form "file=@/path/to/file" "https://gitlab.example.com/api/v4/groups/import"