Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

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

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

GitHub Packages は、GitHub Free、GitHub Pro、Organization の GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 以降、GitHub AE で利用できます。
GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、レガシーのリポジトリごとのプランを使っているアカウントは、リポジトリごとに課金される Container registry にはアクセスできません。 詳細については、「GitHub's products」を参照してください。

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

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

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

注:

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

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

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

パッケージAPIのサポート

GitHub Packages では、personal access token (classic)を使用した認証のみがサポートされています。 詳しい情報については、「personal access tokenの作成」を参照してください。

REST APIを使用してパッケージを管理できます。 詳しくは、GitHub Packages 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/OWNER/PACKAGE-NAME または https://npm.pkg.github.com/OWNER/PACKAGE-NAME に保存されたパッケージに保存されているコンテナー イメージなど、リポジトリとは別の詳細なアクセス許可を持つパッケージを削除するには、パッケージへの管理者アクセス権が必要です。 詳細については、「GitHub Packages のアクセス許可について」を参照してください。

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

一部のレジストリは、リポジトリがスコープ指定されたパッケージのみをサポートします。 そのようなレジストリの一覧については、「GitHub Packages のアクセス許可について」をご覧ください。

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

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

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

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. ファイルの一覧の右側にある [パッケージ] をクリックします。 リポジトリの概要ページの [パッケージ] リンク 3. パッケージを検索して選択してください。
  2. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  3. 左側の [バージョンの管理] をクリックします。
  4. 削除するバージョンの右側で、 をクリックした後、 [バージョンの削除] を選択します。 パッケージ バージョンの削除ボタン
  5. 削除を確認するために、パッケージ名を入力し、 I understand the consequences, delete this version をクリックします。 パッケージの削除の確認ボタン

GraphQL を使用してリポジトリがスコープ指定されたパッケージのバージョンを削除する

特定のレジストリでは、GraphQL を使ってプライベート パッケージのバージョンを削除することができます。

詳細なアクセス許可をサポートするレジストリとともに GitHub Packages GraphQL API を使うことはできません。 リポジトリがスコープされたアクセス許可のみをサポートし、GraphQL API で使用できるレジストリについては、「GitHub Packages のアクセス許可について」をご覧ください。 代わりに REST API を使用する方法については、「GitHub Packages 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 ミューテーションの詳細については、「deletePackageVersion」を参照してください。

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

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

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

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

  1. GitHub で、個人アカウントのメイン ページに移動します。
  2. GitHub.com の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。 プロファイル写真
  3. プロファイル ページの右上にある [パッケージ] をクリックします。 プロファイル ページの [パッケージ] オプション 3. パッケージを検索して選択してください。
  4. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  5. 左側の [バージョンの管理] をクリックします。
  6. 削除するバージョンの右側で、 をクリックした後、 [バージョンの削除] を選択します。 パッケージ バージョンの削除ボタン
  7. 削除を確認するために、パッケージ名を入力し、 I understand the consequences, delete this version をクリックします。 パッケージの削除の確認ボタン

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

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

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

  1. GitHubで、Organizationのメインページにアクセスしてください。
  2. Organization 名の下で、 [パッケージ] をクリックします。 Organization ランディング ページの [パッケージ] タブ 3. パッケージを検索して選択してください。
  3. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  4. 左側の [バージョンの管理] をクリックします。
  5. 削除するバージョンの右側で、 をクリックした後、 [バージョンの削除] を選択します。 パッケージ バージョンの削除ボタン
  6. 削除を確認するために、パッケージ名を入力し、 I understand the consequences, delete this version をクリックします。 パッケージ バージョン削除の確認ボタン

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

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

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

  1. GitHub.com で、リポジトリのメイン ページへ移動します。 1. ファイルの一覧の右側にある [パッケージ] をクリックします。 リポジトリの概要ページの [パッケージ] リンク 3. パッケージを検索して選択してください。
  2. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  3. [危険なゾーン] の Delete this package をクリックします。
  4. 確認メッセージを読み、パッケージ名を入力してから、 I understand, delete this package. をクリックします。 パッケージの削除の確認ボタン

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

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

  1. GitHub で、個人アカウントのメイン ページに移動します。
  2. GitHub.com の右上隅にあるプロファイル写真をクリックし、 [自分のプロファイル] をクリックします。 プロファイル写真
  3. プロファイル ページの右上にある [パッケージ] をクリックします。 プロファイル ページの [パッケージ] オプション 3. パッケージを検索して選択してください。
  4. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  5. 左側の [オプション] をクリックします。 [オプション] メニュー オプション
  6. [危険なゾーン] の Delete this package をクリックします。 パッケージ バージョンの削除ボタン
  7. 削除を確認するために、パッケージ名を入力し、 I understand the consequences, delete this package をクリックします。 パッケージ バージョン削除の確認ボタン

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

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

  1. GitHubで、Organizationのメインページにアクセスしてください。
  2. Organization 名の下で、 [パッケージ] をクリックします。 Organization ランディング ページの [パッケージ] タブ 3. パッケージを検索して選択してください。
  3. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  4. 左側の [オプション] をクリックします。 [オプション] メニュー オプション
  5. [危険なゾーン] の Delete this package をクリックします。 パッケージの削除ボタン
  6. 削除を確認するために、パッケージ名を入力し、 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内のパッケージを復元する

削除されたパッケージは、そのパッケージが組織の所有するリポジトリ内にあったか、組織アカウントをスコープとする詳細な権限を持っていたなら、組織アカウントの設定を通じて復元できます。

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

  1. GitHub.com で、Organization のメイン ページへ移動します。 1. Organization 名の下で、 [設定] をクリックします。 Organization の設定ボタン
  2. 左側の [パッケージ] をクリックします。
  3. Deleted Packages の、復元するパッケージの隣にある [復元] をクリックします。 [復元] ボタン
  4. 確認のため、パッケージ名を入力し、 I understand the consequences, restore this package をクリックします。 パッケージ復元の確認ボタン

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

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

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

    ユーザバーの [Settings(設定)] アイコン

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

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

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

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

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

  1. パッケージのランディングページに移動します。
  2. 右側の [パッケージ設定] をクリックします。
  3. 左側の [バージョンの管理] をクリックします。
  4. 左上の [バージョン] ドロップダウン メニューで、 [削除済み] を選択します。 削除されたバージョンを表示するドロップダウン メニュー
  5. 復元する削除済みパッケージのバージョンの横にある [復元] をクリックします。 削除されたパッケージのバージョンの隣にある復元オプション
  6. 確認のために、 I understand the consequences, restore this version をクリックします。 パッケージ バージョン復元の確認