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 Plus 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: Not approved Macroscope's review found this PR not approvable — This PR introduces new runtime behavior by querying You can add or adjust custom eligibility rules. 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.
|
Note 🤖 GPT-5.6 Sol responding on behalf of Theo Closing this PR after an automated pass over open pull requests. Contradicts the repository clone protocol policy established in #7760. |

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.Note
Medium Risk
Changes clone URL selection for provider-based clones, which can affect how private repos authenticate (HTTPS vs SSH). Explicit protocol and URL clones stay the same.
Overview
Create & Clone no longer hardcodes SSH. Looked-up repos now clone with
protocol: "auto"so GitHub’s per-hostgh config git_protocolcan choose HTTPS vs SSH.GitHub lookup reads
gh config get git_protocol --host <host>and attaches optionalpreferredProtocol. Auto clones use SSH only when that preference isssh; otherwise they use HTTPS (including when config is missing). Explicit HTTPS/SSH and raw clone URLs are unchanged.Reviewed by Cursor Bugbot for commit 6a164a7. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Honor configured
git_protocolfor automatic repository clonesGitHubCli.Service.getRepositoryCloneUrlsnow runs an extragh config get git_protocol --host <host>lookup and attachespreferredProtocol("ssh" | "https") to the returned clone URLs. Errors during this step are tolerated.selectRemoteUrlchanges automatic protocol selection: SSH is only chosen whenpreferredProtocolis explicitly "ssh"; otherwise HTTPS is used. Explicit "ssh"/"https" branches are unchanged.getCloneSourceInputhelper withprotocol: "auto".preferredProtocolfield toSourceControlRepositoryCloneUrlsandSourceControlRepositoryInfo.ghconfig explicitly setsgit_protocolto SSH for the host. ReviewselectRemoteUrlin SourceControlRepositoryService.ts.Macroscope summarized 6a164a7.