shrink / actions-docker-registry-tag Goto Github PK
View Code? Open in Web Editor NEW:whale: Add many tags to an image in a Docker Registry
License: MIT License
:whale: Add many tags to an image in a Docker Registry
License: MIT License
Node 12 is out of support and deprecated by GitHub Actions with an end date of summer 2023. As of at least 2022-10-13 there have been deprecation warnings around using this Action. I'm hoping you upgrade. Thanks! :)
GitHub Release
https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
Deprecation warning:
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: shrink/actions-docker-registry-tag, actions/checkout
This action works by downloading a digest for a tag and then uploading it again to a different tag, however multi-architecture images do not return a digest to the API call: they return a list (application/vnd.docker.distribution.manifest.list.v2+json
). Docker's Registry v2 API does not currently support pushing a list of digests to a tag, we must push each tag individually.
Specifically I'm wondering:
Will adding tags replace existing tags on an image?
Will adding an existing tag fail?
This may require an additional action, because it looks like the only way to generate a valid token is with an API request, the Docker Hub Personal Access Tokens do not seem to grant API access, they're just revokable passwords.
Started failing a few weeks ago without any changes to the action so the issue is likely outside of the action.
unsupported MIME type for compression: application/vnd.in-toto+json
https://github.com/shrink/actions-docker-registry-tag/actions/runs/7347727035/job/20004627646
Error message referenced in containers/skopeo#2174 and the timeline lines up so likely the same issue.
As documented here the server returns error messages in the JSON response body. These should be reported to the user in addition to the generic failure message (<repository:tag> could not be tagged with <tag>
).
e.g: https://github.com/shrink/actions-docker-registry-tag/runs/3859240293?check_suite_focus=true
denied: permission_denied: write_package
Error: Process completed with exit code 1.
GitHub Package Registry now allows for repositories to be granted access to read and write to a Package, so the token hack is no longer required.
I guess ubuntu-latest
has changed its NodeJS version.
https://github.com/shrink/actions-docker-registry-tag/actions/runs/4314123335
Sometimes a user might not have the cleanest of input, i.e: they may have a full repository path (ghcr.io/shrink/example-image
) and so when they provide registry
or repository
this action should identify that case and sanitise the input, so that user sdo not need to implement their own separate input validation.
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: shrink/actions-docker-registry-tag@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
If an OCI image archive is in a registry, a request must explicitly opt-in to receive information about it by including it in the header.
Accept: application/vnd.oci.image.manifest.v1+json
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.