8 min de lectura

Qué son los issues en github

Comencemos definiendo lo que es un issue. En inglés, significa problema, por lo que no es difícil imaginar para dónde va esto.

Tranquilo, ahorita arreglamos los bugs con GitHub ;)
Tranquilo, ahorita arreglamos los bugs GitHub 😉

En GitHub, un issue es la unidad de trabajo designada para realizar una mejora en un Sistema informático. Un issue puede ser el arreglo de un fallo, una característica pedida, una tarea, una solicitud de Documentación en específico y todo tipo de solicitud al equipo de desarrollo. Con las issues se puede asignar una tarea a un colaborador de tu repositorio o proyecto, lo cual permite una mejor organización en proyectos que se pueden realizar desde casa siempre y cuando la organización tenga su repositorio en la nube. Estos issues tienen etiquetas, las cuales sirven para poder filtrar la búsqueda de estas y sirven precisamente para indicar la idea principal que esta tarea implica.

Los milestone

Tenemos otra categoría útil: las milestones. Estas son categorías que se utilizan en las issues para tener un filtro más adecuado de la información. Cada milestone puede tener una fecha programada indicando el tiempo que es necesario para cumplir cierta tarea. Puede ver que si la issue es una pregunta, cuantas issues son necesarias para completar la milestone, el porcentaje que se lleva de la milestone , cuanto tiempo falta para que expire, si  se requiere programar o investigar algo, etc. Desde ese momento tenga la idea antes de abrir el issue.

Cómo crear un issue

Cualquier usuario con acceso de extracción a un repositorio puede crear un issue de la siguiente manera:

Podemos usar los siguiente parámetros al crear un issue:

Nombre Tipo Descripción
title string Necesario. El título del issue.
body string El contenido del issue.
assignee string Accede por el usuario que esta issue debe ser asignada. 

NOTE: Solo usuarios con  push access pueden establecer asignacion para nuevas issue. De lo contrario el asignado es suprimido.

milestone number Milestone (categorías)  para asociar la issue  (tema). 

NOTE: Solo usuarios con  push access pueden establecer categorias para nuevas issue. De lo contrario la categoria es suprimida.

labels array ofstrings Etiquetas para asociar con la issue (tema) 

NOTE: Solo usuarios con  push access pueden establecer etiquetas para nuevas issue. De lo contrario la etiqueta sera suprimida.

Ejemplo de cómo crear un issue en github

Cómo crear un milestone en github

Para crear un milestone, hacemos lo siguiente:

Y contamos con los siguientes parámetros:

Name

Type

Description

title string Required. The title of the milestone.
state string The state of the milestone. Either open or closed. Default: open
description string A description of the milestone.
due_on string The milestone due date. This is a timestamp in ISO 8601 format:YYYY-MM-DDTHH:MM:SSZ.

Ejemplo para crear un milestone en github

 

Actualizar un milestone

Para actualizar un milestone, hacemos lo siguiente:

 

Borrar un milestone

Y para borrar uno, hacemos lo siguiente:

Cómo editar un issue en github

Es importante aclarar que solo los propietarios y usuarios con push access podrán editar un issue. Es parecido al comando usado para actualizar un milestone.

Y contamos con estos parámetros

Name

Type

Description

title string Ncesario. El titulo del issue.
body string Contenido del  issue.
assignee string Login para que el  usuario que esta issue pueda ser asignada
state string Estado de la issue. Abierta o Cerrada (Open Or Closes)
milestone number Categorías (milestone) para asociar la issue  (tema). 

NOTE: Solo usuarios con  push access pueden establecer milestones para nuevas issue. De lo contrario la milestone es suprimida.

labels array ofstrings Etiquetas para asociar con la issue. Pasar una o más etiquetas para reemplazar el conjunto de etiquetas en este issue. Enviar una matriz vacía ([ ]) para eliminar todas las etiquetas del issue. 

NOTE: Solo usuarios con  push access pueden establecer etiquetas para nuevas issue. De lo contrario la etiqueta sera suprimida.

Para darnos una idea de como funciona, aquí un ejemplo:

