Programación
Radzivon Aljovik
Entusiasta de la automatización de bajo código
23 de julio de 2024
Jira, la versátil plataforma de seguimiento de incidencias y gestión de proyectos de Atlassian, se ha convertido en una herramienta indispensable para innumerables equipos de desarrollo de todo el mundo. Aunque su interfaz fácil de usar facilita la gestión de proyectos y el seguimiento de incidencias, el verdadero poder de Jira reside en sus amplias opciones de personalización y capacidades de integración. Para ello es fundamental la API REST de Jira, que abre un mundo de posibilidades para automatizar tareas, crear aplicaciones personalizadas e integrar Jira a la perfección con otras herramientas de tu ecosistema de desarrollo. En esta completa guía, nos adentraremos en la API REST de Jira, exploraremos sus capacidades y recorreremos ejemplos prácticos para ayudarte a empezar.
Puntos clave: La API REST de Jira es una herramienta versátil para automatizar tareas, crear aplicaciones personalizadas e integrar Jira con otras herramientas de desarrollo, tanto en las versiones Cloud como Server/Data Center. Ofrece una amplia gama de funciones, como gestión de incidencias, operaciones masivas e informes personalizados, con soporte para funciones avanzadas como paginación y expansión de datos. Aunque hay algunas diferencias entre las versiones, la funcionalidad básica de la API sigue siendo la misma, lo que permite a los equipos personalizar Jira de forma eficaz según sus necesidades específicas e integrarlo sin problemas con su ecosistema de desarrollo.
En esencia, una API (Interfaz de Programación de Aplicaciones) es un conjunto de protocolos y herramientas que especifican cómo deben interactuar los componentes de software. En el contexto de Jira, la API permite a las aplicaciones externas interactuar con Jira mediante programación, permitiendo la recuperación y manipulación de datos, así como la ejecución de acciones dentro de Jira. Jira proporciona dos tipos de API:
La API Java de Jira es una potente herramienta para los desarrolladores que crean aplicaciones o plugins personalizados de Jira. Proporciona acceso directo a los objetos y métodos Java subyacentes del servidor de Jira, permitiendo una profunda integración y personalización. Sin embargo, este nivel de acceso sólo está disponible para instalaciones de Jira in situ (Servidor o Centro de Datos), donde tienes acceso directo al servidor. Si trabajas con Jira Cloud o construyes una integración independiente, la API REST es el camino a seguir.
REST (Representational State Transfer) es un estilo arquitectónico que define un conjunto de restricciones para crear servicios web. Una API REST expone un conjunto de puntos finales HTTP a los que se puede acceder enviando peticiones con métodos HTTP específicos (GET, POST, PUT, DELETE) para realizar operaciones sobre recursos.
La API REST de Jira sigue esta arquitectura, proporcionando un amplio conjunto de puntos finales para interactuar con casi todos los aspectos de Jira, desde las incidencias y los proyectos hasta los tableros y paneles ágiles. Devuelve datos en formato JSON y admite diversos métodos de autenticación para garantizar un acceso seguro.
Una de las principales ventajas de la API REST es su independencia de plataforma: puedes llamar a la API desde cualquier dispositivo o aplicación que pueda hacer peticiones HTTP, independientemente del lenguaje de programación utilizado. Esto la convierte en la opción ideal para crear integraciones entre Jira y otras herramientas, o para programar interacciones con Jira desde la línea de comandos.
Las posibilidades son casi infinitas. Éstos son sólo algunos ejemplos de lo que puedes conseguir con la API REST de Jira:
Estos son sólo algunos ejemplos: la API REST de Jira proporciona un amplio conjunto de puntos finales que cubren casi todas las características y funciones disponibles en la interfaz de usuario de Jira. Si puedes hacerlo en Jira, lo más probable es que puedas hacerlo a través de la API.
Aunque la API REST de Jira proporciona en gran medida las mismas capacidades en Jira Cloud, Server y Data Center, hay algunas diferencias clave que debes conocer:
A pesar de estas diferencias, los conceptos básicos y los patrones de uso de la API REST siguen siendo en gran medida los mismos en todas las implantaciones. Las habilidades y conocimientos que adquieras trabajando con una versión de la API serán fácilmente transferibles a otras.
Para empezar a utilizar la API REST de Jira, necesitarás
Con estos elementos en su sitio, estás listo para empezar a hacer tus primeras peticiones a la API.
Veamos un ejemplo práctico de uso de la API REST de Jira para crear, recuperar, actualizar y buscar incidencias. Utilizaremos Postman para nuestros ejemplos, pero los principios se aplican a cualquier cliente API.
Si aún no tienes una instancia de Jira con la que trabajar, la forma más fácil de empezar es registrarte para obtener una instancia gratuita de Jira Cloud en https://www.atlassian.com/software/jira. Una vez configurado tu sitio, crea un nuevo proyecto con el que trabajar.
Para autenticar nuestras solicitudes a la API, utilizaremos un token de API. He aquí cómo generar uno:
Empecemos por recuperar los detalles de una incidencia existente:
Ahora vamos a crear una nueva incidencia a través de la API:
Cambia a la pestaña "Cuerpo", selecciona el botón de opción "sin procesar" e introduce el siguiente JSON, sustituyendo los valores project.key, issuetype.name, summary y description según corresponda:
3. Haz clic en "Enviar". Jira responderá con un estado 201 Creado y los detalles completos de la incidencia recién creada.
Para actualizar una incidencia existente, utilizamos el método PUT:
En el cuerpo de la solicitud, incluye los campos que quieras actualizar, por ejemplo:
2. Haz clic en "Enviar". Jira responderá con un estado 204 Sin contenido para indicar que la actualización se ha realizado correctamente.
Las potentes capacidades de búsqueda de Jira también son accesibles a través de la API REST mediante JQL (Lenguaje de consulta de Jira):
En el cuerpo de la petición, incluye una consulta JQL y cualquier parámetro adicional:
Esta consulta devolverá las 10 incidencias creadas más recientemente en el estado "Por hacer" del proyecto especificado, incluyendo sólo los campos resumen, estado y asignatario.
Estos ejemplos sólo arañan la superficie de lo que es posible con la API REST de Jira. A medida que te familiarices con los puntos finales y parámetros disponibles, podrás crear integraciones cada vez más complejas y potentes.
Una de las aplicaciones más potentes de la API REST de Jira es la automatización de la creación y actualización de tareas. Con Latenode, puedes configurar sofisticados flujos de trabajo que creen y actualicen automáticamente tareas en Jira basándose en datos de fuentes externas o en activadores específicos. Esto garantiza que la información de tu sistema de gestión de proyectos permanezca actualizada y oportuna, mejorando la eficiencia del equipo.
Por ejemplo, puedes crear un flujo de trabajo que cree automáticamente una nueva tarea en Jira cuando se reciba un mensaje de error de un sistema de monitorización, rellenando todos los campos necesarios y asignando la tarea al desarrollador adecuado. A medida que lleguen actualizaciones, la tarea puede actualizarse automáticamente, y cuando se resuelva la incidencia, puede cerrarse. Este enfoque racionalizado no sólo mejora el seguimiento de las incidencias, sino que también ahorra tiempo a tu equipo, permitiéndole centrarse en resolver problemas en lugar de administrarlos.
Puedes obtener más información sobre este script y la integración con Latenode en este artículo. La integración con Latenode ofrece algunas ventajas clave:
Imagina que cada correo importante de un cliente se convierte automáticamente en una tarea en Jira. Con Latenode, esto se hace realidad. Nuestra plataforma garantiza la creación de una nueva tarea en el proyecto adecuado con campos rellenados en función del contenido del correo electrónico, garantizando que no se pase por alto ninguna solicitud importante.
He aquí un ejemplo de cómo un flujo de trabajo de Latenode automatiza la creación y actualización de tareas de Jira basándose en datos de correo electrónico entrantes de una fuente externa.
Esta imagen mostraría una representación visual del flujo de trabajo en la interfaz de Latenode, con nodos conectados que representarían cada paso del proceso, desde la recepción del correo electrónico hasta la creación de la tarea en Jira.
Éste es sólo un ejemplo de cómo Latenode puede transformar tu enfoque del uso de la API de Jira con una potente automatización. De hecho, las capacidades de la plataforma son prácticamente ilimitadas: puedes crear cualquier escenario de automatización necesario para mejorar la eficiencia de tu negocio. Ya se trate de distribución automática de tareas, envío de notificaciones, seguimiento de indicadores clave de rendimiento o cualquier otra tarea, Latenode proporciona las herramientas para darles vida.
Aprovechando el constructor visual de flujos de trabajo de Latenode y su perfecta integración con la API REST de Jira, puedes diseñar e implementar fácilmente escenarios de automatización complejos, aumentando la eficacia de la gestión de proyectos y acelerando los flujos de trabajo de tu equipo.
Si necesitas ayuda o consejo sobre cómo crear tu propio script o si quieres replicar éste, ponte en contacto con nuestra comunidad de Discord, donde se encuentran los expertos en automatización de Low-code.
Cuando empieces a trabajar con conjuntos de datos más grandes en Jira, tendrás que ser consciente de cómo la API REST gestiona la paginación, la expansión de recursos anidados y el orden de los resultados.
Muchos recursos de Jira contienen referencias a otros recursos anidados. Por ejemplo, una incidencia contiene referencias a su proyecto, tipo de incidencia, creador, informador, asignatario, comentarios, archivos adjuntos, etc. Por defecto, estos recursos anidados se devuelven como stubs, que contienen sólo unos pocos campos básicos y un autoenlace al recurso completo.
Si necesitas los detalles completos de un recurso anidado, puedes utilizar el parámetro de consulta expandir para solicitar que Jira incluya el recurso completo en la respuesta. Por ejemplo, para incluir los detalles completos del proyecto y el asignatario de una incidencia:
Puedes expandir varios recursos separándolos por comas. Ten en cuenta que las expansiones pueden aumentar significativamente el tamaño de la carga útil de la respuesta, así que utilízalas con criterio.
Las solicitudes que podrían devolver un gran número de resultados (como las búsquedas JQL) se paginan por defecto. La API devolverá un número máximo de resultados por página (por defecto 50, pero personalizable hasta 100) junto con enlaces a las páginas siguiente y anterior.
Puedes controlar la paginación utilizando los parámetros startAt y maxResults:
Por ejemplo, para recuperar la segunda página de resultados con un tamaño de página de 20:
Tu aplicación tendrá que gestionar la realización de múltiples peticiones para recuperar todas las páginas de resultados.
Puedes controlar el orden de los resultados utilizando el parámetro orderBy, que acepta una lista de campos separados por comas para ordenarlos. Cada campo puede ir precedido de un - para indicar un orden descendente.
Por ejemplo, para ordenar las incidencias por fecha de creación de forma descendente, y luego por prioridad de forma ascendente:
GET .../rest/api/3/search?jql=project=TU_KEY_PROYECTO&orderBy=-creado,prioridad
No todos los campos admiten la ordenación: consulta la documentación del punto final específico para ver qué hay disponible.
Aquí tienes un par de ejemplos más avanzados que demuestran la potencia de la API REST de Jira para operaciones masivas.
Supón que tienes un archivo CSV que contiene datos de varias incidencias que quieres crear o actualizar en Jira. Puedes utilizar una herramienta como Postman para automatizar este proceso:
En la pestaña Cuerpo, selecciona el botón de opción "sin procesar" e introduce una plantilla para los datos de tu edición, utilizando variables para los campos que provendrán de tu CSV:
2. Cambia a la pestaña "Script de pre-solicitud" y añade código para leer tu archivo CSV y establecer las variables correspondientes:
3. En la ventana "Ejecutor", selecciona tu archivo CSV como archivo de datos e inicia la ejecución. Postman creará una nueva petición para cada fila de tu CSV, sustituyendo las variables del archivo.
Se trata de una potente técnica para la importación masiva de datos a Jira desde fuentes externas.
Si tus datos de origen ya están en formato JSON, puedes utilizar el punto final de creación/actualización masiva para procesar varias incidencias en una sola solicitud:
POST https://your-domain.atlassian.net/rest/api/3/issue/bulk
El cuerpo de la solicitud debe contener una matriz de objetos de creación/actualización de incidencias, cada uno de ellos siguiendo el mismo formato que una solicitud de creación/actualización de una sola incidencia:
Esto creará dos incidencias en una solicitud: una Tarea en el proyecto PROJ1 y un Error en el proyecto PROJ2. Puedes incluir hasta 50 incidencias en una única solicitud masiva.
El punto final masivo también es útil para realizar transiciones, actualizaciones y eliminaciones masivas. Por ejemplo, para pasar varias incidencias al estado "Terminado":
Esto supone que "31" es el ID de tu transición "Terminado"; puedes encontrar las transiciones disponibles para un tipo de incidencia a través del punto final /rest/api/3/issue/{issueIdOrKey}/transitions.
La API REST de Jira es una herramienta inmensamente potente para integrar Jira con otros sistemas, automatizar tareas y ampliar las capacidades de Jira. En esta guía, hemos cubierto los fundamentos de la API, incluyendo:
Sin embargo, sólo hemos arañado la superficie. La API REST de Jira proporciona puntos finales para trabajar con casi todos los aspectos de Jira, desde proyectos y tablones hasta usuarios y permisos. A medida que construyas tus integraciones, asegúrate de consultar la documentación oficial de Atlassian para obtener la información más actualizada y completa.
Con la API REST de Jira en tu kit de herramientas, las posibilidades de lo que puedes hacer con Jira son casi infinitas. Tanto si estás creando un panel de informes personalizado, sincronizando datos con otro sistema o automatizando flujos de trabajo complejos, la API te proporciona la flexibilidad y la potencia que necesitas para hacerlo realidad.
Jira Cloud admite OAuth 2.0 y tokens de API para la autenticación. Para OAuth, tendrás que registrar tu aplicación en la consola de desarrollador de Atlassian para obtener un ID de cliente y un secreto. Los tokens de API son una opción más sencilla para scripts e integraciones personales. Jira Server y Data Center admiten Basic Auth (nombre de usuario y contraseña) y autenticación basada en sesión mediante cookies.
Aunque los puntos finales básicos y las funcionalidades son en gran medida los mismos, hay algunas diferencias clave:
Consulta siempre la documentación específica de tu implementación de Jira para asegurarte de que utilizas las URL y los parámetros correctos.
Jira Cloud impone límites de velocidad para garantizar la estabilidad y el rendimiento del servicio. Si superas el límite de velocidad, recibirás una respuesta 429 Demasiadas solicitudes.
Para evitar llegar a los límites de velocidad:
Las implantaciones de Servidores y Centros de Datos tienen la limitación de velocidad desactivada por defecto, pero los administradores pueden optar por activarla y configurarla si es necesario.
Sí, Jira Server y Data Center tienen una API REST que es en gran medida similar a la API de Jira Cloud. Las principales diferencias son:
Consulta la documentación de la api rest específica del Servidor/Centro de Datos para obtener la información más precisa para tu versión de Jira.
La API REST de Jira es una forma potente y flexible de integrar Jira en tu flujo de trabajo de desarrollo. Tanto si trabajas en la nube como si gestionas tu propio servidor, la API te proporciona las herramientas que necesitas para automatizar, personalizar y ampliar Jira para que se adapte a las necesidades únicas de tu equipo. Con un poco de exploración y experimentación, podrás liberar todo el potencial de Jira y llevar tu gestión de proyectos al siguiente nivel.