Поддержка удаления и восстановления пакетов в GitHub
При наличии необходимых прав доступа в GitHub вы можете удалять следующие объекты:
- Весь частный пакет
- Весь общедоступный пакет, если не более 5000 скачиваний любой версии пакета
- Определенная версия частного пакета
- Определенная версия общедоступного пакета, если версия пакета не превышает 5000 скачиваемых файлов.
Примечание.
- Нельзя удалить общедоступный пакет, если какая-либо версия этого пакета скачивалась более 5000 раз. В этом сценарии обратитесь к нам через Портал поддержки GitHub, чтобы получить дополнительную помощь.
- При удалении общедоступных пакетов следует помнить, что вы можете прервать работу проектов, зависящих от этого пакета.
В GitHubможно также восстановить весь пакет или какую-либо его версию, если:
- восстановление пакета выполняется в течение 30 дней после его удаления;
- пространство имен пакета по-прежнему доступно и не используется для нового пакета.
Поддержка API пакетов
Примечание.
GitHub Packages поддерживает проверку подлинности только с помощью personal access token (classic). Дополнительные сведения см. в разделе Управление личными маркерами доступа.
Для управления пакетами можно использовать REST API. Дополнительные сведения см. в разделе AUTOTITLE.
Примечание.
Возможность удаления и восстановления пакетов с помощью REST API GitHub Actions в настоящее время находится в beta и подлежит изменению.
С помощью реестров, поддерживающих детализированные разрешения, можно использовать GITHUB_TOKEN рабочий процесс GitHub Actions для удаления или восстановления пакетов с помощью REST API. Маркер должен иметь admin разрешение на пакет. Если рабочий процесс публикует пакет, admin роль по умолчанию предоставляется репозиторию, в котором хранится рабочий процесс. Для существующих пакетов, не опубликованных рабочим процессом, необходимо предоставить репозиторию admin роль, чтобы использовать рабочий процесс GitHub Actions для удаления или восстановления пакетов с помощью REST API. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Для некоторых реестров можно использовать GraphQL для удаления версии частного пакета.
С реестрами, поддерживающими детализированные разрешения, нельзя использовать API GraphQL GitHub Packages GraphQL. Реестры, поддерживающие только разрешения в области репозитория, и которые могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub.
Необходимые разрешения для удаления или восстановления пакета
С помощью реестров, поддерживающих детализированные разрешения, вы можете разрешить доступ к пакетам для пользователей или организации или связаться с репозиторием.
Чтобы удалить пакет с подробными разрешениями, разделенными от репозитория, например образы контейнеров, хранящиеся в https://containers.HOSTNAME/NAMESPACE/PACKAGE-NAME``https://ghcr.io/NAMESPACE/PACKAGE-NAME (где NAMESPACE имя личная учетная запись или организации, к которой применяется пакет), необходимо иметь доступ администратора к пакету. Дополнительные сведения см. в разделе Сведения о разрешениях для пакетов GitHub.
Пакеты, наследующие права доступа от репозиториев, можно удалять, если у вас есть разрешения администратора для репозитория.
Некоторые реестры поддерживают только пакеты с областью действия репозитория. Список этих реестров см. в разделе Сведения о разрешениях для пакетов GitHub.
Удаление версии пакета
Удаление версии пакета с областью репозитория в GitHub
Чтобы удалить версию пакета с областью репозитория, необходимо иметь разрешения администратора на репозиторий, в котором публикуется пакет. Дополнительные сведения см. в разделе Требуемые разрешения.
-
На GitHubперейдите на главную страницу репозитория.
-
В правой боковой панели репозитория щелкните " Пакеты".

-
Найдите и выберите имя пакета, который требуется управлять.
-
Перейдите к тому, где можно управлять версиями для вашего типа пакета.
- Если пакет является контейнером, в разделе "Последние версии" нажмите кнопку "Просмотреть и управлять всеми версиями".

- Для типов пакетов, отличных от контейнеров:
- В правой части щелкните Параметры пакета.

- Слева щелкните " Управление версиями".

- В правой части щелкните Параметры пакета.
- Если пакет является контейнером, в разделе "Последние версии" нажмите кнопку "Просмотреть и управлять всеми версиями".
-
В списке пакетов найдите версию пакета, которую требуется удалить.
- Если пакет является контейнером, справа от версии пакета щелкните , а затем выберите "Удалить версию из раскрывающегося меню".

- Для типов пакетов, отличных от контейнеров, справа от версии пакета нажмите кнопку "Удалить".

- Если пакет является контейнером, справа от версии пакета щелкните , а затем выберите "Удалить версию из раскрывающегося меню".
-
Чтобы подтвердить удаление, введите имя пакета и выберите Я понимаю последствия, удалить эту версию.
Удаление версии пакета с областью репозитория с помощью GraphQL
Для некоторых реестров можно использовать GraphQL для удаления версии частного пакета.
С реестрами, поддерживающими детализированные разрешения, нельзя использовать API GraphQL GitHub Packages GraphQL. Реестры, поддерживающие только разрешения в области репозитория, и которые могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub. Дополнительные сведения об использовании REST API см . в разделе AUTOTITLE.
Использование изменения deletePackageVersion в API GraphQL. Необходимо использовать personal access token (classic) с read:packages``delete:packagesобластями и repo областями. Дополнительные сведения о personal access tokens (classic)см. в разделе Введение в GitHub Packages.
В следующем примере показано, как удалить версию пакета с помощью packageVersionId``MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg.
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, а также идентификаторы версий для этих пакетов, можно использовать подключение packages через объект repository. Вам потребуется personal access token (classic) с read:packages областями и repo областями. Дополнительные сведения см. в описании подключения packages или интерфейса PackageOwner.
Дополнительные сведения о мутации deletePackageVersion см. в разделе Изменения.
Невозможно напрямую удалить весь пакет с помощью GraphQL, но если удалить каждую версию пакета, пакет больше не будет отображаться на GitHub.
Удаление всего пакета
Удаление всего пакета с областью репозитория в GitHub
Чтобы удалить весь пакет с областью репозитория, необходимо иметь разрешения администратора для репозитория, которому принадлежит пакет. Дополнительные сведения см. в разделе Требуемые разрешения.
-
На GitHubперейдите на главную страницу репозитория.
-
В правой боковой панели репозитория щелкните " Пакеты".

