diff --git a/.changeset/fiery-colts-send.md b/.changeset/fiery-colts-send.md new file mode 100644 index 0000000..1686e8c --- /dev/null +++ b/.changeset/fiery-colts-send.md @@ -0,0 +1,5 @@ +--- +"google-workspace-developer-tools": patch +--- + +Add Apps Script specific `https://www.googleapis.com/auth/script.external_request` which is not part of any API. diff --git a/packages/vscode-extension/src/scopes.ts b/packages/vscode-extension/src/scopes.ts index 2ed37ec..597e522 100644 --- a/packages/vscode-extension/src/scopes.ts +++ b/packages/vscode-extension/src/scopes.ts @@ -64,6 +64,14 @@ for (const { title, version, documentationLink, scopes } of GOOGLE_APIS || []) { } } +export const SCRIPT_EXTERNAL_REQUEST_SCOPE = + "https://www.googleapis.com/auth/script.external_request"; + +SCOPES.set(SCRIPT_EXTERNAL_REQUEST_SCOPE, { + description: "Connect to an external service", + apis: [], +}); + const RESTRICTED_SCOPES = [ "https://www.googleapis.com/auth/chat.admin.delete", "https://www.googleapis.com/auth/chat.app.delete", diff --git a/packages/vscode-extension/src/test/scopes.test.ts b/packages/vscode-extension/src/test/scopes.test.ts index daa28e9..7c4aab6 100644 --- a/packages/vscode-extension/src/test/scopes.test.ts +++ b/packages/vscode-extension/src/test/scopes.test.ts @@ -15,7 +15,11 @@ */ import * as assert from "node:assert"; -import { SCOPES, getScopeMarkdown } from "../scopes.js"; +import { + SCOPES, + SCRIPT_EXTERNAL_REQUEST_SCOPE, + getScopeMarkdown, +} from "../scopes.js"; suite("getScopeMarkdown", () => { test("it returns markdown for a known scope", () => { @@ -27,4 +31,10 @@ suite("getScopeMarkdown", () => { const markdown = getScopeMarkdown("https://example.com"); assert.strictEqual(markdown, "**https://example.com** (Unknown scope)"); }); + + test("it returns scope for script.external_request", () => { + const scope = SCOPES.get(SCRIPT_EXTERNAL_REQUEST_SCOPE); + assert.ok(scope); + assert.strictEqual(scope?.description, "Connect to an external service"); + }); });