Skip to content

registry: switch glab to native gitlab backend#7364

Merged
jdx merged 1 commit into
mainfrom
refactor/glab-gitlab-backend
Dec 17, 2025
Merged

registry: switch glab to native gitlab backend#7364
jdx merged 1 commit into
mainfrom
refactor/glab-gitlab-backend

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Dec 17, 2025

Summary

Switch glab from ubi backend with provider=gitlab to the native gitlab backend for cleaner configuration.

Changes

  • Changed backend from ubi:gitlab-org/cli[provider=gitlab,exe=glab] to gitlab:gitlab-org/cli[exe=glab]
  • Simplified Windows backend configuration (removed matching_regex)
  • Applies to all platforms (Linux, macOS, Windows)

Benefits

  • Cleaner syntax: No need for provider parameter
  • Native implementation: Uses mise's built-in GitLab support
  • Consistent with GitHub tools: Follows the same pattern as other git-based tools in the registry

Testing

Verified that the gitlab backend is correctly invoked and makes requests to GitLab API. Test failure was due to proxy authentication in the test environment, not the backend implementation.

🤖 Generated with Claude Code


Note

Switches glab to the native gitlab backend for Linux, macOS, and Windows, simplifying configuration.

  • Registry:
    • tools.glab:
      • Replace ubi:gitlab-org/cli[provider=gitlab,exe=glab] with gitlab:gitlab-org/cli[exe=glab] for linux, macos, and windows.
      • Remove Windows-specific matching_regex/provider complexity; keep asdf:mise-plugins/mise-glab entry unchanged.

Written by Cursor Bugbot for commit 9fed21e. This will update automatically on new commits. Configure here.

Copilot AI review requested due to automatic review settings December 17, 2025 20:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the glab tool configuration to use mise's native GitLab backend instead of the ubi backend with a GitLab provider parameter. The change simplifies the configuration syntax while maintaining functionality across all platforms.

Key Changes:

  • Replaced ubi:gitlab-org/cli[provider=gitlab,exe=glab] with gitlab:gitlab-org/cli[exe=glab] for glab tool
  • Removed matching_regex parameter from Windows platform configuration
  • Added GitHub backend entries for several other tools (bosh-backup-and-restore, clusterawsadm, helm-diff, k3kcli, mdbook-linkcheck, opsgenie-lamp)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread registry.toml Outdated
