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/GITLAB_API_COMPREHENSIVE_GUIDE.md +3885 -0
- package/PRACTICAL_SCRIPTS.md +1351 -0
- package/QUICK_REFERENCE.md +682 -0
- package/README.md +461 -0
- package/SKILL.md +789 -0
- package/SKILL_SETUP.md +50 -0
- package/package.json +42 -0
- package/scripts/install-skill.mjs +119 -0
- package/skill-features/00-auth-and-bootstrap.md +81 -0
- package/skill-features/01-discovery-and-projects.md +73 -0
- package/skill-features/02-repository-and-code.md +101 -0
- package/skill-features/03-issues-and-merge-requests.md +69 -0
- package/skill-features/04-cicd-pipelines-jobs.md +86 -0
- package/skill-features/05-security-and-vulnerabilities.md +125 -0
- package/skill-features/06-graphql-and-glab-playbook.md +68 -0
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
|