GitHubにおけるパッケージの削除および復元のサポート
GitHubでは、必要なアクセス権がある場合、以下を削除できます。
- プライベートパッケージ全体
- パッケージの全バージョンでダウンロード数が25以下の場合、パブリックパッケージ全体
- プライベートパッケージの特定のバージョン
- パッケージバージョンのダウンロード数が25以下の場合、パブリックパッケージの特定のバージョン
注釈:
- パッケージのいずれかのパージョンでダウンロード数が25を超えている場合は、パブリックパッケージを削除できません。 この場合は、GitHubサポートまでお問い合わせください。
- パブリックパッケージを削除する場合、そのパッケージに依存するプロジェクトを破壊する可能性があることに注意してください。
GitHubでは、以下の場合にパッケージ全体またはパッケージバージョンを復元できます。
- 削除後30日以内にパッケージを復元する。
- 同一のパッケージ名前空間が使用可能であり、新しいパッケージで使用されていない。
パッケージAPIのサポート
REST APIを使用してパッケージを管理できます。 詳しい情報については、「GitHub Packages API」を参照してください。
リポジトリから権限とアクセス権を継承するパッケージの場合、GraphQLを使用して特定のパッケージバージョンを削除できます。GitHub Packages GraphQL APIは、パッケージ名前空間にhttps://ghcr.io/OWNER/PACKAGE-NAMEを使用するコンテナやDockerイメージをサポートしていません。 GraphQLのサポートに関する詳しい情報については、「GraphQLでリポジトリのスコープが付いたパッケージのバージョンを削除する」を参照してください。
パッケージの削除や復元に必要な権限
リポジトリからアクセス権限を継承しているパッケージの場合、そのリポジトリに対する管理者権限がある場合はパッケージを削除できます。
GitHub Packages上でリポジトリのスコープが付いたパッケージには、以下が挙げられます。
- npm
- RubyGems
- maven
- Gradle
- NuGet
docker.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAMEのDockerイメージ
https://ghcr.io/OWNER/PACKAGE-NAMEに保存されたコンテナやDockerイメージなど、リポジトリとは別に個別の権限を持つパッケージを削除する場合は、そのパッケージに対するアクセス権限が必要です。
GitHub Actionsでパッケージのバージョン削除を自動化する
GitHubが作成した公式のアクションを使用して、パッケージのバージョン削除を自動化できます。 このアクションはactionsリポジトリまたはGitHub Marketplace上で使用でき、リポジトリのスコープが付いたパッケージでのみ動作します。 詳しい情報については、GitHub Marketplaceまたはactionsリポジトリの「Delete Package Versions」アクションを参照してください。
パッケージのバージョンを削除する
GitHub上でリポジトリのスコープが付いたバージョンを削除する
リポジトリのスコープが付いたパッケージのバージョンを削除するには、パッケージを所有するリポジトリの管理者権限が必要です。 詳しい情報については、「必要な権限」を参照してください。
-
GitHubで、リポジトリのメインページにアクセスしてください。
-
ファイルのリストの右で、Packagesをクリックしてください。

-
パッケージを検索して選択してください。
-
パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。

-
左にある [Manage versions] をクリックします。
-
削除するバージョンの右側で、 をクリックした後、[Delete version] を選択します。

-
削除を確認するために、パッケージ名を入力してI understand the consequences, delete this version(生じることを理解したので、このバージョンを削除してください)をクリックしてください。

