Skip to main content

パッケージを削除および復元する

パッケージの削除と復元の方法を学びます。

この機能を使用できるユーザーについて

GitHub Packagesは、GitHub Free、GitHub Pro、組織用GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0以降で利用できます。
GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、従来のリポジトリごとのプランを利用しているアカウントは、リポジトリごとに課金されるため、詳細なアクセス許可をサポートしているレジストリにはアクセスできません。 詳細なアクセス許可をサポートするレジストリの一覧については、「GitHub Packagesの権限について」を参照してください。 詳しくは、「GitHub のプラン」をご覧ください。

GitHubにおけるパッケージの削除および復元のサポート

GitHubでは、必要なアクセス権がある場合、以下を削除できます。

  • プライベートパッケージ全体
  • パッケージの全バージョンでダウンロード数が 5000 以下の場合、パブリック パッケージ全体
  • プライベートパッケージの特定のバージョン
  • パッケージ バージョンのダウンロード数が 5,000 以下の場合、パブリック パッケージの特定のバージョン

注:

  • パッケージのいずれかのパージョンでダウンロード数が 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の権限について」を参照してください。

パッケージの削除や復元に必要な権限

詳細なアクセス許可をサポートするレジストリでは、パッケージをユーザーまたは組織にスコープ指定するか、リポジトリにリンクすることを許可できます。

https://ghcr.io/NAMESPACE/PACKAGE-NAME または https://npm.pkg.github.com/NAMESPACE/PACKAGE-NAME に保存されたパッケージ (この場合、NAMESPACE は、パッケージのスコープ指定先となっている個人アカウントまたは Organization の名前) に格納されているコンテナー イメージなど、リポジトリとは別の詳細なアクセス許可を持つパッケージを削除するには、パッケージへの管理者アクセス権が必要です。 詳しくは、「GitHub Packagesの権限について」を参照してください。

リポジトリからアクセス許可を継承するパッケージの場合、リポジトリに対する管理者アクセス許可があれば、パッケージを削除できます。

一部のレジストリは、リポジトリがスコープ指定されたパッケージのみをサポートします。 これらのレジストリの一覧については、「GitHub Packagesの権限について」をご覧ください。

パッケージのバージョンを削除する

GitHub 上のリポジトリがスコープ指定されたパッケージのバージョンを削除する

リポジトリがスコープ指定されたパッケージのバージョンを削除するには、そのパッケージが発行されたリポジトリへの管理者アクセス許可が必要です。 詳細については、「必要なアクセス許可」を参照してください。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリの右側のサイドバーで、 [パッケージ] をクリックします。

    リポジトリ ページのサイド バーのスクリーンショット。 [パッケージ] セクションが濃いオレンジ色の枠線で囲まれています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージの [最近のバージョン] の一覧で、 [すべてのバージョンの表示と管理] をクリックします。 パッケージの [最近のバージョン] セクションのスクリーンショット。 下の [すべてのバージョンの表示と管理] リンクが、オレンジ色の枠線で強調されています。

  5. パッケージの一覧で、削除するパッケージのバージョンを見つけます。

    • パッケージがコンテナーの場合、パッケージのバージョンの右側にある をクリックした後、ドロップダウン メニューから [バージョンの削除] を選びます。 ケバブ アイコンでラベル付けされたドロップダウン メニュー ボタンを含むパッケージ バージョンのスクリーンショット。 メニューの [バージョンの削除] リンクがオレンジ色の枠線で強調されています。
    • コンテナー以外の種類のパッケージの場合、パッケージのバージョンの右側にある [削除] をクリックします。 [削除] ボタンが表示されたパッケージ バージョンのスクリーンショット。 ボタンがオレンジ色の枠線で強調されています。
  6. 削除を確認するために、パッケージ名を入力し、 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:packagesdelete:packagesrepo のスコープとともに personal access token (classic) を使う必要があります。 personal access tokens (classic) について詳しくは、「GitHub Packages の概要」をご覧ください。

以下の例では、MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNgpackageVersionId を使用して、パッケージ バージョンを削除する方法を示します。

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:packagesrepo スコープを含む personal access token (classic) が必要になります。 詳細については、packages コネクションまたは PackageOwner インターフェイスを参照してください。

deletePackageVersion ミューテーションについて詳しくは、「ミューテーション」をご覧ください。

GraphQLを使用してパッケージ全体を直接削除することはできませんが、パッケージのすべてのバージョンを削除すれば、パッケージはGitHub上に表示されなくなります。

