Поддержка удаления и восстановления пакетов в GitHub
При наличии необходимых прав доступа в GitHub вы можете удалять следующие объекты:
- весь частный пакет;
- весь общедоступный пакет, если количество скачиваний любой версии этого пакета не превышает 5000;
- определенную версию частного пакета;
- определенную версию общедоступного пакета, если количество скачиваний этой версии пакета не превышает 5000.
Примечание.
- Нельзя удалить общедоступный пакет, если какая-либо версия этого пакета скачивалась более 5000 раз. В этом сценарии обратитесь в поддержку GitHub для получения дополнительной помощи.
- При удалении общедоступных пакетов следует помнить, что вы можете прервать работу проектов, зависящих от этого пакета.
В GitHubможно также восстановить весь пакет или какую-либо его версию, если:
- восстановление пакета выполняется в течение 30 дней после его удаления;
- пространство имен пакета по-прежнему доступно и не используется для нового пакета.
Поддержка API пакетов
Для некоторых реестров можете использовать GraphQL для удаления версии частного пакета.
Api GraphQL GitHub Packages нельзя использовать с реестрами, поддерживающими детализированные разрешения. Реестры, которые поддерживают только разрешения на уровне репозитория и могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub.
Необходимые разрешения для удаления или восстановления пакета
С помощью реестров, поддерживающих детализированные разрешения, можно разрешить доступ к пакетам для пользователей или организации или для привязки к репозиторию.
Чтобы удалить пакет, имеющий детализированные разрешения отдельно от репозитория, например образы контейнеров, хранящиеся в https://containers.HOSTNAME/NAMESPACE/PACKAGE-NAME
(где NAMESPACE
— это имя личной учетной записи или организации, к которой относится пакет), необходимо иметь доступ администратора к пакету. Дополнительные сведения см. в разделе Сведения о разрешениях для пакетов GitHub.
Пакеты, наследующие права доступа от репозиториев, можно удалять, если у вас есть разрешения администратора для репозитория.
Некоторые реестры поддерживают только пакеты с областью действия репозитория. Список этих реестров см. в разделе Сведения о разрешениях для пакетов GitHub.
Удаление версии пакета
Удаление версии пакета с областью действия репозитория в GitHub
Чтобы удалить версию пакета с областью действия репозитория , необходимо иметь разрешения администратора для репозитория, в котором публикуется пакет. Дополнительные сведения см. в разделе Необходимые разрешения.
-
На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. На правой боковой панели репозитория щелкните Пакеты.
-
Найдите и щелкните имя пакета, которым требуется управлять.
-
Перейдите к расположению, где можно управлять версиями для своего типа пакета.
- Если пакет является контейнером, в разделе "Последние версии" щелкните Просмотреть и управлять всеми версиями.
- Для типов пакетов, отличных от контейнеров:
- В правой части щелкните Параметры пакета.
- В левой части экрана щелкните Управление версиями.
- В правой части щелкните Параметры пакета.
- Если пакет является контейнером, в разделе "Последние версии" щелкните Просмотреть и управлять всеми версиями.
-
В списке пакетов найдите версию пакета, который требуется удалить.
- Если пакет является контейнером, справа от версии пакета щелкните , а затем выберите Удалить версию в раскрывающемся меню.
- Для типов пакетов, отличных от контейнеров, справа от версии пакета нажмите кнопку Удалить.
- Чтобы подтвердить удаление, введите имя пакета и выберите Я понимаю последствия, удалить эту версию.
Удаление версии пакета с областью действия репозитория с помощью GraphQL
Для некоторых реестров можете использовать GraphQL для удаления версии частного пакета.
Api GraphQL GitHub Packages нельзя использовать с реестрами, поддерживающими детализированные разрешения. Реестры, которые поддерживают только разрешения на уровне репозитория и могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub.
Использование изменения 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
разделе Изменения.
Вы не можете напрямую удалить весь пакет с помощью GraphQL, но если удалить каждую версию пакета, этот пакет больше не будет отображаться в GitHub Enterprise Server.
Удаление всего пакета
Удаление всего пакета с областью репозитория в GitHub
Чтобы удалить весь пакет с областью репозитория, необходимо иметь разрешения администратора для репозитория, которому принадлежит пакет. Дополнительные сведения см. в разделе Необходимые разрешения.
- На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. На правой боковой панели репозитория щелкните Пакеты.
1. Найдите и щелкните имя пакета, которым требуется управлять. - На целевой странице пакета справа щелкните Параметры пакета.
- В нижней части страницы в разделе "Опасная зона" щелкните Удалить этот пакет.
- Чтобы подтвердить, просмотрите сообщение с подтверждением, введите имя пакета и нажмите кнопку Я понимаю и удалите этот пакет.
Удаление всего пакета с областью пользователя в GitHub
Сведения о том, кто может удалять пакет, см. в разделе Необходимые разрешения.
-
В GitHub перейдите на главную страницу личной учетной записи.
-
В правом верхнем углу GitHub Enterprise Server щелкните фотографию профиля, а затем щелкните Ваш профиль.
-
На странице профиля в заголовке щелкните вкладку Пакеты . 1. Найдите и щелкните имя пакета, которым требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.
-
Слева щелкните Параметры.
-
В нижней части страницы в разделе "Зона опасности" щелкните Удалить этот пакет.
-
В поле подтверждения введите имя пакета, чтобы подтвердить его удаление.
-
Щелкните Я понимаю последствия и удалите этот пакет.
Удаление всего пакета с областью организации в GitHub
Сведения о том, кто может удалять пакет, см. в разделе Необходимые разрешения.
-
В GitHub перейдите на главную страницу вашей организации.
-
Под названием организации щелкните вкладку Пакеты .
1. Найдите и щелкните имя пакета, которым требуется управлять. -
На целевой странице пакета справа щелкните Параметры пакета.
-
Слева щелкните Параметры.
-
В нижней части страницы в разделе "Зона опасности" щелкните Удалить этот пакет.
-
В поле подтверждения введите имя пакета, чтобы подтвердить его удаление.
-
Щелкните Я понимаю последствия и удалите этот пакет.
Восстановление пакетов
Удаленный пакет или версию пакета можно восстановить, если:
- восстановление пакета выполняется в течение 30 дней после его удаления;
- пространство имен пакета и версии по-прежнему доступно и не используется для нового пакета.
Например, если вы являетесь пользователем octocat
и у вас есть удаленный пакет RubyGems с именем my-package
, который был ограничен репозиторием octocat/my-repo
, то вы можете восстановить пакет, только если пространство rubygem.pkg.github.com/octocat/my-repo/my-package
имен пакета по-прежнему доступно и еще не прошло 30 дней.
Чтобы удалить пакет, необходимо также иметь разрешения администратора для репозитория, в котором он опубликован.
Дополнительные сведения см. в разделе Необходимые разрешения.
После восстановления пакета он будет использовать то же пространство имен, что и раньше. Если то же самое пространство имен пакета недоступно, вы не сможете восстановить пакет. В таком случае для восстановления удаленного пакета сначала необходимо удалить новый пакет, использующий пространство имен удаленного пакета.
Восстановление пакета в организации
Удаленный пакет можно восстановить с помощью параметров учетной записи организации, если пакет находился в репозитории организации или имел детализированные разрешения и был ограничен учетной записью вашей организации.
Сведения о том, кто может восстановить пакет в организации, см. в разделе Необходимые разрешения.
-
На экземпляр GitHub Enterprise Server перейдите на главную страницу организации. 1. Под названием организации щелкните Параметры.
"Параметры организации" -
В левой части окна щелкните Пакеты.
-
В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.
-
Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.
Восстановление пакета с областью учетной записи пользователя
Вы можете восстановить удаленный пакет с помощью параметров вашей личной учетной записи, если пакет был в одном из ваших репозиториев или был ограничен областью вашей личной учетной записи. Дополнительные сведения см. в разделе Необходимые разрешения.
-
В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.
-
На боковой панели слева нажмите Пакеты.
-
В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.
-
Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.
Восстановление версии пакета
Версию пакета можно восстановить на целевой странице пакета. Сведения о том, кто может восстановить пакет, см. в разделе Необходимые разрешения.
- Перейдите на целевую страницу пакета.
- Найдите и щелкните имя пакета, которым требуется управлять.
- На целевой странице пакета справа щелкните Параметры пакета.
- Перейдите к расположению, где можно управлять версиями для своего типа пакета.
- Если пакет является контейнером, в разделе "Последние версии" щелкните Просмотреть и управлять всеми версиями.
- Для типов пакетов, отличных от контейнеров:
- В правой части щелкните Параметры пакета.
- В левой части экрана щелкните Управление версиями.
- В правой части щелкните Параметры пакета.
- Если пакет является контейнером, в разделе "Последние версии" щелкните Просмотреть и управлять всеми версиями.
- В правом верхнем углу списка версий пакетов откройте раскрывающийся список Выбор версий и выберите Удалено.
- Рядом с удаленной версией пакета, которую требуется восстановить, нажмите кнопку Восстановить.
- Чтобы подтвердить, щелкните Я понимаю последствия, восстановите эту версию.