Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


...

A integração foi feita utilizando Azure Functions como

...

webhooks do Github

...

. Para entender melhor o porque de adotarmos essa integração, clique aqui.

Para desenvolvimento local

...

...

...

  • ".

...

...

  • ".

...

  • Instale o 

...

  • "ngrok", para expor externamente as

...

  • API's.
  • Configure o "local.settings.json": 
    1. AzureWebJobsStorage: string de conexão do Azure Storage
    2. JIRA_API_HOST: endereço do API manager
    3. JIRA_CONSUMER_KEY: consumer key do API Manager
    4. JIRA_CONSUMER_SECRET: consumer secredt do API Manager
    5. JIRA_USER: usuário para autenticação no Jira, será o assignee da issue
    6. JIRA_PASSWORD: senha do usuário do Jira
    7. JIRA_TOKEN_PATH: path da API de token do API Manager
    8. JIRA_API_PATH: path comum para chamada das APIs
    9. JIRA_ID_COMPONENT: lista de components do Jira
    10. JIRA_ID_ISSUETYPE: id do tipo de issue
    11. JIRA_ID_PROJECT: id do projeto
    12. JIRA_ISSUE_PREFIX: prefixo das issues do projeto
    13. GITHUB_USER: usuário para autenticação no Github
    14. GITHUB_PASSWORD: senha do usuário do Github

...

Exemplo:

{

...

"IsEncrypted":

...

false,

...


"Values":

...

{

...

"JIRA_API_HOST":

...

"apimprod.totvs.com.br",

...


"JIRA_CONSUMER_KEY":

...

"****************",

...


"JIRA_CONSUMER_SECRET":

...

"*************",

...


"JIRA_USER":

...

"integracao.jira.gith",

...


"JIRA_PASSWORD":

...

"********",

...


"JIRA_TOKEN_PATH":

...

"/api-homologacao/token",

...


"JIRA_API_PATH":

...

"/api-homologacao/jira/2.0.0",

...


"JIRA_ID_COMPONENT":

...

"1

...

-

...

THF_ATENDIMENTO,2

...

-

...

THF_GITHUB",

...


"JIRA_ID_ISSUETYPE":

...

"12700",

...


"JIRA_ID_PROJECT":

...

"15417",

...


"JIRA_ISSUE_PREFIX":

...

"DTHF1-",

...


"GITHUB_USER":

...

"devtotvs",

...


"GITHUB_PASSWORD":

...

"*****"

...

}

...

}

...

  • criar as filas

...

  • no Azure Storage:
    1. githubissuecomments: comentários que devem ser incluídos a issue do Jira
    2. githubissuestoupdate: issues do Github que deve ser atualizadas com label contendo a chave da issue do Jira
    3. githubopenedissues: issues que devem ser incluídas no Jira


Configuração

  • Adicionar nas configurações dos repositórios do Github os webhooks

...

    1. /githubissue: configurado para ser ativado por eventos individuais e selecionado Issues
    2. /githubissuecomment: configurado para ser ativado por eventos individuais e selecionado Issues comments


Fluxo da integração

Issue do Github

  • A issue criada ou alterada no Github dispara a chamada do endpont /githubissue

  • A função githubissue inclui a issue do Github na fila githubopenedissues com as informações:

...

    • Ação (criado, alterado, fechado, ...)

...

    • Título

...

    • Descrição

    • URL da api direta

    • URL da issue

  • A função jiraopenissue é disparada pela fila githubopenedissues que inclui a issue no Jira e na fila githubissuestoupdate com as informações:
    • título do Github

    • descrição do Github

    • URL da API direta do Github

    • URL da issue do Github

    • id da issue no Jira

    • chave da issue no Jira

  • A função githubupdateissue é disparada pela fila githubopenedissues que adiciona a issue do Github um label com a chave da issue o Jira

Novo comentário na issue do Github

  • O comentário adicionado ou alterado na issue no Github dispara a chamada do endpont /githubissuecomment
  • A função githubissuecomment inclui a issue do Github na fila githubissuecomments com as informações:
    • ação (criado, alterado, excluído, ...)
    • título
    • descrição
    • URL da api direta
    • URL da issue
    • labels
  • A função jiraaddcomment é disparada pela fila githubissuecomments que adiciona a o comentário a issue do Jira utilizando o label com a key para encontra-la

Observações

  • todo erro é tratado para retornar o item para a fila, garantindo que toda issue seja incluída no Jira. Mas caso o erro não seja corrigido a fila ficará travada.