fix(repo): support configured hosts in clone paths

Description

Allow glab repo clone HOST/GROUP/PROJECT to select HOST for API and configuration lookup when it is either the current default host or an exact key in the global hosts: map.

This preserves dotted GitLab group names by treating unconfigured dotted prefixes as namespaces on the default host. It also supports nested namespaces and configured single-label hosts, uses the selected host-specific git_protocol, and leaves full URLs, project IDs, short names, group cloning, wiki cloning, destination directories, and Git flags unchanged.

The command help and generated documentation include configured self-managed-host and unconfigured-host examples.

No issue is linked yet. This draft captures the current implementation for review.

How has this been tested?

  • make build
  • make lint — 0 issues
  • go test ./internal/commands/project/clone/... -count=1
  • make gen-docs — no generated diff
  • Pre-rebase make test-changed — 201 tests passed
  • CGO_ENABLED=1 make integration-test-race — 27 tests, 17 credential-gated skips
  • make generate, comment-overlap, check-embed, check-args, markdownlint, Vale, and offline lychee checks

After rebasing onto current upstream main, make test-changed expanded to 4,577 tests because the fork main reference is behind upstream. The clone package passed, while the overall run reported 80 failures in untouched packages, primarily interactive-console ugh failures in this environment plus an unrelated mr/view fixture rename failure.

Overlap with !4025 (merged)

MR !4025 (merged) was not present in upstream main when this branch was rebased on 2026-10-23. It overlaps clone initialization for full-URL wiki behavior. This implementation keeps full-URL handling unchanged; if rebased after !4025 (merged), the path-host resolver should remain within the non-URL branch.

Merge request reports

Loading
Loading