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

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

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

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

  • 그룹 이정표
  • 그룹 보드
  • 그룹 레이블
  • 그룹 배지
  • 그룹 구성원
  • 그룹 위키 (프리미엄 및 얼티밋 전용)
  • 하위 그룹. 각 하위 그룹에는 위의 모든 데이터가 포함됩니다

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

알려진 문제 때문에 가져온 그룹은 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 메시지

파일 가져오기

최대 가져오기 파일 크기는 자가 호스팅 인스턴스의 관리자가 설정할 수 있습니다(기본값은 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"  

관련 주제