diff --git a/packages/toolkit/src/lib/integrations/core.ts b/packages/toolkit/src/lib/integrations/core.ts index f662d7975c..e2542d0521 100644 --- a/packages/toolkit/src/lib/integrations/core.ts +++ b/packages/toolkit/src/lib/integrations/core.ts @@ -34,6 +34,12 @@ const googleDriveScopes = [ "https://www.googleapis.com/auth/userinfo.profile", ]; +const googleSheetsScopes = [ + "https://www.googleapis.com/auth/spreadsheets", + "https://www.googleapis.com/auth/userinfo.email", + "https://www.googleapis.com/auth/userinfo.profile", +]; + const githubScopes = ["repo", "write:repo_hook", "user:email", "read:user"]; export function getAuthHandler({ @@ -91,6 +97,22 @@ export function getAuthHandler({ }, }, }), + GoogleProvider({ + id: "google-sheet", + clientId: String(process.env.INTEGRATION_GOOGLE_SHEET_CLIENT_ID), + clientSecret: String( + process.env.INTEGRATION_GOOGLE_SHEET_CLIENT_SECRET, + ), + authorization: { + url: "https://accounts.google.com/o/oauth2/auth", + params: { + scope: googleSheetsScopes.join(" "), + prompt: "consent", + access_type: "offline", + response_type: "code", + }, + }, + }), GitHubProvider({ clientId: String(process.env.INTEGRATION_GITHUB_CLIENT_ID), clientSecret: String(process.env.INTEGRATION_GITHUB_CLIENT_SECRET), diff --git a/packages/toolkit/src/lib/integrations/types.ts b/packages/toolkit/src/lib/integrations/types.ts index f896889dc3..abd9eb2320 100644 --- a/packages/toolkit/src/lib/integrations/types.ts +++ b/packages/toolkit/src/lib/integrations/types.ts @@ -7,4 +7,8 @@ export type OnOAuthCallbackProps = { export type OnOAuthCallback = (props: OnOAuthCallbackProps) => void; -export type IntegrationProvider = "google-drive" | "slack" | "github"; +export type IntegrationProvider = + | "google-drive" + | "google-sheet" + | "slack" + | "github"; diff --git a/packages/toolkit/src/view/settings/integrations/connectable-integration/ConnectableIntegration.tsx b/packages/toolkit/src/view/settings/integrations/connectable-integration/ConnectableIntegration.tsx index 6e8197ac83..d2904e79ef 100644 --- a/packages/toolkit/src/view/settings/integrations/connectable-integration/ConnectableIntegration.tsx +++ b/packages/toolkit/src/view/settings/integrations/connectable-integration/ConnectableIntegration.tsx @@ -94,6 +94,9 @@ export const ConnectableIntegration = ({ case "google-drive": provider = "google-drive"; break; + case "google-sheet": + provider = "google-sheet"; + break; default: break; } diff --git a/turbo.json b/turbo.json index c2fb476f22..79ae00a501 100644 --- a/turbo.json +++ b/turbo.json @@ -37,6 +37,8 @@ "INSTILL_API_VERSION", "INTEGRATION_GOOGLE_DRIVE_CLIENT_ID", "INTEGRATION_GOOGLE_DRIVE_CLIENT_SECRET", + "INTEGRATION_GOOGLE_SHEET_CLIENT_ID", + "INTEGRATION_GOOGLE_SHEET_CLIENT_SECRET", "INTEGRATION_GITHUB_CLIENT_ID", "INTEGRATION_GITHUB_CLIENT_SECRET", "INTEGRATION_SLACK_CLIENT_ID",