パッケージを削除して復元する
GitHub Packages でパッケージを削除および復元すると、パッケージのライフサイクルの管理、古いバージョンの削除、誤って削除されたパッケージの回復を行うことができます。 パッケージ ガバナンスには、削除規則と復元手順を理解することが不可欠です。
削除アクセス許可について
必要なアクセス許可がある場合は、GitHub からパッケージを削除できます。
削除できる内容
プライベート パッケージ:
- プライベート パッケージ全体: すべてのバージョンを一度に削除する
- 特定のバージョン: 個々のバージョンを選択的に削除する
パブリック パッケージ (制限あり):
- パブリック パッケージ全体: バージョンのダウンロード数が 5,000 を超えない場合のみ
- 特定のバージョン:そのバージョンに 5,000 を超えるダウンロードがない場合のみ
必要なアクセス許可
リポジトリにスコープされたパッケージ:
- 管理者のアクセス許可: パッケージを所有するリポジトリへの管理者アクセス権が必要です
- 継承されたアクセス許可: パッケージのアクセス許可がリポジトリのアクセス制御に従う
ユーザーまたは組織スコープのパッケージ (コンテナー レジストリ):
- パッケージ管理者ロール: パッケージへの直接管理者アクセス
- 組織の所有者: すべての組織パッケージへのフル アクセス
Important
パブリック パッケージの 5,000 ダウンロード制限 は、広く使用されているパッケージの破損を防ぐための安全対策です。 パッケージがこのしきい値を超えると、コンシューマーを保護するために削除が無効になります。
復元の要件
削除されたパッケージは、特定の条件下で復元できます。
復元条件
- 30 日間のウィンドウ: パッケージを削除してから 30 日以内 に復元する必要があります
- 名前空間の可用性: 同じパッケージ名前空間を引き続き 使用でき 、新しいパッケージには使用しない必要があります
- 保持されるアクセス許可: パッケージにアクセスするために必要なアクセス許可が引き続き付与されている
復元できない場合:
- 削除から 30 日以上が経過しました
- 同じ名前の新しいパッケージが発行されました
- 元のパッケージへのアクセス許可がなくなった
- リポジトリまたは組織が削除されました
REST API を使用して
GitHub REST API を使用して、プログラムによってパッケージを管理できます。
API の機能:
- パッケージを一覧表示する: ユーザーまたは組織のすべてのパッケージを取得する
- パッケージの詳細を取得します。 特定のパッケージのメタデータを取得する
- パッケージのバージョンを削除します。 特定のバージョンを削除する
- パッケージ全体を削除します。 すべてのバージョンを削除する
- パッケージのバージョンを復元する: 削除されたバージョンを回復する
- パッケージのバージョンを一覧表示する: 使用可能なすべてのバージョンを表示する
詳細については、 GitHub Packages API を参照してください。
API の使用例
パッケージのバージョンを削除します。
curl -X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer YOUR_TOKEN" \
https://api.github.com/user/packages/npm/PACKAGE_NAME/versions/VERSION_ID
パッケージのバージョンを復元します。
curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer YOUR_TOKEN" \
https://api.github.com/user/packages/npm/PACKAGE_NAME/versions/VERSION_ID/restore
パッケージのバージョンを削除する
他の バージョンを 使用できるようにしたまま、パッケージの個々のバージョンを削除できます。 これは、破損したバージョン、脆弱なバージョン、または古いバージョンを削除する場合に便利です。
削除スコープのオプション
パッケージのバージョンは、さまざまなスコープで削除できます。
- GitHub のリポジトリ スコープ パッケージ: リポジトリにリンクされているパッケージに Web インターフェイスを使用する
- GraphQL を使用したリポジトリ スコープ パッケージ: プログラムによる削除に API を使用する
- GitHub のユーザー スコープ パッケージ: 個人用アカウントから削除する
- GitHub 上の組織スコープパッケージ: 組織のパッケージから削除する
Web インターフェイスを使用した削除
リポジトリ スコープ パッケージのバージョンを削除するには:
手順 1: パッケージに移動する
- GitHub.com で、リポジトリのメイン ページに移動します
- ファイルの一覧の右側にある [パッケージ] をクリックします。
- パッケージを検索して 選択する
手順 2: バージョン管理にアクセスする
- パッケージのランディング ページの右上にある [パッケージの設定] をクリックします。
- 左側のサイドバーで、[バージョンの管理] をクリックします。
手順 3: バージョンを削除する
- 削除するバージョンの右側にある ⋯メニューをクリックし、[バージョンの削除] を選択します。
- 削除を確認するには、パッケージ名を入力し、[結果を理解する] をクリックして、このバージョンを削除します
Warnung
削除は、30 日間の復元期間の後に 永続的 です。 確認する前に、正しいバージョンがあることを確認してください。
バージョン削除のベスト プラクティス
バージョンを削除する前に:
- 依存関係を確認します。 このバージョンに依存するアクティブなプロジェクトがないことを確認する
- コンシューマーに通知する: 削除前に廃止を発表する
- ドキュメントの理由: バージョンが削除された理由を説明するコメントを追加する
- 代替手段を保持する: 置き換えバージョンが使用可能であることを確認する
- アーカイブ情報: リリース ノートとドキュメントを外部に保存する
パッケージ全体を削除する
パッケージ のすべてのバージョンを 一度に削除できます。 これにより、GitHub パッケージからパッケージが完全に削除されます。
削除スコープのオプション
パッケージ全体は、さまざまなスコープで削除できます。
- GitHub のリポジトリ スコープ パッケージ: リポジトリ パッケージから削除する
- GitHub のユーザー スコープ パッケージ: 個人アカウントから削除する
- GitHub 上の組織スコープパッケージ: 組織のパッケージから削除する
Web インターフェイスを使用した削除
リポジトリ スコープ パッケージ全体を削除するには:
手順 1: パッケージに移動する
- GitHub.com で、リポジトリのメイン ページに移動します
- ファイルの一覧の右側にある [パッケージ] をクリックします。
- パッケージを検索して 選択する
手順 2: パッケージ設定にアクセスする
- パッケージのランディング ページの右上にある [パッケージの設定] をクリックします。
手順 3: パッケージを削除する
- [危険ゾーン] セクションまで下にスクロールします
- [このパッケージの削除] をクリックします
- 確認メッセージを注意深く確認する
- パッケージ名を入力して確認する
- [ 理解する] をクリックし、このパッケージを削除します
注意事項
パッケージ全体を削除すると、 すべてのバージョン と すべてのメタデータが削除されます。 このアクションは、30 日後に 元に戻すことはできません 。 このパッケージに依存するコンシューマーでは、ビルドが壊れます。
パッケージ全体を削除するタイミング
適切なシナリオ:
- 破棄されたプロジェクト: パッケージが維持または必要なくなった
- 代替で置き換えられます。 新しいパッケージが古いパッケージよりも優先される
- セキュリティの問題: パッケージに修正できない脆弱性が含まれています
- コンプライアンス要件: 法的または規制上の理由
- 間違ったリポジトリ: パッケージが正しくない場所に発行されました
削除の代替手段:
- 非推奨の通知: パッケージを削除せずに非推奨としてマークする
- アーカイブ リポジトリ: パッケージを保持するが、寿命を通知する
- プライベート可視性: 削除する代わりにプライベートに変更する
- ドキュメントの更新: パッケージを使用しないことに関する警告を追加する
パッケージのバージョンを復元する
削除されたパッケージは、30 日間の復元期間内に復元できます。 これにより、誤った削除から回復できます。
復元手順
削除されたパッケージバージョンを復元するには:
手順 1: パッケージに移動する
- パッケージのランディング ページに移動する
- 右側の [パッケージ設定] をクリックします。
手順 2: 削除されたバージョンを検索する
- 左側のサイドバーで、[バージョンの管理] をクリックします。
- 右上の [ バージョン ] ドロップダウン メニューを使用する
- [削除済み] を選択すると、削除されたバージョンのみが表示されます
手順 3: バージョンを復元する
- 復元する削除済みパッケージのバージョンの横にある [復元] をクリックします。
- 確認するには、[結果を理解する] をクリックして、このバージョンを復元します
ヒント
復元されたパッケージは、削除前と同じ可視性設定 (パブリック、プライベート、または内部) に戻ります。
復元シナリオ
一般的な復元のユース ケース:
- 誤削除: 誤って削除されたバージョンを復元する
- 依存関係の回復: コンシューマーには以前に削除されたバージョンが必要です
- ロールバックの決定: 結局のところ、バージョンを削除しないことにしました
- テストの目的: 比較テストに古いバージョンが必要
- コンプライアンス要件: 履歴バージョンを保持する必要がある
復元後の手順
パッケージを復元した後:
- 機能を確認します。 復元されたパッケージが正しく動作することをテストする
- ドキュメントを更新します。 削除と復元に関するメモを追加する
- コンシューマーに通知する: パッケージが再び使用可能であることをユーザーに通知する
- アクセス許可を確認します。 アクセス制御が引き続き適切であることを確認する
- 別の方法を検討してください。 削除が適切なアプローチであったかどうかを評価する
パッケージのライフサイクル管理
パッケージ管理のベスト プラクティス:
- 最初の非推奨: 削除する前にバージョンを非推奨としてマークする
- コミュニケーション計画: コンシューマーに事前に通知する
- 猶予期間: コンシューマーが移行する時間を許可する
- バージョンリテンション期間: 使用可能な最小バージョンを保持する
- 監査証跡: 削除に関するすべての決定を文書化する
- 自動クリーンアップ: ポリシーを使用して古いバージョンを体系的に削除する
その他のリソース
詳細については、次を参照してください:
- パッケージの削除と復元 - GitHub Docs - 完全な削除と復元のガイド。
- GitHub Packages レジストリの操作 - レジストリ固有の操作。
- NuGet レジストリの操作 - NuGet 固有の削除手順。
- npm レジストリの操作 - npm 固有の削除手順。
- 必要なアクセス許可 - パッケージ操作のアクセス許可要件について。