Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

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

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

GitHub Packages доступен в GitHub Free, GitHub Pro, GitHub Free для организаций, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 или более поздней версии и GitHub AE.

GitHub Packages недоступен для частных репозиториев, принадлежащих учетным записям, которые используют устаревшие планы для каждого репозитория. Кроме того, учетные записи, использующие устаревшие планы для каждого репозитория, не могут получить доступ к реестрам, поддерживающим детализированные разрешения, так как эти учетные записи оплачиваются репозиторием. Список реестров, поддерживающих детализированные разрешения, см. в разделе Сведения о разрешениях для пакетов GitHub. Дополнительные сведения см. в разделе Продукты GitHub.

Поддержка удаления и восстановления пакетов в GitHub

При наличии необходимых прав доступа в GitHub вы можете удалять следующие объекты:

  • весь частный пакет;
  • весь общедоступный пакет, если количество скачиваний любой версии этого пакета не превышает 5000;
  • определенную версию частного пакета;
  • определенную версию общедоступного пакета, если количество скачиваний этой версии пакета не превышает 5000.

Примечание.

  • Нельзя удалить общедоступный пакет, если какая-либо версия этого пакета скачивалась более 5000 раз. В этом сценарии обратитесь в поддержку GitHub для получения дополнительной помощи.
  • При удалении общедоступных пакетов следует помнить, что вы можете прервать работу проектов, зависящих от этого пакета.

В GitHubможно также восстановить весь пакет или какую-либо его версию, если:

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

Поддержка API пакетов

GitHub Packages поддерживает проверку подлинности только с помощью personal access token (classic). Дополнительные сведения см. в разделе Создание личного маркера доступа.

Для управления пакетами можно использовать REST API. Дополнительные сведения см. в разделе Пакеты.

Примечание: Возможность для рабочих процессов GitHub Actions удалять и восстанавливать пакеты с помощью REST API в настоящее время находится в общедоступной бета-версии и может быть изменена.

С помощью реестров, поддерживающих детализированные разрешения, можно использовать GITHUB_TOKEN в рабочем процессе GitHub Actions для удаления или восстановления пакетов с помощью REST API. Маркер должен иметь admin разрешение на доступ к пакету. Если рабочий процесс публикует пакет, admin роль по умолчанию предоставляется репозиторию, в котором хранится рабочий процесс. Для существующих пакетов, не опубликованных рабочим процессом, необходимо предоставить репозиторию admin роль , чтобы иметь возможность использовать рабочий процесс GitHub Actions для удаления или восстановления пакетов с помощью REST API. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.

Для некоторых реестров можете использовать GraphQL для удаления версии частного пакета.

Api GraphQL GitHub Packages нельзя использовать с реестрами, поддерживающими детализированные разрешения. Реестры, которые поддерживают только разрешения на уровне репозитория и могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub.

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

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

Чтобы удалить пакет, имеющий детализированные разрешения отдельно от репозитория, например образы контейнеров, хранящиеся в https://ghcr.io/NAMESPACE/PACKAGE-NAME или пакеты, хранящиеся в https://npm.pkg.github.com/NAMESPACE/PACKAGE-NAME (где NAMESPACE — это имя личной учетной записи или организации, к которой относится пакет), необходимо иметь доступ администратора к пакету. Дополнительные сведения см. в разделе Сведения о разрешениях для пакетов GitHub.

Пакеты, наследующие права доступа от репозиториев, можно удалять, если у вас есть разрешения администратора для репозитория.

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

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

