Skip to main content

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

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

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

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

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

Note

  • パッケージのいずれかのパージョンでダウンロード数が 5,000 を超えている場合は、パブリック パッケージを削除できません。 このシナリオに関してさらにサポートが必要な場合は、GitHub Support ポータル からお問い合わせください。
  • パブリックパッケージを削除する場合、そのパッケージに依存するプロジェクトを破壊する可能性があることに注意してください。

GitHubでは、以下の場合にパッケージ全体またはパッケージバージョンを復元できます。

  • 削除後30日以内にパッケージを復元する。
  • 同じパッケージ名前空間が現在も使用可能であり、新しいパッケージに使用されていない場合。

パッケージAPIのサポート

Note

GitHub Packages では、personal access token (classic)を使用した認証のみがサポートされています。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。

REST APIを使用してパッケージを管理できます。 詳細については、「パッケージの REST API エンドポイント」を参照してください。

Note

REST API を使ってパッケージを削除および復元する GitHub Actions ワークフローの機能は、現在 ベータ 段階であり、変更される可能性があります。

詳細なアクセス許可をサポートするレジストリでは、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上でリポジトリのスコープが付いたバージョンを削除する

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

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

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

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

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

  4. パッケージの種類のバージョンを管理できる場所に移動します。

    • _パッケージがコンテナーの場合_は、[最近のバージョン] セクションの下にある [すべてのバージョンの表示と管理] をクリックします。
      パッケージの [最近のバージョン] セクションのスクリーンショット。 下の [すべてのバージョンの表示と管理] リンクが、オレンジ色の枠線で強調されています。
    • コンテナー以外のパッケージの種類の場合:
      1. 右側にある [パッケージの設定] をクリックします。
        パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージの設定] がオレンジ色の枠線で強調されています。
      2. 左側の [バージョンの管理] をクリックします。
        パッケージの [バージョンの管理] メニューのスクリーンショット。 右下隅の [バージョンの管理] がオレンジ色の枠線で強調されています。
  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 Enterprise Server上に表示されなくなります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. GitHub の右上隅で、プロフィール写真をクリックし、[あなたのプロフィール] をクリックします。

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

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

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

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

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

  6. 左側の [オプション] をクリックします。

    パッケージの [オプション] メニューのスクリーンショット。 右下隅の [オプション] がオレンジ色の枠線で強調されています。

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

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

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

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

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

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

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

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

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

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

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

  5. 左側の [オプション] をクリックします。

    パッケージの [オプション] メニューのスクリーンショット。 右下隅の [オプション] がオレンジ色の枠線で強調されています。

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

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

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

パッケージを復元する

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

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

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

パッケージを削除するには、パッケージが発行されたリポジトリへの管理者アクセス許可も必要です。

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

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

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

削除されたパッケージは、そのパッケージが organization が所有するリポジトリにあるか、詳細なアクセス許可を持っており、organization アカウントにスコープが設定されている限り、organization アカウント設定から復元できます。

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

  1. GitHub で、organization のメイン ページに移動します。

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

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

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

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

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

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

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

  1. GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
  2. 左側のサイドバーで、 [パッケージ] をクリックします。
  3. Deleted Packages の、復元するパッケージの隣にある [復元] をクリックします。
  4. 確認のため、パッケージ名を入力し、 I understand the consequences, restore this package をクリックします。

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

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

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

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

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

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

  4. パッケージの種類のバージョンを管理できる場所に移動します。

    • _パッケージがコンテナーの場合_は、[最近のバージョン] セクションの下にある [すべてのバージョンの表示と管理] をクリックします。
      パッケージの [最近のバージョン] セクションのスクリーンショット。 下の [すべてのバージョンの表示と管理] リンクが、オレンジ色の枠線で強調されています。
    • コンテナー以外のパッケージの種類の場合:
      1. 右側にある [パッケージの設定] をクリックします。
        パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージの設定] がオレンジ色の枠線で強調されています。
      2. 左側の [バージョンの管理] をクリックします。
        パッケージの [バージョンの管理] メニューのスクリーンショット。 右下隅の [バージョンの管理] がオレンジ色の枠線で強調されています。
  5. パッケージ バージョン一覧の右上隅にある [バージョンの表示の選択] ドロップダウンを使って、 [削除済み] を選びます。

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

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

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