Histórico da Página
...
A integração foi feita utilizando Azure Functions como
...
...
. Para entender melhor o porque de adotarmos essa integração, clique aqui.
Para desenvolvimento local
...
...
- Instale o "Azure Core Tools
...
- ".
...
- Se não tiver conta na Azure para uso do Storage, instale o "Azure Storage Emulator
...
- ".
...
- Instale o
...
- "ngrok", para expor externamente as
...
- API's.
- Configure o "local.settings.json":
- AzureWebJobsStorage: string de conexão do Azure Storage
- JIRA_API_HOST: endereço do API manager
- JIRA_CONSUMER_KEY: consumer key do API Manager
- JIRA_CONSUMER_SECRET: consumer secredt do API Manager
- JIRA_USER: usuário para autenticação no Jira, será o assignee da issue
- JIRA_PASSWORD: senha do usuário do Jira
- JIRA_TOKEN_PATH: path da API de token do API Manager
- JIRA_API_PATH: path comum para chamada das APIs
- JIRA_ID_COMPONENT: lista de components do Jira
- JIRA_ID_ISSUETYPE: id do tipo de issue
- JIRA_ID_PROJECT: id do projeto
- JIRA_ISSUE_PREFIX: prefixo das issues do projeto
- GITHUB_USER: usuário para autenticação no Github
- GITHUB_PASSWORD: senha do usuário do Github
...
Exemplo:
{
...
"IsEncrypted":
...
false,
...
"Values":
...
{
...
"JIRA_API_HOST":
...
...
"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:
- githubissuecomments: comentários que devem ser incluídos a issue do Jira
- githubissuestoupdate: issues do Github que deve ser atualizadas com label contendo a chave da issue do Jira
- githubopenedissues: issues que devem ser incluídas no Jira
Configuração
- Adicionar nas configurações dos repositórios do Github os webhooks
...
- /githubissue: configurado para ser ativado por eventos individuais e selecionado Issues
- /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.