Repository Analysis

googleworkspace/cli

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.

4.5 Likely human-written View on GitHub
4.5
Adjusted Score
4.5
Raw Score
100%
Time Factor
2026-05-12
Last Push
26,687
Stars
Rust
Language
42,720
Lines of Code
211
Files
115
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 39LOW 76

Pattern Findings

115 matches across 4 categories. Click a row to expand file-level details.

Decorative Section Separators39 hits · 117 pts
SeverityFileLineSnippet
MEDIUMcrates/google-workspace/src/validate.rs24// ── Dangerous character detection ─────────────────────────────────────
MEDIUMcrates/google-workspace/src/validate.rs63// ── Path validators ───────────────────────────────────────────────────
MEDIUMcrates/google-workspace/src/validate.rs273// ── URL encoding ──────────────────────────────────────────────────────
MEDIUMcrates/google-workspace/src/validate.rs295// ── Resource / API validators ─────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/auth_commands.rs2027 // ── is_workspace_admin_scope tests ──────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/auth_commands.rs2104 // ── is_workspace_admin_scope – new patterns ─────────────────────────
MEDIUMcrates/google-workspace-cli/src/auth_commands.rs2132 // ── scope_matches_service tests ──────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/auth_commands.rs2239 // ── services filter integration tests ────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/output.rs25// ── Sanitization ──────────────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/output.rs45// ── Color ─────────────────────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/output.rs65// ── Stderr helpers ────────────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/output.rs93 // ── sanitize_for_terminal ─────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/output.rs149 // ── colorize ──────────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs463// ── Setup Wizard (unified TUI session) ──────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs885 // ── PickerState unit tests ──────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs931 // ── handle_key / key-sequence tests ─────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1132 // ── InputState tests ───────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1225 // ── GoBack key tests ───────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1251 // ── selected_count tests ───────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1281 // ── is_fixed item tests ────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1318 // ── Single-select picker tests ─────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1415 // ── Template toggling tests ────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1552 // ── Readonly/superset scope interaction tests ──────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1629 // ── wrap_text tests ────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1674 // ── PickerState::new initial selection tests ───────────────
MEDIUMcrates/google-workspace-cli/src/setup_tui.rs1691 // ── Edge case tests ────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs429// ── gcloud helpers ──────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs743// ── API enabling ────────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs853// ── OAuth REST API ──────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs915// ── Main setup orchestrator ─────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs1722 // ── Action resolution (test-only) ───────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs1764 // ── Helpers ─────────────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs1794 // ── API / data tests ────────────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs1848 // ── parse_setup_args tests ──────────────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs1985 // ── Account selection → gcloud action ───────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs2013 // ── Project selection → gcloud action ───────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs2055 // ── API selection → enable action ───────────────────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs2115 // ── Full pipeline: keys → picker → gcloud action ────────────
MEDIUMcrates/google-workspace-cli/src/setup.rs2275 // ── enable_apis unit tests ──────────────────────────────────
Over-Commented Block70 hits · 70 pts
SeverityFileLineSnippet
LOWCargo.toml1# Copyright 2026 Google LLC
LOWcrates/google-workspace/Cargo.toml1# Copyright 2026 Google LLC
LOWcrates/google-workspace/src/client.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace/src/error.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace/src/discovery.rs1#![allow(dead_code)]
LOWcrates/google-workspace/src/lib.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace/src/services.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace/src/validate.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace/src/validate.rs161
LOWcrates/google-workspace-cli/Cargo.toml1# Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/token_storage.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/credential_store.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/generate_skills.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/oauth_config.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/oauth_config.rs21//! "client_id": "...apps.googleusercontent.com",
LOWcrates/google-workspace-cli/src/client.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/error.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/discovery.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/fs_util.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/logging.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/logging.rs21//! ## Environment Variables
LOWcrates/google-workspace-cli/src/auth.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/auth.rs201}
LOWcrates/google-workspace-cli/src/formatter.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/formatter.rs21
LOWcrates/google-workspace-cli/src/services.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/auth_commands.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/auth_commands.rs841 "slides" => vec!["presentations"],
LOWcrates/google-workspace-cli/src/auth_commands.rs1581/// (requires a Chat app or service account).
LOWcrates/google-workspace-cli/src/commands.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/schema.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/executor.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/executor.rs381
LOWcrates/google-workspace-cli/src/output.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/timezone.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/main.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/text.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/text.rs21/// Max chars for skill body method descriptions (markdown, agents benefit from detail).
LOWcrates/google-workspace-cli/src/setup_tui.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/validate.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/setup.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/docs.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/sheets.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/drive.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/mod.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/script.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/workflows.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/calendar.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/modelarmor.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/chat.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/chat.rs161/// We use `String` here to own the data, as it will be used to construct
LOWcrates/google-workspace-cli/src/helpers/events/mod.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/gmail/send.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/gmail/mod.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/gmail/mod.rs1301/// Read and validate attachments from `--attach` arguments.
LOWcrates/google-workspace-cli/src/helpers/gmail/read.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/gmail/reply.rs1// Copyright 2026 Google LLC
LOW…ates/google-workspace-cli/src/helpers/gmail/forward.rs1// Copyright 2026 Google LLC
LOWcrates/google-workspace-cli/src/helpers/gmail/triage.rs1// Copyright 2026 Google LLC
LOWscripts/show-art.sh1#!/bin/bash
10 more matches not shown…
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippet
LOWcrates/google-workspace-cli/src/setup.rs1937 "user@example.com",
LOWcrates/google-workspace-cli/src/setup.rs1945 assert!(msg.contains("user@example.com"));
LOWcrates/google-workspace-cli/src/helpers/gmail/mod.rs2681 assert!(m.email.contains("foo@bar.com"));
LOWskills/recipe-sync-contacts-to-sheet/SKILL.md273. Append each contact row: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Jane Doe", "jane@c
LOWskills/recipe-log-deal-update/SKILL.md273. Append new row: `gws sheets +append --spreadsheet SHEET_ID --range 'Pipeline' --values '["2024-03-15", "Acme Corp", "
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOWscripts/coverage.sh18# Check if cargo-llvm-cov is installed