Поддержка удаления и восстановления пакетов в GitHub
При наличии необходимых прав доступа в GitHub вы можете удалять следующие объекты:
- весь частный пакет;
- весь общедоступный пакет, если количество скачиваний любой версии этого пакета не превышает 5000;
- определенную версию частного пакета;
- определенную версию общедоступного пакета, если количество скачиваний этой версии пакета не превышает 5000.
Примечание.
- Нельзя удалить общедоступный пакет, если какая-либо версия этого пакета скачивалась более 5000 раз. В этом сценарии обратитесь в поддержку GitHub для получения дополнительной помощи.
- При удалении общедоступных пакетов следует помнить, что вы можете прервать работу проектов, зависящих от этого пакета.
В GitHubможно также восстановить весь пакет или какую-либо его версию, если:
- восстановление пакета выполняется в течение 30 дней после его удаления;
- пространство имен пакета по-прежнему доступно и не используется для нового пакета.
Поддержка API пакетов
Для некоторых реестров вы можете использовать GraphQL для удаления версии частного пакета.
Api GraphQL GitHub Packages нельзя использовать с реестрами, поддерживающими детализированные разрешения. Реестры, которые поддерживают только разрешения на уровне репозитория и могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для GitHub Packages.
Необходимые разрешения для удаления или восстановления пакета
С помощью реестров, поддерживающих детализированные разрешения, можно разрешить доступ к пакетам для пользователей или организации или для привязки к репозиторию.
Чтобы удалить пакет, имеющий детализированные разрешения отдельно от репозитория, например образы контейнеров, хранящиеся в https://containers.HOSTNAME/OWNER/PACKAGE-NAME
, необходимо иметь доступ администратора к пакету. Дополнительные сведения см. в разделе Сведения о разрешениях для GitHub Packages.
Пакеты, наследующие права доступа от репозиториев, можно удалять, если у вас есть разрешения администратора для репозитория.
Некоторые реестры поддерживают только пакеты с областью действия репозитория. Список этих реестров см. в разделе Сведения о разрешениях для GitHub Packages.
Удаление версии пакета
Удаление версии пакета с областью действия репозитория в GitHub
Чтобы удалить версию пакета с областью действия репозитория , необходимо иметь разрешения администратора для репозитория, которому принадлежит пакет. Дополнительные сведения см. в разделе Необходимые разрешения.
- На your GitHub Enterprise Server instance перейдите на главную страницу репозитория. 1. Справа от списка файлов щелкните Пакеты.
3. Найдите и выберите пакет.
- В правом верхнем углу целевой страницы пакета нажмите кнопку Параметры пакета.
- В левой части окна выберите Управление версиями.
- Справа от версии, которую вы хотите удалить, щелкните значок и выберите Удалить версию.
- Чтобы подтвердить удаление, введите имя пакета и выберите Я понимаю последствия, удалить эту версию.
Удаление версии пакета с областью действия репозитория с помощью GraphQL
Для некоторых реестров вы можете использовать GraphQL для удаления версии частного пакета.
Api GraphQL GitHub Packages нельзя использовать с реестрами, поддерживающими детализированные разрешения. Реестры, которые поддерживают только разрешения на уровне репозитория и могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для GitHub Packages.
Использование изменения deletePackageVersion
в API GraphQL. Необходимо использовать personal access token с областями read:packages
, delete:packages
и repo
. Дополнительные сведения о personal access tokens см. в разделе Сведения о 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 с областями read:packages
и repo
. Дополнительные сведения см. в описании подключения packages
или интерфейса PackageOwner
.
Дополнительные сведения о мутации deletePackageVersion
см. в разделе "deletePackageVersion
".
Вы не можете напрямую удалить весь пакет с помощью GraphQL, но если удалить каждую версию пакета, этот пакет больше не будет отображаться в GitHub Enterprise Server.
Удаление всего пакета
Удаление всего пакета с областью репозитория в GitHub
Чтобы удалить весь пакет с областью репозитория, необходимо иметь разрешения администратора для репозитория, которому принадлежит пакет. Дополнительные сведения см. в разделе Необходимые разрешения.
- На your GitHub Enterprise Server instance перейдите на главную страницу репозитория. 1. Справа от списка файлов щелкните Пакеты.
3. Найдите и выберите пакет.
- В правом верхнем углу целевой страницы пакета нажмите кнопку Параметры пакета.
- В разделе "Зона опасности" выберите Удалить этот пакет.
- Чтобы подтвердить удаление, просмотрите текст подтверждения, введите имя пакета и нажмите Я понимаю, удалить этот пакет.
Восстановление пакетов
Удаленный пакет или версию пакета можно восстановить, если:
- восстановление пакета выполняется в течение 30 дней после его удаления;
- пространство имен пакета и версии по-прежнему доступно и не используется для нового пакета.
Например, если у вас есть удаленный пакет RubyGems с именем octo-package
, область которого была ограничена репозиторием octo-repo-owner/octo-repo
, вы можете восстановить этот пакет только в том случае, если пространство имен rubygem.pkg.github.com/octo-repo-owner/octo-repo/octo-package
пакета по-прежнему доступно, и 30 дней с момента удаления еще не прошли.
Для удаления пакета вам также необходимы права администратора в репозитории, которому принадлежит удаленный пакет.
Дополнительные сведения см. в разделе Необходимые разрешения.
После восстановления пакета он будет использовать то же пространство имен, что и раньше. Если то же самое пространство имен пакета недоступно, вы не сможете восстановить пакет. В таком случае для восстановления удаленного пакета сначала необходимо удалить новый пакет, использующий пространство имен удаленного пакета.
Восстановление пакета в организации
Вы можете восстановить удаленный пакет с помощью параметров учетной записи организации, если пакет находился в репозитории, принадлежащей организации.
Сведения о том, кто может восстановить пакет в организации, см. в разделе Необходимые разрешения.
- На your GitHub Enterprise Server instance перейдите на главную страницу организации. 1. Под названием организации щелкните Параметры.
"Параметры организации"
- В левой части окна щелкните Пакеты.
- В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.
- Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.
Восстановление версии пакета
Версию пакета можно восстановить на целевой странице пакета. Сведения о том, кто может восстановить пакет, см. в разделе Необходимые разрешения.
- Перейдите на целевую страницу пакета.
- Щелкните Параметры пакета справа.
- В левой части окна выберите Управление версиями.
- В правом верхнем углу щелкните раскрывающееся меню "Версии" и выберите Удалено.
- Рядом с удаленной версией пакета, которую требуется восстановить, нажмите кнопку Восстановить.
- Для подтверждения нажмите Я понимаю последствия, восстановить эту версию.