GitHub의 패키지 삭제 및 복원 지원
필요한 액세스 권한이 있는 경우 GitHub에서 다음을 삭제할 수 있습니다.
- 전체 프라이빗 패키지
- 전체 퍼블릭 패키지(패키지 버전의 다운로드 수가 5,000개 이하인 경우)
- 프라이빗 패키지의 특정 버전
- 특정 버전의 퍼블릭 패키지(패키지 버전의 다운로드 수가 5,000개를 초과하지 않는 경우)
고:
- 패키지 버전에 5,000개를 초과하는 다운로드가 있는 경우 퍼블릭 패키지를 삭제할 수 없습니다. 이 시나리오에서는 추가 지원을 받으려면 GitHub 지원 포털를 통해 문의하세요.
- 퍼블릭 패키지를 삭제할 때는 패키지에 따라 프로젝트가 중단될 수 있습니다.
GitHub에서 다음과 같은 경우 전체 패키지 또는 패키지 버전을 복원할 수도 있습니다.
- 패키지를 삭제한 후 30일 이내에 복원합니다.
- 동일한 패키지 네임스페이스는 계속 사용할 수 있으며 새 패키지에 사용되지 않습니다.
패키지 API 지원
GitHub Packages은(는) personal access token (classic)을(를) 사용하는 인증만 지원합니다. 자세한 내용은 "개인용 액세스 토큰 관리"을(를) 참조하세요.
REST API를 사용하여 패키지를 관리할 수 있습니다. 자세한 내용은 "패키지에 대한 REST API 엔드포인트"을(를) 참조하세요.
참고: GitHub Actions 워크플로에서 REST API를 사용하여 패키지를 삭제하고 복원하는 기능은 현재 beta 버전이며 변경될 수 있습니다.
세분화된 권한을 지원하는 레지스트리를 사용하면 GitHub Actions 워크플로에서 GITHUB_TOKEN
을 사용하여 REST API를 통해 패키지를 삭제하거나 복원할 수 있습니다. 이 토큰에는 패키지에 대한 admin
권한이 있어야 합니다. 워크플로에서 패키지를 게시하는 경우 기본적으로 워크플로가 저장된 리포지토리에 admin
역할이 부여됩니다. 워크플로에서 게시하지 않은 기존 패키지의 경우 GitHub Actions 워크플로를 사용하여 REST API를 통해 패키지를 삭제하거나 복원할 수 있도록 리포지토리에 admin
역할을 부여해야 합니다. 자세한 내용은 "패키지의 액세스 제어 및 표시 여부 구성"을(를) 참조하세요.
특정 레지스트리의 경우 GraphQL을 사용하여 프라이빗 패키지의 버전을 삭제할 수 있습니다.
GitHub Packages GraphQL API는 세분화된 권한을 지원하는 레지스트리와 사용할 수 없습니다. 리포지토리 범위 권한만 지원하고 GraphQL API와 함께 사용할 수 있는 레지스트리는 "GitHub 패키지에 대한 사용 권한 정보"을 참조하세요.
패키지를 삭제하거나 복원하는 데 필요한 권한
세분화된 권한을 지원하는 레지스트리를 사용하면 패키지의 범위를 사용자 또는 조직이 되도록 허용하거나 리포지토리에 연결하도록 선택할 수 있습니다.
https://ghcr.io/NAMESPACE/PACKAGE-NAME
에 저장된 컨테이너 이미지 또는 https://npm.pkg.github.com/NAMESPACE/PACKAGE-NAME
(여기서 NAMESPACE
는 패키지의 범위가 되는 개인 계정 또는 조직의 이름)에 저장된 패키지와 같이 리포지토리와 별도로 세분화된 권한이 있는 패키지를 삭제하려면 패키지에 대한 관리자 액세스 권한이 있어야 합니다. 자세한 내용은 "GitHub 패키지에 대한 사용 권한 정보"을(를) 참조하세요.
리포지토리에서 액세스 권한을 상속하는 패키지의 경우 리포지토리에 대한 관리자 권한이 있는 경우 패키지를 삭제할 수 있습니다.
일부 레지스트리는 리포지토리 범위 패키지만 지원합니다. 이러한 레지스트리의 목록은 "GitHub 패키지에 대한 사용 권한 정보"을(를) 참조하세요.
패키지 버전 삭제
GitHub에서 리포지토리 범위 패키지의 버전 삭제
리포지토리 범위 패키지 버전을 삭제하려면 패키지를 게시한 리포지토리에 대해 관리자 권한이 있어야 합니다. 자세한 내용은 “필요한 권한”을 참조하세요.
-
GitHub.com에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 오른쪽의 사이드바에서 패키지를 클릭합니다.
-
관리하려는 패키지의 이름을 검색한 후 그 이름을 클릭합니다.
-
패키지의 "최근 버전" 목록에서 모든 버전 보기 및 관리를 클릭합니다. 패키지의 "최근 버전" 섹션
-
패키지 목록에서 삭제할 패키지의 버전을 찾습니다.
- 패키지가 컨테이너인 경우, 패키지 버전 오른쪽에서 를 클릭하고 드롭다운 메뉴에서 버전 삭제를 선택합니다. 케밥 아이콘 레이블의 드롭다운 메뉴 단추가 있는 패키지 버전의
- 컨테이너 이외 형식의 패키지는 패키지 버전 오른쪽에서 삭제를 클릭합니다. "삭제" 단추가 있는 패키지 버전의
-
삭제를 확인하려면 패키지 이름을 입력하고 결과를 이해하고 있으며 이 버전을 삭제합니다. 를 클릭합니다.
GraphQL을 사용하여 리포지토리 범위의 패키지 버전 삭제
특정 레지스트리의 경우 GraphQL을 사용하여 프라이빗 패키지의 버전을 삭제할 수 있습니다.
GitHub Packages GraphQL API는 세분화된 권한을 지원하는 레지스트리와 사용할 수 없습니다. 리포지토리 범위 권한만 지원하고 GraphQL API와 함께 사용할 수 있는 레지스트리는 "GitHub 패키지에 대한 사용 권한 정보"을 참조하세요. REST API를 대신 사용하는 방법에 대한 자세한 내용은 "AUTOTITLE"을(를) 참조하세요.
GraphQL API에서 deletePackageVersion
변형을 사용합니다. read:packages
, delete:packages
및 repo
범위로 personal access token (classic)을(를) 사용해야 합니다. personal access tokens (classic)에 대한 자세한 내용은 “GitHub 패키지 소개”을(를) 참조하세요.
다음 예제에서는 MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg
라는 packageVersionId
를 사용하여 패키지 버전을 삭제하는 방법을 보여 줍니다.
curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer TOKEN" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg==\"}) { success }}"}' \
HOSTNAME/graphql
GitHub Packages에 게시한 모든 프라이빗 패키지를 패키지의 버전 ID와 함께 찾으려면 repository
개체를 통해 packages
연결을 사용할 수 있습니다. read:packages
및 repo
범위로 personal access token (classic)을(를) 사용해야 합니다. 자세한 내용은 packages
연결 또는 PackageOwner
인터페이스를 참조하세요.
deletePackageVersion
변형에 대한 자세한 내용은 “변형”을(를) 참조하세요.
GraphQL을 사용하여 전체 패키지를 직접 삭제할 수는 없지만 패키지의 모든 버전을 삭제하면 패키지가 GitHub에 더 이상 표시되지 않습니다.
GitHub에서 사용자 범위 패키지 버전 삭제
GitHub에서 사용자 범위 패키지의 특정 버전, 예를 들어 ghcr.io
에 있는 Docker 이미지의 특정 버전을 삭제하려면 다음 단계를 사용합니다. 전체 패키지를 삭제하려면 “GitHub에서 전체 사용자 범위 패키지 삭제”를 참조하세요.
패키지 버전을 삭제할 수 있는 사용자를 검토하려면 “필요한 권한”을 참조하세요.
-
GitHub에서 개인 계정의 기본 페이지로 이동합니다.
-
GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭하고 프로필을 클릭합니다.
-
프로필 페이지의 헤더에서 패키지 탭을 클릭합니다.
-
관리하려는 패키지의 이름을 검색한 다음 클릭합니다.
-
패키지 방문 페이지의 오른쪽에서 패키지 설정을 클릭합니다.
-
패키지의 "최근 버전" 목록에서 모든 버전 보기 및 관리를 클릭합니다. 패키지의 "최근 버전" 섹션
-
패키지 목록에서 삭제할 패키지의 버전을 찾습니다.
- 패키지가 컨테이너인 경우, 패키지 버전 오른쪽에서 를 클릭하고 드롭다운 메뉴에서 버전 삭제를 선택합니다. 케밥 아이콘 레이블의 드롭다운 메뉴 단추가 있는 패키지 버전의
- 컨테이너 이외 형식의 패키지는 패키지 버전 오른쪽에서 삭제를 클릭합니다. "삭제" 단추가 있는 패키지 버전의
-
확인 상자에 패키지의 이름을 입력하여 선택한 버전을 삭제하겠다는 의사를 확인합니다.
-
결과를 이해하고 있으며 이 버전을 삭제합니다를 클릭합니다.
GitHub에서 조직 범위 패키지 버전 삭제
GitHub에서 조직 범위 패키지의 특정 버전, 예를 들어 ghcr.io
에 있는 Docker 이미지의 특정 버전을 삭제하려면 다음 단계를 사용합니다.
전체 패키지를 삭제하려면 “GitHub에서 전체 조직 범위 패키지 삭제”를 참조하세요.
패키지 버전을 삭제할 수 있는 사용자를 검토하려면 “패키지를 삭제하거나 복원하는 데 필요한 권한”을 참조하세요.
-
GitHub에서 조직의 기본 페이지로 이동합니다.
-
조직 이름에서 패키지 탭을 클릭합니다.
-
관리하려는 패키지의 이름을 검색한 다음 클릭합니다.
-
패키지 방문 페이지의 오른쪽에서 패키지 설정을 클릭합니다.
-
패키지의 "최근 버전" 목록에서 모든 버전 보기 및 관리를 클릭합니다. 패키지의 "최근 버전" 섹션
-
패키지 목록에서 삭제할 패키지의 버전을 찾습니다.
- 패키지가 컨테이너인 경우, 패키지 버전 오른쪽에서 를 클릭하고 드롭다운 메뉴에서 버전 삭제를 선택합니다. 케밥 아이콘 레이블의 드롭다운 메뉴 단추가 있는 패키지 버전의
- 컨테이너 이외 형식의 패키지는 패키지 버전 오른쪽에서 삭제를 클릭합니다. "삭제" 단추가 있는 패키지 버전의
-
확인 상자에 패키지의 이름을 입력하여 선택한 버전을 삭제하겠다는 의사를 확인합니다.
-
결과를 이해하고 있으며 이 버전을 삭제합니다를 클릭합니다.
전체 패키지 삭제
GitHub에서 전체 리포지토리 범위 패키지 삭제
전체 리포지토리 범위 패키지를 삭제하려면 패키지를 소유하는 리포지토리에 대해 관리자 권한이 있어야 합니다. 자세한 내용은 “필요한 권한”을 참조하세요.
-
GitHub.com에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 오른쪽의 사이드바에서 패키지를 클릭합니다.
-
관리하려는 패키지의 이름을 검색한 다음 클릭합니다.
-
패키지 방문 페이지의 오른쪽에서 패키지 설정을 클릭합니다.
-
페이지 아래쪽의 "위험 영역"에서 이 패키지 삭제를 클릭합니다.
-
확인하려면 확인 메시지를 검토하고 패키지 이름을 입력한 다음 이해했습니다. 이 패키지를 삭제합니다를 클릭합니다.
GitHub에서 전체 사용자 범위 패키지 삭제
패키지를 삭제할 수 있는 사용자를 검토하려면 “필요한 권한”을 참조하세요.
-
GitHub에서 개인 계정의 기본 페이지로 이동합니다.
-
GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭하고 프로필을 클릭합니다.
-
프로필 페이지의 헤더에서 패키지 탭을 클릭합니다.
-
관리하려는 패키지의 이름을 검색한 다음 클릭합니다.
-
패키지 방문 페이지의 오른쪽에서 패키지 설정을 클릭합니다.
-
페이지 아래쪽의 "위험 영역"에서 이 패키지 삭제를 클릭합니다.
-
확인 상자에 패키지의 이름을 입력하여 삭제하겠다는 의사를 확인합니다.
-
결과를 이해하고 있으며 이 패키지를 삭제합니다를 클릭합니다.
GitHub에서 전체 조직 범위 패키지 삭제
패키지를 삭제할 수 있는 사용자를 검토하려면 “필요한 권한”을 참조하세요.
-
GitHub에서 조직의 기본 페이지로 이동합니다.
-
조직 이름에서 패키지 탭을 클릭합니다.
-
관리하려는 패키지의 이름을 검색한 다음 클릭합니다.
-
패키지 방문 페이지의 오른쪽에서 패키지 설정을 클릭합니다.
-
페이지 아래쪽의 "위험 영역"에서 이 패키지 삭제를 클릭합니다.
-
확인 상자에 패키지의 이름을 입력하여 삭제하겠다는 의사를 확인합니다.
-
결과를 이해하고 있으며 이 패키지를 삭제합니다를 클릭합니다.
패키지 복원
다음과 같은 경우 삭제된 패키지 또는 버전을 복원할 수 있습니다.
- 패키지를 삭제한 후 30일 이내에 복원합니다.
- 동일한 패키지 네임스페이스 및 버전을 여전히 사용할 수 있으며 새 패키지에 다시 사용되지 않습니다.
예를 들어 사용자 octocat
이고 octocat/my-repo
리포지토리로 범위가 지정된 my-package
라는 RubyGems 패키지를 삭제한 경우, 패키지 네임스페이스 rubygem.pkg.github.com/octocat/my-repo/my-package
를 계속 사용할 수 있고 30일이 아직 지나지 않은 경우에만 패키지를 복원할 수 있습니다.
삭제된 패키지를 복원하려면 다음 권한 요구 사항 중 하나도 충족해야 합니다.
- 리포지토리 범위 패키지의 경우: 삭제된 패키지가 게시된 리포지토리에 대한 관리자 권한이 있습니다.
- 사용자 계정 범위 패키지의 경우: 삭제된 패키지가 개인 계정으로 범위가 지정되어 있습니다.
- 조직 범위 패키지의 경우: 패키지의 범위로 지정된 조직에서 삭제된 패키지에 대한 관리자 권한이 있습니다.
자세한 내용은 “필요한 권한”을 참조하세요.
패키지가 복원되면 패키지는 이전과 동일한 네임스페이스를 사용합니다. 동일한 패키지 네임스페이스를 사용할 수 없는 경우 패키지를 복원할 수 없습니다. 이 시나리오에서 삭제된 패키지를 복원하려면 먼저 삭제된 패키지의 네임스페이스를 사용하는 새 패키지를 삭제해야 합니다.
조직에서 패키지 복원
패키지가 조직에서 소유한 리포지토리에 있거나 세분화된 사용 권한이 있고 조직 계정으로 범위가 지정된 경우 조직 계정 설정을 통해 삭제된 패키지를 복원할 수 있습니다.
조직에서 패키지를 복원할 수 있는 사용자를 검토하려면 “필요한 권한”을 참조하세요.
-
GitHub.com에서 조직의 기본 페이지로 이동합니다.
-
조직 이름에서 설정을 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.
-
왼쪽에서 패키지를 클릭합니다.
-
“삭제된 패키지”에서 복원하려는 패키지 옆에 있는 복원을 클릭합니다.
-
확인하려면 패키지 이름을 입력하고 결과를 이해하고 있으며 이 패키지를 복원합니다. 를 클릭합니다.
사용자 계정 범위 패키지 복원
패키지가 리포지토리 중 하나에 있거나 개인 계정으로 범위가 지정된 경우 개인 계정 설정을 통해 삭제된 패키지를 복원할 수 있습니다. 자세한 내용은 “필요한 권한”을 참조하세요.
- GitHub의 페이지 오른쪽 상단에서 프로필 사진을 클릭한 다음, 설정을 클릭합니다.
- 왼쪽 사이드바에서 Packages(패키지)를 클릭합니다.
- “삭제된 패키지”에서 복원하려는 패키지 옆에 있는 복원을 클릭합니다.
- 확인하려면 패키지 이름을 입력하고 결과를 이해하고 있으며 이 패키지를 복원합니다. 를 클릭합니다.
패키지 버전 복원
패키지의 방문 페이지에서 패키지 버전을 복원할 수 있습니다. 패키지를 복원할 수 있는 사용자를 검토하려면 “필요한 권한”을 참조하세요.
-
패키지의 방문 페이지로 이동합니다.
-
관리하려는 패키지의 이름을 검색한 다음 클릭합니다.
-
패키지 방문 페이지의 오른쪽에서 패키지 설정을 클릭합니다.
-
패키지의 "최근 버전" 목록에서 모든 버전 보기 및 관리를 클릭합니다. 패키지의 "최근 버전" 섹션
-
패키지 버전 목록의 오른쪽 위 모서리에서 버전 선택 보기 드롭다운으로 삭제됨을 선택합니다.
-
복원하려는 삭제된 패키지 버전 옆에 있는 복원을 클릭합니다.
-
확인하려면 결과를 이해하고 있으며 이 버전을 복원합니다를 클릭합니다.