GitHub上でユーザのスコープが付いたパッケージのバージョンを削除する

ghcr.io にある Docker イメージなどで、GitHub 上のユーザーのスコープが付いたパッケージの、特定のバージョンを削除するには、以下のステップに従ってください。 パッケージ全体を削除するには、「GitHub 上でユーザーのスコープが付いたパッケージ全体を削除する」を参照してください。

パッケージのバージョンを削除できるユーザーを確認するには、「必要なアクセス許可」を参照してください。

  1. GitHub で、個人アカウントのメイン ページに移動します。

  2. GitHub.com の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [自分のプロファイル] が濃いオレンジ色の枠線で囲まれています。

  3. プロファイル ページのヘッダーで、 [パッケージ] タブをクリックします。

  4. 検索したら、管理するパッケージの名前をクリックします。

  5. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  6. パッケージの [最近のバージョン] の一覧で、 [すべてのバージョンの表示と管理] をクリックします。 パッケージの [最近のバージョン] セクションのスクリーンショット。 下の [すべてのバージョンの表示と管理] リンクが、オレンジ色の枠線で強調されています。

  7. パッケージの一覧で、削除するパッケージのバージョンを見つけます。

    • パッケージがコンテナーの場合、パッケージのバージョンの右側にある をクリックした後、ドロップダウン メニューから [バージョンの削除] を選びます。 ケバブ アイコンでラベル付けされたドロップダウン メニュー ボタンを含むパッケージ バージョンのスクリーンショット。 メニューの [バージョンの削除] リンクがオレンジ色の枠線で強調されています。
    • コンテナー以外の種類のパッケージの場合、パッケージのバージョンの右側にある [削除] をクリックします。 [削除] ボタンが表示されたパッケージ バージョンのスクリーンショット。 ボタンがオレンジ色の枠線で強調されています。
  8. 確認ボックスにパッケージの名前を入力して、選んだバージョンを削除することを確認します。

  9. [影響を理解したうえで、このバージョンを削除します] をクリックします。

GitHub上のOrganizationスコープのパッケージのバージョンの削除

ghcr.io にある Docker イメージなどで、GitHub 上の組織のスコープが付いたパッケージの、特定のバージョンを削除するには、以下のステップに従ってください。 パッケージ全体を削除するには、「GitHub 上で組織のスコープが付いたパッケージ全体を削除する」を参照してください。

パッケージのバージョンを削除できるユーザーを確認するには、「パッケージの削除や復元に必要な権限」を参照してください。

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. パッケージの [最近のバージョン] の一覧で、 [すべてのバージョンの表示と管理] をクリックします。 パッケージの [最近のバージョン] セクションのスクリーンショット。 下の [すべてのバージョンの表示と管理] リンクが、オレンジ色の枠線で強調されています。

  6. パッケージの一覧で、削除するパッケージのバージョンを見つけます。

    • パッケージがコンテナーの場合、パッケージのバージョンの右側にある をクリックした後、ドロップダウン メニューから [バージョンの削除] を選びます。 ケバブ アイコンでラベル付けされたドロップダウン メニュー ボタンを含むパッケージ バージョンのスクリーンショット。 メニューの [バージョンの削除] リンクがオレンジ色の枠線で強調されています。
    • コンテナー以外の種類のパッケージの場合、パッケージのバージョンの右側にある [削除] をクリックします。 [削除] ボタンが表示されたパッケージ バージョンのスクリーンショット。 ボタンがオレンジ色の枠線で強調されています。
  7. 確認ボックスにパッケージの名前を入力して、選んだバージョンを削除することを確認します。

  8. [影響を理解したうえで、このバージョンを削除します] をクリックします。

パッケージ全体を削除する

GitHub上でリポジトリのスコープが付いたパッケージ全体を削除する

リポジトリのスコープが付いたパッケージ全体を削除するには、パッケージを所有するリポジトリの管理者権限が必要です。 詳細については、「必要なアクセス許可」を参照してください。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリの右側のサイドバーで、 [パッケージ] をクリックします。

    リポジトリ ページのサイド バーのスクリーンショット。 [パッケージ] セクションが濃いオレンジ色の枠線で囲まれています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. ページの下部にある [危険なゾーン] で [このパッケージを削除する] をクリックします。

  6. 確認のために、確認メッセージを確認して、パッケージ名を入力し、 [影響を理解したうえで、このパッケージを削除します] をクリックします。

GitHub上でユーザのスコープが付いたパッケージ全体を削除する

