Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
5137fcb
feat(gmail): add history types filter to watch serve
salmonumbrella Feb 3, 2026
323c3e6
fix(gmail): default history types to messageAdded for backward compat
salmonumbrella Feb 3, 2026
79067b3
fix(gmail): separate deleted message IDs from fetchable messages
salmonumbrella Feb 3, 2026
6553de8
fix(gmail): address code review minor issues
salmonumbrella Feb 3, 2026
71714ae
fix(gmail): resolve variable shadowing lint warning
salmonumbrella Feb 3, 2026
71b5446
fix(gmail): resolve remaining variable shadowing lint warnings
salmonumbrella Feb 3, 2026
704d368
feat(admin): add workspace admin foundation
salmonumbrella Feb 3, 2026
60983d4
feat(admin): add roles reports vault commands
salmonumbrella Feb 3, 2026
a3ff325
fix(cli): tighten admin command parsing
salmonumbrella Feb 3, 2026
bbcf881
feat(admin): add alert center, inbound sso, caa
salmonumbrella Feb 3, 2026
d9a8e15
feat(admin): add licenses, resources, schemas
salmonumbrella Feb 3, 2026
9c4bb65
feat(admin): add transfer, printers, forms
salmonumbrella Feb 3, 2026
14b48e1
feat(admin): add sites, youtube, meet, analytics, labels
salmonumbrella Feb 3, 2026
82483d4
feat(admin): add advanced drive, contacts, and cloud identity/reselle…
salmonumbrella Feb 3, 2026
0c54355
feat(cli): add csv, batch, and todrive output
salmonumbrella Feb 3, 2026
cee127b
test(csv): improve processor tests
salmonumbrella Feb 3, 2026
6a563c7
feat(users): add special character support to password generation
salmonumbrella Feb 3, 2026
dc59a18
feat(batch,csv): add --dry-run flag to preview commands without execu…
salmonumbrella Feb 3, 2026
0487403
docs(drive): document orphan detection limitations in help text
salmonumbrella Feb 3, 2026
5ff087b
feat(cloudidentity): add GOG_CUSTOMER_ID environment variable override
salmonumbrella Feb 3, 2026
f6c18a1
fix(todrive): use actual first sheet name instead of hardcoding Sheet1
salmonumbrella Feb 3, 2026
8b8a633
docs(help): add examples to complex options help text
salmonumbrella Feb 3, 2026
ebfbf72
fix(output): use UI layer instead of direct stdout writes
salmonumbrella Feb 3, 2026
f3c10bf
test(admin): add comprehensive tests for vault, roles, and admin groups
salmonumbrella Feb 3, 2026
6384064
test(admin): add comprehensive tests for resources commands
salmonumbrella Feb 3, 2026
55953a3
test(cmd): add comprehensive tests for alerts and aliases commands
salmonumbrella Feb 3, 2026
801423a
test(cmd): add comprehensive tests for domains commands
salmonumbrella Feb 3, 2026
265181f
test(contacts): add comprehensive tests for contacts commands
salmonumbrella Feb 3, 2026
5a2f1f7
test(admin): add comprehensive tests for printers and forms commands
salmonumbrella Feb 3, 2026
96761ab
test(admin): add comprehensive tests for admin commands
salmonumbrella Feb 3, 2026
424851c
test(cmd): add config tests and fix transfer test JSON unmarshaling
salmonumbrella Feb 3, 2026
3fda065
test(cmd): add comprehensive tests for labels, orgunits, projects, re…
salmonumbrella Feb 3, 2026
f400895
test(cmd): add comprehensive tests for calendar commands
salmonumbrella Feb 3, 2026
7c95b30
test(cmd): add comprehensive auth and chat tests
salmonumbrella Feb 3, 2026
2e9b9c7
test(cmd): add comprehensive classroom tests
salmonumbrella Feb 3, 2026
bd9f2b6
test(cmd): expand coverage and dedupe helpers
salmonumbrella Feb 3, 2026
c9058ac
test(cmd): centralize json helpers and stubs
salmonumbrella Feb 3, 2026
6c6778c
test(cmd): share json ctx and parse outputs
salmonumbrella Feb 4, 2026
4f5c0fa
fix(drive): escape user values in Drive API query strings
salmonumbrella Feb 4, 2026
9f4f4af
fix(review): address code review findings across branch
salmonumbrella Feb 4, 2026
02cd6db
style: fix goimports and gofumpt formatting
salmonumbrella Feb 4, 2026
30e6a79
fix(lint): resolve all golangci-lint issues
salmonumbrella Feb 4, 2026
dbdea01
feat(gmail): add signature support to send command
salmonumbrella Feb 4, 2026
52a4c76
fix(gmail): resolve lint issues in signature code
salmonumbrella Feb 4, 2026
ee7af80
fix(gmail): improve HTML-to-plain signature conversion
salmonumbrella Feb 4, 2026
4539977
fix(gmail): add size limit for signature file
salmonumbrella Feb 4, 2026
a4db6b0
fix(gmail): detect and handle signature file content type
salmonumbrella Feb 4, 2026
72bd7a7
test(gmail): add unit tests for signature helpers and alias path
salmonumbrella Feb 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,9 @@ gog gmail send --to a@b.com --subject "Hi" --body "Plain fallback"
gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt
gog gmail send --to a@b.com --subject "Hi" --body-file - # Read body from stdin
gog gmail send --to a@b.com --subject "Hi" --body "Plain fallback" --body-html "<p>Hello</p>"
gog gmail send --to a@b.com --subject "Hi" --body "Plain fallback" --signature
gog gmail send --to a@b.com --subject "Hi" --body-html "<p>Hello</p>" --signature-name alias@example.com
gog gmail send --to a@b.com --subject "Hi" --body "Plain fallback" --signature-file ./signature.txt
gog gmail drafts list
gog gmail drafts create --subject "Draft" --body "Body"
gog gmail drafts create --to a@b.com --subject "Draft" --body "Body"
Expand Down
2 changes: 1 addition & 1 deletion docs/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ Flag aliases:
- `gog gmail labels get <labelIdOrName>`
- `gog gmail labels create <name>`
- `gog gmail labels modify <threadIds...> [--add ...] [--remove ...]`
- `gog gmail send --to a@b.com --subject S [--body B] [--body-html H] [--cc ...] [--bcc ...] [--reply-to-message-id <messageId>] [--reply-to addr] [--attach <file>...]`
- `gog gmail send --to a@b.com --subject S [--body B] [--body-html H] [--cc ...] [--bcc ...] [--reply-to-message-id <messageId>] [--reply-to addr] [--attach <file>...] [--signature|--signature-name EMAIL|--signature-file PATH]`
- `gog gmail drafts list [--max N] [--page TOKEN]`
- `gog gmail drafts get <draftId> [--download]`
- `gog gmail drafts create --subject S [--to a@b.com] [--body B] [--body-html H] [--cc ...] [--bcc ...] [--reply-to-message-id <messageId>] [--reply-to addr] [--attach <file>...]`
Expand Down
4 changes: 3 additions & 1 deletion docs/watch.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ gog gmail watch serve \
[--verify-oidc] [--oidc-email <svc@...>] [--oidc-audience <aud>] \
[--token <shared>] \
[--hook-url <url>] [--hook-token <token>] \
[--include-body] [--max-bytes <n>] [--save-hook]
[--include-body] [--max-bytes <n>] \
[--history-types <type>...] [--save-hook]

gog gmail history --since <historyId> [--max <n>] [--page <token>]
```
Expand All @@ -58,6 +59,7 @@ Notes:
- `watch renew` reuses stored topic/labels.
- `watch stop` calls Gmail stop + clears state.
- `watch serve` uses stored hook if `--hook-url` not provided.
- `watch serve --history-types` accepts `messageAdded`, `messageDeleted`, `labelAdded`, `labelRemoved` (repeatable or comma-separated). Default: `messageAdded` (for backward compatibility).

## State

Expand Down
14 changes: 14 additions & 0 deletions internal/cmd/admin_directory_helpers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package cmd

import "os"

// adminCustomerID returns the customer ID for Admin SDK calls.
// Defaults to "my_customer" (the authenticated admin's domain) but
// can be overridden via the GOG_CUSTOMER_ID environment variable
// for multi-tenant administration.
func adminCustomerID() string {
if id := os.Getenv("GOG_CUSTOMER_ID"); id != "" {
return id
}
return "my_customer"
}
Loading