Google Workspace CLI — one command-line tool for Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more. Dynamically built from Google Discovery Service. Includes AI agent skills.
115 matches across 4 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | crates/google-workspace/src/validate.rs | 24 | // ── Dangerous character detection ───────────────────────────────────── |
| MEDIUM | crates/google-workspace/src/validate.rs | 63 | // ── Path validators ─────────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace/src/validate.rs | 273 | // ── URL encoding ────────────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace/src/validate.rs | 295 | // ── Resource / API validators ───────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/auth_commands.rs | 2027 | // ── is_workspace_admin_scope tests ────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/auth_commands.rs | 2104 | // ── is_workspace_admin_scope – new patterns ───────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/auth_commands.rs | 2132 | // ── scope_matches_service tests ────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/auth_commands.rs | 2239 | // ── services filter integration tests ──────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/output.rs | 25 | // ── Sanitization ────────────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/output.rs | 45 | // ── Color ───────────────────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/output.rs | 65 | // ── Stderr helpers ──────────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/output.rs | 93 | // ── sanitize_for_terminal ───────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/output.rs | 149 | // ── colorize ────────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 463 | // ── Setup Wizard (unified TUI session) ────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 885 | // ── PickerState unit tests ────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 931 | // ── handle_key / key-sequence tests ───────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1132 | // ── InputState tests ─────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1225 | // ── GoBack key tests ─────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1251 | // ── selected_count tests ─────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1281 | // ── is_fixed item tests ──────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1318 | // ── Single-select picker tests ───────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1415 | // ── Template toggling tests ──────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1552 | // ── Readonly/superset scope interaction tests ────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1629 | // ── wrap_text tests ──────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1674 | // ── PickerState::new initial selection tests ─────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup_tui.rs | 1691 | // ── Edge case tests ──────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 429 | // ── gcloud helpers ────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 743 | // ── API enabling ──────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 853 | // ── OAuth REST API ────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 915 | // ── Main setup orchestrator ───────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 1722 | // ── Action resolution (test-only) ─────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 1764 | // ── Helpers ───────────────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 1794 | // ── API / data tests ──────────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 1848 | // ── parse_setup_args tests ────────────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 1985 | // ── Account selection → gcloud action ─────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 2013 | // ── Project selection → gcloud action ─────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 2055 | // ── API selection → enable action ─────────────────────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 2115 | // ── Full pipeline: keys → picker → gcloud action ──────────── |
| MEDIUM | crates/google-workspace-cli/src/setup.rs | 2275 | // ── enable_apis unit tests ────────────────────────────────── |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | Cargo.toml | 1 | # Copyright 2026 Google LLC |
| LOW | crates/google-workspace/Cargo.toml | 1 | # Copyright 2026 Google LLC |
| LOW | crates/google-workspace/src/client.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace/src/error.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace/src/discovery.rs | 1 | #![allow(dead_code)] |
| LOW | crates/google-workspace/src/lib.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace/src/services.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace/src/validate.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace/src/validate.rs | 161 | |
| LOW | crates/google-workspace-cli/Cargo.toml | 1 | # Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/token_storage.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/credential_store.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/generate_skills.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/oauth_config.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/oauth_config.rs | 21 | //! "client_id": "...apps.googleusercontent.com", |
| LOW | crates/google-workspace-cli/src/client.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/error.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/discovery.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/fs_util.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/logging.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/logging.rs | 21 | //! ## Environment Variables |
| LOW | crates/google-workspace-cli/src/auth.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/auth.rs | 201 | } |
| LOW | crates/google-workspace-cli/src/formatter.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/formatter.rs | 21 | |
| LOW | crates/google-workspace-cli/src/services.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/auth_commands.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/auth_commands.rs | 841 | "slides" => vec!["presentations"], |
| LOW | crates/google-workspace-cli/src/auth_commands.rs | 1581 | /// (requires a Chat app or service account). |
| LOW | crates/google-workspace-cli/src/commands.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/schema.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/executor.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/executor.rs | 381 | |
| LOW | crates/google-workspace-cli/src/output.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/timezone.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/main.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/text.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/text.rs | 21 | /// Max chars for skill body method descriptions (markdown, agents benefit from detail). |
| LOW | crates/google-workspace-cli/src/setup_tui.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/validate.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/setup.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/docs.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/sheets.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/drive.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/mod.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/script.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/workflows.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/calendar.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/modelarmor.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/chat.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/chat.rs | 161 | /// We use `String` here to own the data, as it will be used to construct |
| LOW | crates/google-workspace-cli/src/helpers/events/mod.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/gmail/send.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/gmail/mod.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/gmail/mod.rs | 1301 | /// Read and validate attachments from `--attach` arguments. |
| LOW | crates/google-workspace-cli/src/helpers/gmail/read.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/gmail/reply.rs | 1 | // Copyright 2026 Google LLC |
| LOW | …ates/google-workspace-cli/src/helpers/gmail/forward.rs | 1 | // Copyright 2026 Google LLC |
| LOW | crates/google-workspace-cli/src/helpers/gmail/triage.rs | 1 | // Copyright 2026 Google LLC |
| LOW | scripts/show-art.sh | 1 | #!/bin/bash |
| 10 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | crates/google-workspace-cli/src/setup.rs | 1937 | "user@example.com", |
| LOW | crates/google-workspace-cli/src/setup.rs | 1945 | assert!(msg.contains("user@example.com")); |
| LOW | crates/google-workspace-cli/src/helpers/gmail/mod.rs | 2681 | assert!(m.email.contains("foo@bar.com")); |
| LOW | skills/recipe-sync-contacts-to-sheet/SKILL.md | 27 | 3. Append each contact row: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Jane Doe", "jane@c |
| LOW | skills/recipe-log-deal-update/SKILL.md | 27 | 3. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", " |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/coverage.sh | 18 | # Check if cargo-llvm-cov is installed |