기밀 이슈에 대한 Merge Request

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

공개 리포지터리의 Merge Request은 기밀 이슈를 위해 만들어진 경우에도 공개입니다. 기밀 이슈를 다룰 때 기밀 정보가 유출되는 것을 방지하려면, 동일한 네임스페이스 내의 비공개 포크에서 Merge Request을 생성하세요.

역할은 상위 그룹에서 상속됩니다. 원래 (공개) 리포지터리와 동일한 네임스페이스(동일한 그룹 또는 하위 그룹)에 비공개 포크를 생성하는 경우, 개발자들은 해당 포크에서 동일한 권한을 받게 됩니다. 이러한 상속은 다음을 보장합니다:

  • 개발자 사용자들이 기밀 이슈를 볼 수 있고 해결할 수 있는 필요한 권한을 가지게 됨
  • 당신의 포크에 개별 사용자에게 액세스 권한을 부여할 필요가 없음

GitLab의 기밀 Merge Request에 대한 보안 관행을 확인할 수 있습니다.

기밀 Merge Request 생성

기본적으로 브랜치는 공개 상태입니다. 귀하의 작업 내용을 기밀로 보호하기 위해선, 브랜치와 Merge Request을 동일한 네임스페이스 내에서 작성해야 합니다. 만약 귀하의 비공개 포크를 공개 리포지터리와 동일한 네임스페이스에 생성한다면, 귀하의 포크는 상위 공개 리포지터리의 권한을 상속 받습니다. 공개 리포지터리에서 개발자 역할을 하는 사용자들은 귀하의 하위 비공개 포크에서 추가 조치를 취하기 않고도 귀하의 포크에 대해 상위 리포지터리의 권한을 상속 받을 수 있습니다. 이러한 사용자들은 즉시 귀하의 비공개 포크의 브랜치에 코드를 푸시하여 기밀 이슈를 해결하는 데 도움을 줄 수 있습니다.

caution
귀하의 비공개 포크가 상위 리포지터리와 다른 네임스페이스에 생성된 경우, 귀하의 비공개 포크가 기밀 정보를 노출할 수 있습니다. 두 네임스페이스에는 동일한 사용자가 포함되어 있지 않을 수 있습니다.

전제 조건:

  • 귀하는 공개 리포지터리에서 소유자 또는 관리자 역할을 가지고 있어야 합니다. 왜냐하면 서브그룹을 생성해야 하기 때문입니다.
  • 귀하는 공개 리포지터리를 포크했어야 합니다.
  • 귀하의 포크는 가시성 수준비공개 여야 합니다.

기밀 Merge Request을 생성하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 귀하의 프로젝트를 찾습니다.
  2. Plan > 이슈를 선택하고 Merge Request을 만들고자 하는 이슈를 찾습니다.
  3. 이슈 설명 아래로 스크롤하여 기밀 Merge Request 만들기를 선택합니다.
  4. 귀하의 요구에 맞는 항목을 선택합니다:
    • 브랜치와 Merge Request을 모두 생성하려면, 기밀 Merge Request 및 브랜치 생성을 선택합니다. 귀하의 Merge Request은 귀하의 포크의 기본 브랜치를 대상으로 합니다. 공개 상위 프로젝트의 기본 브랜치가 아닙니다.
    • 브랜치만 생성하려면, 브랜치 생성을 선택합니다.
  5. 사용할 프로젝트를 선택합니다. 이러한 프로젝트들은 Merge Request이 활성화되어 있으며 귀하가 개발자 역할 또는 그 이상의 역할을 가지고 있습니다.
  6. 브랜치 이름을 제공하고 소스 (브랜치 또는 태그)를 선택합니다. GitLab은 이러한 브랜치가 귀하의 비공개 포크에서 사용 가능한지 확인합니다. 왜냐하면 이러한 브랜치들은 귀하가 선택한 포크 내에서 모두 사용 가능해야 하기 때문입니다.
  7. 생성을 선택합니다.

이 Merge Request은 귀하의 공개 포크가 아닌 귀하의 비공개 포크를 대상으로 합니다. 귀하의 브랜치, Merge Request 및 커밋은 귀하의 비공개 포크에 남아 있습니다. 이로써 기밀 정보가 일찍 노출되는 것을 방지할 수 있습니다.

귀하의 포크에서 상류 리포지터리로 Merge 변경 사항을 다시 Merge하는 경우:

  • 귀하는 귀하의 비공개 포크에서 문제가 해결되었다고 판단되면
  • 귀하는 기밀 커밋을 공개하고자 준비가 되었을 때

관련 주제