GraphQLでリポジトリのスコープが付いたパッケージのバージョンを削除する
リポジトリから権限とアクセスを継承しているパッケージの場合、GraphQLを使用して特定のパッケージバージョンを削除できます。
GraphQLは、ghcr.ioにあるコンテナやDockerイメージではサポートされていません。
GraphQL APIのdeletePackageVersionミューテーションを使ってください。 read:packages、delete:packages、repoスコープを持つトークンを使わなければなりません。 トークンに関する詳しい情報については「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
パッケージのバージョンIDと併せてGitHub Packagesに公開したすべてプライベートパッケージを見つけるには、registryPackagesForQueryコネクションが利用できます。 read:packages及びrepoのスコープを持つトークンが必要です。 For more information, see "registryPackagesForQuery."
deletePackageVersionミューテーションの詳しい情報については、「deletePackageVersion」を参照してください。
GraphQLを使用してパッケージ全体を直接削除することはできませんが、パッケージのすべてのバージョンを削除すれば、パッケージはGitHub上に表示されなくなります。
GitHub上でユーザのスコープが付いたパッケージのバージョンを削除する
ghcr.ioにあるDockerイメージなどで、 GitHub上のユーザのスコープが付いたパッケージの、特定のバージョンを削除するには、以下のステップに従ってください。 パッケージ全体を削除するには、「GitHub上でユーザのスコープが付いたパッケージ全体を削除する」を参照してください。
パッケージのバージョンを削除できるユーザを確認するには、「必要な権限」を参照してください。
- GitHubで、ユーザアカウントのメインページにアクセスしてください。
- GitHubの右上で、プロフィール画像をクリックし、続いてYour profile(あなたのプロフィール)をクリックしてください。

- プロフィールページで、右上のPackages(パッケージ)をクリックしてください。

- パッケージを検索して選択してください。
- パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。

- 左にある [Manage versions] をクリックします。
- 削除するバージョンの右側で、 をクリックした後、[Delete version] を選択します。

- 削除を確認するために、パッケージ名を入力してI understand the consequences, delete this version(生じることを理解したので、このバージョンを削除してください)をクリックしてください。

GitHub上でOrganizationのスコープが付いたパッケージのバージョンを削除する
ghcr.ioにあるDockerイメージなどで、GitHub上のOrganizationのスコープが付いたパッケージの、特定のバージョンを削除するには、以下のステップに従ってください。 パッケージ全体を削除するには、「GitHub上でOrganizationのスコープが付いたパッケージ全体を削除する」を参照してください。
パッケージのバージョンを削除できるユーザを確認するには、「必要な権限」を参照してください。
- GitHubで、Organizationのメインページにアクセスしてください。
- Organization名の下で、Packages(パッケージ)をクリックしてください。

- パッケージを検索して選択してください。
- パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。

- 左にある [Manage versions] をクリックします。
- 削除するバージョンの右側で、 をクリックした後、[Delete version] を選択します。

- 削除を確認するために、パッケージ名を入力してI understand the consequences, delete this version(生じることを理解したので、このバージョンを削除してください)をクリックしてください。

パッケージ全体を削除する
GitHub上でリポジトリのスコープが付いたパッケージ全体を削除する
リポジトリのスコープが付いたパッケージ全体を削除するには、パッケージを所有するリポジトリの管理者権限が必要です。 詳しい情報については、「必要な権限」を参照してください。
-
GitHubで、リポジトリのメインページにアクセスしてください。
-
ファイルのリストの右で、Packagesをクリックしてください。

-
パッケージを検索して選択してください。
-
パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。

-
[Danger Zone] の下にある [Delete this package] をクリックします。
-
確認メッセージを読み、パッケージ名を入力してから、[I understand, delete this package.] をクリックします。

GitHub上でユーザのスコープが付いたパッケージ全体を削除する
パッケージを削除できるユーザを確認するには、「必要な権限」を参照してください。
- GitHubで、ユーザアカウントのメインページにアクセスしてください。
- GitHubの右上で、プロフィール画像をクリックし、続いてYour profile(あなたのプロフィール)をクリックしてください。

- プロフィールページで、右上のPackages(パッケージ)をクリックしてください。

- パッケージを検索して選択してください。
- パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。

