Commit Graph

15 Commits

Author SHA1 Message Date
Anthony Oteri 42f8f46bd3 Replace async_std::test with tokio::test 2023-10-02 13:10:55 -04:00
Anthony Oteri fbe43f03f1 Support deleting an image tag
If the Docker Registry API allows for images to be deleted, issuing the
command `delete <image> <tag>` will result in the tag being removed from
the server.

A limitation of this change is that it will cause any unreferenced tags
to become orphaned, requiring the garbage collector within the docker
registry server to clean these up.  This is because there is no way to
efficiently determine if each of the layers are reused by other tags or
images on the server.

Implement delete logic

Fix broken unit tests
2023-09-29 18:04:08 -04:00
Anthony Oteri 86c82b2f76 Support detail view of a tagged image
Running the `dredge <REGISTRY> show <image> <tag>` now responds
with additional output in the form:

```yaml
name: foobar
tag: latest
architecture: amd64
fsLayers:
- blobSum: sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
- blobSum: sha256:d4228a16bba21ff0eabab548df8f4933103d1a83e5894216c7eb32e3058a8e5e
- blobSum: sha256:1f25ec90921b9d511541f9d38ce2b339de2afffc586e55d75b7345b2057f1993
- blobSum: sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
- blobSum: sha256:7d97e254a0461b0a30b3f443f1daa0d620a3cc6ff4e2714cc1cfd96ace5b7a7e
digest: sha256:0259571889ac87efbfca5b79a0abe9baf626d058ec5f9a5744bace2229d9ed50
etag: sha256:0259571889ac87efbfca5b79a0abe9baf626d058ec5f9a5744bace2229d9ed50
```
2023-09-27 10:09:52 -04:00
Anthony Oteri a6cd95bfa4 Add unit tests for existing commands 2023-09-26 16:09:52 -04:00
Anthony Oteri 79aabc1dac More miscellaneous code cleanup 2023-09-21 16:17:51 -04:00
Anthony Oteri 535e08e9bb Support for specifying the URL on the command line 2023-09-21 15:34:19 -04:00
Anthony Oteri 3156a9f99e Fix clippy security errors 2023-09-21 14:28:15 -04:00
Anthony Oteri c059c4ae73 Organized imports 2023-09-20 16:41:59 -04:00
Anthony Oteri 3768401faf Refactoring for Show/Delete handlers
Refactor the existing code architecture to be a little flatter to support adding the show and delete handlers.  Currently these two handlers are just stubbed functions, but the CLI looks about right.
2023-09-20 16:38:24 -04:00
Anthony Oteri 6199848e23 Add Required Copyright header to source files 2023-09-18 14:16:09 -04:00
Anthony Oteri b9d34e7614 Add support for listing image tags 2023-09-18 14:01:21 -04:00
Anthony Oteri 9445c9e817 Add API Version check endpoint 2023-09-14 10:03:10 -04:00
Anthony Oteri 00a1ad87e7 Rename "repo list" command to "catalog"
The official Docker Registry V2 API calls the commmand to list the repositories
the "catalog", so to keep things as consistent as possible and not invent new
names for things that have meaning in the domain, stick with the same naming
convention.
2023-09-14 09:24:09 -04:00
Anthony Oteri 957b0bb2cc Apply consistent formatting with cargo-fmt 2023-09-13 21:45:37 -04:00
Anthony Oteri 7b0c3f1dcc Create initial project structure
The initial project structure includes the base scaffolding of the
application as well as the ability to fetch the repo list from the
remote endpoint.
2023-09-13 17:37:28 -04:00