关于 glab-config
用于管理 glab 配置的技能,涵盖全局和按主机设置、配置文件、环境变量覆盖、代理及自定义请求头,适合配置 glab 及其自动化行为。
主要功能
- 01读取和更新配置值
- 02设置按主机区分的代理
- 03配置认证代理请求头
- 04查找当前配置文件
- 05使用环境变量覆盖并验证设置
适用场景
- 01为特定 GitLab 主机设置代理
- 02为认证代理配置请求头
- 03查找当前生效的配置路径
- 04准备非交互式 glab 自动化
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vince-winkintel/ gitlab-cli-skills --skill glab-config安装后在 Claude Code 中输入/glab-config确认已加载。
附带文件references/commands.md
详细介绍
glab 配置
概述
Manage key/value strings.
Current respected settings:
- Global behavior: branch_prefix, browser, check_update, debug, display_hyperlinks,
duo_cli_auto_download, duo_cli_auto_run, editor, git_protocol, glab_pager,
glamour_style, host, no_prompt, notify_skill_updates, orbit_cli_auto_download,
orbit_cli_auto_run, remote_alias, show_whats_new, and telemetry.
- Per-host behavior: api_host, api_protocol, artifact_registry_domains, ca_cert,
client_cert, client_id, client_key, container_registry_domains, custom_headers,
job_token, proxy, skip_tls_verify, ssh_host, subfolder, token, and use_keyring.
- Accepted aliases include visual/glab_editor for editor, gitlab_host/gitlab_uri/gl_host
for host, prompt_disabled for no_prompt, and the full alias list in references/commands.md.
USAGE
glab config [command] [--flags]
COMMANDS
edit [--flags] Opens the glab configuration file.
get <key> [--flags] Prints the value of a given configuration key.
path [--flags] Print the location of the global configuration file.
set <key> <value> [--flags] Updates configuration with the value of a given key.
FLAGS
-g --global Use global config file.
-h --help Show help for this command.
快速开始
glab config --help
按主机配置代理
为每个需要固定代理的 GitLab 主机配置 proxy。当不同的 GitLab 实例(例如 gitlab.com 和自托管实例)需要不同的代理设置时,这很有用。
# Set the proxy for a specific host
glab config set proxy "http://proxy.example.com:8080" --host gitlab.mycompany.com
# Verify
glab config get proxy --host gitlab.mycompany.com
优先级: 对已配置的主机,按主机配置的 proxy 会取代基于环境变量的代理选择。未设置时,glab 会回退到 Go 对 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 的标准处理方式。proxy 的作用范围是主机;请使用 --host,而不要通过 --global 设置顶层值。
用于验证代理身份的动态自定义标头
对于需要身份验证的代理或访问网关,请在全局配置中对应的主机条目下添加 custom_headers 列表。每个条目必须包含 name,并且只能指定一个来源:字面值 value、valueFromEnv 或 valueFromCommand。优先使用 valueFromEnv 或凭据助手命令,以免将密钥直接存储在 YAML 中。
hosts:
gitlab.example.com:
custom_headers:
- name: X-Proxy-Client-ID
value: public-client-id
- name: X-Proxy-Client-Secret
valueFromEnv: PROXY_CLIENT_SECRET
- name: Proxy-Authorization
valueFromCommand: proxy-token-helper
使用 glab config edit --global 编辑结构化列表;不要通过标量 config set 命令设置它。命令来源会被拆分为可执行文件和参数,不会隐式调用 shell;它在每个 glab 进程中运行一次,超时时间为 30 秒,并且必须输出一行非空内容且不含 NUL 字节。其去除首尾空白后的结果会在该进程的所有请求中重复使用,包括 OAuth 刷新。如果必须进行 shell 展开,请明确调用经过审核的 shell;否则优先使用 valueFromEnv。
请将自定义标头值视为凭据。不要将字面密钥存放在配置、日志、命令参数或代码仓库中。启用标头前请确认主机,因为 glab 会将已配置的标头附加到发往该主机的请求中。
配置文件搜索顺序
glab 按以下方式选择全局配置:
- 如果设置了
GLAB_CONFIG_DIR,则使用$GLAB_CONFIG_DIR/config.yml。这是显式覆盖;即使该目录中尚不存在配置文件,glab 也会使用此目录。 - 否则,使用第一个存在的常规候选文件:
~/.config/glab-cli/config.yml,保留为旧版位置。$XDG_CONFIG_HOME/glab-cli/config.yml(在 macOS 上,默认路径为~/Library/Application Support/glab-cli/config.yml)。- 用于系统范围默认配置的
$XDG_CONFIG_DIRS/glab-cli/config.yml。常见的 Linux 默认路径为/etc/xdg/glab-cli/config.yml;在 macOS 上,若依赖系统范围的配置,请显式设置XDG_CONFIG_DIRS。
配置文件不会合并。如果旧版文件和平台特定的 XDG 文件都存在,glab 会使用旧版文件并发出警告。仓库本地设置存放在 .git/glab-cli/config.yml 中,而按主机设置存放在选定的全局文件中。请优先使用 glab config get、set 和 edit,而不是直接修改文件,并且不要将存储的令牌复制到日志或版本控制中。
查找当前使用的全局配置
使用 glab config path,而不要将全局配置文件位置硬编码。即使文件尚不存在,该命令也会打印路径;--dir 会打印其父目录。
glab config path
glab config path --dir
$EDITOR "$(glab config path)"
当沙盒工具需要获得权限,以便让 glab 刷新或重写凭据时,请授予 glab config path --dir 所示目录的写入权限,而不只是 config.yml 文件的写入权限。glab 会在该目录中写入临时文件,然后替换配置文件。
以环境变量优先的 Agent 模式
对于 Agent 配置,优先使用每个 Agent 单独的环境变量文件,而不是共用一个 Shell 配置文件。示例:
# ~/.config/openclaw/env/gitlab-reviewer.env
GITLAB_TOKEN=glpat-...
GITLAB_HOST=gitlab.com
请将这些环境变量文件保存在版本控制之外,限制其权限(例如 chmod 600),留意备份可能导致的泄露,并使用遵循最小权限原则的机器人/服务账号令牌。
使用以下方式加载纯 KEY=value 环境变量文件,以便将变量导出给 glab:
set -a
source ~/.config/openclaw/env/gitlab-<agent>.env
set +a
直接执行 source ~/.config/openclaw/env/gitlab-<agent>.env 会更新当前 Shell,但可能不会导出这些值。此时 glab 可能无法识别环境变量覆盖,转而静默地复用活动全局配置文件中保存的身份验证信息。
如果 Agent 需要显示为不同身份,请使用不同的 GitLab 机器人/服务账号。同一 GitLab 用户的多个 PAT 仍会以该用户身份执行操作。
非交互式提示和配置验证
对于必须在非交互式自动化中失败而不是显示提示的场景,请使用 GLAB_NO_PROMPT=1。上游文档现在优先使用带 GLAB_ 前缀的名称;旧版 NO_PROMPT 已弃用,不应在新脚本中使用。
GLAB_NO_PROMPT=1 glab repo prune --dry-run
对于由配置驱动的环境变量覆盖,请使用配置架构中的环境变量列表:每个键都按 glab config --help 或配置文档的环境变量部分所示的顺序,以第一个已设置的变量为准;该部分由同一架构生成。如果存在带 GLAB_ 前缀的名称,请在新的自动化中优先使用;旧名称仍作为同一有序列表中的后备选项,以保持兼容性。
架构顺序示例:
remote_alias:GLAB_REMOTE_ALIAS、GIT_REMOTE_URL_VAR、GIT_REMOTE_ALIAS、REMOTE_ALIAS、REMOTE_NICKNAME、GIT_REMOTE_NICKNAMEeditor:GLAB_EDITOR、VISUAL、EDITORcheck_update:GLAB_CHECK_UPDATE、CHECK_UPDATEglamour_style:GLAB_GLAMOUR_STYLE、GLAMOUR_STYLEno_prompt:GLAB_NO_PROMPT、NO_PROMPT、PROMPT_DISABLEDapi_protocol:GLAB_API_PROTOCOL、API_PROTOCOLartifact_registry_domains:GLAB_ARTIFACT_REGISTRY_DOMAINS、ARTIFACT_REGISTRY_DOMAINScontainer_registry_domains:GLAB_CONTAINER_REGISTRY_DOMAINS、CONTAINER_REGISTRY_DOMAINSduo_cli_auto_download和duo_cli_auto_run:GLAB_DUO_CLI_AUTO_DOWNLOAD/DUO_CLI_AUTO_DOWNLOAD、GLAB_DUO_CLI_AUTO_RUN/DUO_CLI_AUTO_RUNorbit_cli_auto_download和orbit_cli_auto_run:GLAB_ORBIT_CLI_AUTO_DOWNLOAD/ORBIT_CLI_AUTO_DOWNLOAD、GLAB_ORBIT_CLI_AUTO_RUN/ORBIT_CLI_AUTO_RUNproxy、skip_tls_verify和use_keyring:GLAB_PROXY/PROXY、GLAB_SKIP_TLS_VERIFY/SKIP_TLS_VERIFY、GLAB_USE_KEYRING/USE_KEYRING
GITLAB_HOST、GITLAB_API_HOST、GITLAB_CLIENT_ID、GITLAB_SSH_HOST、GITLAB_SUBFOLDER 等 GitLab 专用现有名称,以及令牌变量,均保留其文档中规定的名称。不要自行重命名机密或主机选择变量。
glab config set 会根据规范配置架构验证键。如果设置操作失败,请检查拼写,以及该设置是按主机指定(--host)还是全局指定(--global),不要强行将未知键写入配置文件。
注册的别名不区分大小写,并会以规范键名保存。例如,glab config set visual nano --global 会更新 editor;之后,glab config get visual --global 和 glab config get editor --global 都会解析为同一个值。尽管仍支持别名,新的自动化中还是应优先使用规范名称。
glab_pager 和 debug 是有效的全局设置。GLAB_PAGER 的优先级高于 glab_pager,而 glab_pager 的优先级高于 PAGER;GLAB_DEBUG 可以覆盖已保存的 debug 设置。
常用设置
# View current config
glab config get --global
# Set default editor
glab config set editor vim --global
# Set pager
glab config set glab_pager "less -R" --global
# Enable detailed glab/Git/DNS diagnostics
glab config set debug true --global
# Disable update checks
glab config set check_update false --global
# Select the Git remote glab should prefer
glab config set remote_alias origin --global
# Allow Duo CLI to download and run without wrapper prompts
glab config set duo_cli_auto_download true --global
glab config set duo_cli_auto_run true --global
# Set default host
glab config set host https://gitlab.mycompany.com --global
子命令
完整的 --help 输出请参阅 references/commands.md。