기밀 이슈에 대한 병합 요청
공개 저장소에서의 병합 요청은 해당 이슈를 기밀로 만들더라도 여전히 공개됩니다. 따라서 기밀 이슈에 작업할 때 기밀 정보가 유출되지 않도록 하려면, 동일한 네임스페이스 내의 비공개 포크에서 병합 요청을 생성해야 합니다.
역할은 상위 그룹에서 상속됩니다. 원본(공개) 저장소와 동일한 네임스페이스(동일한 그룹 또는 하위 그룹)에 비공개 포크를 생성하면, 개발자들은 해당 포크에서 동일한 권한을 받게 됩니다. 이러한 상속을 통해 다음이 보장됩니다.
- 개발자 유저는 기밀 이슈를 볼 수 있는 필요한 권한을 가지고 해결할 수 있습니다.
- 포크에 개별적으로 사용자에게 액세스 권한을 부여할 필요가 없습니다.
자세한 내용은 기술문서작성자를 위한 패치 릴리스 런북: 보안 수정 사항을 패치 릴리스를 위해 준비하기을 참조하세요.
기밀 병합 요청 생성
기본적으로 브랜치는 공개 상태입니다. 작업 정보의 기밀성을 보호하려면 브랜치 및 병합 요청을 동일한 네임스페이스 내에서만 생성해야 합니다. 개발자 역할로 사용되는 사용자가 공개 저장소에서 상속된 상위 권한을 액션 없이 동일한 네임스페이스 내의 하위 개인 포크에 대해 상속받게 됩니다. 이러한 사용자들은 즉시 개인 포크의 브랜치에 코드를 푸시하여 기밀 이슈를 해결하는 데 도움을 줄 수 있습니다.
경고: 개인 포크가 상위 저장소와 다른 네임스페이스에 생성되면 기밀 정보가 노출될 수 있습니다. 두 네임스페이스에는 동일한 사용자가 포함되지 않을 수 있습니다.
전제 조건:
- 공개 저장소에 대한 소유자 또는 유지 관리자 역할이 있어야 하며, 하위 그룹을 만들려면 이들 역할 중 하나가 필요합니다.
- 공개 저장소를 포크했어야 합니다.
- 포크의 가시성 수준이 비공개 여야 합니다.
기밀 병합 요청을 생성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Plan > 이슈를 선택하고 병합 요청을 만들고자 하는 이슈를 찾습니다.
- 이슈 설명 아래로 스크롤하여 기밀 병합 요청 만들기를 선택합니다.
- 요구에 맞는 옵션을 선택합니다:
- 브랜치 및 병합 요청을 모두 만들려면 기밀 병합 요청 및 브랜치 만들기를 선택합니다. 여러분의 병합 요청은 기본적으로 여러분의 포크의 기본 브랜치를 대상으로 하며, 공개 상위 프로젝트의 기본 브랜치를 대상으로 하지 않습니다.
- 브랜치만 만들려면 브랜치 만들기를 선택합니다.
- 사용할 프로젝트를 선택합니다. 이러한 프로젝트에는 병합 요청이 활성화되어 있으며 여러분은 이러한 프로젝트에 대해 개발자 역할(또는 그 이상)을 가지고 있습니다.
- 브랜치 이름을 제공하고 소스(브랜치 또는 태그)를 선택합니다. GitLab은 이러한 브랜치가 여러분의 비공개 포크에 있는지 확인하며, 선택된 포크에 두 브랜치가 모두 있어야 합니다.
- 만들기를 선택합니다.
이 병합 요청은 공개 상위 프로젝트가 아닌 여러분의 개인 포크를 대상으로 합니다. 여러분의 브랜치, 병합 요청 및 커밋은 여러분의 개인 포크에 남아 있습니다. 이로써 기밀 정보가 조기에 노출되는 것을 방지합니다.
포크한 저장소에서 상류 저장소로 병합 변경 사항을 원할 때:
- 문제가 여러분의 개인 포크에서 해결되었다고 생각될 때
- 기밀 커밋을 공개하려고 할 때
관련 주제
- 기밀 이슈
- 에픽을 기밀로 만들기
- 내부 참고 추가
- GitLab의 기밀 병합 요청에 대한 보안 관행들(https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/engineer.md#security-releases-critical-non-critical-as-a-developer)