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).
|
||||
|
||||
## [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
|
||||
|
||||
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -453,7 +453,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cull-gmail"
|
||||
version = "0.0.11"
|
||||
version = "0.0.12"
|
||||
dependencies = [
|
||||
"assert_cmd",
|
||||
"assert_fs",
|
||||
|
||||
@@ -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 <jrussell@jerus.ie>"]
|
||||
edition = "2024"
|
||||
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/)
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
## 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"] }
|
||||
```
|
||||
|
||||
|
||||
@@ -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"] }
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user