パッケージを削除できるユーザーを確認するには、「必要なアクセス許可」を参照してください。

  1. GitHub で、個人アカウントのメイン ページに移動します。

  2. GitHub.com の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [自分のプロファイル] が濃いオレンジ色の枠線で囲まれています。

  3. プロファイル ページのヘッダーで、 [パッケージ] タブをクリックします。

  4. 検索したら、管理するパッケージの名前をクリックします。

  5. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  6. ページの下部にある [危険なゾーン] で [このパッケージを削除する] をクリックします。

  7. 確認ボックスにパッケージの名前を入力して、それを削除することを確認します。

  8. [影響を理解したうえで、このパッケージを削除します] をクリックします。

GitHub上でOrganizationのスコープが付いたパッケージ全体を削除する

パッケージを削除できるユーザーを確認するには、「必要なアクセス許可」を参照してください。

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. ページの下部にある [危険なゾーン] で [このパッケージを削除する] をクリックします。

  6. 確認ボックスにパッケージの名前を入力して、それを削除することを確認します。

  7. [影響を理解したうえで、このパッケージを削除します] をクリックします。

パッケージを復元する

以下の場合、削除したパッケージまたはバージョンを復元できます。

  • 削除後30日以内にパッケージを復元する。
  • 同一のパッケージ名前空間がまだ使用可能であり、新しいパッケージで再使用されていない。

たとえば、ユーザー octocat で、リポジトリ octocat/my-repo にスコープが設定された my-package という名前の RubyGems パッケージを削除した場合、パッケージ名前空間 rubygem.pkg.github.com/octocat/my-repo/my-package がまだ使用可能で、30 日経過していない場合にのみ、そのパッケージを復元できます。

削除されたパッケージを復元するには、以下のアクセス許可の要求のいずれかを満たす必要もあります。

  • リポジトリがスコープ指定されたパッケージ: 削除されたパッケージが発行されたリポジトリへの管理者アクセス許可を持っている。
  • ユーザー アカウントがスコープ指定されたパッケージ: 削除されたパッケージが自分の個人アカウントにスコープ指定されている。
  • Organization がスコープ指定されたパッケージ: パッケージがスコープ指定されている Organization で削除されたパッケージへの管理者アクセス許可を持っている。

詳細については、「必要なアクセス許可」を参照してください。

パッケージが復元されると、そのパッケージは以前使用していたものと同じ名前空間を使用します。 同一のパッケージ名前空間が使用可能でない場合、パッケージを復元できません。 この場合、削除したパッケージを復元するには、まず削除したパッケージの名前空間を使用する新しいパッケージを削除する必要があります。

Organization内のパッケージを復元する

削除されたパッケージが Organization が所有するリポジトリ内にあった場合、または詳細なアクセス許可があり、Organization アカウントにスコープ指定されていた場合、そのパッケージは Organization アカウント設定を通じて復元できます。

組織でパッケージを復元できるユーザーを確認するには、「必要なアクセス許可」を参照してください。

  1. GitHub.com で、Organization のメイン ページへ移動します。

  2. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. 左側の [パッケージ] をクリックします。

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

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

ユーザアカウントのスコープが付いたパッケージを復元する

パッケージが所有するリポジトリにあったか、個人アカウントのスコープが付いていた場合、削除されたパッケージを個人アカウント設定から復元できます。 詳細については、「必要なアクセス許可」を参照してください。

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. 左側のサイドバーで、 [パッケージ] をクリックします。

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

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

パッケージのバージョンを復元する

パッケージのランディングページから、パッケージのバージョンを復元できます。 パッケージを復元できるユーザーを確認するには、「必要なアクセス許可」を参照してください。

  1. パッケージのランディングページに移動します。

  2. 検索したら、管理するパッケージの名前をクリックします。

  3. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  4. パッケージの [最近のバージョン] の一覧で、 [すべてのバージョンの表示と管理] をクリックします。 パッケージの [最近のバージョン] セクションのスクリーンショット。 下の [すべてのバージョンの表示と管理] リンクが、オレンジ色の枠線で強調されています。

  5. パッケージ バージョン一覧の右上隅にある [バージョンの表示の選択] ドロップダウンを使って、 [削除済み] を選びます。

    パッケージ バージョンの一覧のスクリーンショット。 バージョンの表示の [削除済み] の選択が、オレンジ色の枠線で強調されています。

  6. 復元する削除済みパッケージのバージョンの横にある [復元] をクリックします。

  7. 確認のために、 [影響を理解したうえで、このバージョンを復元します] をクリックします。