GitHubにおけるパッケージの削除および復元のサポート
GitHubでは、必要なアクセス権がある場合、以下を削除できます。
- プライベートパッケージ全体
- パッケージの全バージョンでダウンロード数が 5000 以下の場合、パブリック パッケージ全体
- プライベートパッケージの特定のバージョン
- パッケージ バージョンのダウンロード数が 5,000 以下の場合、パブリック パッケージの特定のバージョン
Note
- パッケージのいずれかのパージョンでダウンロード数が 5,000 を超えている場合は、パブリック パッケージを削除できません。 このシナリオに関してさらにサポートが必要な場合は、GitHub Support ポータル からお問い合わせください。
- パブリックパッケージを削除する場合、そのパッケージに依存するプロジェクトを破壊する可能性があることに注意してください。
GitHubでは、以下の場合にパッケージ全体またはパッケージバージョンを復元できます。
- 削除後30日以内にパッケージを復元する。
- 同じパッケージ名前空間が現在も使用可能であり、新しいパッケージに使用されていない場合。
パッケージAPIのサポート
GitHub Packages では、personal access token (classic)を使用した認証のみがサポートされています。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。
REST APIを使用してパッケージを管理できます。 詳しくは、「パッケージの REST API エンドポイント」をご覧ください。
注: GitHub Actions ワークフローで REST API を使用してパッケージを削除および復元する機能は、現在 ベータ 段階であり、変更される可能性があります。
詳細なアクセス許可をサポートするレジストリでは、GitHub Actions ワークフローで GITHUB_TOKEN
を使用し、REST API を使ってパッケージを削除または復元できます。 トークンには、パッケージに対する admin
アクセス許可が必要です。 ワークフローによってパッケージが発行される場合は、ワークフローが格納されているリポジトリに既定で admin
ロールが付与されます。 ワークフローによって発行されていない既存のパッケージについては、GitHub Actions ワークフローを使用して REST API を使ってパッケージを削除または復元できるように、リポジトリに admin
ロールを付与する必要があります。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。
特定のレジストリでは、GraphQL を使ってプライベート パッケージのバージョンを削除することができます。
詳細なアクセス許可をサポートするレジストリとともに GitHub Packages GraphQL API を使うことはできません。 リポジトリがスコープされたアクセス許可のみをサポートし、GraphQL API で使用できるレジストリについては、「GitHub Packagesの権限について」を参照してください。
パッケージの削除や復元に必要な権限
詳細なアクセス許可をサポートするレジストリでは、パッケージをユーザーまたは organization にスコープ指定するか、リポジトリにリンクすることを許可できます。
https://containers.HOSTNAME/NAMESPACE/PACKAGE-NAME
(この場合、NAMESPACE
は、パッケージのスコープ指定先となっている個人アカウントまたは Organization の名前) に格納されているコンテナー イメージなど、リポジトリとは別の詳細なアクセス許可を持つパッケージを削除するには、パッケージへの管理者アクセス権が必要です。 詳しくは、「GitHub Packagesの権限について」を参照してください。
リポジトリからアクセス許可を継承するパッケージの場合、リポジトリに対する管理者アクセス許可があれば、パッケージを削除できます。
一部のレジストリは、リポジトリがスコープ指定されたパッケージのみをサポートします。 これらのレジストリの一覧については、「GitHub Packagesの権限について」をご覧ください。
パッケージのバージョンを削除する
GitHub上でリポジトリのスコープが付いたバージョンを削除する
リポジトリ スコープ パッケージのバージョンを削除するには、パッケージが発行されているリポジトリに対する管理者アクセス許可が必要です。 詳細については、「必要なアクセス許可」を参照してください。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリの右側のサイドバーで、 [パッケージ] をクリックします。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージの種類のバージョンを管理できる場所に移動します。
- _パッケージがコンテナーの場合_は、[最近のバージョン] セクションの下にある [すべてのバージョンの表示と管理] をクリックします。
- コンテナー以外のパッケージの種類の場合:
- 右側にある [パッケージの設定] をクリックします。
- 左側の [バージョンの管理] をクリックします。
-
パッケージの一覧で、削除するパッケージのバージョンを見つけます。
- パッケージがコンテナーの場合、パッケージのバージョンの右側にある をクリックした後、ドロップダウン メニューから [バージョンの削除] を選びます。
- コンテナー以外の種類のパッケージの場合、パッケージのバージョンの右側にある [削除] をクリックします。
-
削除を確認するために、パッケージ名を入力し、 I understand the consequences, delete this version をクリックします。
GraphQLでリポジトリのスコープが付いたパッケージのバージョンを削除する
特定のレジストリでは、GraphQL を使ってプライベート パッケージのバージョンを削除することができます。
詳細なアクセス許可をサポートするレジストリとともに GitHub Packages GraphQL API を使うことはできません。 リポジトリがスコープされたアクセス許可のみをサポートし、GraphQL API で使用できるレジストリについては、「GitHub Packagesの権限について」を参照してください。 代わりに REST API を使う方法については、「パッケージの REST API エンドポイント」をご覧ください。
GraphQL API の deletePackageVersion
ミューテーションを使ってください。 read:packages
、delete:packages
、repo
のスコープとともに personal access token (classic) を使う必要があります。 personal access tokens (classic) について詳しくは、「GitHub Packages の概要」をご覧ください。
以下の例では、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 Enterprise Server上に表示されなくなります。
パッケージ全体を削除する
GitHub上でリポジトリのスコープが付いたパッケージ全体を削除する
リポジトリのスコープが付いたパッケージ全体を削除するには、パッケージを所有するリポジトリの管理者権限が必要です。 詳細については、「必要なアクセス許可」を参照してください。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリの右側のサイドバーで、 [パッケージ] をクリックします。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。
-
ページの下部にある [危険なゾーン] で [このパッケージを削除する] をクリックします。
-
確認のために、確認メッセージを確認して、パッケージ名を入力し、 [影響を理解したうえで、このパッケージを削除します] をクリックします。
GitHub上でユーザのスコープが付いたパッケージ全体を削除する
パッケージを削除できるユーザーを確認するには、「必要なアクセス許可」を参照してください。
-
GitHub で、個人アカウントのメイン ページに移動します。
-
GitHub の右上隅で、プロフィール写真をクリックし、[あなたのプロフィール] をクリックします。
-
プロファイル ページのヘッダーで、 [パッケージ] タブをクリックします。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。
-
左側の [オプション] をクリックします。
-
ページの下部にある [危険なゾーン] で [このパッケージを削除する] をクリックします。
-
確認ボックスにパッケージの名前を入力して、それを削除することを確認します。
-
[影響を理解したうえで、このパッケージを削除します] をクリックします。
GitHub上でOrganizationのスコープが付いたパッケージ全体を削除する
パッケージを削除できるユーザーを確認するには、「必要なアクセス許可」を参照してください。
-
GitHubで、Organizationのメインページにアクセスしてください。
-
組織名の下にある [パッケージ] タブをクリックします。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。
-
左側の [オプション] をクリックします。
-
ページの下部にある [危険なゾーン] で [このパッケージを削除する] をクリックします。
-
確認ボックスにパッケージの名前を入力して、それを削除することを確認します。
-
[影響を理解したうえで、このパッケージを削除します] をクリックします。
パッケージを復元する
以下の場合、削除したパッケージまたはバージョンを復元できます。
- 削除後30日以内にパッケージを復元する。
- 同一のパッケージ名前空間がまだ使用可能であり、新しいパッケージで再使用されていない。
たとえば、ユーザー octocat
で、リポジトリ octocat/my-repo
にスコープが設定された my-package
という名前の RubyGems パッケージを削除した場合、パッケージ名前空間 rubygem.pkg.github.com/octocat/my-repo/my-package
がまだ使用可能で、30 日経過していない場合にのみ、そのパッケージを復元できます。
パッケージを削除するには、パッケージが発行されたリポジトリへの管理者アクセス許可も必要です。
詳細については、「必要なアクセス許可」を参照してください。
パッケージが復元されると、そのパッケージは以前使用していたものと同じ名前空間を使用します。 同一のパッケージ名前空間が使用可能でない場合、パッケージを復元できません。 この場合、削除したパッケージを復元するには、まず削除したパッケージの名前空間を使用する新しいパッケージを削除する必要があります。
Organization内のパッケージを復元する
削除されたパッケージは、そのパッケージが organization が所有するリポジトリにあるか、詳細なアクセス許可を持っており、organization アカウントにスコープが設定されている限り、organization アカウント設定から復元できます。
組織でパッケージを復元できるユーザーを確認するには、「必要なアクセス許可」を参照してください。
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
左側の [パッケージ] をクリックします。
-
Deleted Packages の、復元するパッケージの隣にある [復元] をクリックします。
-
確認のため、パッケージ名を入力し、 I understand the consequences, restore this package をクリックします。
ユーザアカウントのスコープが付いたパッケージを復元する
パッケージが所有するリポジトリにあったか、個人アカウントのスコープが付いていた場合、削除されたパッケージを個人アカウント設定から復元できます。 詳細については、「必要なアクセス許可」を参照してください。
- GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
- 左側のサイドバーで、 [パッケージ] をクリックします。
- Deleted Packages の、復元するパッケージの隣にある [復元] をクリックします。
- 確認のため、パッケージ名を入力し、 I understand the consequences, restore this package をクリックします。
パッケージのバージョンを復元する
パッケージのランディングページから、パッケージのバージョンを復元できます。 パッケージを復元できるユーザーを確認するには、「必要なアクセス許可」を参照してください。
-
パッケージのランディングページに移動します。
-
検索したら、管理するパッケージの名前をクリックします。
-
パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。
-
パッケージの種類のバージョンを管理できる場所に移動します。
- _パッケージがコンテナーの場合_は、[最近のバージョン] セクションの下にある [すべてのバージョンの表示と管理] をクリックします。
- コンテナー以外のパッケージの種類の場合:
- 右側にある [パッケージの設定] をクリックします。
- 左側の [バージョンの管理] をクリックします。
-
パッケージ バージョン一覧の右上隅にある [バージョンの表示の選択] ドロップダウンを使って、 [削除済み] を選びます。
-
復元する削除済みパッケージのバージョンの横にある [復元] をクリックします。
-
確認のために、 [影響を理解したうえで、このバージョンを復元します] をクリックします。