Skip to main content

리포지토리 보안 취약성을 해결하기 위해 임시 프라이빗 포크에서 협업

임시 프라이빗 포크를 만들어 공개 리포지토리의 보안 취약성을 해결하기 위해 비공개로 공동 작업할 수 있습니다.

참고: 이 문서는 리포지토리 수준의 권고를 퍼블릭 리포지토리 소유자로서 편집하는 데 적용됩니다.

리포지토리를 소유하지 않은 사용자는 github.com/advisories에서 GitHub Advisory Database의 전체 보안 권고에 기여할 수 있습니다. 전역 공지에 대한 편집은 리포지토리에 공지가 표시되는 방식을 변경하거나 이에 영향을 미치지 않습니다. 자세한 내용은 "GitHub Advisory Database에서 보안 권고 편집"을(를) 참조하세요.

선행 조건

임시 프라이빗 포크에서 협업하기 전에 보안 공지 초안을 만들어야 합니다. 자세한 내용은 "리포지토리 보안 공지 만들기"을(를) 참조하세요.

임시 프라이빗 포크 만들기

보안 공지에 대한 관리자 권한이 있는 사람은 누구나 임시 프라이빗 포크를 만들 수 있습니다.

취약성에 대한 정보를 안전하게 유지하기 위해 CI를 포함한 통합은 임시 프라이빗 포크에 액세스할 수 없습니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 보안을 클릭합니다. "보안" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 보안을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "보안" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바의 "보고"에서 Advisories를 클릭합니다.

  4. "보안 공지" 목록에서 임시 프라이빗 포크를 만들려는 보안 공지의 이름을 클릭합니다.

  5. 권고 양식의 아래쪽으로 스크롤하고 임시 프라이빗 포크 시작을 클릭합니다.

    양식의 "패치에 대한 비공개 공동 작업" 영역의 스크린샷 "임시 프라이빗 포크 시작"이라는 레이블이 지정된 단추가 진한 주황색으로 표시됩니다.

    리포지토리의 프라이빗 포크가 생성되고 공지 페이지에 표시됩니다.

    프라이빗 포크에 대한 명명 규칙은 GitHub Advisory Database의 권고에 사용되는 규칙과 매우 유사하며 형식 repo-ghsa-xxxx-xxxx-xxxx을(를) 따릅니다.

    • repo은(는) 리포지토리의 이름입니다. 리포지토리 이름에 대한 100자 제한을 유지하려면 원래 리포지토리의 이름을 80자로 줄여 주세요.
    • xxxx-xxxx-xxxx은(는) 초안 보안 공지의 고유 식별자입니다.
      • x은(는) 23456789cfghjmpqrvwx(이)라는 세트세트의 문자 또는 숫자입니다.
      • 숫자와 문자는 임의로 할당됩니다.
      • 모든 문자와 숫자는 소문자입니다.

예를 들어 octocat-repo(이)라는 리포지토리에 임시 프라이빗 포크를 만들고 초안 권고에 대해 자동으로 생성된 ID가 GHSA-x854-cvjg-vx26인 경우, octocat-repo-ghsa-x854-cvjg-vx26(이)라는 임시 포크가 호출됩니다.

REST API를 사용하여 임시 프라이빗 포크를 생성할 수도 있습니다. 자세한 내용은 REST API 설명서의 "임시 프라이빗 포크 만들기"를 참조하세요.

임시 프라이빗 포크에 협력자 추가

보안 공지에 대한 관리자 권한이 있는 모든 사용자는 보안 공지에 추가 협력자를 추가할 수 있으며 보안 공지의 협력자는 임시 프라이빗 포크에 액세스할 수 있습니다. 자세한 내용은 "리포지토리 보안 공지에 협력자 추가"을(를) 참조하세요.

임시 프라이빗 포크에 변경 내용 추가

보안 공지에 대한 쓰기 권한이 있는 모든 사용자는 임시 프라이빗 포크에 변경 내용을 커밋하여 공동 작업할 수 있습니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 보안을 클릭합니다. "보안" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 보안을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "보안" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바의 "보고"에서 Advisories를 클릭합니다.

  4. "보안 공지" 목록에서 작업할 보안 공지의 이름을 클릭합니다.

  5. GitHub Enterprise Cloud 또는 로컬에서 변경할 수 있습니다.

    • GitHub Enterprise Cloud을(를) 변경하려면 “패치에 대한 공동 작업”에서 임시 프라이빗 포크를 클릭하세요. 그런 다음 새 분기를 만들고 파일을 편집합니다. 자세한 내용은 "리포지토리 내에서 분기 만들기 및 삭제" 및 "파일 편집"을 참조하세요.
    • 변경 내용을 로컬로 추가하려면 “새 분기 복제 및 만들기” 및 “변경한 다음 푸시”의 지침을 따릅니다.

    초안 보안 공지의 "패치에 대한 공동 작업" 영역의 스크린샷. "임시 프라이빗 포크" 링크가 진한 주황색 윤곽선으로 표시됩니다.

