Add custom Open with clients to project Code dropdown
What does this MR do and why?
Adds an instance-level admin setting that lets self-managed administrators extend the project Code dropdown's "Open with" list with custom Git GUI clients (Sourcetree, Tower, VSCodium, Fork, and others) alongside the built-in VS Code and IntelliJ entries.
Each entry has a display name plus optional SSH and HTTPS URL templates that contain a {url} placeholder. The placeholder is substituted server-side with the percent-encoded clone URL of the project being viewed. Entries are configured under Admin > Settings > Repository > Code dropdown clients and behind the feature flag custom_code_dropdown_clients (beta, default off).
Related MRs
Per #604390 (comment 3613329908)
- !233416 (merged) — the underlying setting (in review now; the others build on it)
👈 - !244658 (merged) — the admin screen for adding and editing entries
- !244659 — showing the configured entries in the Code dropdown
- !244660 — documentation
References
Related to Add "Open with Coder" button (or generic custom... (#604390)
Screenshots or screen recordings
Initial MR
| State | Screen |
|---|---|
| Admin form (empty state) | ![]() |
| Admin form (after adding a VSCodium entry) | ![]() |
| Project Code dropdown (user-facing) showing the custom VSCodium entry alongside the built-in clients | ![]() |
Updated design proposal
See !233416 (comment 3636865507)
| State | Screen |
|---|---|
| Empty state | |
| Add new client |
Client added |
| Edit client | |
| Add new client with pre-existing client |
How to set up and validate locally
-
Run the new migration:
bin/rails db:migrate -
Enable the feature flag:
Feature.enable(:custom_code_dropdown_clients) -
Visit Admin > Settings > Repository and expand Code dropdown clients.
-
Add an entry — for example, name
VSCodium, both URL templates set tovscodium://vscode.git/clone?url={url}— and save. -
Open any project page, click Code, and confirm the new client appears in the Open with group with
SSHandHTTPSbuttons.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist.







