그룹 가져오기 및 내보내기 API
그룹 가져오기 및 내보내기 API를 사용하여 그룹 구조를 내보내고 새 위치로 가져올 수 있습니다. 프로젝트 가져오기 및 내보내기 API와 함께 그룹 수준의 관계를 보존할 수 있으며, 이는 프로젝트 이슈와 그룹 에픽과의 연결과 같은 관계가 포함됩니다.
그룹 내보내기에는 다음이 포함됩니다.
- 그룹 마일스톤
- 그룹 보드
- 그룹 레이블
- 그룹 뱃지
- 그룹 멤버
- 그룹 위키 (Premium 및 Ultimate 전용)
- 서브그룹. 각 서브그룹에는 위에 나열된 모든 데이터가 포함됩니다.
가져온 프로젝트에서 그룹 수준의 관계를 보존하려면 먼저 그룹 내보내기 및 가져오기를 실행해야 합니다. 이렇게 하면 원하는 그룹 구조로 프로젝트 가져오기가 가능합니다.
가져온 그룹은 부모 그룹에 가져오지 않으면 private
가시성 수준을 가집니다. 기본적으로 그룹을 부모 그룹에 가져오면 서브그룹은 부모와 동일한 가시성 수준을 상속받습니다.
가져온 그룹에서 멤버 목록과 해당 멤버의 권한을 보존하려면 이러한 그룹의 사용자를 확인하세요. 원하는 그룹을 가져오기 전에 이러한 사용자가 존재하는지 확인하세요.
필수 조건
- 그룹 가져오기 및 내보내기 API의 필수 조건에 대한 정보는 내보낸 파일을 업로드하여 그룹을 이관참조.
새로운 내보내기 예약
새 그룹 내보내기를 시작합니다.
POST /groups/:id/export
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹 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
| 정수/문자열 | 예 | 그룹 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 메시지
파일 가져오기
최대 가져오기 파일 크기는 자체 관리 인스턴스에서 관리자가 설정할 수 있습니다(기본값은 0
(무제한)입니다).
관리자로서는 최대 가져오기 파일 크기를 변경할 수 있습니다.
- 관리자 영역에서
-
Application settings API에서
max_import_size
옵션을 사용하여 변경할 수 있습니다.
GitLab.com에서 최대 가져오기 파일 크기에 대한 정보는 계정 및 제한 설정을 참조하십시오.
POST /groups/import
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
name
| 문자열 | 예 | 가져올 그룹의 이름 |
path
| 문자열 | 예 | 새 그룹의 이름 및 경로 |
file
| 문자열 | 예 | 업로드할 파일 |
parent_id
| 정수 | 아니요 | 가져올 그룹을 가져올 부모 그룹의 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"