105 Commits

Author SHA1 Message Date
Anthony Oteri 1293725967 chore: add v1.2.0 changelog entry v1.2.0 2026-05-13 14:54:57 -04:00
Anthony Oteri 0d51c5034f fix: upgrade cocogitto-action to v4 and fix commit range syntax
The v3 action inputs (check:, from:) no longer match the v4 API.
Switch to v4 with command: check and pass the git range as a positional
args value (SHA..HEAD) which is what cog check accepts.
2026-05-13 14:51:42 -04:00
Anthony Oteri d37ca2de44 fix: resolve remaining CI check failures
- cargo deny: add MPL-2.0 and BSD-3-Clause to allow list (colored via
  simple_logger/mockito; encoding_rs via reqwest)
- conventional commits: use explicit SHA of last pre-conventional commit
  instead of from_latest_tag (no tags exist yet in the repo)
- MSRV: raise rust-version 1.80 -> 1.88 to match the actual minimum
  required by the dependency tree (simple_logger -> time 0.3 -> 1.88)
- MSRV CI: update toolchain pin to 1.88 to match
- macOS test: remove Swatinem/rust-cache from test matrix job to avoid
  stale cache corrupting the cargo binary path on arm64 runners
2026-05-13 14:51:42 -04:00
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 52910538df ci: overhaul CI/CD pipeline and add tooling configs
- Add ci.yml: test matrix (ubuntu/macos/windows), lint, conventional
  commits check (cocogitto), cargo-deny, MSRV, and semver jobs
- Add release.yml: tag-triggered publish to crates.io + GitHub release
- Remove stale rust.yml and rust-clippy.yml workflows
- Add deny.toml for cargo-deny license/advisory/ban/source checks
- Add cog.toml for cocogitto conventional commits and changelog generation
- Add Justfile with test, check, fmt, commits, release, push-tag targets
- Add CHANGELOG.md seed file
- Add PULL_REQUEST_TEMPLATE.md with conventional commits checklist
- Update dependabot.yml: weekly schedule with grouped patch/minor updates
2026-05-13 14:51:42 -04:00
Anthony Oteri 01ef25b953 docs: rewrite README with comprehensive usage examples and installation guide
- Add features list, installation section, and prerequisites
- Document all subcommands with realistic examples and argument tables
- Add REGISTRY argument format table
- Fix typo 'Deleteing' -> 'Deleting'
- Add known limitations section
2026-05-13 14:51:42 -04:00
Anthony Oteri d2d51b3a2d refactor: simplify codebase and fix correctness issues
- api: extract check_api_version_header() helper, eliminating duplicated
  header-checking logic in parse_response_status()
- api: simplify parse_rfc5988() using split_once and let-else
- api: propagate JSON decode errors in fetch_paginated() instead of
  silently swallowing them
- api: add connect/request timeouts via a shared build_client() helper;
  all handlers now use a configured client instead of reqwest::get()
- api: fix stale log trace name get_manifest -> get_digest
- commands: promote inline response structs to module-level for clarity
- commands: fix etag stripping logic (was using wrong quote/apostrophe
  pattern; now correctly strips RFC 7232 double-quotes)
- commands: simplify iterator chains in catalog/tags handlers
- error: simplify ResponseHeaderParseError from Box<dyn Error> to String
- main: fix stale log trace name make_registry_url -> parse_registry_arg
- main: use as_deref().unwrap_or() instead of allocating via to_owned()
- cli: remove unused imports and #![allow(unused_imports)] attribute
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] 9b602f70a6 Merge pull request #64 from anthonyoteri/dependabot/cargo/simple_logger-5.0.0 2024-05-21 18:54:24 +00: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] f836b26930 Merge pull request #63 from anthonyoteri/dependabot/cargo/reqwest-0.12.3 2024-05-06 19:28:33 +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] 0527b6268d Merge pull request #55 from anthonyoteri/dependabot/github_actions/github/codeql-action-3 2023-12-27 13:25:38 +00:00
dependabot[bot] 67c02581f3 Bump github/codeql-action from 2 to 3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 18:20:08 +00:00
dependabot[bot] b6fda7162f Merge pull request #54 from anthonyoteri/dependabot/cargo/http-1.0.0 2023-11-16 16:18:29 +00:00
Anthony Oteri 07746429bb Be consistent with use of http and reqwest libraries
The types may have similar names but are distinct types and should be used consistently.  This changes
the code to use the header and status code information directly from the `reqwests` library instead of
mixing the two.

