Skip to content

Update git-repos extension#26893

Merged
raycastbot merged 5 commits intoraycast:mainfrom
NikolaiDokken:ext/git-repos
Apr 10, 2026
Merged

Update git-repos extension#26893
raycastbot merged 5 commits intoraycast:mainfrom
NikolaiDokken:ext/git-repos

Conversation

@NikolaiDokken
Copy link
Copy Markdown
Contributor

@NikolaiDokken NikolaiDokken commented Apr 3, 2026

Description

Added windows compatibility for the extension.

Screencast

Checklist

- Merge branch \'contributions/merge-1775221914865\'
- Pull contributions
- Added windows compatibility
@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: git-repos Issues related to the git-repos extension platform: macOS platform: Windows OP is contributor The OP of the PR is a contributor of the extension labels Apr 3, 2026
@raycastbot
Copy link
Copy Markdown
Collaborator

raycastbot commented Apr 3, 2026

Thank you for your contribution! 🎉

🔔 @moored @nitishpdmn @go-dima @cameronsstone @hacdias @AaronMoat @shkreios you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="ext/git-repos"
FORK_URL="https://github.com/NikolaiDokken/raycast-extensions.git"
EXTENSION_NAME="git-repos"
REPO_NAME="raycast-extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

- Merge branch \'contributions/merge-1775221914865\'
- Merge branch \'contributions/merge-1775221914865\'
@NikolaiDokken NikolaiDokken marked this pull request as ready for review April 3, 2026 13:28
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 3, 2026

Greptile Summary

This PR adds Windows compatibility to the git-repos extension by replacing macOS-specific shell commands (find, grep, sed) with the cross-platform glob npm package for repository discovery, and adapting path separator handling, browser detection, and the type system for Windows.

Key changes:

  • src/utils.tsx: The find-based repo/worktree scanning is replaced with glob("**/.git", { withFileTypes: true, dot: true, ... }), which works cross-platform. The submodule discovery is now a synchronous file-read approach instead of shell grep/sed. Path splitting now uses ; on Windows and : on macOS via the new pathSeparator map and Platform enum.
  • src/list.tsx: On Windows, GetInstalledBrowsers() results are mapped to executable filenames (e.g., chrome.exe) rather than .app bundle names, keeping the browser-detection logic in getTarget() consistent across platforms. ExtensionPreferences was correctly replaced with the auto-generated Preferences type. open() now receives the full Application object instead of just bundleId, which is required on Windows where bundle IDs don't exist.
  • package.json: Added "Windows" to platforms, added glob as a dependency, and updated the repoScanPath preference description to mention both separators.
  • All previously raised review concerns — dot: true for hidden directories, worktree deduplication comment, and the Preferences type — have been addressed in this revision.

Confidence Score: 5/5

This PR is safe to merge; the cross-platform refactoring is clean and all previously raised review concerns have been addressed.

No P0 or P1 issues found. The glob-based scanning is functionally equivalent to the original find-based approach and includes dot:true to discover hidden directories. Path handling, browser detection, and type definitions are all correctly adapted for Windows. Previously flagged issues (dot:true, worktree deduplication comment, Preferences type) are resolved.

No files require special attention.

Important Files Changed

Filename Overview
extensions/git-repos/CHANGELOG.md Added Windows compatibility changelog entry with correct {PR_MERGE_DATE} placeholder
extensions/git-repos/package.json Added glob dependency, Windows to platforms array, and updated path separator description for cross-platform use
extensions/git-repos/src/utils.tsx Replaced macOS-only find/grep/sed shell commands with cross-platform glob; platform-aware path separator; synchronous submodule discovery via fs.readFileSync
extensions/git-repos/src/list.tsx Windows-compatible browser detection using exe filenames; switched to auto-generated Preferences type; Application object passed directly to open()

Greploops — Automatically fix all review issues by running /greploops in Claude Code. It iterates: fix, push, re-review, repeat until 5/5 confidence.
Use the Greptile plugin for Claude Code to query reviews, search comments, and manage custom context directly from your terminal.

Reviews (3): Last reviewed commit: "Use non-blocking glob instead of globSyn..." | Re-trigger Greptile

Comment thread extensions/git-repos/package.json
Comment thread extensions/git-repos/src/utils.tsx Outdated
Comment thread extensions/git-repos/src/utils.tsx
- Merge branch \'contributions/merge-1775221914865\'
- Merge branch \'contributions/merge-1775221914865\'
@NikolaiDokken
Copy link
Copy Markdown
Contributor Author

@greptileai do another review

@NikolaiDokken
Copy link
Copy Markdown
Contributor Author

@greptileai do another review

onAction={() => {
// checking for app != null to not open in default app
function openIn(application?: Application) {
if (application?.bundleId) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a breaking change for mac?

Copy link
Copy Markdown
Contributor Author

@NikolaiDokken NikolaiDokken Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No @AaronMoat, the API reference specifies that open takes either a string (app identifier) or Application type.

@raycast-extensions-bot raycast-extensions-bot Bot added the Approved Approved by a user label Apr 9, 2026
@pernielsentikaer pernielsentikaer self-assigned this Apr 10, 2026
Copy link
Copy Markdown
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, approved 🔥

@raycastbot raycastbot merged commit 5fa2154 into raycast:main Apr 10, 2026
2 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

Published to the Raycast Store:
https://raycast.com/moored/git-repos

@raycastbot
Copy link
Copy Markdown
Collaborator

🎉 🎉 🎉

We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.

@NikolaiDokken NikolaiDokken deleted the ext/git-repos branch April 28, 2026 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved Approved by a user extension fix / improvement Label for PRs with extension's fix improvements extension: git-repos Issues related to the git-repos extension OP is contributor The OP of the PR is a contributor of the extension platform: macOS platform: Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants