Disable default features on google-gmail1 to avoid
enabling both ring and aws-lc-rs crypto providers.
Rustls 0.23.36 cannot auto-select when both are
compiled in.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jeremiah Russell <jerry@jrussell.ie>
Upgrade google-gmail1 from 6.0.0 to 7.0.0 which uses yup-oauth2 v12
that no longer depends on the unmaintained rustls-pemfile crate.
This resolves RUSTSEC-2025-0134 (rustls-pemfile unmaintained).
Breaking changes addressed:
- Updated InstalledFlowAuthenticator to use CustomHyperClientBuilder
- Added hyper-rustls with http1 feature for OAuth redirect flow
Signed-off-by: Jeremiah Russell <jerry@jrussell.ie>
- 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