From 9b16105776e9e6ada7bf04676a006a9718154e2e Mon Sep 17 00:00:00 2001 From: Jerus Bot <171541392+jerus-bot@users.noreply.github.com> Date: Wed, 22 Oct 2025 13:40:14 +0000 Subject: [PATCH] chore: Release cull-gmail v0.0.12 --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++---- Cargo.lock | 2 +- Cargo.toml | 2 +- PRLOG.md | 4 ++-- README.md | 32 ++++++++++++++++++++++++++------ docs/lib.md | 2 +- 6 files changed, 63 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65cb495..c472dc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,17 +5,44 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.0.12] - 2025-10-22 + +Summary: Added[6], Build[1], Changed[2], Chore[6], Documentation[1], Fixed[6], Testing[2] + +### Added + + - ✨ feat: integrate configurable rules path throughout CLI + - ✨ feat: add get_rules_from() to load rules from custom path + - ✨ feat: add configurable rules directory support to Rules and InitCli + - 🏗️ feat(init): implement plan and apply operations + - ✨ feat(cli): scaffold InitCli subcommand and clap wiring + - 🔐 feat: Add token export/import for ephemeral environments + +### Fixed + + - 🐛 fix(ci): correct default test runner value + - 🔧 fix: address clippy warnings after refactoring + - 🐛 fix: allow init command to run without existing config file + - 🔧 fix: address clippy warnings and improve code formatting + - 🐛 fix: replace hardcoded paths in tests with temp directories for CI compatibility + - 🔧 fix: Resolve clippy warnings and formatting issues + +### Changed + + - ♻️ refactor: reduce cognitive complexity of plan_operations and execute_operation + - ♻️ refactor: extract mock credential file creation into helper function + ## [0.0.11] - 2025-10-20 -Summary: Added[7], Changed[7], Chore[12], Continuous Integration[5], Documentation[24], Fixed[7], Testing[12] +Summary: Added[7], Changed[7], Chore[13], Continuous Integration[5], Documentation[24], Fixed[7], Testing[12] ### Added - ✨ feat(test): add junit report - ✨ feat(ci): introduce nextest test runner + - ✨ feat(retention): enhance message age with parsing and validation - ✨ feat(retention): implement retention policy configuration - ✨ feat(error): add invalid message age error - - ✨ feat(retention): enhance message age with parsing and validation - ✨ feat(retention): introduce message age specification - ✨ feat(retention): enhance retention policy configuration @@ -36,8 +63,8 @@ Summary: Added[7], Changed[7], Chore[12], Continuous Integration[5], Documentati - ♻️ refactor(message-list): extract helper to append messages from ListMessagesResponse and add unit test - ♻️ refactor(rule_processor): extract process_label and add internal ops trait for unit testing - ♻️ refactor(rule_processor): add TRASH_LABEL, correct Gmail scopes, early returns, and improve idioms - - refactor(rules): replace unwrap() with explicit error handling and propagate errors safely - refactor(rules): apply idiomatic patterns and resolve clippy warnings + - refactor(rules): replace unwrap() with explicit error handling and propagate errors safely ## [0.0.10] - 2025-10-16 @@ -474,7 +501,8 @@ Summary: Added[4], Build[3], Chore[21], Continuous Integration[4], Documentation - ✨ feat(vscode): add custom dictionary entry for ltex - ✨ feat(project): add initial Cargo.toml for cull-gmail tool -[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.10...HEAD +[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.11...HEAD +[0.0.11]: https://github.com/jerus-org/cull-gmail/compare/v0.0.10...v0.0.11 [0.0.10]: https://github.com/jerus-org/cull-gmail/compare/v0.0.9...v0.0.10 [0.0.9]: https://github.com/jerus-org/cull-gmail/compare/v0.0.8...v0.0.9 [0.0.8]: https://github.com/jerus-org/cull-gmail/compare/v0.0.7...v0.0.8 diff --git a/Cargo.lock b/Cargo.lock index 3bfd705..544f088 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "cull-gmail" -version = "0.0.11" +version = "0.0.12" dependencies = [ "assert_cmd", "assert_fs", diff --git a/Cargo.toml b/Cargo.toml index 3182853..cdfe076 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cull-gmail" description = "Cull emails from a gmail account using the gmail API" -version = "0.0.11" +version = "0.0.12" authors = ["Jeremiah Russell "] edition = "2024" rust-version = "1.88" diff --git a/PRLOG.md b/PRLOG.md index 1c5cefb..03d39e6 100644 --- a/PRLOG.md +++ b/PRLOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.0.12] - 2025-10-22 ### Added @@ -278,7 +278,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#91]: https://github.com/jerus-org/cull-gmail/pull/91 [#92]: https://github.com/jerus-org/cull-gmail/pull/92 [#93]: https://github.com/jerus-org/cull-gmail/pull/93 -[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.11...HEAD +[0.0.12]: https://github.com/jerus-org/cull-gmail/compare/v0.0.11...v0.0.12 [0.0.11]: https://github.com/jerus-org/cull-gmail/compare/v0.0.10...v0.0.11 [0.0.10]: https://github.com/jerus-org/cull-gmail/compare/v0.0.9...v0.0.10 [0.0.9]: https://github.com/jerus-org/cull-gmail/compare/v0.0.8...v0.0.9 diff --git a/README.md b/README.md index 81b26b8..2e23df1 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,33 @@ The `cull-gmail` provides a software library and command line program to enable the culling of emails using the Gmail API. +## Quick Start + +Get started with cull-gmail in minutes using the built-in setup command: + +1. **Get OAuth2 credentials** from [Google Cloud Console](https://console.cloud.google.com/) +2. **Initialize cull-gmail** with guided setup: + ```bash + # Interactive setup (recommended) + cull-gmail init --interactive --credential-file ~/Downloads/client_secret.json + + # Or preview first + cull-gmail init --dry-run + ``` +3. **Verify your setup**: + ```bash + cull-gmail labels + ``` + ## Main Features -- list labels and messages to aid planning rules -- configure the rules list -- run the rules list -- run the rules list be default -- configure api client by file or environment variables +- **Easy initialization**: Guided setup with OAuth2 credential validation and secure file handling +- **Flexible configuration**: Support for file-based config, environment variables, and ephemeral tokens +- **Safety first**: Dry-run mode by default, interactive confirmations, and timestamped backups +- **Label management**: List and inspect Gmail labels for rule planning +- **Message operations**: Query, filter, and perform batch operations on Gmail messages +- **Rule-based automation**: Configure retention rules with time-based filtering and automated actions +- **Token portability**: Export/import OAuth2 tokens for containerized and CI/CD environments ### Running the optional Gmail integration test @@ -644,7 +664,7 @@ Add the library to your `Cargo.toml`: ```toml [dependencies] -cull-gmail = "0.0.11" +cull-gmail = "0.0.12" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } ``` diff --git a/docs/lib.md b/docs/lib.md index f294f2d..8509b09 100644 --- a/docs/lib.md +++ b/docs/lib.md @@ -8,7 +8,7 @@ Add the library to your `Cargo.toml`: ```toml [dependencies] -cull-gmail = "0.0.11" +cull-gmail = "0.0.12" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } ```