chore: Release cull-gmail v0.0.12

This commit is contained in:
Jerus Bot
2025-10-22 13:40:14 +00:00
parent 65c3ac41b9
commit 9b16105776
6 changed files with 63 additions and 15 deletions

View File

@@ -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). 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 ## [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 ### Added
- ✨ feat(test): add junit report - ✨ feat(test): add junit report
- ✨ feat(ci): introduce nextest test runner - ✨ feat(ci): introduce nextest test runner
- ✨ feat(retention): enhance message age with parsing and validation
- ✨ feat(retention): implement retention policy configuration - ✨ feat(retention): implement retention policy configuration
- ✨ feat(error): add invalid message age error - ✨ feat(error): add invalid message age error
- ✨ feat(retention): enhance message age with parsing and validation
- ✨ feat(retention): introduce message age specification - ✨ feat(retention): introduce message age specification
- ✨ feat(retention): enhance retention policy configuration - ✨ 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(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): 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(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): 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 ## [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(vscode): add custom dictionary entry for ltex
- ✨ feat(project): add initial Cargo.toml for cull-gmail tool - ✨ 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.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.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 [0.0.8]: https://github.com/jerus-org/cull-gmail/compare/v0.0.7...v0.0.8

2
Cargo.lock generated
View File

@@ -453,7 +453,7 @@ dependencies = [
[[package]] [[package]]
name = "cull-gmail" name = "cull-gmail"
version = "0.0.11" version = "0.0.12"
dependencies = [ dependencies = [
"assert_cmd", "assert_cmd",
"assert_fs", "assert_fs",

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "cull-gmail" name = "cull-gmail"
description = "Cull emails from a gmail account using the gmail API" description = "Cull emails from a gmail account using the gmail API"
version = "0.0.11" version = "0.0.12"
authors = ["Jeremiah Russell <jrussell@jerus.ie>"] authors = ["Jeremiah Russell <jrussell@jerus.ie>"]
edition = "2024" edition = "2024"
rust-version = "1.88" rust-version = "1.88"

View File

@@ -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/) 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). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased] ## [0.0.12] - 2025-10-22
### Added ### 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 [#91]: https://github.com/jerus-org/cull-gmail/pull/91
[#92]: https://github.com/jerus-org/cull-gmail/pull/92 [#92]: https://github.com/jerus-org/cull-gmail/pull/92
[#93]: https://github.com/jerus-org/cull-gmail/pull/93 [#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.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.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.9]: https://github.com/jerus-org/cull-gmail/compare/v0.0.8...v0.0.9

View File

@@ -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. 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 ## Main Features
- list labels and messages to aid planning rules - **Easy initialization**: Guided setup with OAuth2 credential validation and secure file handling
- configure the rules list - **Flexible configuration**: Support for file-based config, environment variables, and ephemeral tokens
- run the rules list - **Safety first**: Dry-run mode by default, interactive confirmations, and timestamped backups
- run the rules list be default - **Label management**: List and inspect Gmail labels for rule planning
- configure api client by file or environment variables - **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 ### Running the optional Gmail integration test
@@ -644,7 +664,7 @@ Add the library to your `Cargo.toml`:
```toml ```toml
[dependencies] [dependencies]
cull-gmail = "0.0.11" cull-gmail = "0.0.12"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }
``` ```

View File

@@ -8,7 +8,7 @@ Add the library to your `Cargo.toml`:
```toml ```toml
[dependencies] [dependencies]
cull-gmail = "0.0.11" cull-gmail = "0.0.12"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }
``` ```