그룹 가져오기 및 내보내기 API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

그룹 가져오기 및 내보내기 API를 사용하여 그룹 구조를 내보내고 새 위치로 가져올 수 있습니다. 그룹 가져오기 및 내보내기 API를 프로젝트 가져오기 및 내보내기 API와 함께 사용하면 프로젝트 이슈와 그룹 에픽과 같은 그룹 수준 관계를 보존할 수 있습니다.

그룹 내보내기에는 다음이 포함됩니다:

  • 그룹 마일스톤
  • 그룹 보드
  • 그룹 레이블
  • 그룹 뱃지
  • 그룹 구성원
  • 그룹 위키 (Premium 및 Ultimate 전용)
  • 하위 그룹. 각 하위 그룹은 위의 모든 데이터를 포함합니다.

가져온 프로젝트에서 그룹 수준 관계를 보존하려면 먼저 그룹을 내보내고 가져와야 합니다. 이렇게 하면 원하는 그룹 구조로 프로젝트를 가져올 수 있습니다.

수정된 그룹이 가져오기되는 경우 알려진 문제로 가져온 그룹은 private 가시성 수준을 가집니다. 기본적으로 그룹을 부모 그룹에 가져오는 경우 하위 그룹은 부모의 가시성 수준과 동일하게 상속받습니다.

가져온 그룹에서 구성원 디렉터리과 각각의 권한을 보존하려면 해당 그룹의 사용자를 확인하세요. 원하는 그룹을 가져오기 전에 이러한 사용자가 존재하는지 확인하세요.

전제 조건

새로운 내보내기 예약

새로운 그룹 내보내기를 시작합니다.

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 메시지

파일 가져오기

최대 가져오기 파일 크기는 Self-managed 인스턴스에서 관리자가 설정할 수 있습니다 (기본값은 0(무제한)입니다). 관리자로서 최대 가져오기 파일 크기를 수정할 수 있습니다.

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"

관련 주제