Programación
Radzivon Aljovik
Entusiasta de la automatización de bajo código
23 de julio de 2024
Jira, la versátil plataforma de gestión de proyectos y seguimiento de incidencias de Atlassian, se ha convertido en una herramienta indispensable para innumerables equipos de desarrollo de todo el mundo. Si bien 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. En el centro de todo esto se encuentra la API REST de Jira, que abre un mundo de posibilidades para automatizar tareas, crear aplicaciones personalizadas e integrar Jira sin problemas con otras herramientas de su ecosistema de desarrollo. En esta guía completa, profundizaremos en la API REST de Jira, exploraremos sus capacidades y analizaremos ejemplos prácticos para ayudarlo a comenzar.
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 en las versiones de nube y de servidor/centro de datos. Ofrece una amplia gama de capacidades, que incluyen administración de problemas, operaciones masivas e informes personalizados, con soporte para funciones avanzadas como paginación y expansión de datos. Si bien existen algunas diferencias entre las versiones, la funcionalidad principal de la API sigue siendo la misma, lo que permite a los equipos personalizar Jira de manera eficiente 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 que las aplicaciones externas interactúen con Jira de manera programática, lo que permite la recuperación y manipulación de datos, así como la ejecución de acciones dentro de Jira. Jira ofrece dos tipos de API:
La API de Jira Java es una herramienta poderosa para los desarrolladores que crean aplicaciones o complementos personalizados de Jira. Proporciona acceso directo a los objetos y métodos Java subyacentes del servidor Jira, lo que permite una integración y personalización profundas. Sin embargo, este nivel de acceso solo está disponible para instalaciones locales de Jira (servidor o centro de datos) donde tiene acceso directo al servidor. Si está trabajando con Jira Cloud o creando una integración independiente, la API REST es la mejor opción.
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 solicitudes con métodos HTTP específicos (GET, POST, PUT, DELETE) para realizar operaciones en los recursos.
La API REST de Jira sigue esta arquitectura y ofrece un conjunto completo de puntos finales para interactuar con casi todos los aspectos de Jira, desde problemas y proyectos hasta paneles y tableros ágiles. Devuelve datos en formato JSON y admite una variedad de métodos de autenticación para garantizar un acceso seguro.
Una de las principales ventajas de la API REST es su independencia de la plataforma: se puede llamar a la API desde cualquier dispositivo o aplicación que pueda realizar solicitudes 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 crear secuencias de comandos de interacciones con Jira desde la línea de comandos.
Las posibilidades son casi infinitas. A continuación, se muestran algunos ejemplos de lo que puede lograr con la API REST de Jira:
Estos son solo algunos ejemplos: la API REST de Jira ofrece un amplio conjunto de puntos finales que cubren prácticamente todas las características y funciones disponibles en la interfaz de usuario de Jira. Si puede hacerlo en Jira, es probable que pueda hacerlo a través de la API.
Si bien la API REST de Jira proporciona en gran medida las mismas capacidades en Jira Cloud, Server y Data Center, hay algunas diferencias clave que se deben tener en cuenta:
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 implementaciones. Las habilidades y los conocimientos que adquiera al trabajar con una versión de la API se podrán transferir fácilmente a otras.
Para comenzar a utilizar la API REST de Jira, necesitará:
Con estos elementos en su lugar, está listo para comenzar a realizar sus primeras solicitudes de API.
Veamos un ejemplo práctico del uso de la API REST de Jira para crear, recuperar, actualizar y buscar problemas. Usaremos Postman para nuestros ejemplos, pero los principios se aplican a cualquier cliente de API.
Si aún no tiene una instancia de Jira con la que trabajar, la forma más fácil de comenzar es registrarse para obtener una instancia gratuita de Jira Cloud en https://www.atlassian.com/software/jiraUna vez que su sitio esté configurado, cree un nuevo proyecto con el que trabajar.
Para autenticar nuestras solicitudes de API, utilizaremos un token de API. A continuación, se explica cómo generar uno:
Comencemos recuperando los detalles de un problema existente:
Ahora vamos a crear un nuevo problema a través de la API:
Cambie a la pestaña "Cuerpo", seleccione el botón de opción "sin procesar" e ingrese el siguiente JSON, reemplazando los valores de project.key, issuetype.name, summary y description según corresponda:
3. Haga clic en "Enviar". Jira responderá con el estado "201 Creado" y los detalles completos del problema recién creado.
Para actualizar un problema existente, utilizamos el método PUT:
En el cuerpo de la solicitud, incluya los campos que desea actualizar, por ejemplo:
2. Haga clic en "Enviar". Jira responderá con el estado 204 Sin contenido para indicar que la actualización se realizó correctamente.
Las potentes capacidades de búsqueda de Jira también son accesibles a través de la API REST usando JQL (Jira Query Language):
En el cuerpo de la solicitud, incluya una consulta JQL y cualquier parámetro adicional:
Esta consulta devolverá los 10 problemas creados más recientemente en el estado "Por hacer" del proyecto especificado, incluidos solo los campos de resumen, estado y asignado.
Estos ejemplos son solo una pequeña muestra de lo que es posible con la API REST de Jira. A medida que se familiarice con los puntos de conexión y los parámetros disponibles, podrá 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, puede configurar flujos de trabajo sofisticados que crean y actualizan automáticamente tareas en Jira en función de datos de fuentes externas o activadores específicos. Esto garantiza que la información en su sistema de gestión de proyectos se mantenga actualizada y oportuna, lo que mejora la eficiencia del equipo.
Por ejemplo, podría 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 monitoreo, que complete todos los campos necesarios y asigne la tarea al desarrollador correspondiente. A medida que se reciban actualizaciones, la tarea se puede actualizar automáticamente y, cuando se resuelva el problema, se puede cerrar. Este enfoque simplificado no solo mejora el seguimiento de los problemas, sino que también le ahorra tiempo a su equipo, lo que le permite centrarse en resolverlos en lugar de administrarlos.
Puede obtener más información sobre este script y la integración con Latenode en este artículo. La integración con Latenode ofrece algunos beneficios clave:
Imagine que cada correo electrónico importante de un cliente se convierte automáticamente en una tarea en Jira. Con Latenode, esto se convierte en realidad. Nuestra plataforma garantiza la creación de una nueva tarea en el proyecto correcto con campos rellenados en función del contenido del correo electrónico, lo que garantiza que no se pase por alto ninguna solicitud importante.
A continuación se muestra un ejemplo de cómo un flujo de trabajo de Latenode automatiza la creación y las actualizaciones de tareas de Jira en función de los 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 representan cada paso del proceso desde la recepción del correo electrónico hasta la creación de tareas de Jira.
Este es solo un ejemplo de cómo Latenode puede transformar su enfoque en el uso de la API de Jira con una potente automatización. De hecho, las capacidades de la plataforma son prácticamente ilimitadas: puede crear cualquier escenario de automatización necesario para mejorar la eficiencia de su negocio. Ya sea la distribución automática de tareas, el envío de notificaciones, el seguimiento de indicadores clave de rendimiento o cualquier otra tarea, Latenode proporciona las herramientas para darles vida.
Al aprovechar el generador de flujo de trabajo visual de Latenode y la integración perfecta con la API REST de Jira, puede diseñar e implementar fácilmente escenarios de automatización complejos, aumentando la eficiencia de la gestión de proyectos y acelerando los flujos de trabajo de su equipo.
Si necesitas ayuda o asesoramiento sobre cómo crear tu propio script o si quieres replicar éste, contacta con nuestra comunidad de discordia, donde se encuentran los expertos en automatización Low-code.
A medida que comience a trabajar con conjuntos de datos más grandes en Jira, deberá tener en cuenta cómo la API REST maneja 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, un Issue contiene referencias a su Proyecto, Tipo de Issue, Creador, Reportero, Asignado, Comentarios, Archivos adjuntos y más. De manera predeterminada, estos recursos anidados se devuelven como stubs, que contienen solo algunos campos básicos y un vínculo propio al recurso completo.
Si necesita los detalles completos de un recurso anidado, puede usar el parámetro de consulta expand para solicitar que Jira incluya el recurso completo en la respuesta. Por ejemplo, para incluir los detalles completos del proyecto y el asignado de un problema:
Puedes ampliar varios recursos separándolos con comas. Ten en cuenta que las ampliaciones pueden aumentar significativamente el tamaño de la carga útil de la respuesta, por lo que debes utilizarlas con prudencia.
Las solicitudes que podrían devolver una gran cantidad de resultados (como las búsquedas JQL) se paginan de forma predeterminada. La API devolverá una cantidad máxima de resultados por página (el valor predeterminado es 50, pero se puede personalizar hasta 100) junto con enlaces a las páginas anterior y siguiente.
Puede 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:
Su aplicación deberá realizar múltiples solicitudes para recuperar todas las páginas de resultados.
Puede controlar el orden de los resultados mediante el parámetro orderBy, que acepta una lista de campos separados por comas para ordenarlos. Cada campo puede tener como prefijo - para indicar orden descendente.
Por ejemplo, para ordenar los problemas por fecha de creación de manera descendente y luego por prioridad de manera ascendente:
OBTENER .../rest/api/3/search?jql=proyecto=SU_CLAVE_DE_PROYECTO&orderBy=-created,prioridad
No todos los campos admiten el pedido: consulte la documentación del punto final específico para ver qué está disponible.
A continuación se muestran un par de ejemplos más avanzados que demuestran el poder de la API REST de Jira para operaciones masivas.
Supongamos que tiene un archivo CSV que contiene datos de varios problemas que desea crear o actualizar en Jira. Puede utilizar una herramienta como Postman para automatizar este proceso:
En la pestaña Cuerpo, seleccione el botón de opción "sin procesar" e ingrese una plantilla para los datos de su problema, utilizando variables para los campos que provendrán de su CSV:
2. Cambie a la pestaña "Script de solicitud previa" y agregue código para leer su archivo CSV y configurar las variables correspondientes:
3. En la ventana "Ejecutor", seleccione su archivo CSV como archivo de datos e inicie la ejecución. Postman creará una nueva solicitud para cada fila de su CSV, sustituyendo las variables del archivo.
Esta es una técnica poderosa para importar datos en masa a Jira desde fuentes externas.
Si sus datos de origen ya están en formato JSON, puede utilizar el punto final de creación/actualización masiva para procesar varios problemas en una sola solicitud:
PUBLICACIÓN https://su-dominio.atlassian.net/rest/api/3/issue/bulk
El cuerpo de la solicitud debe contener una matriz de objetos de creación/actualización de problemas, cada uno siguiendo el mismo formato que una única solicitud de creación/actualización de problemas:
Esto creará dos problemas en una sola solicitud: una tarea en el proyecto PROJ1 y un error en el proyecto PROJ2. Puede incluir hasta 50 problemas en una única solicitud masiva.
El punto final masivo también es útil para realizar transiciones, actualizaciones y eliminaciones masivas. Por ejemplo, para realizar la transición de varios problemas al estado "Listo":
Esto supone que "31" es el ID de su transición "Listo"; puede encontrar las transiciones disponibles para un tipo de problema a través del punto final /rest/api/3/issue/{issueIdOrKey}/transitions.
La API REST de Jira es una herramienta sumamente poderosa para integrar Jira con otros sistemas, automatizar tareas y ampliar las capacidades de Jira. En esta guía, cubrimos los aspectos básicos de la API, incluidos:
Sin embargo, esto es solo el comienzo. La API REST de Jira proporciona puntos de conexión para trabajar con casi todos los aspectos de Jira, desde proyectos y tableros hasta usuarios y permisos. A medida que crea sus integraciones, asegúrese 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 su conjunto de herramientas, las posibilidades de lo que puede hacer con Jira son casi infinitas. Ya sea que esté creando un panel de informes personalizado, sincronizando datos con otro sistema o automatizando flujos de trabajo complejos, la API le brinda la flexibilidad y la potencia que necesita para lograrlo.
Jira Cloud es compatible con OAuth 2.0 y tokens API para la autenticación. Para OAuth, deberá registrar su aplicación en la consola para desarrolladores de Atlassian para obtener un ID de cliente y un secreto. Los tokens API son una opción más sencilla para scripts e integraciones personales. Jira Server y Data Center son compatibles con la autenticación básica (nombre de usuario y contraseña) y la autenticación basada en sesiones mediante cookies.
Si bien los puntos finales y las funcionalidades principales son en gran medida los mismos, existen algunas diferencias clave:
Consulte siempre la documentación específica de su implementación de Jira para asegurarse de utilizar las URL y los parámetros correctos.
Jira Cloud aplica límites de velocidad para garantizar la estabilidad y el rendimiento del servicio. Si supera el límite de velocidad, recibirá una respuesta 429 Demasiadas solicitudes.
Para evitar alcanzar los límites de velocidad:
Las implementaciones de servidores y centros de datos tienen la limitación de velocidad deshabilitada de manera predeterminada, pero los administradores pueden elegir habilitar y configurar límites de velocidad si es necesario.
Sí, Jira Server y Data Center tienen una API REST que es muy similar a la API de Jira Cloud. Las principales diferencias son:
Consulta la documentación de la API de descanso 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 su flujo de trabajo de desarrollo. Ya sea que trabaje en la nube o administre su propio servidor, la API proporciona las herramientas que necesita para automatizar, personalizar y ampliar Jira para que se ajuste a las necesidades únicas de su equipo. Con un poco de exploración y experimentación, podrá aprovechar todo el potencial de Jira y llevar la gestión de proyectos al siguiente nivel.
Aplicación uno + Aplicación dos