프로젝트 관리
GitLab v19.5Offering: GitLab Self-Managed, GitLab Dedicated
요약
GitLab에서 대부분의 작업은 프로젝트에서 이루어집니다. 프로젝트를 선택하면 Project overview 페이지에 다음과 같은 프로젝트 콘텐츠가 표시됩니다. 공개 프로젝트, 그리고 내부 및 비공개 프로젝트의 구성원 중 프로젝트 코드를 볼 수 있는 권한이 있는 경우, 프로젝트 개요 페이지에는 다음이 표시됩니다.
GitLab에서 대부분의 작업은 프로젝트에서 이루어집니다. 파일과 코드는 프로젝트에 저장되며, 대부분의 기능은 프로젝트 범위에 속합니다.
프로젝트 개요#
프로젝트를 선택하면 Project overview 페이지에 다음과 같은 프로젝트 콘텐츠가 표시됩니다.
- 리포지터리의 파일
- 프로젝트 정보(설명)
- 주제
- 배지
- 프로젝트의 별표, 포크, 커밋, 브랜치, 태그, 릴리스, 환경 수
- 커밋 수는 모든 브랜치가 아니라 프로젝트의 기본 브랜치를 기준으로 계산됩니다
- 프로젝트 스토리지 크기
- 선택적 파일 및 구성
README또는 인덱스 파일- 위키 페이지
- 라이선스
- 변경 내역
- 기여 가이드라인
- Kubernetes 클러스터
- CI/CD 구성
- 통합
- GitLab Pages
- 생성 날짜
공개 프로젝트, 그리고 내부 및 비공개 프로젝트의 구성원 중 프로젝트 코드를 볼 수 있는 권한이 있는 경우, 프로젝트 개요 페이지에는 다음이 표시됩니다.
README또는 인덱스 파일.- 프로젝트 리포지터리의 디렉터리 목록.
프로젝트 코드를 볼 권한이 없는 사용자에게는 개요 페이지에 다음이 표시됩니다.
- 위키 홈페이지.
- 프로젝트의 이슈 목록.
이름 대신 ID를 사용해 https://gitlab.example.com/projects/<id>에서 프로젝트에 액세스할 수 있습니다.
예를 들어 개인 네임스페이스 alex에 ID가 123456인 프로젝트 my-project가 있으면,
https://gitlab.example.com/alex/my-project 또는 https://gitlab.example.com/projects/123456에서 프로젝트에 액세스할 수 있습니다.
GitLab 17.5 이상에서는 이 엔드포인트에 https://gitlab.example.com/-/p/<id>도 사용할 수 있습니다.
프로젝트 ID 찾기#
GitLab API를 사용해 프로젝트와 상호 작용하려면 프로젝트 ID가 필요할 수 있습니다.
프로젝트 ID를 찾는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Copy project ID를 선택합니다.
프로젝트 보기#
Projects 목록으로 다음을 볼 수 있습니다.
- 인스턴스의 모든 프로젝트
- 사용자가 작업하거나 소유한 프로젝트
- 보관된 프로젝트와 삭제 대기 중인 프로젝트를 포함한 비활성 프로젝트
인스턴스의 모든 프로젝트 탐색#
히스토리
- GitLab 19.0에서 트렌딩 프로젝트 탭이 제거되었습니다. 기능 플래그
retire_trending_projects가 기본적으로 활성화되었습니다. - GitLab 19.1에서 기능 플래그
retire_trending_projects가 제거되었습니다.
GitLab 인스턴스의 모든 프로젝트를 봅니다. 활성 프로젝트와 비활성 프로젝트로 목록을 필터링할 수 있습니다.
- 활성 프로젝트는 최근 활동이 있거나 개발이 진행 중인 프로젝트입니다.
- 비활성 프로젝트는 보관되었거나 삭제가 예약된 프로젝트입니다.
인증되지 않은 상태라면 목록에는 공개 프로젝트만 표시됩니다.
GitLab 인스턴스의 프로젝트를 보는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- Explore를 선택합니다.
- 선택 사항. 탭을 선택해 표시할 프로젝트를 필터링합니다.
작업하는 프로젝트 보기#
히스토리
- GitLab 17.9에서
your_work_projects_vue라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 17.9에서
your_work_projects_vue라는 기능 플래그와 함께 탭 레이블이 Yours에서 Member로 변경되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 17.10에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그
your_work_projects_vue가 제거되었습니다.
상호 작용한 프로젝트를 보는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- View all my projects를 선택합니다.
- 선택 사항. 탭을 선택해 표시할 프로젝트를 필터링합니다.
- Contributed: 사용자가 다음을 수행한 프로젝트입니다.
- 이슈, 머지 리퀘스트, 에픽 생성
- 이슈, 머지 리퀘스트, 에픽에 댓글 작성
- 이슈, 머지 리퀘스트, 에픽 닫기
- 커밋 푸시
- 머지 리퀘스트 승인
- 머지 리퀘스트 머지
- Starred: 별표를 표시한 프로젝트입니다.
- Personal: 개인 네임스페이스에 생성한 프로젝트입니다.
- Member: 사용자가 구성원인 프로젝트입니다.
- Inactive: 보관된 프로젝트와 삭제 대기 중인 프로젝트입니다.
- Contributed: 사용자가 다음을 수행한 프로젝트입니다.
개인 프로필에서 별표를 표시한 프로젝트와 개인 프로젝트도 볼 수 있습니다.
- 오른쪽 상단에서 아바타를 선택한 다음 사용자 이름을 선택합니다.
- 왼쪽 사이드바에서 Starred projects 또는 Personal projects를 선택합니다.
비활성 프로젝트 보기#
히스토리
- GitLab 17.9에서
your_work_projects_vue라는 기능 플래그와 함께 탭 레이블이 "Pending deletion"에서 "Inactive"로 변경되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 17.10에서 탭 레이블 변경이 일반적으로 사용 가능하게 되었습니다. 기능 플래그
your_work_projects_vue가 제거되었습니다. - GitLab 18.0에서 GitLab Premium에서 GitLab Free로 이동되었습니다.
- GitLab 18.0에서 개인 네임스페이스의 프로젝트에 대해 활성화되었습니다.
프로젝트는 삭제 대기 중이거나 보관된 경우 비활성 상태입니다.
모든 비활성 프로젝트를 보는 방법은 다음과 같습니다.
- 다음 중 하나를 선택합니다.
- 자신의 프로젝트를 필터링하려면 View all my projects를 선택합니다.
- 액세스할 수 있는 모든 프로젝트를 필터링하려면 Explore를 선택합니다.
- Inactive 탭을 선택합니다.
목록의 각 비활성 프로젝트에는 해당 프로젝트가 보관되었는지 삭제 대기 중인지 나타내는 배지가 표시됩니다.
프로젝트가 삭제 대기 중이면 목록에 다음도 표시됩니다.
- 프로젝트의 최종 삭제가 예약된 시점.
- Restore 작업. 프로젝트를 복원하면 다음과 같이 동작합니다.
- Pending deletion 레이블이 제거됩니다. 프로젝트는 더 이상 삭제가 예약되지 않습니다.
- 프로젝트가 Inactive 탭에서 제거됩니다.
소유한 프로젝트만 보기#
소유자인 프로젝트만 보는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- 다음 중 하나를 선택합니다.
- 자신의 프로젝트를 필터링하려면 View all your projects를 선택합니다.
- 액세스할 수 있는 모든 프로젝트를 필터링하려면 Explore를 선택합니다.
- 프로젝트 목록 위에서 Search or filter results를 선택합니다.
- Role 드롭다운 목록에서 Owner를 선택합니다.
프로젝트 활동 보기#
프로젝트에서 가장 최근에 수행된 작업을 볼 수 있습니다.
-
상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
왼쪽 사이드바에서 Manage > Activity를 선택합니다.
-
선택 사항. 기여 유형으로 활동을 필터링하려면 탭을 선택합니다.
- All: 프로젝트 구성원의 모든 기여.
- Push events: 프로젝트의 푸시 이벤트.
- Merge events: 프로젝트에서 수락된 머지 리퀘스트.
- Issue events: 프로젝트에서 열리고 닫힌 이슈.
- Comments: 프로젝트 구성원이 게시한 댓글.
- Designs: 프로젝트에서 추가, 업데이트, 제거된 디자인.
- Team: 프로젝트에 참여하거나 나간 구성원.
-
선택 사항. 이 활동의 RSS 피드를 구독하려면 피드 기호 ([rss])를 선택합니다.
GitLab은 성능상의 이유로 3년이 지난 프로젝트 활동 이벤트를 이벤트 테이블에서 제거합니다.
언어별 프로젝트 필터링#
프로젝트가 사용하는 프로그래밍 언어로 프로젝트를 필터링할 수 있습니다. 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- 다음 중 하나를 선택합니다.
- 자신의 프로젝트를 필터링하려면 View all your projects를 선택합니다.
- 액세스할 수 있는 모든 프로젝트를 필터링하려면 Explore를 선택합니다.
- 프로젝트 목록 위에서 Search or filter results를 선택합니다.
- Language 드롭다운 목록에서 프로젝트를 필터링할 언어를 선택합니다.
선택한 언어를 사용하는 프로젝트 목록이 표시됩니다.
프로젝트에 별표 표시#
자주 사용하는 프로젝트에 별표를 표시하면 더 쉽게 찾을 수 있습니다.
프로젝트에 별표를 표시하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 페이지 오른쪽 상단에서 Star를 선택합니다.
프로젝트 나가기#
프로젝트를 나가면 다음과 같이 동작합니다.
- 더 이상 프로젝트 구성원이 아니며 기여할 수 없습니다.
- 사용자에게 할당되어 있던 모든 이슈와 머지 리퀘스트는 할당이 해제됩니다.
사전 요구 사항:
프로젝트를 나가는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Leave project를 선택한 다음 Leave project를 다시 선택합니다.
Your work 목록 보기에서 바로 프로젝트를 나가는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- View all my projects를 선택합니다.
- Member 탭에서 나가려는 프로젝트를 찾고 세로 줄임표 (⋮)를 선택합니다.
- Leave project를 선택합니다.
이 작업은 다른 목록 페이지에서도 사용할 수 있습니다.
프로젝트 편집#
프로젝트 일반 설정으로 프로젝트 세부 정보를 편집합니다.
사전 요구 사항:
- 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Project name 텍스트 상자에 프로젝트 이름을 입력합니다. 프로젝트 이름 제한을 참고합니다.
- 선택 사항. Project description 텍스트 상자에 프로젝트 설명을 입력합니다. 설명은 2,000자로 제한됩니다. CI/CD 카탈로그에 게시되는 컴포넌트에는 프로젝트 설명이 필요합니다.
- Save changes를 선택합니다.
리포지터리 이름 변경#
프로젝트의 리포지터리 이름이 프로젝트 URL을 정의합니다.
사전 요구 사항:
- 관리자이거나 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
리포지터리 경로를 변경하면 이전 URL로 푸시하거나 풀하는 사용자에게 문제가 발생할 수 있습니다. 리디렉션 유지 기간과 그 부작용에 대한 자세한 내용은 리포지터리 이름 변경 시 리디렉션을 참고합니다.
리포지터리 이름을 변경하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Advanced를 확장합니다.
- Change path 텍스트 상자에서 경로를 편집합니다.
- Change path를 선택합니다.
프로젝트 아바타 추가#
프로젝트를 시각적으로 식별하는 데 도움이 되도록 프로젝트 아바타를 추가합니다. 아바타를 추가하지 않으면 GitLab은 프로젝트 이름의 첫 글자를 기본 프로젝트 아바타로 표시합니다.
프로젝트 아바타를 추가하려면 다음 방법 중 하나를 사용합니다.
- 리포지터리에 로고를 추가합니다.
- 프로젝트 설정에서 아바타를 업로드합니다.
리포지터리에 로고 추가#
프로젝트 설정에 아바타를 업로드하지 않은 경우, GitLab은 기본 프로젝트 아바타로 사용할 logo라는 이름의 파일을 리포지터리에서 찾습니다.
사전 요구 사항:
- 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
- 파일 크기는 200KB 이하여야 합니다. 이상적인 이미지 크기는 192 x 192 픽셀입니다.
- 파일 이름은
logo여야 하며 확장자는.png,.jpg,.gif중 하나여야 합니다. 예를 들어logo.gif입니다.
프로젝트 아바타로 사용할 로고 파일을 추가하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 리포지터리의 루트에 로고 파일을 업로드합니다.
프로젝트 설정에서 아바타 업로드#
사전 요구 사항:
- 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다.
- 파일 크기는 200KB 이하여야 합니다. 이상적인 이미지 크기는 192 x 192 픽셀입니다.
- 이미지는 다음 파일 유형 중 하나여야 합니다.
.bmp.gif.ico.jpeg.png.tiff
프로젝트 설정에서 아바타를 업로드하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Project avatar 섹션에서 Choose file을 선택합니다.
- 아바타 파일을 선택합니다.
- Save changes를 선택합니다.
프로젝트 삭제#
히스토리
- GitLab 16.0에서 GitLab.com과 GitLab Self-Managed의 Premium 및 Ultimate 티어에 대해 기본 동작이 지연된 프로젝트 삭제로 변경되었습니다.
- GitLab 18.0에서 GitLab Free와 개인 프로젝트에 대해 기본 동작이 지연된 프로젝트 삭제로 변경되었습니다.
기본적으로 프로젝트를 처음 삭제하면 삭제 대기 상태가 됩니다. 프로젝트를 다시 삭제하면 즉시 제거됩니다.
사전 요구 사항:
- 프로젝트에 대한 Owner 권한이 있어야 합니다.
- Owner가 프로젝트를 삭제할 수 있도록 허용되어 있어야 합니다.
프로젝트를 삭제하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Delete를 선택합니다.
- 확인 대화 상자에서 프로젝트 이름을 입력하고 Yes, delete project를 선택합니다.
이 작업은 프로젝트를 삭제 대상으로 표시하는 백그라운드 job을 추가합니다. GitLab.com에서는 30일 후에 프로젝트가 삭제됩니다. GitLab Self-Managed에서는 인스턴스 설정으로 보존 기간을 수정할 수 있습니다.
프로젝트 삭제를 예약한 사용자가 삭제가 실행되기 전에 프로젝트 액세스 권한을 잃으면 (예를 들어 프로젝트를 나가거나, 권한이 하향 조정되거나, 프로젝트에서 차단된 경우) 삭제 job은 프로젝트를 대신 복원하고, 프로젝트는 더 이상 삭제가 예약되지 않습니다.
프로젝트가 삭제 대상으로 표시되면 예약된 CI/CD 파이프라인이 실행을 중지합니다.
프로젝트 삭제를 예약한 사용자가 job이 실행되기 전에 Owner 권한이나 관리자 액세스 권한을 다시 얻으면, job은 프로젝트를 영구적으로 제거합니다.
Rails 콘솔을 사용해 프로젝트를 삭제할 수도 있습니다.
프로젝트 즉시 삭제#
히스토리
- GitLab 18.0에서 GitLab Premium에서 GitLab Free로 이동되었습니다.
구성된 보존 기간을 기다리지 않고 프로젝트를 삭제하려면, 프로젝트를 즉시 삭제할 수 있습니다.
사전 요구 사항:
- 프로젝트에 대한 Owner 권한이 있어야 합니다.
- 프로젝트를 삭제 예약해 두어야 합니다.
삭제가 예약된 프로젝트를 영구적으로 삭제하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Delete permanently를 선택합니다.
- 확인 대화 상자에서 프로젝트 이름을 입력하고 Yes, delete project를 선택합니다.
이 작업은 이슈와 머지 리퀘스트를 포함해 프로젝트와 관련된 모든 리소스를 삭제합니다.
프로젝트 복원#
히스토리
- GitLab 18.0에서 GitLab Premium에서 GitLab Free로 이동되었습니다.
- GitLab 18.0에서 개인 네임스페이스의 프로젝트에 대해 활성화되었습니다.
사전 요구 사항:
- 프로젝트에 대한 Owner 권한이 있어야 합니다.
삭제 대기 중인 프로젝트를 복원하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Restore를 선택합니다.
프로젝트 보관#
히스토리
- GitLab 17.5에서 Pages 제거가 도입되었습니다.
프로젝트를 보관하면 읽기 전용이 되고 나중에 참조할 수 있도록 데이터가 보존됩니다.
프로젝트를 보관하면 다음과 같이 동작합니다.
- 프로젝트가 비활성 상태가 되고
Archived배지가 표시됩니다 - 리포지터리, 이슈, 머지 리퀘스트, 패키지를 포함한 대부분의 기능이 읽기 전용이 됩니다
- 포크 관계가 제거되고 포크에서 올라온 열린 머지 리퀘스트가 닫힙니다
- 배포된 Pages가 사용자 지정 도메인과 함께 제거됩니다
- 예약된 CI/CD 파이프라인이 실행을 중지합니다
- 풀 미러링이 중지됩니다
사전 요구 사항:
- 관리자이거나 프로젝트에 대한 Owner 권한이 있어야 합니다.
프로젝트를 보관하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Archive를 선택합니다.
Your work 목록 보기에서 바로 프로젝트를 보관하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- 드롭다운에서 View all my projects를 선택합니다.
- Member 탭에서 보관하려는 프로젝트를 찾고 세로 줄임표 (⋮)를 선택합니다.
- Archive를 선택합니다.
이 작업은 다른 목록 페이지에서도 사용할 수 있습니다.
프로젝트 보관 취소#
프로젝트 보관을 취소하면 다음과 같이 동작합니다.
- 읽기 전용 제한이 제거됩니다
- 프로젝트가 더 이상 비활성으로 표시되지 않습니다
- 예약된 CI/CD 파이프라인이 자동으로 재개됩니다
- 풀 미러링이 자동으로 재개됩니다
그룹 보관의 일부로 보관된 프로젝트는 개별적으로 보관을 취소할 수 없습니다. 모든 프로젝트와 하위 그룹의 보관을 취소하려면 상위 그룹의 보관을 취소해야 합니다.
배포된 Pages는 자동으로 복원되지 않습니다. Pages를 복원하려면 파이프라인을 다시 실행해야 합니다.
사전 요구 사항:
- 관리자이거나 프로젝트에 대한 Owner 권한이 있어야 합니다.
프로젝트 보관을 취소하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 프로젝트 개요 페이지의 오른쪽 상단에서 Actions (⋮)를 선택합니다.
- Unarchive를 선택합니다.
Your work 목록 보기에서 바로 프로젝트 보관을 취소하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- 드롭다운에서 View all my projects를 선택합니다.
- Inactive 탭에서 보관을 취소하려는 프로젝트를 찾고 세로 줄임표 (⋮)를 선택합니다.
- Unarchive를 선택합니다.
이 작업은 다른 목록 페이지에서도 사용할 수 있습니다.
프로젝트 이전#
히스토리
- GitLab 17.7에서
transfer_project_with_tags라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 17.7에서 GitLab.com에서 활성화되었습니다. 기능 플래그가 제거되었습니다.
- GitLab 18.11에서 프로젝트 비동기 이전이
groups_and_projects_async_transfer라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. - GitLab 19.4에서 일반적으로 사용 가능하게 되었습니다. 기능 플래그
groups_and_projects_async_transfer가 제거되었습니다.
프로젝트를 다른 그룹으로 옮기려면 프로젝트를 이전합니다. 프로젝트 이전은 같은 GitLab 인스턴스에 있는 임의의 네임스페이스 사이에서 개별 프로젝트를 옮깁니다.
프로젝트는 다음 방향으로 이전할 수 있습니다.
- 개인 네임스페이스에서 그룹으로
- 그룹에서 다른 그룹으로
- 그룹에서 개인 네임스페이스로
사전 요구 사항:
- 대상 그룹에 대한 Maintainer 또는 Owner 권한.
- 이전하려는 프로젝트에 대한 Owner 권한.
- 대상 그룹에서 프로젝트 생성 활성화.
프로젝트가 보관되었거나 삭제 대기 중이면 이전할 수 없습니다.
프로젝트를 이전하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Advanced를 확장합니다.
- Transfer project 아래에서 프로젝트를 이전할 네임스페이스를 선택합니다.
- Transfer project를 선택합니다.
- 프로젝트 이름을 입력하고 Confirm을 선택합니다.
이전을 확인하면 다음과 같이 동작합니다.
- 프로젝트가 비동기로 이전됩니다.
- 이전에 성공하면 Moved project 사용자 지정 알림을 켠 사용자에게 확인 이메일이 발송됩니다.
- 이전에 실패하면 이메일이 발송되지 않습니다. 이전을 시작한 사용자에게 실패 사유가 담긴 할 일 항목이 생성됩니다.
- 기존 프로젝트 URL은 새 프로젝트 URL로 리디렉션됩니다. 새 프로젝트 URL을 보려면 페이지를 새로 고칩니다. 대규모 프로젝트에서는 이전이 완료될 때까지 기다려야 대상 네임스페이스에서 프로젝트를 볼 수 있습니다.
프로젝트를 이전한 후에는 다음을 확인합니다.
- 로컬 리포지터리의 원격을 새 URL로 업데이트합니다.
- 프로젝트 구성원의 액세스와 권한을 확인합니다.
- 필요한 경우 패키지 구성을 업데이트하고 다시 게시합니다.
- CI/CD 파이프라인과 통합을 테스트합니다.
- 필요한 경우 보안 정책을 검토하고 재할당합니다.
관리자는 관리 영역에서 프로젝트를 이전할 수 있습니다.
이전되는 데이터#
프로젝트 이전에는 다음이 포함됩니다.
- 프로젝트 구성 요소:
- 이슈, 머지 리퀘스트, 이슈 스레드
- CI/CD 파이프라인 및 구성
- 대시보드 및 위키
- 리포지터리 코드 및 Git 히스토리
- 프로젝트 액세스 토큰
- 프로젝트 구성원:
- 직접 프로젝트 구성원과 그 권한
- 대기 중인 멤버십 초대
- 자동 조정:
- 일치하는 그룹 레이블이 없으면 새 프로젝트 레이블이 생성됩니다
- 필요한 경우 대상 그룹에 에픽 복사본이 생성되며, 프로젝트별로 별도의 복사본이 만들어집니다
- 같은 에픽에 할당된 이슈가 있는 여러 프로젝트를 이전하면, 각 프로젝트마다 대상 그룹에 해당 에픽의 별도 복사본이 생성됩니다.
이전 과정에서 오류가 발생하면 프로젝트 구성 요소나 최종 사용자의 의존성에 데이터 손실이 발생할 수 있습니다.
알려진 문제#
프로젝트를 이전할 때는 다음 제한 사항을 염두에 둡니다.
상속된 멤버십이 있는 프로젝트의 경우:
- 프로젝트에 상속된 멤버십이 있는 구성원은 대상 그룹의 구성원이 아니면 액세스 권한을 잃습니다.
- 프로젝트는 대상 그룹에서 새 구성원 권한을 상속합니다.
컨테이너 레지스트리가 활성화된 프로젝트의 경우:
- GitLab.com에서는 같은 최상위 그룹 내에서만 프로젝트를 이전할 수 있습니다.
- GitLab Self-Managed에서는 프로젝트에 컨테이너 이미지가 포함되어 있지 않아야 합니다.
- 컨테이너 리포지터리가 1,000개를 넘는 프로젝트는 이전할 수 없습니다. 자세한 내용은 컨테이너 레지스트리 리포지터리 이동 또는 이름 변경을 참고합니다.
패키지 레지스트리를 사용하는 프로젝트의 경우:
- 루트 네임스페이스가 변경되면 명명 규칙을 따르는 npm 패키지를 프로젝트에서 제거해야 합니다. 프로젝트를 이전한 후에는 다음 중 하나를 수행할 수 있습니다.
- 새 루트 네임스페이스 경로로 패키지 스코프를 업데이트하고 프로젝트에 다시 게시합니다.
- 루트 네임스페이스 경로를 업데이트하지 않고 프로젝트에 패키지를 다시 게시하면, 패키지가 더 이상 명명 규칙을 따르지 않게 됩니다. 루트 네임스페이스 경로를 업데이트하지 않고 패키지를 다시 게시하면 인스턴스 엔드포인트에서 사용할 수 없습니다.
보안 정책이 있는 프로젝트의 경우:
- 프로젝트에 보안 정책이 없어야 합니다. 프로젝트에 보안 정책이 할당되어 있으면 이전 중에 자동으로 할당이 해제됩니다.
GitLab Secrets Manager를 사용하는 프로젝트의 경우:
그룹, 그 하위 그룹, 그 프로젝트의 GitLab Secrets Manager에 있는 모든 시크릿은 이전 과정에서 영구적으로 삭제됩니다.
이름이나 경로가 충돌하는 프로젝트의 경우:
- 대상 네임스페이스에 이름이나 경로가 같은 프로젝트 또는 하위 그룹이 이미 있으면 프로젝트를 이전할 수 없습니다. 여기에는 삭제 대기 중인 프로젝트도 포함됩니다. 충돌을 해결하려면 프로젝트를 이전하기 전에 대상 네임스페이스에서 충돌하는 항목의 이름을 변경하거나 항목을 제거합니다.
프로젝트를 이전하면 다음과 같이 동작합니다.
- 프로젝트 경로가 변경됩니다. 필요한 경우 프로젝트 구성 요소의 URL을 변경합니다.
GitLab.com 프로젝트를 다른 구독 티어로 이전#
GitLab.com Premium 또는 Ultimate 라이선스가 적용된 네임스페이스에서 GitLab Free로 프로젝트를 이전하면 다음과 같이 동작합니다.
- 프로젝트 액세스 토큰이 취소됩니다.
- 파이프라인 구독과 테스트 케이스가 삭제됩니다.
Actions 메뉴로 프로젝트 관리#
모든 프로젝트 목록을 보고 Actions 메뉴로 관리할 수 있습니다.
사전 요구 사항:
- 해당 작업을 수행하려면 필요한 프로젝트 권한이 있어야 합니다.
Actions 메뉴로 프로젝트를 관리하는 방법은 다음과 같습니다.
- 상단 표시줄에서 Search or go to를 선택합니다.
- 드롭다운에서 View all my projects를 선택합니다.
- Projects 페이지에서 프로젝트를 찾고 세로 줄임표 (⋮)를 선택합니다.
- 작업을 선택합니다.
프로젝트 상태에 따라 사용할 수 있는 작업은 다음과 같습니다.
| 프로젝트 상태 | 사용 가능한 작업 |
|---|---|
| 활성 | Copy project ID, Edit, Archive, Transfer, Leave project, Delete |
| 보관됨 | Copy project ID, Unarchive, Leave project, Delete |
| 삭제 대기 중 | Copy project ID, Restore, Leave project, Delete permanently |
프로젝트에 컴플라이언스 프레임워크 추가#
컴플라이언스 프레임워크가 있는 그룹의 프로젝트에 컴플라이언스 프레임워크를 추가할 수 있습니다.
LDAP 그룹으로 프로젝트 액세스 관리#
LDAP로 그룹 멤버십을 관리할 수 있습니다.
LDAP 그룹으로 프로젝트 액세스를 관리할 수는 없지만, 다음 우회 방법을 사용할 수 있습니다.
사전 요구 사항:
- LDAP를 GitLab과 통합해야 합니다.
- 관리자여야 합니다.
- 프로젝트의 멤버십을 추적할 그룹을 생성합니다.
- 해당 그룹에 LDAP 동기화를 설정합니다.
- LDAP 그룹으로 프로젝트 액세스를 관리하려면, 프로젝트에 LDAP 동기화된 그룹을 구성원으로 추가합니다.
프로젝트 별칭#
GitLab 리포지터리는 보통 네임스페이스와 프로젝트 이름으로 액세스합니다. 그러나 자주 액세스하는 리포지터리를 GitLab으로 마이그레이션할 때는 프로젝트 별칭을 사용해 원래 이름으로 해당 리포지터리에 액세스할 수 있습니다. 프로젝트 별칭으로 리포지터리에 액세스하면 이러한 리포지터리를 마이그레이션하는 데 따르는 위험이 줄어듭니다.
이 기능은 SSH를 통한 Git에서만 사용할 수 있습니다. 또한 GitLab 관리자만 프로젝트 별칭을 만들 수 있으며, API를 통해서만 만들 수 있습니다. 자세한 내용은 프로젝트 별칭 API 문서를 참고합니다.
관리자가 프로젝트의 별칭을 만든 후에는 그 별칭으로 리포지터리를 클론할 수 있습니다. 예를 들어
관리자가 프로젝트 https://gitlab.com/gitlab-org/gitlab에 별칭 gitlab을 만들면,
git clone git@gitlab.com:gitlab-org/gitlab.git 대신
git clone git@gitlab.com:gitlab.git으로 프로젝트를 클론할 수 있습니다.