En Gitlab podemos definir etiquetas para luego ser aplicadas a los merge requests. Sirva este documento como propuesta inicial para debatir su uso en todos los proyectos corporativos.
Estas etiquetas sirven para indicar que ese merge necesita algún tipo de acción por parte de uno de los intervinientes: desarrolladores, maquetadores, etc.
| COLOR | DESCRIPCIÓN | |
|---|---|---|
| require-dev | #CC0033 | Indica que se requiere intervención del desarrollador |
| require-layout | #CC0033 | Indica que se requiere intervención del maquetador |
| require-qa | #CC0033 | Indica que se requiere intervención de calidad |
| require-product | #CC0033 | Indica que se requiere intervención del encargado de producto |
| require-teamleader | #CC0033 | Indica que se requiere intervención del Team Leader |
Estas etiquetas sirven para indicar el estado en el que se encuentra el merge.
| COLOR | DESCRIPCIÓN | |
|---|---|---|
| wip-dev | #F0AD4E | Indica que está en progreso por parte de desarrollo |
| wip-layout | #F0AD4E | Indica que está en progreso por parte de maquetación |
| wip-qa | #F0AD4E | Indica que está en revisión por parte de calidad |
| in-review | #5843AD | Indica que está en revisión por el Team Leader |
| environment-pre | #7F8C8D | Indica que el merge se ha subido al entorno PRE |
| locked | #FC6203 | Indica que el merge se encuentra bloqueado por terceras partes |
Estas etiquetas sirven para conocer el tipo de merge que se está subiendo: nueva funcionalidad, corrección de errores, etc.
| COLOR | DESCRIPCIÓN | |
|---|---|---|
| feature | #5CB85C | Indica que el código añade una nueva funcionalidad |
| fix | #FF0000 | Indica que el código soluciona un error detectado |
| hotfix | #AD4363 | Indica que el código soluciona un error detectado con carácter urgente |
| tests | #D10069 | Indica que el código contiene tests para mejorar la cobertura o mejora de velocidad |
| performance | #000000 | Indica que el código mejora el rendimiento |
| refactoring | #0033CC | Indica que el código es una refactorización |
Mediante el siguiente script podemos crear las etiquetas en un proyecto nuevo sin tener que hacerlo a mano. Necesitamos tener definida una variable de entorno llamada GITLAB_TOKEN con el token de acceso al API de Gitlab que podemos obtener desde la configuración de nuestro usuario. El script recibe un sólo parámetro: el ID del proyecto en el cual queremos crear las etiquetas.
$ ./create-labels.sh 15#!/usr/bin/env bash
# colors
OFF='\033[0m'
RED='\033[0;31m'
PROJECT_ID="$1"
usage() {
cat << EOF
Uso: $0 <project_id>
EOF
}
create_label() {
curl \
--data-urlencode "name=$1" \
--data-urlencode "color=#$2" \
--data-urlencode "description=$3" \
--header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"https://gitlab.nosolosoftware.es/api/v4/projects/$PROJECT_ID/labels"
}
create_labels() {
create_label "feature" "5CB85C" "Indica que el código añade una nueva funcionalidad"
create_label "fix" "FF0000" "Indica que el código soluciona un error detectado"
create_label "hotfix" "AD4363" "Indica que el código soluciona un error detectado con carácter urgente"
create_label "in-review" "5843AD" "Cuando un merge está siendo revisado por el Team Leader"
create_label "locked" "FC6203" "Indica que el merge se encuentra bloqueado por terceras partes"
create_label "performance" "000000" "Indica que el código mejora el rendimiento"
create_label "refactoring" "0033CC" "Indica que el código es una refactorización"
create_label "security" "6E6101" "Indica que el código mejora la seguridad"
create_label "tests" "D10069" "Indica que el código contiene tests para mejorar la cobertura o la velocidad"
create_label "wip-dev" "F0AD4E" "Indica que está en progreso por parte de desarrollo"
create_label "wip-layout" "F0AD4E" "Indica que está en progreso por parte de maquetación"
create_label "wip-qa" "F0AD4E" "Indica que está en revisión por parte de calidad"
create_label "require-dev" "CC0033" "Cuando un merge está pendiente de que su responsable haga algo"
create_label "require-layout" "CC0033" "Indica que se requiere intervención del maquetador"
create_label "require-product" "CC0033" "Indica que se requiere intervención del encargado de producto"
create_label "require-qa" "CC0033" "Indica que se requiere intervención de calidad"
create_label "require-teamleader" "CC0033" "Indica que se requiere intervención del Team Leader"
}
if [ -z "$1" ]; then
echo -e "${RED}Debes llamar a este script con el ID del proyecto!$OFF"
usage
exit 1
fi
if [ -z "$GITLAB_TOKEN" ]; then
echo -e "${RED}Debes definir la variable de entorno GITLAB_TOKEN con el token de acceso al API de Gitlab!$OFF"
exit 1
fi
create_labels