- 左側にある [Options] をクリックします。
![[Options] メニューオプション](/web/20210730102750im_/https://docs.github.com/assets/images/help/package-registry/options-for-container-settings.png)
- [Danger zone] の下にある [Delete this package] をクリックします。

- 削除を確認するために、パッケージ名を入力して [I understand the consequences, delete this package] をクリックします。

GitHub上でOrganizationのスコープが付いたパッケージ全体を削除する
パッケージを削除できるユーザを確認するには、「必要な権限」を参照してください。
- GitHubで、Organizationのメインページにアクセスしてください。
- Organization名の下で、Packages(パッケージ)をクリックしてください。

- パッケージを検索して選択してください。
- パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。

- 左側にある [Options] をクリックします。
![[Options] メニューオプション](/web/20210730102750im_/https://docs.github.com/assets/images/help/package-registry/options-for-container-settings.png)
- [Danger zone] の下にある [Delete this package] をクリックします。

- 削除を確認するために、パッケージ名を入力して [I understand the consequences, delete this package] をクリックします。

パッケージを復元する
以下の場合、削除したパッケージまたはバージョンを復元できます。
- 削除後30日以内にパッケージを復元する。
- 同一のパッケージ名前空間がまだ使用可能であり、新しいパッケージで再使用されていない。
たとえば、リポジトリocto-repo-owner/octo-repoのスコープが付いていた、octo-packageという名前のrubygemパッケージを削除した場合、パッケージ名前空間rubygem.pkg.github.com/octo-repo-owner/octo-repo/octo-package がまだ使用可能で、かつ30日間が経過していない場合にのみ、そのパッケージを復元できます。
また、次の権限要件のいずれかを満たす必要もあります。
- リポジトリのスコープが付いたパッケージ: 削除したパッケージを所有するリポジトリの管理者権限。
- ユーザアカウントのスコープが付いたパッケージ: ユーザアカウントが削除したパッケージを所有している。
- Organizationのスコープが付いたパッケージ: 削除したパッケージ内の、パッケージを所有するOrganizationの管理者権限。
詳しい情報については、「必要な権限」を参照してください。
パッケージが復元されると、そのパッケージは以前使用していたものと同じ名前空間を使用します。 同一のパッケージ名前空間が使用可能でない場合、パッケージを復元できません。 この場合、削除したパッケージを復元するには、まず削除したパッケージの名前空間を使用する新しいパッケージを削除する必要があります。
Organization内のパッケージを復元する
パッケージが所有するリポジトリにあったか、詳細なアクセス権限が設定されていて、所属するOrganizationアカウントのスコープが付いていた場合、削除されたパッケージをOrganizationアカウント設定から復元できます。
Organizationでパッケージを復元できるユーザを確認するには、「必要な権限」を参照してください。
- GitHubで、Organizationのメインページにアクセスしてください。
- Organization名の下で、Settings(設定)をクリックしてください。

- 左側にある [Packages] をクリックします。
- [Deleted Packages] の、復元するパッケージの隣にある [Restore] をクリックします。

- 確認のため、パッケージ名を入力して [I understand the consequences, restore this package] をクリックします。

ユーザアカウントのスコープが付いたパッケージを復元する
パッケージが所有するリポジトリにあったか、ユーザアカウントのスコープが付いていた場合、削除されたパッケージをユーザアカウント設定から復元できます。 詳しい情報については、「必要な権限」を参照してください。
- 任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。
![ユーザバーの [Settings(設定)] アイコン](/web/20210730102750im_/https://docs.github.com/assets/images/help/settings/userbar-account-settings.png)
- 左側にある [Packages] をクリックします。
- [Deleted Packages] の、復元するパッケージの隣にある [Restore] をクリックします。

- 確認のため、パッケージ名を入力して [I understand the consequences, restore this package] をクリックします。

パッケージのバージョンを復元する
パッケージのランディングページから、パッケージのバージョンを復元できます。 パッケージを復元できるユーザを確認するには、「必要な権限」を参照してください。
- パッケージのランディングページに移動します。
- 右側にある [Package settings] をクリックします。
- 左にある [Manage versions] をクリックします。
- 左上の [Versions] ドロップダウンメニューで、[Deleted] を選択します。

- 復元する削除されたパッケージの隣の、[Restore] をクリックします。

- 確認のため、[I understand the consequences, restore this version.] をクリックします。