Con esta herramienta podemos grabar varios eventos que se producen en torno a un problema o Pull Request. Esto es útil tanto para la visualización de las páginas de información de solicitud de emisión / pull, y también para determinar quién debe ser notificado de los comentarios.

 

Atributos de los issues en github

Al generar issues contamos con los siguientes atributos que nos permiten identificar quien hace qué, y qué problemas se detectaron:

actor
Siempre el usuario que generó el evento.

 commit_id
The String SHA of a commit que hace referencia a este issue

event
Identifica el tipo real del evento que se produjo.

closed
El issue fue cerrado por el actor. Cuando el  commit_id esta presente, identifica el sommit que cerro el tema usando “closes / fixes #NN”

reopened
La emisión fue reabierta por el actor.subscribed

merged
El tema fue combinado por el actor. El commit_id atributo es el SHA1 del HEAD cometer que se fusionó.

mentioned
El actor  @mencionado  en el issue cuerpo.

assigned
El asunto fue asignado al actor.

 

Lista de eventos para una issue en github

Con esto podemos ver qué eventos han ocurrido en cierto issue.

 

Labels ó etiquetas para los issues en github

Creando una etiqueta

Para crear una etiqueta podemos usar este comando:


Los parámetros con los que contamos son los siguientes:

Name

Type

Description

name string Required. The name of the label.
color string Required. A 6 character hex code, without the leading #, identifying the color.
Y aquí tenemos un ejemplo

 

Listando las etiquetas en un issue

Podemos obtener las etiquetas con este comando


Y como respuesta, obtendremos:




Para obtener las etiquetas de cada issue en un milestone podemos hacer lo siguiente:

A su vez, para remover las etiquetas de un issue podemos usar el siguiente comando:

Para reemplazar todas las etiquetas de un issue usaremos:

Para remover una etiqueta de un issue usaremos:

¿Y si necesitamos añadir etiquetas a un issue? Sin problemas

Ahora bien, para actualizar dicha etiqueta tenemos

Y finalmente, para obtener una sola etiqueta

 

Cerrar una issue a través de un commit

Al entrar en “Fixes # 45” en un mensaje de consignación, la edición # 45 se cierra una vez que el commit se combina en su rama por defecto. Si el error no se corrige en su rama por defecto, la issue sigue abierta. Una vez que el commit con el fix se combina en su rama por defecto, el tema se cierra automáticamente.

Si haces un commit en una rama no predeterminada con la sintaxis “Fixes # 33”, el tema se hace referencia a una información sobre herramientas.

Palabras que se pueden usar en el commit para cerrar un issue:

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

Cerrando temas entre repositorios

Si se refiere a un depósito por su notación GFM , también puedes cerrar issues cercanos a través de repositorios. Por ejemplo, si incluye “fixes user  / repo # 45” en su mensaje del informe, se cierra el asunto de referencia, siempre y cuando tengas permiso para empujar a este registro.

Cierre de problemas con una solicitud de extracción (pull request)

Con la inclusión de las palabras clave “cerradas” en la descripción de sus Pull Request puede cerrarlas. Al igual que con los mensajes de confirmación, si el fallo no se fija en su rama por defecto, la issue sigue abierta. El tema está cerrado de forma automática sólo cuando la pull request se combina en su rama por defecto.

Cierre de múltiples problemas

Para cerrar varias cuestiones, basta con utilizar la misma sintaxis varias veces para cada tema. Por ejemplo, “this fixes# 34 y también resuelve el n º 23, se cierra usuario / repo # 42” cerraría las ediciones # 34 y # 23, así como el número # 42 en el usuario / repo.

Referencias

http://developer.github.com/v3/issues/
https://help.github.com/articles/searching-issues
http://developer.github.com/v3/issues/comments/
http://developer.github.com/v3/issues/events/#list-events-for-an-issue
https://help.github.com/articles/closing-issues-via-commit-messages
¿Te gustó este artículo?

Si te gustó este artículo, te ha servido o aprendiste algo nuevo; compártelo en tus redes sociales o invítame un cafe.

2 COMENTARIOS

Deja tus comentarios

This site uses Akismet to reduce spam. Learn how your comment data is processed.