기밀 이슈에 대한 Merge Request
공개 리포지터리에서의 Merge Request은 이슈를 기밀로 만들더라도 공개적입니다. 기밀 이슈에 대한 Merge Request이 생성되더라도 민감한 정보가 노출되지 않도록 하려면, 동일한 네임스페이스 내의 개인 포크에서 Merge Request을 생성하세요.
역할은 상위 그룹에서 상속됩니다. 공개(원본) 리포지터리와 동일한 네임스페이스(그룹 또는 서브그룹)에 개인 포크를 생성하는 경우, 개발자는 개인 포크에서 동일한 권한을 받습니다. 이러한 상속을 통해 다음이 보장됩니다:
- 개발자 사용자들은 기밀 이슈를 볼 수 있고 이를 해결하기 위해 필요한 권한을 얻습니다.
- 별도로 사용자에게 개별적으로 포크에 대한 액세스 권한을 부여할 필요가 없습니다.
GitLab의 기밀 Merge Request을 위한 보안 관행에 대한 정보를 확인할 수 있습니다.
기밀 Merge Request 생성
기본적으로 브랜치는 공개 상태입니다. 작업의 기밀성을 보호하려면 브랜치와 Merge Request을 동일한 네임스페이스 내에서 생성해야 합니다. 공개 리포지터리와 동일한 네임스페이스에 개인 포크를 생성하는 경우, 권한을 상속받습니다. 상위 공개 리포지터리의 개발자 권한을 가진 사용자는 여러분의 개인 포크의 하류에서 추가 조치없이 상위 권한을 상속받습니다. 이러한 사용자들은 즉시 여러분의 개인 포크의 브랜치에 코드를 푸시하여 기밀 이슈를 해결하는 데 도움을 줄 수 있습니다.
전제 조건:
- 공개 리포지터리에서 소유자 또는 유지자 역할을 가지고 있어야 하며, 서브그룹을 생성해야 합니다.
- 공개 리포지터리를 포크해야 합니다.
- 포크한 리포지터리의 가시성 수준이 _비공개(Private)_여야 합니다.
기밀 Merge Request 생성을 위해:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Plan > 이슈를 선택하고 Merge Request을 생성하려는 이슈를 찾습니다.
- 이슈 설명 아래로 스크롤하고 기밀 Merge Request 생성을 선택합니다.
- 요구 사항에 맞는 항목을 선택합니다:
- 브랜치와 Merge Request을 모두 생성하려면, 기밀 Merge Request 및 브랜치 생성을 선택합니다. 여러분의 Merge Request은 여러분의 포크의 기본 브랜치를 대상으로 하며, 공개 상류 프로젝트의 기본 브랜치를 대상으로 하지 않습니다.
- 브랜치만 생성하려면, 브랜치 생성을 선택합니다.
- 사용할 프로젝트를 선택합니다. 이러한 프로젝트들은 Merge Request이 활성화되어 있으며, 여러분은 해당 프로젝트에 개발자 역할(또는 그 이상)을 가지고 있어야 합니다.
- 브랜치 이름을 제공하고 소스(브랜치 또는 태그)를 선택합니다. GitLab은 이러한 브랜치가 여러분의 개인 포크에서 사용 가능한지 확인합니다. 왜냐하면 이 두 브랜치는 여러분이 선택한 포크에서 모두 사용 가능해야 하기 때문입니다.
- 생성을 선택합니다.
이 Merge Request은 공개 상류 프로젝트가 아닌 여러분의 개인 포크를 대상으로 합니다. 여러분의 브랜치, Merge Request 및 커밋은 여러분의 개인 포크에 유지됩니다. 이로써 기밀 정보가 너무 일찍 노출되는 것을 방지합니다.
여러분의 포크에서 상류 리포지터리로 Merge된 변경 사항을 Merge Request할 때:
- 여러분의 개인 포크에서 문제가 해결되었다고 확신하는 경우
- 기밀 커밋을 공개하려고 하는 경우