Skip to content

Instantly share code, notes, and snippets.

@javierav
Created August 17, 2020 07:21
Show Gist options
  • Select an option

  • Save javierav/8f27a51cce4d91fb8ea8161ea20e4fd0 to your computer and use it in GitHub Desktop.

Select an option

Save javierav/8f27a51cce4d91fb8ea8161ea20e4fd0 to your computer and use it in GitHub Desktop.
Etiquetado de los Merge Requests

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.

Etiquetas de acción requerida

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

Etiquetas de estado del merge

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

Etiquetas de tipo de merge

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

Script para crearlas de manera automática

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment