Skip to main content

Удаление и восстановление пакета

Сведения о том, как удалить или восстановить пакет.

Поддержка удаления и восстановления пакетов в 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

Чтобы удалить версию пакета с областью действия репозитория , необходимо иметь разрешения администратора для репозитория, которому принадлежит пакет. Дополнительные сведения см. в разделе Необходимые разрешения.

  1. На your GitHub Enterprise Server instance перейдите на главную страницу репозитория. 1. Справа от списка файлов щелкните Пакеты. Ссылка "Пакеты" на странице обзора репозитория 3. Найдите и выберите пакет.
  2. В правом верхнем углу целевой страницы пакета нажмите кнопку Параметры пакета. Кнопка "Параметры пакета"
  3. В левой части окна выберите Управление версиями.
  4. Справа от версии, которую вы хотите удалить, щелкните значок и выберите Удалить версию. Кнопка удаления версии пакета
  5. Чтобы подтвердить удаление, введите имя пакета и выберите Я понимаю последствия, удалить эту версию. Кнопка подтверждения удаления пакета

Удаление версии пакета с областью действия репозитория с помощью 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

Чтобы удалить весь пакет с областью репозитория, необходимо иметь разрешения администратора для репозитория, которому принадлежит пакет. Дополнительные сведения см. в разделе Необходимые разрешения.

  1. На your GitHub Enterprise Server instance перейдите на главную страницу репозитория. 1. Справа от списка файлов щелкните Пакеты. Ссылка "Пакеты" на странице обзора репозитория 3. Найдите и выберите пакет.
  2. В правом верхнем углу целевой страницы пакета нажмите кнопку Параметры пакета. Кнопка "Параметры пакета"
  3. В разделе "Зона опасности" выберите Удалить этот пакет.
  4. Чтобы подтвердить удаление, просмотрите текст подтверждения, введите имя пакета и нажмите Я понимаю, удалить этот пакет. Кнопка подтверждения удаления пакета

Восстановление пакетов

Удаленный пакет или версию пакета можно восстановить, если:

  • восстановление пакета выполняется в течение 30 дней после его удаления;
  • пространство имен пакета и версии по-прежнему доступно и не используется для нового пакета.

Например, если у вас есть удаленный пакет RubyGems с именем octo-package, область которого была ограничена репозиторием octo-repo-owner/octo-repo, вы можете восстановить этот пакет только в том случае, если пространство имен rubygem.pkg.github.com/octo-repo-owner/octo-repo/octo-package пакета по-прежнему доступно, и 30 дней с момента удаления еще не прошли.

Для удаления пакета вам также необходимы права администратора в репозитории, которому принадлежит удаленный пакет.

Дополнительные сведения см. в разделе Необходимые разрешения.

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

Восстановление пакета в организации

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

Сведения о том, кто может восстановить пакет в организации, см. в разделе Необходимые разрешения.

  1. На your GitHub Enterprise Server instance перейдите на главную страницу организации. 1. Под названием организации щелкните Параметры.  Кнопка "Параметры организации"
  2. В левой части окна щелкните Пакеты.
  3. В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить. Кнопка "Восстановить"
  4. Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет. Кнопка подтверждения восстановления пакета

Восстановление версии пакета

Версию пакета можно восстановить на целевой странице пакета. Сведения о том, кто может восстановить пакет, см. в разделе Необходимые разрешения.

  1. Перейдите на целевую страницу пакета.
  2. Щелкните Параметры пакета справа.
  3. В левой части окна выберите Управление версиями.
  4. В правом верхнем углу щелкните раскрывающееся меню "Версии" и выберите Удалено. Раскрывающееся меню "Версии" с удаленной версией
  5. Рядом с удаленной версией пакета, которую требуется восстановить, нажмите кнопку Восстановить. Кнопка восстановления рядом с удаленной версией пакета
  6. Для подтверждения нажмите Я понимаю последствия, восстановить эту версию.  Подтверждение восстановления версии пакета