-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В нижней части страницы в разделе "Зона опасности" нажмите кнопку "Удалить этот пакет".
-
Чтобы подтвердить, просмотрите сообщение с подтверждением, введите имя пакета и щелкните "Я понимаю", удалите этот пакет.
Удаление всего пакета с областью пользователя в GitHub
Сведения о том, кто может удалить пакет, см. в разделе "Необходимые разрешения".
-
В GitHub перейдите на главную страницу личной учетной записи.
-
В правом верхнем углу GitHubщелкните рисунок профиля, а затем щелкните профиль.

-
На странице профиля в заголовке щелкните вкладку "Пакеты" Packages .
-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В левой части экрана нажмите кнопку " Параметры".

-
В нижней части страницы в разделе "Зона опасности" нажмите кнопку "Удалить этот пакет".
-
В поле подтверждения введите имя пакета, чтобы подтвердить его удаление.
-
Щелкните "Я понимаю последствия", удалите этот пакет.
Удаление всего пакета с областью организации в GitHub
Сведения о том, кто может удалить пакет, см. в разделе "Необходимые разрешения".
-
В GitHub перейдите на главную страницу вашей организации.
-
Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".

-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В левой части экрана нажмите кнопку " Параметры".

-
В нижней части страницы в разделе "Зона опасности" нажмите кнопку "Удалить этот пакет".
-
В поле подтверждения введите имя пакета, чтобы подтвердить его удаление.
-
Щелкните "Я понимаю последствия", удалите этот пакет.
Восстановление пакетов
Удаленный пакет или версию пакета можно восстановить, если:
- восстановление пакета выполняется в течение 30 дней после его удаления;
- пространство имен пакета и версии по-прежнему доступно и не используется для нового пакета.
Например, если вы являетесь пользователем octocatи у вас есть удаленный пакет RubyGems с именем, который my-package был ограничен репозиторием octocat/my-repo, вы можете восстановить пакет только в том случае, если пространство rubygem.pkg.github.com/octocat/my-repo/my-package имен пакета по-прежнему доступно, и 30 дней еще не прошли.
Чтобы удалить пакет, необходимо также иметь разрешения администратора в репозитории, в котором публикуется пакет.
Дополнительные сведения см. в разделе Требуемые разрешения.
После восстановления пакета он будет использовать то же пространство имен, что и раньше. Если то же самое пространство имен пакета недоступно, вы не сможете восстановить пакет. В таком случае для восстановления удаленного пакета сначала необходимо удалить новый пакет, использующий пространство имен удаленного пакета.
Восстановление пакета в организации
Вы можете восстановить удаленный пакет с помощью параметров учетной записи организации, если пакет был в репозитории, принадлежащем организации, или имел подробные разрешения и был ограничен вашей учетной записью организации.
Сведения о том, кто может восстановить пакет в организации, см. в разделе "Необходимые разрешения".
-
На GitHubперейдите на главную страницу организации.
-
Под именем организации щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

-
В левой части окна щелкните Пакеты.
-
В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.
-
Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.
Восстановление пакета с областью учетной записи пользователя
Вы можете восстановить удаленный пакет с помощью параметров вашей личной учетной записи, если пакет был в одном из ваших репозиториев или был ограничен областью вашей личной учетной записи. Дополнительные сведения см. в разделе Требуемые разрешения.
- В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля, а затем выберите октикона "шестеренка" aria-hidden="true" aria-label="gear" %} Settings.
- На боковой панели слева нажмите Пакеты.
- В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.
- Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.
Восстановление версии пакета
Версию пакета можно восстановить на целевой странице пакета. Сведения о том, кто может восстановить пакет, см. в разделе "Необходимые разрешения".
-
Перейдите на целевую страницу пакета.
-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
Перейдите к тому, где можно управлять версиями для вашего типа пакета.
- Если пакет является контейнером, в разделе "Последние версии" нажмите кнопку "Просмотреть и управлять всеми версиями".

- Для типов пакетов, отличных от контейнеров:
- В правой части щелкните Параметры пакета.

- Слева щелкните " Управление версиями".

- В правой части щелкните Параметры пакета.
- Если пакет является контейнером, в разделе "Последние версии" нажмите кнопку "Просмотреть и управлять всеми версиями".
-
В правом верхнем углу списка версий пакетов используйте раскрывающийся список " Выбор версий" и выберите "Удалить".

-
Рядом с удаленной версией пакета, которую требуется восстановить, нажмите кнопку Восстановить.
-
Чтобы подтвердить, щелкните "Я понимаю последствия", восстановите эту версию.