Skip to content

[Bug]: GitLab SSH-over-443 remotes produce links to altssh.gitlab.com #30876

Open

Description

@BichengWang

Operating system

macOS (arm64)

Orca version

Source checkout at 575d3b2cf6133747dbd3191915ef1e41d3577a98 (package version 1.4.214).

Details

A GitLab.com remote using ssh://git@altssh.gitlab.com:443/team/project.git is not recognized as GitLab by the project parser or source-control link parser. When a GitLab provider hint is supplied, the manual merge-request URL uses https://altssh.gitlab.com/... instead of https://gitlab.com/.... GitLab documents altssh.gitlab.com:443 as its alternative SSH endpoint; it is a transport address, not the web/API host.

Reproduced offline against the production functions on the commit above. From the repository root, run with Bun:

bun -e '
import { parseGitLabProjectRef } from "./src/main/gitlab/project-ref-parser.ts";
import { parseHostedRemote } from "./src/main/git/hosted-remote-url.ts";
import { parseRemoteRepo } from "./src/renderer/src/components/right-sidebar/source-control/review/remote-repo.ts";
import { buildSourceControlManualReviewUrl } from "./src/renderer/src/components/right-sidebar/source-control/review/manual-review-url.ts";
const remote = "ssh://git@altssh.gitlab.com:443/team/project.git";
console.log(parseGitLabProjectRef(remote));
console.log(parseHostedRemote(remote));
console.log(parseRemoteRepo(remote));
console.log(buildSourceControlManualReviewUrl({baseRef:"main", branchName:"feature", repoRemoteName:"origin", repoRemoteUrl:remote, provider:"gitlab", upstreamName:"origin/feature"}));
'

Actual results:

  • parseGitLabProjectRef and parseHostedRemote return null.
  • parseRemoteRepo returns provider null and web base https://altssh.gitlab.com/team/project.
  • The manual MR URL starts with https://altssh.gitlab.com/team/project/-/merge_requests/new.

Expected: recognize GitLab.com and use https://gitlab.com/team/project for web links, while retaining the SSH remote for Git operations. The same project-parser call with ssh://git@gitlab.com/team/project.git correctly returns {host:"gitlab.com", path:"team/project"}.

The shared normalizeGitLabRemoteHost() already knows this alias, but these parsing paths do not use it. This is distinct from #10154 (custom HTTP schemes on self-hosted GitLab) and #30783/#30808 (Bitbucket's SSH alias). No fix is included here.

Validation is limited to production-function reproduction on macOS; no live GitLab request, GUI session, Windows, Linux, or remote SSH session was exercised. A workaround is to retain gitlab.com in the remote URL and select altssh.gitlab.com/port 443 through the user's SSH config.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions