Honor configured protocol for automatic repository clones#4205
Honor configured protocol for automatic repository clones#4205MisterJimson wants to merge 3 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review This PR changes runtime behavior for repository clone protocol selection across multiple system layers. A high-severity unresolved comment identifies a potential issue where clones may default to SSH unexpectedly, causing authentication failures. You can customize Macroscope's approvability policy. Learn more. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2dc2225. Configure here.
| return urls.url; | ||
| case "ssh": | ||
| case "auto": | ||
| return urls.preferredProtocol === "https" ? urls.url : urls.sshUrl; |
There was a problem hiding this comment.
Auto clone falls back to SSH
High Severity
The selectRemoteUrl's auto protocol choice now defaults to SSH if preferredProtocol is not HTTPS or is missing. This preferredProtocol is frequently unset (e.g., for non-GitHub repos, gh config get failures, or createRepository output). Since getCloneSourceInput always sends protocol: "auto" for looked-up repos, clones often default to SSH despite an HTTPS preference or displayed URL, causing authentication failures.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 2dc2225. Configure here.


Summary
git_protocolsetting for automatic clonesWhy
The Create & Clone UI passed
repository.sshUrldirectly to the clone operation, bypassing the existingautoprotocol path. Remote servers authenticated withghover HTTPS but without a GitHub SSH key therefore failed to clone private repositories even though HTTPS access was valid.The UI now submits the provider and repository identity with
protocol: "auto". For GitHub, repository lookup readsgh config get git_protocol --host <host>and carries that preference into clone selection. A reported SSH preference still uses SSH, a reported HTTPS preference uses HTTPS, and an unavailable preference falls back to HTTPS instead of recreating the original authentication failure.Explicit URL clones remain unchanged.
Fixes #4203.
Testing
vp test run apps/server/src/sourceControl/GitHubCli.test.ts apps/server/src/sourceControl/SourceControlRepositoryService.test.ts apps/web/src/components/CommandPalette.logic.test.ts(22 tests passed)pnpm --filter @t3tools/contracts typecheckpnpm --filter t3 typecheckpnpm --filter @t3tools/web typecheckAn isolated UI smoke-test startup was attempted, but this nightly checkout's Vite+ dev server is independently blocked by
Tsconfig not found @tsconfig/node24/tsconfig.json.