Commit Graph

27 Commits

Author SHA1 Message Date
Peter Steinberger
3c131fb1e3 feat(auth): support Workspace service accounts (#54) (thanks @pvieito) 2026-01-11 02:09:05 +01:00
salmonumbrella
07ffcb5d84
fix(paths): expand ~ in user-provided file paths (#56)
* fix(paths): expand ~ in user-provided file paths

When users specify paths with ~ (e.g., --out ~/Downloads/file.pdf) and
the path is quoted in the shell command, the tilde is not expanded by
the shell. This caused files to be written to a literal ~/Downloads
directory instead of the user's home directory.

Add config.ExpandPath() function that expands ~ at the beginning of
paths to the user's home directory. Apply this fix to all user-provided
file paths across:

- gmail attachment download (--out)
- drive download/export (--out)
- drive upload (localPath argument)
- auth token export (--out)
- auth credentials/import/keep (input paths)
- gmail thread attachments (--out-dir)
- gmail send/drafts (--attach)

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

* fix(lint): address wrapcheck and wsl issues

* fix(calendar): support ISO 8601 time format and add 'list' alias

- Add parsing for ISO 8601 datetime with numeric timezone without colon
  (e.g., 2026-01-09T16:38:41-0800), which is the format produced by
  macOS `date +%Y-%m-%dT%H:%M:%S%z`
- Add 'list' as an alias for 'events' subcommand for more intuitive CLI
  usage (gog calendar list instead of gog calendar events)

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

* chore(changelog): note PR #56

* chore(lint): dedupe file string

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-10 02:19:30 +00:00
Peter Steinberger
269f8e5a1f feat(auth): add keyring backend config command 2026-01-09 10:05:40 +01:00
Peter Steinberger
ba41885b1c test: raise coverage to 85% 2026-01-09 09:18:16 +01:00
Peter Steinberger
7beb1bc52f fix(lint): tidy test lint findings (#35)
Thanks @salmonumbrella.

Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:34:38 +01:00
Peter Steinberger
c1ebd60210 test: expand coverage and tracking regressions (#35)
Thanks @salmonumbrella.

Co-authored-by: salmonumbrella <salmonumbrella@users.noreply.github.com>
2026-01-09 04:21:16 +01:00
Peter Steinberger
c104480f8f fix(secrets): validate keyring backend in config 2026-01-08 12:08:45 +01:00
Peter Steinberger
de72b27dd8 feat(cli): add output flag aliases 2026-01-08 10:29:35 +01:00
salmonumbrella
4a7d9d1f4a fix(lint): resolve pre-existing lint issues
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 07:46:24 +01:00
Peter Steinberger
006d02e17e fix(calendar): restore search window defaults
Some checks failed
ci / test (push) Has been cancelled
ci / worker (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2026-01-08 06:36:12 +01:00
salmonumbrella
f70329b5b1 fix: resolve lint issues (shadow, wsl, wrapcheck, ineffassign)
Fix pre-existing golangci-lint issues:
- govet shadow: variable shadowing in tests
- wsl: whitespace linter spacing issues
- wrapcheck: unwrapped errors from external packages
- ineffassign: ineffectual assignment in root.go

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 06:28:51 +01:00
Peter Steinberger
1d595747f5 feat(calendar,gmail): calendar parity + email open tracking (#38) 2026-01-08 04:44:18 +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
39921a3831 Calendar: add --add-attendee flag
Co-authored-by: salmonumbrella <182032677+salmonumbrella@users.noreply.github.com>
2026-01-07 17:10:58 +01:00
Peter Steinberger
d1c53e9d5c feat(config): add JSON5 config and auth status 2026-01-03 13:20:36 +01:00
Peter Steinberger
ac8cfe23fe release: v0.4.2
Some checks failed
ci / test (push) Has been cancelled
ci / darwin-cgo-build (push) Has been cancelled
2025-12-31 20:04:34 +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
4252ad53f4 refactor(cli): migrate to kong 2025-12-31 17:24:31 +01:00
Peter Steinberger
0a51e93c27 test: expand CLI coverage 2025-12-31 15:36:10 +01:00
Peter Steinberger
c888a85b1c test: add regression coverage 2025-12-26 19:20:53 +01:00
Peter Steinberger
b59ea1e8cb feat: add gmail watch and history commands 2025-12-24 17:53:48 +00:00
Advait Shinde
cac66d50b7 Fix keyring file backend: set FileDir + password prompt 2025-12-24 17:30:29 +01:00
Peter Steinberger
c6e17331d1 test: raise coverage (auth + googleapi + helpers) 2025-12-12 16:32:07 +00:00
Peter Steinberger
c595111db9 test: increase unit coverage 2025-12-12 15:52:12 +00:00
Peter Steinberger
bfbc6e4323 Unify Google CLI with auth, services, and CI 2025-12-12 14:18:38 +00:00