Удаление версии пакета с областью действия репозитория в GitHub

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

  1. На GitHub.com перейдите на главную страницу репозитория. 1. На правой боковой панели репозитория щелкните Пакеты. Снимок экрана: боковая панель страницы репозитория. Раздел "Пакеты" выделен оранжевым цветом.

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

  3. В списке "Последние версии" пакетов щелкните Просмотреть все версии и управлять ими. Снимок экрана: раздел "Последние версии" пакета. Под ней выделена оранжевая структура ссылки "Просмотр всех версий и управление ими".

  4. В списке пакетов найдите версию пакета, который требуется удалить.

  • Если пакет является контейнером, справа от версии пакета щелкните , а затем выберите Удалить версию в раскрывающемся меню. Снимок экрана: версия пакета с кнопкой раскрывающегося меню со значком шашлыка. Ссылка "Удалить версию" в меню выделена оранжевым контуром.
  • Для типов пакетов, отличных от контейнеров, справа от версии пакета нажмите кнопку Удалить. Снимок экрана: версия пакета с кнопкой "Удалить". Кнопка выделена оранжевым контуром.
  1. Чтобы подтвердить удаление, введите имя пакета и выберите Я понимаю последствия, удалить эту версию.

Удаление версии пакета с областью действия репозитория с помощью GraphQL

Для некоторых реестров можете использовать GraphQL для удаления версии частного пакета.

Api GraphQL GitHub Packages нельзя использовать с реестрами, поддерживающими детализированные разрешения. Реестры, которые поддерживают только разрешения на уровне репозитория и могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub. Сведения об использовании REST API см. в разделе Пакеты.

Использование изменения 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 Enterprise Cloud.

Удаление версии пакета с областью пользователя в GitHub

Чтобы удалить определенную версию пакета с областью пользователя в GitHub, например образа Docker в ghcr.io, выполните следующие действия. О том, как удалить весь пакет, см. в разделе Удаление всего пакета с областью пользователя в GitHub.

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

  1. В GitHub перейдите на главную страницу личной учетной записи.

  2. В правом верхнем углу GitHub.com щелкните фотографию профиля, а затем щелкните Ваш профиль.

    Снимок экрана: раскрывающееся меню под @octocatизображением профиля. "Ваш профиль" выделен темно-оранжевым цветом.

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

  4. На целевой странице пакета справа щелкните Параметры пакета. Снимок экрана: целевая страница пакета. В правом нижнем углу параметр "Параметры пакета" выделен оранжевым контуром.

  5. В списке "Последние версии" пакетов щелкните Просмотреть все версии и управлять ими. Снимок экрана: раздел "Последние версии" пакета. Под ней выделена оранжевая структура ссылки "Просмотр всех версий и управление ими".

  6. В списке пакетов найдите версию пакета, который требуется удалить.

  • Если пакет является контейнером, справа от версии пакета щелкните , а затем выберите Удалить версию в раскрывающемся меню. Снимок экрана: версия пакета с кнопкой раскрывающегося меню со значком шашлыка. Ссылка "Удалить версию" в меню выделена оранжевым контуром.
  • Для типов пакетов, отличных от контейнеров, справа от версии пакета нажмите кнопку Удалить. Снимок экрана: версия пакета с кнопкой "Удалить". Кнопка выделена оранжевым контуром.
  1. В поле подтверждения введите имя пакета, чтобы подтвердить удаление выбранной версии.
  2. Щелкните Я понимаю последствия и удалите эту версию.

Удаление версии пакета с областью организации в GitHub

