extensions icon indicating copy to clipboard operation
extensions copied to clipboard

Add google-drive-upload extension

Open Vesely opened this issue 2 months ago • 7 comments

Description

Google Drive Upload Upload files and folders to Google Drive directly from Finder with multi-account support.

Key Features 📤 Upload files/folders from Finder selection 👥 Multiple Google account support 📁 Preserve folder structure 🔄 Automatic token refresh ⚙️ Optional custom OAuth Client ID

Technical Details

  • Uses OAuth 2.0 with PKCE (no client secret required)
  • Works out-of-the-box with included OAuth credentials
  • Users can optionally configure their own OAuth Client ID in settings
  • All API calls go directly to Google
  • Only accesses files created by this extension

Testing ✅ Tested with single/multiple accounts ✅ File and folder uploads working ✅ Token refresh working ✅ All builds and lints passing

Ready for review! 🚀

Screencast

google-drive-upload-1 google-drive-upload-oauth

Checklist

Vesely avatar Nov 11 '25 23:11 Vesely

Congratulations on your new Raycast extension! :rocket:

You can expect an initial review within five business days.

Once the PR is approved and merged, the extension will be available on our Store.

raycastbot avatar Nov 11 '25 23:11 raycastbot

Greptile Overview

Greptile Summary

New Raycast extension for uploading files and folders to Google Drive from Finder selection with multi-account OAuth support.

  • Implements OAuth 2.0 with PKCE for secure authentication without client secrets
  • Supports multiple Google accounts with default account selection
  • Preserves folder structure during batch uploads
  • Includes proper loading states and error handling throughout
  • Found one query injection issue in folder name handling that could cause failures with special characters

Confidence Score: 4/5

  • This PR is safe to merge with one minor fix needed for folder name escaping
  • Well-structured new extension with proper OAuth implementation, loading states, and error handling. One logic issue found with unescaped folder names in API queries that could cause failures for folders with single quotes.
  • extensions/google-drive-upload/src/lib/google-drive.ts - query string escaping issue on line 178

Important Files Changed

File Analysis

Filename Score Overview
extensions/google-drive-upload/package.json 5/5 Well-structured package.json with proper dependencies. Two view commands are present with appropriate metadata.
extensions/google-drive-upload/src/upload-file.tsx 4/5 Main upload command with proper loading states and error handling. Uses isLoading correctly to avoid flicker.
extensions/google-drive-upload/src/manage-accounts.tsx 4/5 Account management view with proper loading states. Unused React import is a minor style issue.
extensions/google-drive-upload/src/lib/auth.ts 5/5 OAuth implementation using PKCE with proper token refresh handling and account storage.
extensions/google-drive-upload/src/lib/google-drive.ts 3/5 Google Drive API wrapper with upload and folder operations. Contains query string injection issue with folder names containing single quotes.

greptile-apps[bot] avatar Nov 12 '25 00:11 greptile-apps[bot]

@pernielsentikaer Hey, It is not possible to get a verified app from Google. . However, users can use their own credentials, like in the extensions imessage-2fa or google-tasks Screenshot 2025-11-25 at 10 13 38

Vesely avatar Nov 26 '25 22:11 Vesely

You might be able to use credentials from this one: https://www.raycast.com/raycast/google-workspace

Not sure if it will work?

pernielsentikaer avatar Dec 03 '25 06:12 pernielsentikaer

@pernielsentikaer Unfortunately, the issue lies not with the credentials but with the scope. This extension requires https://www.googleapis.com/auth/drive.file and https://www.googleapis.com/auth/drive.metadata.readonly. Perhaps after the official extension release, I can send the extension URL to Google and request approval.

Vesely avatar Dec 07 '25 16:12 Vesely

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

raycastbot avatar Dec 22 '25 17:12 raycastbot

@raycastbot Waiting for review and merge

Vesely avatar Dec 22 '25 17:12 Vesely

This pull request has been automatically marked as stale because it did not have any recent activity.

It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊

raycastbot avatar Jan 06 '26 17:01 raycastbot

@mathieudutour

Vesely avatar Jan 06 '26 18:01 Vesely