gitlab-skill 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,461 @@
1
+ # GitLab API & CLI - Documentación Completa
2
+
3
+ > Guía exhaustiva y operativa para trabajar con GitLab API REST, GraphQL y CLI (glab)
4
+
5
+ **Fecha de recopilación**: 18 de febrero de 2026
6
+ **Fuentes**: Documentación oficial de GitLab Docs
7
+ **Enfoque**: Ejemplos prácticos sin UI web
8
+
9
+ ---
10
+
11
+ ## 📚 Documentos Disponibles
12
+
13
+ ### 1. [GITLAB_API_COMPREHENSIVE_GUIDE.md](GITLAB_API_COMPREHENSIVE_GUIDE.md)
14
+ **Guía completa y detallada** con toda la información recopilada:
15
+
16
+ - ✅ Resumen detallado de 7 URLs oficiales de GitLab Docs
17
+ - ✅ Patrones de uso recomendados (autenticación, paginación, errores, rate limits)
18
+ - ✅ **25+ ejemplos concretos** distribuidos por features:
19
+ - Projects, Groups, Issues, Merge Requests
20
+ - Pipelines, Jobs, Repository, Files
21
+ - Releases, Webhooks, Variables CI/CD
22
+ - Users, Labels, Milestones, Runners
23
+ - Container Registry, Deployments, Environments
24
+ - GraphQL queries y mutations avanzadas
25
+ - glab CLI comandos directos
26
+ - ✅ Troubleshooting exhaustivo con códigos HTTP y resoluciones
27
+ - ✅ Estructura modular recomendada para skills operativas
28
+
29
+ **Ideal para**: Referencia completa, aprendizaje profundo, documentación de equipo
30
+
31
+ ---
32
+
33
+ ### 2. [QUICK_REFERENCE.md](QUICK_REFERENCE.md)
34
+ **Cheatsheet de acceso rápido** con comandos más comunes:
35
+
36
+ - Top 10 operaciones REST API
37
+ - Top 10 operaciones GraphQL
38
+ - Top 10 comandos glab CLI
39
+ - Paginación rápida (offset y keyset)
40
+ - Manejo de errores con scripts
41
+ - Códigos HTTP comunes
42
+ - Filtros más usados
43
+ - Variables de entorno
44
+ - Scopes de tokens
45
+ - URL encoding
46
+ - Límites importantes
47
+ - Scripts útiles de una línea
48
+
49
+ **Ideal para**: Consulta rápida, copy-paste, uso diario
50
+
51
+ ---
52
+
53
+ ### 3. [PRACTICAL_SCRIPTS.md](PRACTICAL_SCRIPTS.md)
54
+ **Colección de scripts completos** listos para usar:
55
+
56
+ #### Configuración
57
+ - setup-gitlab-env.sh - Configurar entorno
58
+
59
+ #### Proyectos
60
+ - list-all-projects.sh - Listar con paginación automática
61
+ - create-project.sh - Crear con configuración completa
62
+ - clone-project-settings.sh - Clonar configuración entre proyectos
63
+
64
+ #### Issues
65
+ - create-issue-from-template.sh - Crear desde CSV
66
+ - export-issues.sh - Exportar a JSON/CSV
67
+ - bulk-close-issues.sh - Cerrar en bulk por filtro
68
+
69
+ #### Merge Requests
70
+ - create-mr-from-branch.sh - Crear desde branch actual
71
+ - auto-approve-mrs.sh - Aprobar automáticamente
72
+
73
+ #### Pipelines
74
+ - monitor-pipeline.sh - Monitoreo en tiempo real
75
+ - trigger-pipeline-with-vars.sh - Ejecutar con variables
76
+ - retry-failed-jobs.sh - Reintentar jobs fallidos
77
+
78
+ #### Repository
79
+ - backup-repository.sh - Backup completo
80
+ - sync-files-to-repo.sh - Sincronizar archivos locales
81
+
82
+ #### Monitoreo
83
+ - monitor-ci-status.sh - Dashboard de CI/CD
84
+ - check-pipeline-health.sh - Análisis de salud
85
+
86
+ #### Automatización
87
+ - auto-merge-approved-mrs.sh - Merge automático
88
+ - cleanup-old-branches.sh - Limpieza de branches
89
+
90
+ **Ideal para**: Automatización, CI/CD, operaciones diarias
91
+
92
+ ---
93
+
94
+ ## 🚀 Inicio Rápido
95
+
96
+ ### Configuración Inicial
97
+
98
+ ```bash
99
+ # 1. Clonar o descargar esta documentación
100
+ cd gitlab-docs-api
101
+
102
+ # 2. Configurar entorno (si usas scripts)
103
+ export GITLAB_TOKEN="tu-personal-access-token"
104
+ export GITLAB_HOST="https://gitlab.example.com"
105
+
106
+ # 3. Verificar acceso
107
+ curl --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
108
+ --url "$GITLAB_HOST/api/v4/user"
109
+ ```
110
+
111
+ ### Ejemplos Básicos
112
+
113
+ #### REST API
114
+ ```bash
115
+ # Listar proyectos
116
+ curl --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
117
+ --url "https://gitlab.example.com/api/v4/projects"
118
+
119
+ # Crear issue
120
+ curl --request POST \
121
+ --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
122
+ --header "Content-Type: application/json" \
123
+ --data '{"title": "Bug en login"}' \
124
+ --url "https://gitlab.example.com/api/v4/projects/123/issues"
125
+ ```
126
+
127
+ #### GraphQL API
128
+ ```bash
129
+ # Query usuario actual
130
+ curl --request POST \
131
+ --header "Authorization: Bearer $GITLAB_TOKEN" \
132
+ --header "Content-Type: application/json" \
133
+ --data '{"query": "query {currentUser {name username}}"}' \
134
+ --url "https://gitlab.com/api/graphql"
135
+ ```
136
+
137
+ #### glab CLI
138
+ ```bash
139
+ # Autenticación
140
+ glab auth login
141
+
142
+ # Listar issues
143
+ glab issue list
144
+
145
+ # Crear merge request
146
+ glab mr create --title "Feature" --source-branch feature --target-branch main
147
+ ```
148
+
149
+ ---
150
+
151
+ ## 📖 Contenido Detallado
152
+
153
+ ### URLs Oficiales Analizadas
154
+
155
+ 1. **GraphQL API** (`/api/graphql/`)
156
+ - Endpoint único versionless
157
+ - Autenticación con tokens (OAuth, Personal, Project, Group)
158
+ - Límites: complejidad 250, query size 10K chars, timeout 30s
159
+ - Multiplex queries, introspección, Global IDs
160
+
161
+ 2. **GraphQL Reference** (`/api/graphql/reference/`)
162
+ - Schema completo con types, fields, arguments
163
+ - Deprecation markers y alternativas
164
+ - Experiments y feature flags
165
+
166
+ 3. **GitLab CLI - glab** (`/cli/`)
167
+ - Instalación multi-plataforma
168
+ - Auto-detección de instancias
169
+ - Comandos: api, mr, issue, ci, repo, release, variable
170
+ - Variables de entorno configurables
171
+
172
+ 4. **REST API** (`/api/rest/`)
173
+ - Endpoint base: `/api/v4`
174
+ - Paginación: offset (default) y keyset (eficiente)
175
+ - Encoding: URL-encoded paths, arrays, hashes
176
+ - Rate limits configurables
177
+
178
+ 5. **REST API Troubleshooting** (`/api/rest/troubleshooting/`)
179
+ - Códigos HTTP 2xx, 3xx, 4xx, 5xx
180
+ - Errores de validación estructurados
181
+ - Spam detection con CAPTCHA
182
+ - Reverse proxy issues
183
+
184
+ 6. **GraphQL Getting Started** (`/api/graphql/getting_started/`)
185
+ - GraphiQL explorer interactivo
186
+ - Command line con curl
187
+ - Queries, mutations, paginación
188
+ - Sorting, introspección, complejidad
189
+
190
+ 7. **REST Authentication** (`/api/rest/authentication/`)
191
+ - Tokens: OAuth 2.0, Personal, Project, Group, Job
192
+ - Headers: `PRIVATE-TOKEN`, `Authorization: Bearer`
193
+ - Scopes: `api`, `read_api`, `sudo`
194
+ - Session cookie, impersonation
195
+
196
+ ---
197
+
198
+ ## 🎯 Casos de Uso Comunes
199
+
200
+ ### 1. Automatización de Issues
201
+ ```bash
202
+ # Crear issues desde CSV
203
+ ./scripts/create-issue-from-template.sh 123 issues.csv
204
+
205
+ # Cerrar issues por label
206
+ ./scripts/bulk-close-issues.sh 123 label "wontfix"
207
+
208
+ # Exportar issues a CSV
209
+ ./scripts/export-issues.sh 123 csv
210
+ ```
211
+
212
+ ### 2. CI/CD Pipeline Management
213
+ ```bash
214
+ # Monitorear pipeline en tiempo real
215
+ ./scripts/monitor-pipeline.sh 123 456
216
+
217
+ # Ejecutar pipeline con variables
218
+ ./scripts/trigger-pipeline-with-vars.sh 123 main
219
+
220
+ # Reintentar jobs fallidos
221
+ ./scripts/retry-failed-jobs.sh 123 456
222
+ ```
223
+
224
+ ### 3. Merge Request Workflow
225
+ ```bash
226
+ # Crear MR desde branch actual
227
+ ./scripts/create-mr-from-branch.sh
228
+
229
+ # Auto-aprobar MRs con criterios
230
+ ./scripts/auto-approve-mrs.sh 123
231
+
232
+ # Auto-merge MRs aprobados
233
+ ./scripts/auto-merge-approved-mrs.sh 123 2
234
+ ```
235
+
236
+ ### 4. Repository Management
237
+ ```bash
238
+ # Backup completo
239
+ ./scripts/backup-repository.sh 123 ./backups
240
+
241
+ # Sincronizar archivos locales
242
+ ./scripts/sync-files-to-repo.sh 123 ./local-files main
243
+
244
+ # Limpiar branches antiguos
245
+ ./scripts/cleanup-old-branches.sh 123 30
246
+ ```
247
+
248
+ ### 5. Monitoreo y Reportes
249
+ ```bash
250
+ # Dashboard de CI/CD
251
+ ./scripts/monitor-ci-status.sh projects.txt
252
+
253
+ # Análisis de salud de pipelines
254
+ ./scripts/check-pipeline-health.sh 123 7
255
+
256
+ # Listar todos los proyectos
257
+ ./scripts/list-all-projects.sh
258
+ ```
259
+
260
+ ---
261
+
262
+ ## 🔑 Información Clave
263
+
264
+ ### Autenticación
265
+
266
+ **Tokens soportados:**
267
+ - Personal Access Token (PAT)
268
+ - Project Access Token
269
+ - Group Access Token
270
+ - OAuth 2.0 Token
271
+ - CI/CD Job Token
272
+
273
+ **Scopes necesarios:**
274
+ - `api` - Read-write completo
275
+ - `read_api` - Read-only
276
+ - `read_repository` - Read repositorio
277
+ - `write_repository` - Write repositorio
278
+ - `sudo` - Actuar como otro usuario (admin)
279
+
280
+ ### Límites Importantes
281
+
282
+ | Límite | REST API | GraphQL API |
283
+ |--------|----------|-------------|
284
+ | Page size (default) | 20 | 20 |
285
+ | Page size (max) | 100 | 100 |
286
+ | Query complexity | N/A | 250 (auth), 200 (no auth) |
287
+ | Query size | N/A | 10,000 chars |
288
+ | Request timeout | 30s | 30s |
289
+ | Blob size (multiple) | N/A | 20 MB |
290
+
291
+ ### Códigos HTTP Críticos
292
+
293
+ | Código | Significado | Acción Recomendada |
294
+ |--------|-------------|-------------------|
295
+ | 200 | OK | Procesar respuesta |
296
+ | 201 | Created | Recurso creado exitosamente |
297
+ | 400 | Bad Request | Verificar parámetros requeridos |
298
+ | 401 | Unauthorized | Verificar token de autenticación |
299
+ | 403 | Forbidden | Verificar permisos del usuario |
300
+ | 404 | Not Found | Verificar ID/path del recurso |
301
+ | 422 | Unprocessable | Validación falló, revisar campos |
302
+ | 429 | Too Many Requests | Rate limit, implementar retry con backoff |
303
+ | 500 | Server Error | Reintentar más tarde |
304
+
305
+ ---
306
+
307
+ ## 🛠️ Herramientas Requeridas
308
+
309
+ ### Para usar REST API y GraphQL:
310
+ - `curl` - Cliente HTTP
311
+ - `jq` - Procesamiento JSON
312
+ - Token de acceso válido
313
+
314
+ ### Para usar glab CLI:
315
+ - `glab` - GitLab CLI ([instalación](https://gitlab.com/gitlab-org/cli/#installation))
316
+ - Token de acceso o autenticación OAuth
317
+
318
+ ### Para ejecutar scripts:
319
+ - `bash` 4.0+
320
+ - `git` (para algunos scripts)
321
+ - `jq` 1.5+
322
+ - `curl` 7.0+
323
+
324
+ ---
325
+
326
+ ## 📝 Ejemplos de Integración
327
+
328
+ ### Script de CI/CD (GitLab CI)
329
+
330
+ ```yaml
331
+ # .gitlab-ci.yml
332
+ stages:
333
+ - deploy
334
+
335
+ deploy:
336
+ stage: deploy
337
+ script:
338
+ # Crear release automáticamente
339
+ - |
340
+ curl --request POST \
341
+ --header "PRIVATE-TOKEN: $CI_JOB_TOKEN" \
342
+ --header "Content-Type: application/json" \
343
+ --data "{
344
+ \"tag_name\": \"$CI_COMMIT_TAG\",
345
+ \"name\": \"Release $CI_COMMIT_TAG\",
346
+ \"description\": \"Automated release\"
347
+ }" \
348
+ --url "$CI_API_V4_URL/projects/$CI_PROJECT_ID/releases"
349
+ only:
350
+ - tags
351
+ ```
352
+
353
+ ### Script de Monitoreo (Cron)
354
+
355
+ ```bash
356
+ # /etc/cron.d/gitlab-monitor
357
+ # Ejecutar cada 5 minutos
358
+ */5 * * * * user /path/to/monitor-ci-status.sh /path/to/projects.txt >> /var/log/gitlab-monitor.log 2>&1
359
+ ```
360
+
361
+ ### Integración con Webhook
362
+
363
+ ```bash
364
+ # webhook-handler.sh
365
+ # Recibe webhook de GitLab y ejecuta acciones
366
+
367
+ #!/bin/bash
368
+
369
+ # Parsear payload
370
+ EVENT_TYPE=$(echo "$1" | jq -r '.object_kind')
371
+ PROJECT_ID=$(echo "$1" | jq -r '.project.id')
372
+
373
+ case "$EVENT_TYPE" in
374
+ "push")
375
+ echo "Push detectado en proyecto $PROJECT_ID"
376
+ # Ejecutar pipeline
377
+ ./trigger-pipeline.sh "$PROJECT_ID" "main"
378
+ ;;
379
+ "merge_request")
380
+ MR_ACTION=$(echo "$1" | jq -r '.object_attributes.action')
381
+ if [ "$MR_ACTION" = "open" ]; then
382
+ echo "Nuevo MR en proyecto $PROJECT_ID"
383
+ # Auto-aprobar si cumple criterios
384
+ ./auto-approve-mrs.sh "$PROJECT_ID"
385
+ fi
386
+ ;;
387
+ esac
388
+ ```
389
+
390
+ ---
391
+
392
+ ## 🔗 Recursos Adicionales
393
+
394
+ ### Documentación Oficial
395
+ - [GitLab API Docs](https://docs.gitlab.com/api/)
396
+ - [GraphQL API Reference](https://docs.gitlab.com/api/graphql/reference/)
397
+ - [GraphQL Explorer](https://gitlab.com/-/graphql-explorer)
398
+ - [glab CLI Docs](https://docs.gitlab.com/cli/)
399
+ - [REST API Resources](https://docs.gitlab.com/api/api_resources/)
400
+
401
+ ### Herramientas Útiles
402
+ - [GitLab CLI (glab)](https://gitlab.com/gitlab-org/cli)
403
+ - [Postman Collection](https://www.postman.com/gitlab)
404
+ - [Python GitLab](https://python-gitlab.readthedocs.io/)
405
+ - [GitLab Terraform Provider](https://registry.terraform.io/providers/gitlabhq/gitlab/latest/docs)
406
+
407
+ ### Comunidad
408
+ - [GitLab Forum](https://forum.gitlab.com/)
409
+ - [GitLab Discord](https://discord.gg/gitlab)
410
+ - [Stack Overflow - GitLab Tag](https://stackoverflow.com/questions/tagged/gitlab)
411
+
412
+ ---
413
+
414
+ ## 📊 Estadísticas de la Documentación
415
+
416
+ - **Total de ejemplos**: 25+ distribuidos por features
417
+ - **Scripts completos**: 20+ listos para usar
418
+ - **URLs analizadas**: 7 oficiales de GitLab Docs
419
+ - **Códigos HTTP documentados**: 15+ con resoluciones
420
+ - **Patrones de uso**: Autenticación, paginación, errores, rate limits
421
+ - **Features cubiertos**: Projects, Groups, Issues, MRs, Pipelines, Jobs, Repository, Files, Releases, Webhooks, Variables, Users, Labels, Milestones, Runners, Registry, Deployments, Environments
422
+
423
+ ---
424
+
425
+ ## 🤝 Contribuciones
426
+
427
+ Esta documentación está diseñada para ser:
428
+ - ✅ **Práctica**: Ejemplos operativos y scripts funcionales
429
+ - ✅ **Completa**: Cubre REST, GraphQL y CLI
430
+ - ✅ **Actualizada**: Basada en docs de febrero 2026
431
+ - ✅ **Modular**: Fácil de extender y mantener
432
+
433
+ Para agregar nuevos ejemplos o scripts:
434
+ 1. Seguir el formato existente
435
+ 2. Incluir ejemplos completos y funcionales
436
+ 3. Documentar parámetros y requisitos
437
+ 4. Probar antes de agregar
438
+
439
+ ---
440
+
441
+ ## 📄 Licencia
442
+
443
+ Esta documentación está basada en la documentación oficial de GitLab, disponible bajo licencia MIT.
444
+
445
+ ---
446
+
447
+ ## 🎓 Próximos Pasos
448
+
449
+ 1. **Explorar la guía completa**: [GITLAB_API_COMPREHENSIVE_GUIDE.md](GITLAB_API_COMPREHENSIVE_GUIDE.md)
450
+ 2. **Consultar referencia rápida**: [QUICK_REFERENCE.md](QUICK_REFERENCE.md)
451
+ 3. **Usar scripts prácticos**: [PRACTICAL_SCRIPTS.md](PRACTICAL_SCRIPTS.md)
452
+ 4. **Configurar entorno**: Ejecutar `setup-gitlab-env.sh`
453
+ 5. **Probar ejemplos**: Comenzar con operaciones básicas
454
+ 6. **Automatizar workflows**: Adaptar scripts a necesidades específicas
455
+
456
+ ---
457
+
458
+ **¿Preguntas o sugerencias?**
459
+ Consulta la documentación oficial de GitLab o abre un issue en tu repositorio.
460
+
461
+ **Última actualización**: 18 de febrero de 2026