Чтобы удалить определенную версию пакета с областью организации в GitHub, например образа Docker в ghcr.io, выполните следующие действия. О том, как удалить весь пакет, см. в разделе Удаление всего пакета с областью организации в GitHub.

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

  1. В GitHub перейдите на главную страницу вашей организации.
  2. Под названием организации щелкните вкладку Пакеты .  @octo-orgСнимок экрана: страница профиля. Вкладка "Пакеты" выделена оранжевым контуром. 1. Найдите и щелкните имя пакета, которым требуется управлять.
  3. На целевой странице пакета справа щелкните Параметры пакета. Снимок экрана: целевая страница пакета. В правом нижнем углу параметр "Параметры пакета" выделен оранжевым контуром.
  4. В списке "Последние версии" пакетов щелкните Просмотреть все версии и управлять ими. Снимок экрана: раздел "Последние версии" пакета. Под ней выделена оранжевая структура ссылки "Просмотр всех версий и управление ими".
  5. В списке пакетов найдите версию пакета, который требуется удалить.
  • Если пакет является контейнером, справа от версии пакета щелкните , а затем выберите Удалить версию в раскрывающемся меню. Снимок экрана: версия пакета с кнопкой раскрывающегося меню со значком шашлыка. Ссылка "Удалить версию" в меню выделена оранжевым контуром.
  • Для типов пакетов, отличных от контейнеров, справа от версии пакета нажмите кнопку Удалить. Снимок экрана: версия пакета с кнопкой "Удалить". Кнопка выделена оранжевым контуром.
  1. В поле подтверждения введите имя пакета, чтобы подтвердить удаление выбранной версии.
  2. Щелкните Я понимаю последствия и удалите эту версию.

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

Удаление всего пакета с областью репозитория в GitHub

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

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

Удаление всего пакета с областью пользователя в GitHub

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

  1. В GitHub перейдите на главную страницу личной учетной записи.

  2. В правом верхнем углу GitHub.com щелкните фотографию профиля, а затем щелкните Ваш профиль.

    Снимок экрана: раскрывающееся меню под @octocatизображением профиля. "Ваш профиль" выделен темно-оранжевым цветом.

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

  4. На целевой странице пакета справа щелкните Параметры пакета. Снимок экрана: целевая страница пакета. В правом нижнем углу параметр "Параметры пакета" выделен оранжевым контуром.

  5. В нижней части страницы в разделе "Зона опасности" щелкните Удалить этот пакет.

  6. В поле подтверждения введите имя пакета, чтобы подтвердить его удаление.

  7. Щелкните Я понимаю последствия и удалите этот пакет.

Удаление всего пакета с областью организации в GitHub

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

  1. В GitHub перейдите на главную страницу вашей организации.
  2. Под названием организации щелкните вкладку Пакеты .  @octo-orgСнимок экрана: страница профиля. Вкладка "Пакеты" выделена оранжевым контуром. 1. Найдите и щелкните имя пакета, которым требуется управлять.
  3. На целевой странице пакета справа щелкните Параметры пакета. Снимок экрана: целевая страница пакета. В правом нижнем углу параметр "Параметры пакета" выделен оранжевым контуром.
  4. В нижней части страницы в разделе "Зона опасности" щелкните Удалить этот пакет.
  5. В поле подтверждения введите имя пакета, чтобы подтвердить его удаление.
  6. Щелкните Я понимаю последствия и удалите этот пакет.

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

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

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

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

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

  • Для пакетов с областью репозитория. У вас есть разрешения администратора для репозитория, в котором публикуется удаленный пакет.
  • Для пакетов с областью действия учетной записи пользователя. Удаленный пакет ограничен вашей личной учетной записью.
  • Для пакетов с областью организации. У вас есть разрешения администратора на удаленный пакет в организации, к которой применяется пакет.

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

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

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

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

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

  1. На GitHub.com перейдите на главную страницу организации. 1. Под названием организации щелкните Параметры.

     Кнопка "Параметры организации"

  2. В левой части окна щелкните Пакеты.

  3. В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.

  4. Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.

Восстановление пакета с областью учетной записи пользователя

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

  1. В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.

    Снимок экрана: меню учетной записи GitHub с параметрами для просмотра и изменения профиля, содержимого и параметров пользователями. Пункт меню "Параметры" выделен темно-оранжевым цветом.

  2. На боковой панели слева нажмите Пакеты.

  3. В разделе "Удаленные пакеты" нажмите кнопку Восстановить рядом с пакетом, который требуется восстановить.

  4. Чтобы подтвердить, введите имя пакета и выберите Я понимаю последствия, восстановить этот пакет.

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

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

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