GitHubにおけるパッケージの削除および復元のサポート
GitHubでは、必要なアクセス権がある場合、以下を削除できます。
- プライベートパッケージ全体
- パッケージの全バージョンでダウンロード数が5000以下の場合、パブリックパッケージ全体
- プライベートパッケージの特定のバージョン
- パッケージバージョンのダウンロード数が5000以下の場合、パブリックパッケージの特定のバージョン
注釈:
- パッケージのいずれかのパージョンでダウンロード数が5000を超えている場合は、パブリックパッケージを削除できません。 この場合は、GitHubサポートまでお問い合わせください。
- パブリックパッケージを削除する場合、そのパッケージに依存するプロジェクトを破壊する可能性があることに注意してください。
GitHubでは、以下の場合にパッケージ全体またはパッケージバージョンを復元できます。
- 削除後30日以内にパッケージを復元する。
- 同一のパッケージ名前空間が使用可能であり、新しいパッケージで使用されていない。
パッケージAPIのサポート
REST APIを使用してパッケージを管理できます。 詳しい情報については、「GitHub Packages API」を参照してください。
権限とアクセスをリポジトリから継承するパッケージでは、GraphQLを使って特定のパッケージバージョンを削除できます。GitHub PackagesGraphQL 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
に保存されたコンテナイメージなど、リポジトリとは別に詳細な権限を持つパッケージを削除する場合は、そのパッケージに対するアクセス権限が必要です。 詳しい情報については「GitHub Packagesの権限について」を参照してください。
パッケージのバージョンを削除する
GitHub上でリポジトリのスコープが付いたバージョンを削除する
リポジトリのスコープが付いたパッケージのバージョンを削除するには、パッケージを所有するリポジトリの管理者権限が必要です。 詳しい情報については、「必要な権限」を参照してください。
-
GitHub.comで、リポジトリのメインページにアクセスしてください。
-
ファイルのリストの右で、Packagesをクリックしてください。
-
パッケージを検索して選択してください。
-
パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。
-
左にある [Manage versions] をクリックします。
-
削除するバージョンの右側で、 をクリックした後、[Delete version] を選択します。
-
削除を確認するために、パッケージ名を入力してI understand the consequences, delete this version(生じることを理解したので、このバージョンを削除してください)をクリックしてください。
GraphQLでリポジトリのスコープが付いたパッケージのバージョンを削除する
リポジトリから権限とアクセスを継承しているパッケージの場合、GraphQLを使用して特定のパッケージバージョンを削除できます。
ghcr.io
にあるコンテナあるいはDockerイメージについては、GraphQLはサポートされていませんがREST APIが使えます。 詳しい情報については、「GitHub Packages API」を参照してください。
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
GitHub Packagesに公開したすべてのプライベートパッケージをバージョンIDと合わせて見つけるには、repository
オブジェクトを通じてpackages
コネクションを使うことができます。 read:packages
及びrepo
のスコープを持つトークンが必要です。 詳しい情報についてはpackages
コネクションあるいはPackageOwner
インターフェースを参照してください。
deletePackageVersion
ミューテーションに関する詳しい情報については「deletePackageVersion
」を参照してください。
GraphQLを使用してパッケージ全体を直接削除することはできませんが、パッケージのすべてのバージョンを削除すれば、パッケージはGitHub Enterprise Cloud上に表示されなくなります。
GitHub上でユーザのスコープが付いたパッケージのバージョンを削除する
ghcr.io
にあるDockerイメージなどで、 GitHub上のユーザのスコープが付いたパッケージの、特定のバージョンを削除するには、以下のステップに従ってください。 パッケージ全体を削除するには、「GitHub上でユーザのスコープが付いたパッケージ全体を削除する」を参照してください。
パッケージのバージョンを削除できるユーザを確認するには、「必要な権限」を参照してください。
- On GitHub, navigate to the main page of your personal account.
- In the top right corner of GitHub.com, click your profile photo, then click 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.comで、リポジトリのメインページにアクセスしてください。
-
ファイルのリストの右で、Packagesをクリックしてください。
-
パッケージを検索して選択してください。
-
パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。
-
[Danger Zone] の下にある [Delete this package] をクリックします。
-
確認メッセージを読み、パッケージ名を入力してから、[I understand, delete this package.] をクリックします。
GitHub上でユーザのスコープが付いたパッケージ全体を削除する
パッケージを削除できるユーザを確認するには、「必要な権限」を参照してください。
- On GitHub, navigate to the main page of your personal account.
- In the top right corner of GitHub.com, click your profile photo, then click Your profile.
- プロフィールページで、右上のPackages(パッケージ)をクリックしてください。
- パッケージを検索して選択してください。
- パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。
- 左側にある [Options] をクリックします。
- [Danger zone] の下にある [Delete this package] をクリックします。
- 削除を確認するために、パッケージ名を入力して [I understand the consequences, delete this package] をクリックします。
GitHub上でOrganizationのスコープが付いたパッケージ全体を削除する
パッケージを削除できるユーザを確認するには、「必要な権限」を参照してください。
-
GitHubで、Organizationのメインページにアクセスしてください。
-
Organization名の下で、Packages(パッケージ)をクリックしてください。
-
パッケージを検索して選択してください。
-
パッケージのランディングページの右上で、Package settings(パッケージ設定)をクリックしてください。
-
左側にある [Options] をクリックします。
-
[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アカウントの設定を通じて復元できます。
Organizationでパッケージを復元できるユーザを確認するには、「必要な権限」を参照してください。
- GitHub.comで、Organizationのメインページにアクセスしてください。
- Organization 名の下で、クリックします
Settings.
- 左側にある [Packages] をクリックします。
- [Deleted Packages] の、復元するパッケージの隣にある [Restore] をクリックします。
- 確認のため、パッケージ名を入力して [I understand the consequences, restore this package] をクリックします。
ユーザアカウントのスコープが付いたパッケージを復元する
パッケージが所有するリポジトリにあったか、個人アカウントのスコープが付いていた場合、削除されたパッケージを個人アカウント設定から復元できます。 詳しい情報については、「必要な権限」を参照してください。
-
任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。
-
左側にある [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.] をクリックします。