Commit Graph

32 Commits

Author SHA1 Message Date
Peter Steinberger
fde7e6ffd4 ci: fix fmt-check and lint 2026-01-09 10:09:53 +01:00
Peter Steinberger
47c06796b0 fix(lint): tidy cmd/ui lint findings (#35)
Thanks @salmonumbrella.

Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:34:31 +01:00
Peter Steinberger
18a6e3c97f feat(tracking): per-account setup + track-split 2026-01-08 23:52:57 +01:00
Peter Steinberger
9bf5e12c47 feat(cli): wire keep/groups and improve help 2026-01-08 12:08:38 +01:00
Peter Steinberger
de72b27dd8 feat(cli): add output flag aliases 2026-01-08 10:29:35 +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
63d167fea4 fix(cli): avoid shadowed backend line 2026-01-08 05:43:48 +01:00
Peter Steinberger
2708877e8a feat(calendar): add recurrence rules and reminders 2026-01-08 05:42:49 +01:00
Peter Steinberger
4af95ae7e8 refactor(docs): use docs API for info/cat 2026-01-08 01:16:26 +01:00
Peter Steinberger
43f6ac5c87 refactor(auth): centralize service metadata 2026-01-07 23:38:06 +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
4dab3566f6 feat(help): improve help output 2026-01-07 18:10:01 +01:00
Peter Steinberger
39921a3831 Calendar: add --add-attendee flag
Co-authored-by: salmonumbrella <182032677+salmonumbrella@users.noreply.github.com>
2026-01-07 17:10:58 +01:00
salmonumbrella
72f251f729
feat(gmail): add thread attachments command (#27)
* feat(gmail): add thread attachments command

Adds `gog gmail thread attachments <threadId>` command that lists all
attachments in an email thread with human-readable sizes.

Features:
- Lists attachments across all messages in a thread
- Shows filename, size (human-readable), and MIME type
- Optional --download flag to download all attachments
- Optional --out-dir to specify download directory
- Supports both JSON and text output formats

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(auth): check keychain before token import

Add pre-flight keychain accessibility check to AuthTokensImportCmd.Run
to fail early if the keychain is locked, rather than after the user has
already completed the import process.

Also adds the EnsureKeychainAccess function to the secrets package which
performs a write/delete test to verify keychain accessibility on macOS.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* style: group const declarations for gofumpt

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address lint issues in store.go

- Wrap keychain access error for wrapcheck linter
- Add blank lines before returns for wsl linter
- Define static error for err113 linter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(cli): add mail and email aliases for gmail command

Enables `gog mail` and `gog email` as shortcuts for `gog gmail`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(gmail): add flattened headers to gmail get JSON output

Add a headers map with common email headers (from, to, cc, bcc, subject,
date) to the JSON output of `gog gmail get`. This makes header extraction
much simpler:

  # Before (error-prone due to jq operator precedence)
  jq '.message.payload.headers[] | select(.name == "To") | .value'

  # After
  jq '.headers.to'

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(gmail): include inline attachments

* fix(secrets): dedupe keychain helpers

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-05 02:26:42 +00:00
Peter Steinberger
d1c53e9d5c feat(config): add JSON5 config and auth status 2026-01-03 13:20:36 +01:00
Peter Steinberger
3c1afc6caf chore: tighten lint rules and fix findings 2025-12-31 19:47:32 +01:00
Peter Steinberger
4252ad53f4 refactor(cli): migrate to kong 2025-12-31 17:24:31 +01:00
Peter Steinberger
e70b576dc9 fix: refine gmail thread modify command 2025-12-31 13:10:16 +01:00
Peter Steinberger
eedfba8a5f fix(sheets): avoid --json flag collision 2025-12-26 19:20:44 +01:00
Peter Steinberger
30fbee4a8f refactor(cmd): unify drive exports and table output 2025-12-26 18:32:06 +01:00
Peter Steinberger
9c1f2aaabb feat: add docs/slides/sheets export commands 2025-12-26 18:01:07 +01:00
Peter Steinberger
f044d59522 chore(cli): remove --debug flag
Some checks failed
ci / test (push) Has been cancelled
2025-12-26 16:20:33 +01:00
Peter Steinberger
cd793f2c65 chore(cli): prefer --verbose over --debug 2025-12-26 16:14:02 +01:00
Peter Steinberger
9d8d36a94e feat: take over PR #18 integration 2025-12-26 15:35:15 +01:00
Peter Steinberger
18f2a9fd4f feat(cli)!: switch to --json/--plain 2025-12-26 10:15:12 +00: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
4b4d78b16f feat(people): add me command 2025-12-17 21:24:55 +01:00
Peter Steinberger
dc714336fc Help: clarify --account is for API commands 2025-12-12 15:38:13 +00:00
Peter Steinberger
40c707b1c3 CLI: add root help examples 2025-12-12 15:35:36 +00:00
Peter Steinberger
bfbc6e4323 Unify Google CLI with auth, services, and CI 2025-12-12 14:18:38 +00:00