Skip to content

Preserve self-hosted GitLab URL scheme and port #1943

Closed

Description

@currentbits

The GitLab remote parser loses origin information for self-hosted HTTP remotes. gitlabRemote('http://gitlab.example:8080/group/repo.git') returns host gitlab.example and path group/repo, omitting scheme/port. Neutral names such as https://code.example/group/repo.git currently return null without explicit host configuration.

Acceptance criteria:

  • Preserve an explicit origin through parsing, link/API construction and account routing.
  • Support configured neutral self-hosted hostnames without guessing every Git remote is GitLab.
  • Cover HTTP/HTTPS ports, SSH/scp forms and public GitLab behavior with isolated fixtures.
  • Keep credentials scoped to their intended origin; do not contact private hosts in tests.

Coordinate with #1882/#1884. Parser behavior was reproduced against helpers identical to main at 8876c11; downstream private-host failures have not been verified. Tracked by #1926.

Activity

  1. currentbits commented on Nov 8, 2026

    @currentbits
    OwnerAuthor

    This existing issue is the canonical tracker for the implemented fix. Scope checked against #1882 (labels/reviewer filters) and #1884 (navigation/watchers); those remain separate. #1951 was filed redundantly and is being closed as a duplicate.

    Implementation on fix/gitlab-origins, based on 8876c11:

    • Retains an explicit web origin and port-qualified glab account authority.
    • Supports neutral names through explicit glab host configuration or GITLAB_HOST/GITLAB_URI/GL_HOST; SSH/scp maps to a unique configured web origin without using its transport port.
    • Pins REST/GraphQL protocol/API host in child-only environment overrides and strips environment tokens on authority changes.
    • Preserves origin across cross-project issue lookup, note/repository links and rejects pasted issue URLs for another origin.
    • Adds isolated fake CLI/config fixtures, retaining public GitLab behavior.

    196 targeted checks and the production build/typecheck passed. Full-suite verification is still running; failures found so far are in unchanged queued-followup renderer tests and ACP fixtures, tracked by a separate work suggestion. No private API was contacted and real credentials were not changed. Review itinerary: .solenta/review-itinerary/d52434f1-0cef-4be0-99dd-d4f70f49fa3b.json. Keep this issue open until merge.

  2. added and removed on Nov 8, 2026
  3. currentbits commented on Nov 8, 2026

    @currentbits
    OwnerAuthor

    Final commit: d5327ac on fix/gitlab-origins (baseline 8876c11). Working tree is clean; unrelated worktrees and the pending PR checkout remain untouched.

    Validation: production build/typecheck passed; 196 affected checks passed; final disposable-config/CLI fixture rerun passed 30/30 after awaiting cleanup. git diff --check passed.

    Full npm test attempt is incomplete and failing: core passed 38/38; renderer passed 3832/3859 with 27 failures; Electron showed 12 failures in unchanged ACP, Codex input and runner guardrail tests before output stalled and the broad process tree was stopped. Memory/stats were not reached. All 39 observed test names and limitations are recorded in .solenta/gitlab-origin-validation.md; raw log: /tmp/solenta-gitlab-all-unsandboxed.log. These failures are not claimed to have been reproduced on a separate untouched baseline.

    No live private-host API was exercised and no real credential was changed. Routing and credential-authority behavior are verified with isolated fixtures. #1951 is closed as a duplicate; this canonical issue remains in progress until merge.

  4. added and removed on Nov 8, 2026
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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions