Вопрос: Как я могу заставить пакет «исчезнуть» из реестра пакетов Github?
- Документация говорит: вы не можете «удалить», но пакет «исчезнет» при удалении всех версий.
Фон:
- Опечатка в задаче публикации Gradle привела к выпуску пакетов, которые не следует публиковать.
Шаги на данный момент:
- Я не нашел опции «удалить» в веб-приложении Github.
- Я попытался удалить через GraphQL API Github, но мне нужен идентификатор пакета для этой команды:
curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ACCESS_TOKEN" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"PACKAGE_ID==\"}) { success }}"}' \
https://api.github.com/graphql
- Я не нашел полного packageVersionId в веб-приложении Github.
- Я попытался запросить API для идентификаторов пакетов, но не смог сформировать действительный запрос:
curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ACCESS_TOKEN" \
-d "query {
organization(login: "ORGANIZATION_ACCOUNT") {
registryPackages {
edges {
node {
name
id
}
}
}
}
}" \
https://api.github.com/graphql
# The API returns:
{
"message": "Problems parsing JSON",
"documentation_url": "https://developer.github.com/v4"
}
- Я попытался использовать GraphQL API Explorer, но автоматически настроенный токен не имеет достаточных прав:
# See query above - the API returns via the Explorer:
{
"errors": [
{
"type": "INSUFFICIENT_SCOPES",
"locations": [
{
"line": 6,
"column": 11
}
],
"message": "Your token has not been granted the required scopes to execute this query. The 'name' field requires one of the following scopes: ['read:packages'], but your token has only been granted the: ['read:gpg_key', 'read:org', 'read:public_key', 'read:repo_hook', 'repo', 'user'] scopes. Please modify your token's scopes at: https://github.com/settings/tokens."
},
{
"type": "INSUFFICIENT_SCOPES",
"locations": [
{
"line": 7,
"column": 11
}
],
"message": "Your token has not been granted the required scopes to execute this query. The 'id' field requires one of the following scopes: ['read:packages'], but your token has only been granted the: ['read:gpg_key', 'read:org', 'read:public_key', 'read:repo_hook', 'repo', 'user'] scopes. Please modify your token's scopes at: https://github.com/settings/tokens."
}
]
}
- Я не нашел в приложении Explorer Web возможности установить другой токен доступа.
Желаемое решение
- Мне нравится знать, есть ли более простой способ сделать это, а если нет, то как получить packageVersionIds, необходимый для отсоединения пакетов, чтобы они исчезли.
Обновление1: речь идет о пакетах, опубликованных в общедоступном репозитории.