From f6075b95e649198c3a644f161500bdd857d95e6d Mon Sep 17 00:00:00 2001 From: dumko2001 Date: Wed, 18 Mar 2026 13:43:00 +0530 Subject: [PATCH 1/4] feat(services): register Apps Script and Google Photos APIs --- src/services.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/services.rs b/src/services.rs index 40a4b816..0e3e165b 100644 --- a/src/services.rs +++ b/src/services.rs @@ -126,6 +126,18 @@ pub const SERVICES: &[ServiceEntry] = &[ version: "v1", description: "Cross-service productivity workflows", }, + ServiceEntry { + aliases: &["script"], + api_name: "script", + version: "v1", + description: "Manage Apps Script projects and deployments", + }, + ServiceEntry { + aliases: &["photos"], + api_name: "photoslibrary", + version: "v1", + description: "Manage Google Photos library", + }, ]; /// Resolves a service alias to (api_name, version). From 2de42eff0f47b685618ba6328f7b506cb291360d Mon Sep 17 00:00:00 2001 From: dumko2001 Date: Wed, 18 Mar 2026 15:03:52 +0530 Subject: [PATCH 2/4] chore: add changeset for service registrations --- .changeset/feat-new-service-registrations.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 .changeset/feat-new-service-registrations.md diff --git a/.changeset/feat-new-service-registrations.md b/.changeset/feat-new-service-registrations.md new file mode 100644 index 00000000..d05dde19 --- /dev/null +++ b/.changeset/feat-new-service-registrations.md @@ -0,0 +1 @@ +---\n"gws": patch\n---\n\nfeat(services): register Apps Script and Google Photos APIs From 0a51f4b0ffe51c25f4d00b4070b50ba846842dd9 Mon Sep 17 00:00:00 2001 From: dumko2001 Date: Wed, 18 Mar 2026 15:12:26 +0530 Subject: [PATCH 3/4] chore: correct changeset package name --- .changeset/feat-new-service-registrations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/feat-new-service-registrations.md b/.changeset/feat-new-service-registrations.md index d05dde19..b3d545ce 100644 --- a/.changeset/feat-new-service-registrations.md +++ b/.changeset/feat-new-service-registrations.md @@ -1 +1 @@ ----\n"gws": patch\n---\n\nfeat(services): register Apps Script and Google Photos APIs +---\n"@googleworkspace/cli": patch\n---\n\nfeat(services): register Apps Script and Google Photos APIs From bee97544cd0187d5da81cb24540f1fcc1aa5366f Mon Sep 17 00:00:00 2001 From: dumko2001 Date: Wed, 18 Mar 2026 16:18:42 +0530 Subject: [PATCH 4/4] refactor(services): alphabetize services and add resolution tests --- src/services.rs | 120 ++++++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 56 deletions(-) diff --git a/src/services.rs b/src/services.rs index 0e3e165b..5b4eb5a9 100644 --- a/src/services.rs +++ b/src/services.rs @@ -24,30 +24,6 @@ pub struct ServiceEntry { /// All known services with metadata. pub const SERVICES: &[ServiceEntry] = &[ - ServiceEntry { - aliases: &["drive"], - api_name: "drive", - version: "v3", - description: "Manage files, folders, and shared drives", - }, - ServiceEntry { - aliases: &["sheets"], - api_name: "sheets", - version: "v4", - description: "Read and write spreadsheets", - }, - ServiceEntry { - aliases: &["gmail"], - api_name: "gmail", - version: "v1", - description: "Send, read, and manage email", - }, - ServiceEntry { - aliases: &["calendar"], - api_name: "calendar", - version: "v3", - description: "Manage calendars and events", - }, ServiceEntry { aliases: &["admin-reports", "reports"], api_name: "admin", @@ -55,40 +31,40 @@ pub const SERVICES: &[ServiceEntry] = &[ description: "Audit logs and usage reports", }, ServiceEntry { - aliases: &["docs"], - api_name: "docs", - version: "v1", - description: "Read and write Google Docs", + aliases: &["calendar"], + api_name: "calendar", + version: "v3", + description: "Manage calendars and events", }, ServiceEntry { - aliases: &["slides"], - api_name: "slides", + aliases: &["chat"], + api_name: "chat", version: "v1", - description: "Read and write presentations", + description: "Manage Chat spaces and messages", }, ServiceEntry { - aliases: &["tasks"], - api_name: "tasks", + aliases: &["classroom"], + api_name: "classroom", version: "v1", - description: "Manage task lists and tasks", + description: "Manage classes, rosters, and coursework", }, ServiceEntry { - aliases: &["people"], - api_name: "people", + aliases: &["docs"], + api_name: "docs", version: "v1", - description: "Manage contacts and profiles", + description: "Read and write Google Docs", }, ServiceEntry { - aliases: &["chat"], - api_name: "chat", - version: "v1", - description: "Manage Chat spaces and messages", + aliases: &["drive"], + api_name: "drive", + version: "v3", + description: "Manage files, folders, and shared drives", }, ServiceEntry { - aliases: &["classroom"], - api_name: "classroom", + aliases: &["events"], + api_name: "workspaceevents", version: "v1", - description: "Manage classes, rosters, and coursework", + description: "Subscribe to Google Workspace events", }, ServiceEntry { aliases: &["forms"], @@ -96,6 +72,12 @@ pub const SERVICES: &[ServiceEntry] = &[ version: "v1", description: "Read and write Google Forms", }, + ServiceEntry { + aliases: &["gmail"], + api_name: "gmail", + version: "v1", + description: "Send, read, and manage email", + }, ServiceEntry { aliases: &["keep"], api_name: "keep", @@ -108,12 +90,6 @@ pub const SERVICES: &[ServiceEntry] = &[ version: "v2", description: "Manage Google Meet conferences", }, - ServiceEntry { - aliases: &["events"], - api_name: "workspaceevents", - version: "v1", - description: "Subscribe to Google Workspace events", - }, ServiceEntry { aliases: &["modelarmor"], api_name: "modelarmor", @@ -121,10 +97,16 @@ pub const SERVICES: &[ServiceEntry] = &[ description: "Filter user-generated content for safety", }, ServiceEntry { - aliases: &["workflow", "wf"], - api_name: "workflow", + aliases: &["people"], + api_name: "people", version: "v1", - description: "Cross-service productivity workflows", + description: "Manage contacts and profiles", + }, + ServiceEntry { + aliases: &["photos"], + api_name: "photoslibrary", + version: "v1", + description: "Manage Google Photos library", }, ServiceEntry { aliases: &["script"], @@ -133,10 +115,28 @@ pub const SERVICES: &[ServiceEntry] = &[ description: "Manage Apps Script projects and deployments", }, ServiceEntry { - aliases: &["photos"], - api_name: "photoslibrary", + aliases: &["sheets"], + api_name: "sheets", + version: "v4", + description: "Read and write spreadsheets", + }, + ServiceEntry { + aliases: &["slides"], + api_name: "slides", version: "v1", - description: "Manage Google Photos library", + description: "Read and write presentations", + }, + ServiceEntry { + aliases: &["tasks"], + api_name: "tasks", + version: "v1", + description: "Manage task lists and tasks", + }, + ServiceEntry { + aliases: &["workflow", "wf"], + api_name: "workflow", + version: "v1", + description: "Cross-service productivity workflows", }, ]; @@ -176,6 +176,14 @@ mod tests { resolve_service("reports").unwrap(), ("admin".to_string(), "reports_v1".to_string()) ); + assert_eq!( + resolve_service("photos").unwrap(), + ("photoslibrary".to_string(), "v1".to_string()) + ); + assert_eq!( + resolve_service("script").unwrap(), + ("script".to_string(), "v1".to_string()) + ); } #[test]