[tools.bosh-backup-and-restore]
aliases = ["bbr"]
backends = [
"github:cloudfoundry-incubator/bosh-backup-and-restore[bin=bosh-backup-and-restore,asset_pattern=bbr-*-{darwin_os}-{amd64_arch}]",
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change appears unrelated to the PR's stated purpose of refactoring glab to use the native GitLab backend. Adding GitHub backend entries for multiple tools (bosh-backup-and-restore, clusterawsadm, helm-diff, k3kcli, mdbook-linkcheck, opsgenie-lamp) introduces scope creep and makes the PR harder to review and test. Consider moving these changes to a separate PR focused on adding GitHub backend support for these tools.

Suggested change
"github:cloudfoundry-incubator/bosh-backup-and-restore[bin=bosh-backup-and-restore,asset_pattern=bbr-*-{darwin_os}-{amd64_arch}]",

Copilot uses AI. Check for mistakes.
Comment thread registry.toml
"macos",
] },
{ full = 'ubi:gitlab-org/cli[provider=gitlab,exe=glab,matching_regex=^glab\.exe$]', platforms = [
{ full = "gitlab:gitlab-org/cli[exe=glab]", platforms = [
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Windows platform now uses the same backend configuration as Linux/macOS, but the previous configuration had a matching_regex=^glab\.exe$ parameter that was explicitly removed. Ensure that the native gitlab backend correctly handles Windows executable naming conventions (.exe extension) without this parameter, as the removal could affect Windows compatibility.

Suggested change
{ full = "gitlab:gitlab-org/cli[exe=glab]", platforms = [
{ full = "gitlab:gitlab-org/cli[exe=glab.exe]", platforms = [

Copilot uses AI. Check for mistakes.
Changed glab from ubi backend with provider=gitlab to the native
gitlab backend for cleaner configuration.

- Before: ubi:gitlab-org/cli[provider=gitlab,exe=glab]
- After: gitlab:gitlab-org/cli[exe=glab]

The gitlab backend is more direct and doesn't require the provider
parameter. Applies to all platforms (Linux, macOS, Windows).

Test section already exists and remains unchanged.
@jdx jdx force-pushed the refactor/glab-gitlab-backend branch from 328cf44 to 9fed21e Compare December 17, 2025 20:57
@jdx jdx changed the title refactor(registry): switch glab to native gitlab backend registry: switch glab to native gitlab backend Dec 17, 2025
Comment thread registry.toml
[tools.glab]
backends = [
{ full = "ubi:gitlab-org/cli[provider=gitlab,exe=glab]", platforms = [
{ full = "gitlab:gitlab-org/cli[exe=glab]", platforms = [
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Unsupported exe option used with gitlab backend

The exe=glab option is only supported by the ubi backend (in src/backend/ubi.rs), not by the gitlab backend which uses UnifiedGitBackend. The gitlab backend does not recognize or use the exe option, so this configuration will be silently ignored. If the intent is to specify the executable name, the gitlab backend supports rename_exe for archives or bin for single binaries instead. Additionally, the Windows configuration previously used matching_regex=^glab\.exe$ specifically to fix asset selection issues; removing this and switching to a backend without equivalent functionality may cause Windows installations to pick the wrong asset.

Additional Locations (1)

Fix in Cursor Fix in Web

@jdx
Copy link
Copy Markdown
Owner Author

jdx commented Dec 17, 2025

Closing this PR - the gitlab backend doesn't support the exe option that ubi uses to specify the executable name. The gitlab/github backend only supports asset_pattern, url, version_prefix, bin_path, and filter_bins. Without equivalent functionality, the glab tool would fail to install correctly, especially on Windows where matching_regex was specifically used for asset selection.

@jdx jdx closed this Dec 17, 2025
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Dec 17, 2025

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.10 x -- echo 16.2 ± 0.6 15.0 21.2 1.00
mise x -- echo 16.7 ± 0.5 15.5 18.1 1.03 ± 0.05

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.10 env 15.8 ± 0.4 14.9 20.9 1.00
mise env 16.2 ± 0.6 15.1 22.5 1.02 ± 0.05

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.10 hook-env 15.7 ± 0.4 14.9 19.5 1.00
mise hook-env 16.3 ± 0.5 15.2 18.5 1.03 ± 0.04

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.10 ls 14.6 ± 0.3 13.6 15.6 1.00
mise ls 15.2 ± 0.5 14.1 17.4 1.04 ± 0.04

xtasks/test/perf

Command mise-2025.12.10 mise Variance
install (cached) 83ms 84ms -1%
ls (cached) 54ms 56ms -3%
bin-paths (cached) 57ms 57ms +0%
task-ls (cached) 245ms 230ms +6%

@jdx jdx deleted the refactor/glab-gitlab-backend branch December 17, 2025 21:18
@jdx jdx restored the refactor/glab-gitlab-backend branch December 17, 2025 21:44
@jdx jdx reopened this Dec 17, 2025
@jdx jdx merged commit 47085b8 into main Dec 17, 2025
69 of 71 checks passed
@jdx jdx deleted the refactor/glab-gitlab-backend branch December 17, 2025 21:57
jdx pushed a commit that referenced this pull request Dec 18, 2025
### 🚀 Features

- **(alias)** rename alias to tool-alias, add shell-alias command by
@jdx in [#7357](#7357)
- **(upgrade)** display summary of upgraded tools by @jdx in
[#7372](#7372)
- **(vfox)** embed vfox plugin Lua code in binary by @jdx in
[#7369](#7369)

### 🐛 Bug Fixes

- **(aqua)** add start_operations for progress reporting by @jdx in
[#7354](#7354)
- **(github)** improve asset detection for distro-specific and Swift
artifacts by @jdx in [#7347](#7347)
- **(github)** clean up static_helpers.rs and fix archive bin= option by
@jdx in [#7366](#7366)
- **(http)** add start_operations for progress reporting by @jdx in
[#7355](#7355)
- **(lockfile)** place lockfile alongside config file by @jdx in
[#7360](#7360)
- **(progress)** add start_operations to core plugins by @jdx in
[#7351](#7351)
- **(ruby-install)** Use ruby_install_bin to update by @calebhearth in
[#7350](#7350)
- **(rust)** add release_url for rust versions by @jdx in
[#7373](#7373)
- **(schema)** add `tool_alias`, mark `alias` as deprecated by @SKalt in
[#7358](#7358)
- **(toolset)** filter tools by OS in list_current_versions by @jdx in
[#7356](#7356)
- **(ubi)** only show deprecation warning during installation by @jdx in
[#7380](#7380)
- **(ui)** remove noisy "record size" message during install by @jdx in
[#7381](#7381)
- update mise-versions URL to use /tools/ prefix by @jdx in
[#7378](#7378)

### 🚜 Refactor

- **(backend)** unified AssetMatcher with checksum fetching by @jdx in
[#7370](#7370)
- **(backend)** deprecate ubi backend in favor of github by @jdx in
[#7374](#7374)
- **(toolset)** decompose mod.rs into smaller modules by @jdx in
[#7371](#7371)

### 🧪 Testing

- **(e2e)** fix and rename ubi and vfox_embedded_override tests by @jdx
in
[052ea40](052ea40)

### 📦 Registry

- add vfox-gcloud backend for gcloud by @jdx in
[#7349](#7349)
- convert amplify to use github backend by @jdx in
[#7365](#7365)
- add github backend for djinni tool by @jdx in
[#7363](#7363)
- switch glab to native gitlab backend by @jdx in
[#7364](#7364)
- add s5cmd by @jdx in [#7376](#7376)

### Chore

- **(registry)** disable flaky tests for gitu and ktlint by @jdx in
[64151cb](64151cb)
- resolve clippy warnings and add stricter CI check by @jdx in
[#7367](#7367)
- suppress dead_code warnings in asset_matcher module by @jdx in
[#7377](#7377)

### New Contributors

- @calebhearth made their first contribution in
[#7350](#7350)
jekis913 added a commit to jekis913/mise that referenced this pull request Dec 18, 2025
* upstream/main:
  fix(ui): remove noisy "record size" message during install (jdx#7381)
  test(e2e): fix and rename ubi and vfox_embedded_override tests
  fix: update mise-versions URL to use /tools/ prefix (jdx#7378)
  fix(ubi): only show deprecation warning during installation (jdx#7380)
  registry: add s5cmd (jdx#7376)
  chore: suppress dead_code warnings in asset_matcher module (jdx#7377)
  refactor(backend): deprecate ubi backend in favor of github (jdx#7374)
  fix(rust): add release_url for rust versions (jdx#7373)
  feat(vfox): embed vfox plugin Lua code in binary (jdx#7369)
  refactor(backend): unified AssetMatcher with checksum fetching (jdx#7370)
  feat(upgrade): display summary of upgraded tools (jdx#7372)
  fix(github): clean up static_helpers.rs and fix archive bin= option (jdx#7366)
  refactor(toolset): decompose mod.rs into smaller modules (jdx#7371)
  chore: resolve clippy warnings and add stricter CI check (jdx#7367)
  registry: switch glab to native gitlab backend (jdx#7364)
  fix(ruby-install): Use ruby_install_bin to update (jdx#7350)
  registry: add github backend for djinni tool (jdx#7363)
  registry: convert amplify to use github backend (jdx#7365)
  chore(registry): disable flaky tests for gitu and ktlint
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants