registry: switch glab to native gitlab backend#7364
Conversation
There was a problem hiding this comment.
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]withgitlab:gitlab-org/cli[exe=glab]for glab tool - Removed
matching_regexparameter 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.
| [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}]", |
There was a problem hiding this comment.
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.
| "github:cloudfoundry-incubator/bosh-backup-and-restore[bin=bosh-backup-and-restore,asset_pattern=bbr-*-{darwin_os}-{amd64_arch}]", |
| "macos", | ||
| ] }, | ||
| { full = 'ubi:gitlab-org/cli[provider=gitlab,exe=glab,matching_regex=^glab\.exe$]', platforms = [ | ||
| { full = "gitlab:gitlab-org/cli[exe=glab]", platforms = [ |
There was a problem hiding this comment.
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.
| { full = "gitlab:gitlab-org/cli[exe=glab]", platforms = [ | |
| { full = "gitlab:gitlab-org/cli[exe=glab.exe]", platforms = [ |
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.
328cf44 to
9fed21e
Compare
| [tools.glab] | ||
| backends = [ | ||
| { full = "ubi:gitlab-org/cli[provider=gitlab,exe=glab]", platforms = [ | ||
| { full = "gitlab:gitlab-org/cli[exe=glab]", platforms = [ |
There was a problem hiding this comment.
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)
|
Closing this PR - the gitlab backend doesn't support the |
Hyperfine Performance
|
| 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% |
### 🚀 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)
* 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
Summary
Switch glab from ubi backend with
provider=gitlabto the nativegitlabbackend for cleaner configuration.Changes
ubi:gitlab-org/cli[provider=gitlab,exe=glab]togitlab:gitlab-org/cli[exe=glab]matching_regex)Benefits
providerparameterTesting
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
glabto the nativegitlabbackend for Linux, macOS, and Windows, simplifying configuration.tools.glab:ubi:gitlab-org/cli[provider=gitlab,exe=glab]withgitlab:gitlab-org/cli[exe=glab]forlinux,macos, andwindows.matching_regex/providercomplexity; keepasdf:mise-plugins/mise-glabentry unchanged.Written by Cursor Bugbot for commit 9fed21e. This will update automatically on new commits. Configure here.