임시 프라이빗 포크에서 끌어오기 요청 만들기

보안 공지에 대한 쓰기 권한이 있는 사용자는 임시 프라이빗 포크에서 끌어오기 요청을 만들 수 있습니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 보안을 클릭합니다. "보안" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 보안을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "보안" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바의 "보고"에서 Advisories를 클릭합니다.

  4. “보안 공지” 목록에서 끌어오기 요청을 만들려는 보안 공지의 이름을 클릭합니다.

  5. 공지 양식의 아래쪽으로 스크롤합니다. 그런 다음 "패치에 대한 공동 작업"에서 비교 및 끌어오기 요청을 클릭하여 연결된 분기에 대한 끌어오기 요청을 만듭니다.

    초안 보안 공지의 "패치에 대한 공동 작업" 영역의 스크린샷. "끌어오기 요청 비교" 버튼은 진한 주황색으로 표시됩니다.
    "끌어오기 요청 열기"에는 끌어오기 요청을 만들 때 3점 Git Diff 비교에서 비교할 분기를 보여주는 헤더가 포함됩니다. 자세한 내용은 "끌어오기 요청의 분기 비교 정보"을(를) 참조하세요.

  6. 검토할 준비가 된 끌어오기 요청을 만들려면 끌어오기 요청 만들기를 클릭합니다. 초안 끌어오기 요청을 만들려면 드롭다운을 사용하고 초안 끌어오기 요청 만들기를 선택한 다음, 초안 끌어오기 요청을 클릭합니다. 조직의 구성원인 경우 조직 소유자 초안 끌어오기 요청에 대한 액세스를 요청해야 할 수도 있습니다. "끌어오기 요청 정보" 항목을 참조하세요.

임시 프라이빗 포크에서 개별 끌어오기 요청을 병합할 수는 없습니다. 대신, 해당 보안 공지에서 열려 있는 끌어오기 요청을 한 번에 모두 병합합니다. 자세한 내용은 “보안 공지에서 변경 내용 병합”을 참조하세요.

보안 공지에서 변경 내용 병합

보안 공지에 대한 관리자 권한이 있는 사람은 누구나 보안 공지의 변경 사항을 병합할 수 있습니다.

임시 프라이빗 포크에서 개별 끌어오기 요청을 병합할 수는 없습니다. 대신, 해당 보안 공지에서 열려 있는 끌어오기 요청을 한 번에 모두 병합합니다.

보안 공지의 변경 내용을 병합하려면 임시 프라이빗 포크의 모든 열린 끌어오기 요청을 병합할 수 있어야 합니다. 취약성에 대한 정보를 안전하게 유지하기 위해 임시 프라이빗 포크의 끌어오기 요청에서 상태 검사가 실행되지 않습니다. 자세한 내용은 "보호된 분기 정보"을(를) 참조하세요.

또한 병합 충돌 있을 수 없으며 GitHub은(는) 변경 내용을 병합하려는 분기에 대해 설정한 보호 규칙을 적용하지 않습니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 보안을 클릭합니다. "보안" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 보안을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "보안" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 왼쪽 사이드바의 "보고"에서 Advisories를 클릭합니다.

  4. "보안 공지" 목록에서 병합하려는 변경 내용이 있는 보안 공지의 이름을 클릭합니다.

  5. 공지 양식의 아래쪽으로 스크롤합니다. 그런 다음 "이 권고를 병합할 준비가 됨"에서 끌어오기 요청 병합을 클릭하여 열려 있는 모든 끌어오기 요청을 임시 프라이빗 포크에 병합합니다.

    초안 보안 공지의 "패치에 대한 공동 작업" 영역의 스크린샷. "끌어오기 요청 병합" 버튼은 진한 주황색으로 표시됩니다.

참고: 하나의 끌어오기 요청만 임시 프라이빗 포크의 main 분기에 병합할 수 있습니다. 둘 이상의 끌어오기 요청이 main 분기를 대상으로 하는 경우 병합이 차단됩니다.

보안 공지의 변경 내용을 병합한 후에는 보안 공지를 게시하여 이전 버전의 프로젝트의 보안 취약성에 대해 커뮤니티에 알릴 수 있습니다. 자세한 내용은 "리포지토리 보안 공지 게시"을(를) 참조하세요.

추가 참고 자료