[This post is available in English here.]
Muchas veces uno recibe un email o un mensaje de texto sobre un tique de JIRA, y uno querría poder abrirlo directamente. Para resolver eso, he creado un servicio usando Automator usando los siguientes pasos:
- Seleccionar el texto a usar, y con el menú contextual Servicios (Services en inglés, como en la pantalla) elegir la opción Crear Servicio (Create Service en inglés).

- En el nuevo servicio creado por Automator, hay que asegurarse que la opción de “El workflow recibe el XXXX seleccionado —Workflow receives current en inglés— corresponde a Automático (texto) —Automatic (text) en inglés— pare evitar tener problemas de formateado, pero aún así permitir que otros formatos/datos se puedan convertir en texto.

- Añadir a continuación el módulo Ejecutar script de shell (Run shell script en inglés) desde la sección Utilidades —Utilities en inglés—, y configuradlo para usar Python (
/usr/bin/python), y elegir la opción Pasar entrada como: argumentos (Pass input: as arguments en inglés) usarsys.argv, con el contenido de la caja de código de más abajo. - Añadir a continuación el módulo Mostrar página web en la sección Safari. Ese módulo utilizará la salida del módulo anterior —el URL construido por el código Python de arriba— y se lo pasará a Safari como URL para intentar abrirlo.
- Guardar el Workflow con el nombre Abrir ticket en JIRA. Aparecerá en el menú Servicios.
import sys # we use sys to get the input to the service
# in sys.argv
from urllib import quote # to convert high-ASCII and other
# into URL-compatible quoting
# get the text from the selection, and URL quote it
text_input = quote("".join(sys.argv[1:]))
# URL for the JIRA QuickSearch
jira_search_base_url = "https://path.to.jira.url/secure/QuickSearch.jspa?searchString={}"
# Output of the workflow done by a print
print(jira_search_base_url.format(text_input))
A partir de ese momento, se puede usar el menú Servicios > Abrir Ticket en JIRA después de seleccionar un texto, y JIRA hará una búsqueda inteligente: si la selección corresponde a un nombre de proyecto, se hará una búsqueda por proyecto; si la selección corresponde a un ID de ticket the JIRA, se abrirá directamente el ticket; y si lo que seleccionas es un texto cualquiera, se hará una búsqueda por ese texto en JIRA.
El resultado final —en mi máquina en inglés— es el siguiente:

Si no quieres complicarte la vida, puedes descargar el siguiente servicio, descomprimirlo, y luego instalarlo en Automator con doble clic: Open SKA JIRA issue.workflow.
¡Espero que os haya sido útil!
Actualización 26/02/2020
Antes que nada, tengo que dar las gracias a @flyingfrog por la sugerencia de utilizar el URL de búsqueda inteligente de JIRA, en lugar de construir un URL a mano. Acabo de comprobar que se puede usar, por ejemplo, sobre un texto que contenga una consulta JQL (JIRA Query Language), y la parte del proyecto se interpretará correctamente, pero el resto se pasa a una consulta tipo text ~"rest of JQL", de modo que hay que editar un poco el resultado, pero es fácil usarlo para tener un inicio de consulta y después retocarla.
Actualización 07/07/2022
Automator ya no muestra /usr/bin/python o /usr/bin/python3 en la lista de posibles shells, pero si tienes instalado un Python en /usr/local/bin, por ejemplo con MacPorts o Homebrew, también aparecen. En ese caso, es necesario instalar la biblioteca de funciones Python requests con la instrucción /usr/local/bin/pip3 install requests, y cambiar en el código de arriba la línea from urllib import quote para que en su lugar diga from requests.utils import quote.
Comentarios
One response to “Creando un servicio para abrir un tique de JIRA concreto”
[…] [Este artículo esta disponible en español en este enlace.] […]