Programação
Radzivon Alkhovik
Entusiasta da automação de baixo código
23 de julho de 2024
O Jira, a versátil plataforma de gerenciamento de projetos e rastreamento de problemas da Atlassian, se tornou uma ferramenta indispensável para inúmeras equipes de desenvolvimento no mundo todo. Embora sua interface amigável facilite o gerenciamento de projetos e o rastreamento de problemas, o verdadeiro poder do Jira está em suas extensas opções de personalização e recursos de integração. No centro disso está a API REST do Jira, que abre um mundo de possibilidades para automatizar tarefas, criar aplicativos personalizados e integrar perfeitamente o Jira com outras ferramentas em seu ecossistema de desenvolvimento. Neste guia abrangente, vamos nos aprofundar na API REST do Jira, explorar seus recursos e apresentar exemplos práticos para ajudar você a começar.
Key Takeaways: A API REST do Jira é uma ferramenta versátil para automatizar tarefas, criar aplicativos personalizados e integrar o Jira com outras ferramentas de desenvolvimento nas versões Cloud e Server/Data Center. Ela oferece uma ampla gama de recursos, incluindo gerenciamento de problemas, operações em massa e relatórios personalizados, com suporte para recursos avançados como paginação e expansão de dados. Embora existam algumas diferenças entre as versões, a funcionalidade principal da API permanece consistente, permitindo que as equipes personalizem o Jira de forma eficiente para suas necessidades específicas e o integrem perfeitamente com seu ecossistema de desenvolvimento.
Em sua essência, uma API (Application Programming Interface) é um conjunto de protocolos e ferramentas que especificam como os componentes de software devem interagir. No contexto do Jira, a API permite que aplicativos externos interajam com o Jira programaticamente, permitindo a recuperação e manipulação de dados, bem como a execução de ações dentro do Jira. O Jira fornece dois tipos de APIs:
A API Java do Jira é uma ferramenta poderosa para desenvolvedores que criam aplicativos ou plugins Jira personalizados. Ela fornece acesso direto aos objetos e métodos Java subjacentes do servidor Jira, permitindo integração e personalização profundas. No entanto, esse nível de acesso só está disponível para instalações Jira no local (servidor ou data center) onde você tem acesso direto ao servidor. Se você estiver trabalhando com o Jira Cloud ou criando uma integração autônoma, a API REST é o caminho a seguir.
REST (Representational State Transfer) é um estilo arquitetônico que define um conjunto de restrições para criar serviços web. Uma API REST expõe um conjunto de endpoints HTTP que podem ser acessados enviando solicitações com métodos HTTP específicos (GET, POST, PUT, DELETE) para executar operações em recursos.
A API REST do Jira segue essa arquitetura, fornecendo um conjunto abrangente de endpoints para interagir com quase todos os aspectos do Jira, de problemas e projetos a painéis e painéis ágeis. Ela retorna dados no formato JSON e suporta uma variedade de métodos de autenticação para garantir acesso seguro.
Uma das principais vantagens da REST API é sua independência de plataforma - você pode chamar a API de qualquer dispositivo ou aplicativo que possa fazer solicitações HTTP, independentemente da linguagem de programação usada. Isso a torna a escolha ideal para construir integrações entre o Jira e outras ferramentas, ou para criar scripts de interações com o Jira a partir da linha de comando.
As possibilidades são quase infinitas. Aqui estão apenas alguns exemplos do que você pode conseguir com a Jira REST API:
Esses são apenas alguns exemplos - a API REST do Jira fornece um conjunto extenso de endpoints que cobrem quase todos os recursos e funções disponíveis na interface de usuário do Jira. Se você consegue fazer isso no Jira, é provável que consiga fazer isso por meio da API.
Embora a API REST do Jira forneça basicamente os mesmos recursos no Jira Cloud, Server e Data Center, há algumas diferenças importantes que você deve conhecer:
Apesar dessas diferenças, os conceitos principais e os padrões de uso da API REST permanecem basicamente os mesmos em todas as implantações. As habilidades e o conhecimento que você ganha trabalhando com uma versão da API serão facilmente transferíveis para outras.
Para começar a usar a API REST do Jira, você precisará:
Com esses elementos em vigor, você está pronto para começar a fazer suas primeiras solicitações de API.
Vamos percorrer um exemplo prático de uso da API REST do Jira para criar, recuperar, atualizar e pesquisar problemas. Usaremos o Postman para nossos exemplos, mas os princípios se aplicam a qualquer cliente de API.
Se você ainda não tem uma instância do Jira para trabalhar, a maneira mais fácil de começar é se inscrever para uma instância gratuita do Jira Cloud em https://www.atlassian.com/software/jira. Depois que seu site estiver configurado, crie um novo projeto para trabalhar.
Para autenticar nossas solicitações de API, usaremos um token de API. Veja como gerar um:
Vamos começar recuperando os detalhes de um problema existente:
Agora vamos criar um novo problema via API:
Mude para a aba "Corpo", selecione o botão de opção "bruto" e insira o seguinte JSON, substituindo os valores project.key, issuetype.name, summary e description conforme apropriado:
3. Clique em "Enviar". O Jira responderá com o status 201 Criado e os detalhes completos do problema recém-criado.
Para atualizar um problema existente, usamos o método PUT:
No corpo da solicitação, inclua os campos que deseja atualizar, por exemplo:
2. Clique em "Enviar". O Jira responderá com o status 204 Sem conteúdo para indicar que a atualização foi bem-sucedida.
Os poderosos recursos de pesquisa do Jira também podem ser acessados por meio da API REST usando JQL (Jira Query Language):
No corpo da solicitação, inclua uma consulta JQL e quaisquer parâmetros adicionais:
Esta consulta retornará os 10 problemas criados mais recentemente no status "A fazer" do projeto especificado, incluindo apenas os campos de resumo, status e responsável.
Esses exemplos apenas arranham a superfície do que é possível com a API REST do Jira. À medida que você se familiariza mais com os endpoints e parâmetros disponíveis, você será capaz de construir integrações cada vez mais complexas e poderosas.
Uma das aplicações mais poderosas da API REST do Jira é a criação de tarefas e automação de atualizações. Com o Latenode, você pode configurar fluxos de trabalho sofisticados que criam e atualizam tarefas automaticamente no Jira com base em dados de fontes externas ou gatilhos específicos. Isso garante que as informações no seu sistema de gerenciamento de projetos permaneçam atualizadas e oportunas, aumentando a eficiência da equipe.
Por exemplo, você pode criar um fluxo de trabalho que cria automaticamente uma nova tarefa no Jira quando uma mensagem de erro é recebida de um sistema de monitoramento, preenchendo todos os campos necessários e atribuindo a tarefa ao desenvolvedor apropriado. Conforme as atualizações chegam, a tarefa pode ser atualizada automaticamente e, quando o problema é resolvido, ela pode ser fechada. Essa abordagem simplificada não apenas melhora o rastreamento de problemas, mas também economiza tempo para sua equipe, permitindo que eles se concentrem na resolução de problemas em vez de administrá-los.
Você pode aprender mais sobre esse script e a integração com o Latenode neste artigo. A integração com o Latenode oferece alguns benefícios importantes:
Imagine cada e-mail importante de um cliente se transformando automaticamente em uma tarefa no Jira. Com o Latenode, isso se torna realidade. Nossa plataforma garante a criação de uma nova tarefa no projeto certo com campos preenchidos com base no conteúdo do e-mail, garantindo que nenhuma solicitação importante seja perdida.
Veja um exemplo de como um fluxo de trabalho do Latenode automatiza a criação e as atualizações de tarefas do Jira com base em dados de e-mail recebidos de uma fonte externa.
Esta imagem mostraria uma representação visual do fluxo de trabalho na interface do Latenode, com nós conectados representando cada etapa do processo, desde o recebimento de e-mail até a criação de tarefas do Jira.
Este é apenas um exemplo de como o Latenode pode transformar sua abordagem para usar a API do Jira com automação poderosa. Na verdade, os recursos da plataforma são virtualmente ilimitados - você pode criar quaisquer cenários de automação necessários para melhorar a eficiência do seu negócio. Seja distribuição automática de tarefas, envio de notificações, rastreamento de indicadores-chave de desempenho ou quaisquer outras tarefas - o Latenode fornece as ferramentas para dar vida a elas.
Ao aproveitar o criador de fluxo de trabalho visual do Latenode e a integração perfeita com a API REST do Jira, você pode facilmente projetar e implementar cenários de automação complexos, aumentando a eficiência do gerenciamento de projetos e acelerando os fluxos de trabalho da sua equipe.
Se precisar de ajuda ou conselhos sobre como criar seu próprio script ou se quiser replicar este, entre em contato nossa comunidade no Discord, onde estão localizados os especialistas em automação de baixo código.
Ao começar a trabalhar com conjuntos de dados maiores no Jira, você precisará estar ciente de como a API REST lida com paginação, expansão de recursos aninhados e ordenação de resultados.
Muitos recursos do Jira contêm referências a outros recursos aninhados. Por exemplo, um Issue contém referências ao seu Project, Issuetype, Creator, Reporter, Assignee, Comments, Attachments e muito mais. Por padrão, esses recursos aninhados são retornados como stubs, contendo apenas alguns campos básicos e um self link para o recurso completo.
Se precisar dos detalhes completos de um recurso aninhado, você pode usar o parâmetro de consulta expand para solicitar que o Jira inclua o recurso completo na resposta. Por exemplo, para incluir os detalhes completos do projeto e do cessionário de um problema:
Você pode expandir vários recursos separando-os por vírgulas. Esteja ciente de que expansões podem aumentar significativamente o tamanho do payload de resposta, então use-as criteriosamente.
Solicitações que poderiam potencialmente retornar um grande número de resultados (como pesquisas JQL) são paginadas por padrão. A API retornará um número máximo de resultados por página (padrão para 50, mas personalizável até 100) junto com links para as páginas seguintes e anteriores.
Você pode controlar a paginação usando os parâmetros startAt e maxResults:
Por exemplo, para recuperar a segunda página de resultados com um tamanho de página de 20:
Seu aplicativo precisará lidar com várias solicitações para recuperar todas as páginas de resultados.
Você pode controlar a ordem dos resultados usando o parâmetro orderBy, que aceita uma lista separada por vírgulas de campos para ordenar. Cada campo pode ser prefixado com um - para indicar ordem decrescente.
Por exemplo, para ordenar os problemas por data de criação em ordem decrescente e depois por prioridade em ordem crescente:
OBTER .../rest/api/3/search?jql=project=SUA_CHAVE_DE_PROJETO&orderBy=-criado,prioridade
Nem todos os campos suportam ordenação - consulte a documentação do endpoint específico para ver o que está disponível.
Aqui estão mais alguns exemplos avançados que demonstram o poder da API REST do Jira para operações em massa.
Suponha que você tenha um arquivo CSV contendo dados para vários problemas que você deseja criar ou atualizar no Jira. Você pode usar uma ferramenta como o Postman para automatizar esse processo:
Na aba Corpo, selecione o botão de opção "bruto" e insira um modelo para os dados do seu problema, usando variáveis para os campos que virão do seu CSV:
2. Mude para a aba "Script de pré-solicitação" e adicione o código para ler seu arquivo CSV e defina as variáveis correspondentes:
3. Na janela "Runner", selecione seu arquivo CSV como o arquivo de dados e inicie a execução. O Postman criará uma nova solicitação para cada linha em seu CSV, substituindo as variáveis do arquivo.
Esta é uma técnica poderosa para importar dados em massa para o Jira de fontes externas.
Se seus dados de origem já estiverem no formato JSON, você poderá usar o endpoint de criação/atualização em massa para processar vários problemas em uma única solicitação:
POST https://seu-dominio.atlassian.net/rest/api/3/issue/bulk
O corpo da solicitação deve conter uma matriz de objetos de criação/atualização de problemas, cada um seguindo o mesmo formato de uma única solicitação de criação/atualização de problemas:
Isso criará dois problemas em uma solicitação - uma Tarefa no projeto PROJ1 e um Bug no projeto PROJ2. Você pode incluir até 50 problemas em uma única solicitação em massa.
O endpoint em massa também é útil para executar transições, atualizações e exclusões em massa. Por exemplo, para fazer a transição de vários problemas para o status "Concluído":
Isso pressupõe que "31" seja o ID da sua transição "Concluída" - você pode encontrar as transições disponíveis para um tipo de problema por meio do endpoint /rest/api/3/issue/{issueIdOrKey}/transitions.
A API REST do Jira é uma ferramenta imensamente poderosa para integrar o Jira com outros sistemas, automatizar tarefas e estender os recursos do Jira. Neste guia, cobrimos os fundamentos da API, incluindo:
No entanto, mal arranhamos a superfície. A API REST do Jira fornece endpoints para trabalhar com quase todos os aspectos do Jira, de projetos e quadros a usuários e permissões. Conforme você constrói suas integrações, certifique-se de consultar a documentação oficial do Atlassian para obter as informações mais atualizadas e abrangentes.
Com a API REST do Jira no seu kit de ferramentas, as possibilidades do que você pode fazer com o Jira são quase infinitas. Não importa se você está criando um painel de relatórios personalizado, sincronizando dados com outro sistema ou automatizando fluxos de trabalho complexos, a API fornece a flexibilidade e o poder necessários para fazer isso acontecer.
O Jira Cloud oferece suporte a OAuth 2.0 e tokens de API para autenticação. Para OAuth, você precisará registrar seu aplicativo no console do desenvolvedor da Atlassian para obter um ID de cliente e segredo. Os tokens de API são uma opção mais simples para scripts e integrações pessoais. O Jira Server e o Data Center oferecem suporte a Basic Auth (nome de usuário e senha) e autenticação baseada em sessão usando cookies.
Embora os principais endpoints e funcionalidades sejam em grande parte os mesmos, existem algumas diferenças importantes:
Sempre consulte a documentação específica para sua implantação do Jira para garantir que você esteja usando os URLs e parâmetros corretos.
O Jira Cloud aplica limites de taxa para garantir a estabilidade e o desempenho do serviço. Se você exceder o limite de taxa, receberá uma resposta 429 Too Many Requests.
Para evitar atingir limites de taxa:
As implantações de servidor e data center têm a limitação de taxa desabilitada por padrão, mas os administradores podem optar por habilitar e configurar limites de taxa, se necessário.
Sim, o Jira Server e o Data Center têm uma REST API que é muito similar à jira Cloud API. As principais diferenças são:
Consulte a documentação da REST API específica do servidor/data center para obter as informações mais precisas para sua versão do Jira.
A API REST do Jira é uma maneira poderosa e flexível de integrar o Jira ao seu fluxo de trabalho de desenvolvimento. Não importa se você está trabalhando na nuvem ou gerenciando seu próprio servidor, a API fornece as ferramentas necessárias para automatizar, personalizar e estender o Jira para atender às necessidades exclusivas da sua equipe. Com um pouco de exploração e experimentação, você poderá desbloquear todo o potencial do Jira e levar seu gerenciamento de projetos para o próximo nível.
Aplicação Um + Aplicação Dois