How to delete/remove/unlink/unversion a package from the Github Package Registry
Removing a package from a public registry is not allowed, however you can remove a version of a package from a private registry as mentioned in GitHub docs:
Now it is available to delete on GitHub directly:
- On GitHub, navigate to the main page of the repository.
- To the right of the list of files, click Packages.
- Click the name of the package that you want to delete.
- On the right, use the Edit package drop-down and select "Manage versions".
- To the right of the version you want to delete, click Delete.
- To confirm deletion, type the package name and click I understand the consequences, delete this version.
GraphQL was the only method for this purpose in the past:
$ curl -X POST https://api.github.com/graphql \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer <github_token>" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDE0OlBhY2thZ2VWZXJzaW9uMzc5MTE0kFcA\"}) { success }}"}'
Version id of GitHub packages can be listed as follows:
$ curl -sL -X POST https://api.github.com/graphql \
-H "Authorization: bearer <github_token>" \
-d '{"query":"query{repository(owner:\"<repo_owner>\",name:\"<repo_name>\"){packages(first:10){nodes{packageType,name,id,versions(first:10){nodes{id,version,readme}}}}}}"}' | jq .
Update the parameters below with yours:
<github_token>
<repo_owner>
<repo_name>
It returns as follows:
{
"data": {
"repository": {
"registryPackages": {
"nodes": [
{
"packageType": "DOCKER",
"registryPackageType": "docker",
"name": "demo_image_1",
"nameWithOwner": "aki***/demo_image_1",
"id": "MDc6UGFja2FnZTYzNjg3AkFc",
"versions": {
"nodes": [
{
"id": "MDE0OlBhY2thZ2VWZXJzaW9uMzc5MTE0kFcA",
"version": "0.1a",
"readme": null
},
{
"id": "MDE0OlBhY2thZ2VWZXJzaW9uMzYzNTY2FcAk",
"version": "0.1",
"readme": null
},
{
"id": "MDE0OlBhY2thZ2VWZXJzaW9uMzYzNTY0cAkF",
"version": "docker-base-layer",
"readme": null
}
]
}
},
]
}
}
}
Package versions of a private can be delete by the maintainer:
- Via the Github API, see the answer of @Akif
- Via the Github Support
- Via the Web App Github.com
Go to your repositories' packages
https://github.com/orgs/YOUR_ACCOUNT/packages?repo_name=YOUR_REPO
Select one package
https://github.com/YOUR_ACCOUNT/YOUR_REPO/packages/PACKAGE_ID
Show all versions of that package
https://github.com/cyface-de/backend/packages/81398/versions
Use the
DELETE
button to delete this private package
Package versions of a public repository cannot be deleted by the maintainer, i.e.:
The Github support needs to be contacted to have a package or version removed.
Workaround: make your repository temporarily private for the deletion:
- Attention: This results into loss of stars, etc., see Github Warning!
Repository Settings
>Danger Zone
>Make private
- To delete the package versions:
- via API: Follow instructions by @Akif's answer
- via the Web-App: see above
Repository Settings
>Danger Zone
>Make public