chore: Release cull-gmail v0.0.12
This commit is contained in:
36
CHANGELOG.md
36
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).
|
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
2
Cargo.lock
generated
@@ -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",
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
4
PRLOG.md
4
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/)
|
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
|
||||||
|
|||||||
32
README.md
32
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.
|
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"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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"] }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user