Peter Steinberger
f2347515d8
fix(keep): use keep.readonly scope ( #64 ) (thanks @jeremys)
2026-01-11 02:24:48 +01:00
Peter Steinberger
3c131fb1e3
feat(auth): support Workspace service accounts ( #54 ) (thanks @pvieito)
2026-01-11 02:09:05 +01:00
Peter Steinberger
ba41885b1c
test: raise coverage to 85%
2026-01-09 09:18:16 +01:00
salmonumbrella
f8b83e5609
feat(groups): add Google Groups commands and calendar team feature
...
- Add `gog groups list` to list groups user belongs to
- Add `gog groups members <email>` to list group members
- Add `gog calendar team <group-email>` for team calendar queries
- Support --freebusy flag for faster availability checks
- Parallel fetching with event deduplication
- Cloud Identity API client for non-admin group access
- Update README with new commands and examples
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 06:27:58 +01:00
Peter Steinberger
4af95ae7e8
refactor(docs): use docs API for info/cat
2026-01-08 01:16:26 +01:00
Peter Steinberger
b1b9067a23
fix(auth): default --services to user
2026-01-07 21:36:35 +01:00
Elie Habib
1cdd178a04
feat: add Google Keep support (Workspace only)
...
Add support for Google Keep API with domain-wide delegation for
Google Workspace accounts.
New commands:
- `gog keep list` - list all notes
- `gog keep get <noteId>` - get a specific note
- `gog auth keep <email> --key <path>` - configure service account
The Keep API requires Workspace with domain-wide delegation because
Google restricts the Keep scope to enterprise use. Once configured,
the service account is auto-detected for the specified email.
Features:
- Service account authentication with impersonation
- Auto-detection of stored service account credentials
- JSON output support for scripting
- Manual override with --service-account and --impersonate flags
2026-01-07 21:23:05 +01:00
Peter Steinberger
3c1afc6caf
chore: tighten lint rules and fix findings
2025-12-31 19:47:32 +01:00
Peter Steinberger
e616a5b733
chore: tighten lint rules
2025-12-31 17:51:45 +01:00
Peter Steinberger
0a51e93c27
test: expand CLI coverage
2025-12-31 15:36:10 +01:00
Peter Steinberger
348f6d2a05
test: raise coverage and tighten lint
2025-12-31 14:31:49 +01:00
Peter Steinberger
c888a85b1c
test: add regression coverage
2025-12-26 19:20:53 +01:00
Peter Steinberger
9d8d36a94e
feat: take over PR #18 integration
2025-12-26 15:35:15 +01:00
salmonumbrella
e7fae164f4
feat: add context propagation, security fixes, and new features
...
Drive:
- Add context propagation to all API calls
- Add path traversal security fix in download
Gmail:
- Add context propagation to labels and thread commands
- Simplify MIME building (remove unused ReplyTo, BodyHTML)
- Add --from flag for send-as aliases in send and drafts
- Simplify base64 decoding
- Add path traversal security fix in attachments
Calendar:
- Add needsAction status support to respond command
- Add --comment flag for response comments
- Add organizer check to prevent self-response
Auth:
- Add browser-based account management command (auth manage)
- Add web UI for managing connected accounts
Maintenance:
- Update golangci-lint config for v2 compatibility
2025-12-24 19:14:01 -08:00
salmonumbrella
d2be673d10
feat: add retry logic, concurrent fetching, and extended commands
...
Resilience:
- RetryTransport with circuit breaker for 429/5xx resilience
- Exponential backoff with jitter, respects Retry-After headers
- Circuit breaker auto-resets after 30s of successful requests
Performance:
- Concurrent gmail thread fetching (fixes N+1 query pattern)
- Bounded concurrency with semaphore (max 10 parallel)
New calendar commands:
- colors: list available event/calendar colors
- conflicts: check availability across calendars
- search: find events by text query
- time: show current time in multiple timezones
New gmail commands:
- autoforward: get/enable/disable auto-forwarding
- delegates: list/add/remove mail delegation
- filters: list/create/delete inbox filters
- forwarding: manage forwarding addresses
- sendas: manage send-as aliases
- vacation: get/enable/disable vacation responder
- batch: bulk operations (mark-read, archive, label, delete)
- watch: Pub/Sub push with webhook forwarding
New services:
- Sheets: read/write/append spreadsheet data
- Tasks: manage tasklists and tasks
Developer experience:
- Shell completion (bash, zsh, fish, powershell)
- version command with build info
- --debug flag for verbose logging
- lefthook for pre-commit hooks
Documentation:
- Expanded README with examples
- Gmail watch/Pub/Sub guide (docs/watch.md)
- Architecture spec (docs/spec.md)
- Release process (docs/RELEASING.md)
2025-12-24 17:51:21 -08:00
Peter Steinberger
d50d7f7bcc
feat(tasks): add Tasks support
2025-12-24 18:50:59 +01:00
Peter Steinberger
4015bc4d91
test: cover drive downloads and gmail helpers
2025-12-12 16:35:41 +00:00
Peter Steinberger
c6e17331d1
test: raise coverage (auth + googleapi + helpers)
2025-12-12 16:32:07 +00:00
Peter Steinberger
f27117ba33
test: raise coverage for drive and googleapi
2025-12-12 16:03:20 +00:00
Peter Steinberger
055b27f9fc
Tests: add more coverage for helpers
2025-12-12 15:21:57 +00:00
Peter Steinberger
dbd3846fcc
Auth: don't pre-check stored scopes
2025-12-12 15:03:03 +00:00
Peter Steinberger
c0589dca9d
OAuth2: bound refresh-token HTTP with timeout
2025-12-12 14:55:19 +00:00
Peter Steinberger
654ce4740f
Google API: set default HTTP timeout
2025-12-12 14:51:17 +00:00
Peter Steinberger
001d61210c
People API: per-endpoint scopes + other contacts scope
2025-12-12 14:44:40 +00:00
Peter Steinberger
bfbc6e4323
Unify Google CLI with auth, services, and CI
2025-12-12 14:18:38 +00:00