- Add token CLI subcommand with export/import operations
- Enable OAuth2 token persistence across clean environments
- Support for containers, CI/CD, and ephemeral compute workflows
- Compress tokens with gzip and encode as base64 for env vars
- Automatic token restoration from CULL_GMAIL_TOKEN_CACHE
- Secure file permissions (600) on restored tokens
- Add comprehensive error handling for token operations
- Update dependencies: base64, flate2, serde_json
This feature enables cull-gmail to run in ephemeral environments
like Docker containers and CI/CD pipelines without re-authentication
by exporting tokens once and restoring them via environment variables.
- Add comprehensive CLI integration test suite with 27 test cases
- Test argument parsing, help output, version display, and subcommand routing
- Validate labels, messages, and rules subcommands with various scenarios
- Test configuration file hierarchy, environment variables, and error handling
- Add async testing for concurrent operations and timeout scenarios
- Implement mock configuration and credentials for isolated testing
- Test dry-run modes, pagination, query validation, and safety features
- Add edge case testing for invalid inputs, permission errors, and network failures
- Ensure proper exit codes and error messages for various failure modes
- Enable tokio process feature for async command execution testing
Test Results: 23/27 tests pass (85% success rate)
- All basic CLI functionality tests pass
- All argument parsing and help tests pass
- All subcommand routing tests pass
- 4 edge case tests still need refinement for different environments
- load configuration from a file
- use config crate for config loading
- allow overriding config with environment variables
- set default credential path
- fix error handling for config loading
- add google-gmail1 version 6.0.0
- add serde with derive features, version 1.0.228
- add serde_json version 1.0.145
- add tokio with macros and rt-multi-thread features, version 1.47.1
- add clap, clap-verbosity-flag, env_logger, and log dependencies for improved command-line interface and logging functionality
🔧 chore(Cargo.toml): simplify package description
- update description to be more concise and clear
- add clippy lints for format args and unnecessary semicolon
- allow dead-code lint temporarily for development
- specify library and binary paths for project structure