glab — GitLab CLI
Qué es
Cliente oficial de GitLab para la terminal. Permite crear y revisar Merge Requests, ver pipelines, gestionar issues y autenticarse con el GitLab de Wiedii directamente desde el shell, sin abrir el navegador.
Por qué la usamos en Wiedii
Wiedii usa GitLab en https://gitlab.wiedii.co/. glab es la forma de interactuar con él desde terminal: crear MRs desde git flow publish, revisar el estado de pipelines, y consultar issues vinculados a ramas. Integra directamente con el flujo git-flow-next.
Instalación
brew install glab
glab --version # verificar
Configuración estándar
Archivo de configuración
En macOS, glab guarda su configuración en:
~/Library/Application Support/glab-cli/config.yml
Nota: glab usa
.ymlpara su propio archivo de configuración. La política Wiedii de usar.yamlaplica a archivos que nosotros creamos (lefthook.yaml,docker-compose.yaml, etc.) — no a los archivos internos de herramientas de terceros.
Configurar los valores estándar Wiedii con los comandos:
# Host por defecto — CRÍTICO: sin esto glab apunta a gitlab.com y da 401
glab config set host gitlab.wiedii.co
# Protocolo Git global — siempre SSH
glab config set git_protocol ssh
# Telemetría — OBLIGATORIO desactivar
glab config set telemetry false
# Estilo Markdown en terminal
glab config set glamour_style dark
# Configuración específica del host Wiedii
glab config set -h gitlab.wiedii.co git_protocol ssh
glab config set -h gitlab.wiedii.co api_protocol https
Verificar:
glab config get host # ✅ gitlab.wiedii.co
glab config get telemetry # ✅ false
glab config get git_protocol # ✅ ssh
⚠️
telemetry: falsees obligatorio. El valor por defecto de glab estrue, lo que envía datos de uso a la instancia GitLab. En Wiedii se desactiva siempre.
Autenticación con el GitLab de Wiedii
glab auth login --hostname gitlab.wiedii.co
El wizard pedirá:
- Protocol: HTTPS
- Token: ir a
https://gitlab.wiedii.co→ avatar → Edit profile → Access Tokens → crear token con:- Scopes:
api,read_repository,write_repository - Validez: máximo 3 meses — poner fecha de expiración explícita, nunca "sin expiración"
- Scopes:
- Pegar el token (no se almacena en el vault — ver nota de seguridad abajo)
glab auth status # ✅ Logged in to gitlab.wiedii.co as @tunombre
# Desactivar telemetría — obligatorio tras autenticar
glab config set telemetry false
glab config get telemetry # ✅ false
🔐 Seguridad:
glabguarda el token en el keychain del sistema, no en texto plano. Nunca copiar el token a ningún archivo del vault.🔄 Rotación de tokens: cada desarrollador es responsable de rotar su propio token antes de que expire. Expiración máxima: 90 días. Al rotar:
glab auth login --hostname gitlab.wiedii.cocon el nuevo token.
Completion en zsh
Agregar a ~/.zshrc:
if command -v glab >/dev/null 2>&1; then
eval "$(glab completion -s zsh 2>/dev/null || echo "")"
fi
Recargar para que tome efecto:
exec zsh # aplicar en el terminal actual — repetir en cada terminal abierta
Comandos clave
Merge Requests
glab mres un comando por proyecto: debe ejecutarse desde un directorio con un remote de GitLab configurado, o especificar el proyecto con-R grupo/proyecto.
# Ver mis MRs abiertas (desde dentro de un repo con remote)
glab mr list --author @me
# Ver mis MRs de un proyecto específico (desde cualquier directorio)
glab mr list --author @me -R wildcat/wiedii-dev-onboarding
# Ver MRs que requieren mi revisión
glab mr list --reviewer @me
# Ver detalle de una MR
glab mr view <id>
# Aprobar una MR
glab mr approve <id>
# Ver comentarios de una MR
glab mr note <id>
Pipelines / CI
# Ver estado del pipeline de la rama actual
glab pipeline status
# Ver todos los pipelines del proyecto
glab pipeline list
# Ver logs de un job
glab pipeline ci view
# Relanzar un pipeline fallido
glab pipeline retry <id>
Issues
# Ver issues asignados a mí
glab issue list --assignee @me
# Crear un issue rápido
glab issue create --title "Título" --label "bug"
Repositorio
# Abrir el repo en el navegador
glab repo view --web
# Clonar un repo de Wiedii
glab repo clone wiedii/nombre-repo
Integración con git-flow-next
git flow publish acepta push options de GitLab que glab complementa:
# Publicar rama + crear MR (git-flow-next hace el push con opciones de GitLab)
git flow publish \
-o merge_request.create \
-o merge_request.target=develop \
-o "merge_request.title=feat(scope): descripción [TK0001]"
# Luego revisar la MR creada
glab mr list --author @me
Troubleshooting rápido
ERROR 401 Unauthorized apuntando a gitlab.com:
# glab usa gitlab.com por defecto — hay que cambiarlo explícitamente
glab config set host gitlab.wiedii.co
glab config get host # ✅ gitlab.wiedii.co
No git remotes found:
# glab mr es por proyecto — necesita un remote o el flag -R
# Opción 1: ejecutar desde un directorio con remote configurado
cd ~/Docker/tu-proyecto && glab mr list --author @me
# Opción 2: especificar el proyecto explícitamente
glab mr list --author @me -R wildcat/wiedii-dev-onboarding
glab dice "hostname not found":
glab auth login --hostname gitlab.wiedii.co
Token expirado:
glab auth logout --hostname gitlab.wiedii.co
glab auth login --hostname gitlab.wiedii.co # generar nuevo token
Completion no funciona:
glab completion -s zsh > /dev/null # debe salir sin error
# Si falla: brew reinstall glab
exec zsh # recargar shell
Referencias
- Documentación oficial glab
- configuracion-zsh — donde va el bloque de completion
- git-flow — flujo completo con MRs
- guia-nuevo-dev — onboarding paso a paso