Commit Graph

19 Commits

Author SHA1 Message Date
Anthony Oteri f55c72aa34 fix: resolve CI check failures
- Replace serde_yml with serde_norway (RUSTSEC-2025-0068: serde_yml is
  unsound and archived; serde_norway is the recommended maintained fork)
- Remove unused toml dependency (was resolving to v1.1.2 which requires
  edition2024/Rust 1.85, breaking the MSRV 1.80 check)
- Run cargo fmt to fix formatting diffs caught by lint job
- Fix cog commit check to use from_latest_tag so pre-conventional-commits
  history does not cause the check to fail
- Remove semver job: dredge is a binary-only crate with no lib target,
  cargo-semver-checks cannot check it
2026-05-13 14:51:42 -04:00
Anthony Oteri 353fd94b55 chore: update all dependencies to latest versions
- Replace deprecated serde_yaml with serde_yml
- Remove unused dependencies: serde_toml, xdg
- Bump thiserror 1→2, toml 0.8→1.0, reqwest 0.12.3→0.12 (latest),
  clap 4.4→4.6, tokio 1.32→1.52, and all other deps to latest
- Raise rust-version minimum from 1.72 to 1.80
- Fix description typo: 'interracting' → 'interacting'
- Bump version to 1.2.0
- Update release workflow action versions
2026-05-13 14:51:42 -04:00
dependabot[bot] f12615a7f2 Update simple_logger requirement from 4.2.0 to 5.0.0
Updates the requirements on [simple_logger](https://github.com/borntyping/rust-simple_logger) to permit the latest version.
- [Release notes](https://github.com/borntyping/rust-simple_logger/releases)
- [Commits](https://github.com/borntyping/rust-simple_logger/compare/v4.2.0...v5.0.0)

---
updated-dependencies:
- dependency-name: simple_logger
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-07 18:23:41 +00:00
dependabot[bot] 39c03a2b5b Merge pull request #59 from anthonyoteri/dependabot/cargo/env_logger-0.11.3 2024-05-06 19:28:45 +00:00
dependabot[bot] 0d9761178c Update reqwest requirement from 0.11.20 to 0.12.3
Updates the requirements on [reqwest](https://github.com/seanmonstar/reqwest) to permit the latest version.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.20...v0.12.3)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-05 18:44:24 +00:00
dependabot[bot] 358a19f6f7 Update env_logger requirement from 0.10.0 to 0.11.3
Updates the requirements on [env_logger](https://github.com/rust-cli/env_logger) to permit the latest version.
- [Release notes](https://github.com/rust-cli/env_logger/releases)
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.10.0...v0.11.3)

---
updated-dependencies:
- dependency-name: env_logger
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-05 18:16:31 +00:00
dependabot[bot] 23f1d21a2e Update http requirement from 0.2.9 to 1.0.0
Updates the requirements on [http](https://github.com/hyperium/http) to permit the latest version.
- [Release notes](https://github.com/hyperium/http/releases)
- [Changelog](https://github.com/hyperium/http/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/http/compare/v0.2.9...v1.0.0)

---
updated-dependencies:
- dependency-name: http
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 18:32:17 +00:00
Anthony Oteri 5e7d0e4e1e Release version 1.1.0 2023-10-03 09:55:09 -04:00
Anthony Oteri 0e4219b405 Change License
This changes the effective license from a simple Apache-2.0 license to a
dual license consisting of both Apache-2.0 and the MIT license to be more
compatible for use in GPL Code.

The MIT license requires reproducing countless copies of the same copyright
header with diffferent names in the copyright field, for every MIT library
in use.  The Apache license does not have this drawback.  However, this is not
the primary motivation for creating these issues.  The Apache license also has
protections from patent trolls and explicit contribuition licensing clause.
However the Apache license is incompatible with GPLv2.  This is why Rust is
dual-licensed as MIT/Apache (the "primary" license being Apache, MIT only for
GPLv2 compat), and doing so would be wise for this project.  This also makes
this crate suitable for inclusion and unrestricted sharing in the Rust
standard distribution and other projects using dual MIT/Apache.
2023-10-03 09:36:43 -04:00
Anthony Oteri c7305f8cc4 Release version 1.0.0 2023-10-02 13:44:53 -04:00
Anthony Oteri b60d433508 Rename project to dredge-tool
The name "dredge" alreay exists on crates.io, but "dredge-tool" does not.
The name "dredge-tool" is more clear that this is a binary tool anyway.
2023-10-02 13:33:50 -04:00
Anthony Oteri 80d1acf295 Replace async-std with tokio
Tokio is a far more mature async runtime.
2023-10-02 13:01:58 -04:00
Anthony Oteri de42860be8 Release version 0.2.0 2023-09-29 18:09:46 -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 13ae092b91 Replace femme logger with simple_logger 2023-09-29 15:05:23 -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 572416d3fa Update metadata in Cargo.toml 2023-09-26 22:57:39 -04:00
Anthony Oteri a6cd95bfa4 Add unit tests for existing commands 2023-09-26 16:09:52 -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