Signed-off-by: Anthony Oteri <anthony.oteri@gmail.com>
2023-11-16 10:30:03 -05: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 v1.1.0 2023-10-03 09:55:09 -04:00
Anthony Oteri 600c2d86ac Merge pull request #52 from anthonyoteri/license
Change License to MIT/Apache
2023-10-03 09:48:38 -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 v1.0.0 2023-10-02 13:44:53 -04:00
Anthony Oteri 02dd2ec90a Merge pull request #50 from anthonyoteri/rename-project
Rename project to dredge-tool
2023-10-02 13:43:32 -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 0712af9d23 Merge pull request #49 from anthonyoteri/replace-async-std-with-tokio
Use better async runtime
2023-10-02 13:15:56 -04:00
Anthony Oteri 42f8f46bd3 Replace async_std::test with tokio::test 2023-10-02 13:10:55 -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 12dd298706 Update known issues in release notes 2023-09-29 18:18:47 -04:00
Anthony Oteri de42860be8 Release version 0.2.0 v0.2.0 2023-09-29 18:09:46 -04:00
Anthony Oteri b4d6002a20 Merge pull request #46 from anthonyoteri/support-delete
Support delete command
2023-09-29 18:08:40 -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 48070cff1f Merge pull request #45 from anthonyoteri/replace-femme-with-simple-logger
Replace Femme with SimpleLogger
2023-09-29 15:13:45 -04:00
Anthony Oteri 13ae092b91 Replace femme logger with simple_logger 2023-09-29 15:05:23 -04:00
Anthony Oteri b0239fb049 Fix script to update release notes v0.1.0 2023-09-29 14:53:35 -04:00
Anthony Oteri ed84e92112 Release version 0.1.0 2023-09-29 14:34:34 -04:00
Anthony Oteri cfdefb287c Additional scripts for managing the release process 2023-09-29 14:29:35 -04:00
Anthony Oteri 60acc6921c Replace deprecated actions v0.1.0-rc1 2023-09-29 12:13:53 -04:00
Anthony Oteri 7ba2359db5 Fix syntax error 2023-09-29 12:05:39 -04:00
Anthony Oteri c6294dc83e Fix name of rust-docs component 2023-09-29 12:01:09 -04:00
Anthony Oteri a47b4369f8 Add task to build documentation 2023-09-29 11:58:24 -04:00
Anthony Oteri b8d64542f2 Use lowercase filename and fix windows tar command 2023-09-29 11:41:12 -04:00
Anthony Oteri ce6bd4b46a Fix path of release binary 2023-09-29 11:35:42 -04:00
Anthony Oteri ab419fede0 Use extension in filename 2023-09-29 11:33:24 -04:00
Anthony Oteri cab6e40050 Use ref-name instead of ref for version 2023-09-29 11:28:54 -04:00
Anthony Oteri b12e5e4c7b Use gzip files to differentiate versions 2023-09-29 11:04:07 -04:00
Anthony Oteri 452a136b17 Split out release-assets job for windows from mac/linux 2023-09-29 10:39:21 -04:00
Anthony Oteri b676e7e220 Add permission to write contents to release_asset workflow 2023-09-28 17:55:41 -04:00
Anthony Oteri 5f1a98ded8 Add permission to write contents to release workflow 2023-09-28 17:45:11 -04:00
Anthony Oteri faf9ef5d73 Merge pull request #43 from anthonyoteri/support-release-workflow
Create Release Workflow
2023-09-28 17:39:01 -04:00