Este documento tem como objetivo servir como guia para gerar as métricas do SonarCloud para Pull Requests antigos. Este processo é relevante para caso tenha ocorrido algum problema na coleta de métricas para Pull Requests que já foram concluídos. 1. Clonar o repositório `git clone <link do repositório>` 2. Criar uma branch com o nome release-metricas. Para que seja reconhecida pelo SonarCloud como long-lived é importante que inicie com o nome "release-". Assim, as métricas serão coletadas pela API do SonarCloud. Essa branch deve ser criada tendo como base uma branch que tenha os commits relevantes para a geração das métricas, geralmente a main ou develop. `git checkout -b release-metricas` 3. Copiar no final da página do Pull Request no GitHub o hash do commit em que foi feito o merge. ![](https://hackmd.io/_uploads/ByI2TbRFh.png) 4. Retornar até o estado em que o projeto se encontrava nesse commit. `git reset --hard b46af60` 5. Configurar o workflow responsável pela geração das métricas do SonarCloud para que seja executado quando ocorrer um push na branch release-metricas. Nessa etapa também pode ser feita qualquer alteração no workflow para corrigir a coleta das métricas. ![](https://hackmd.io/_uploads/rJ6hRb0Kn.png) 6. Commitar e subir as alterações que foram feitas no workflow para a branch que foi criada. `git push origin release-metricas` 7. Aguardar o fim da execução do workflow para que as métricas sejam disponibilizadas na API do SonarCloud. 8. Obter o arquivo json no link correspondente na API do SonarCloud. Deve ser adicionado o parâmetro branch=release-metricas no final da url para que sejam obtidas as métricas da branch correta, como no exemplo a seguir. `https://sonarcloud.io/api/measures/component_tree?component=fga-eps-mds_2023.1-DNIT-EscolaService&metricKeys=files,functions,complexity,comment_lines_density,duplicated_lines_density,coverage,ncloc,tests,test_errors,test_failures,test_execution_time,security_rating&ps=500&branch=release-metricas` 9. Salvar localmente o json contendo as métricas com o nome correto, tendo como referência a data e horário em que o commit foi feito. Para visualizar essas informações pode ser utilizado o comando git show com o hash do commit. `git show b46af60` ![](https://hackmd.io/_uploads/BkT3mMAt2.png) Para esse Pull Request, o nome do arquivo seria: fga-eps-mds-2023-1-Dnit-EscolaService-06-12-2023-15-19-39-develop.json 10. Atualizar localmente a branch release-metricas com os commits da branch de origem. Caso tenha sido a main, o comando seria `git pull origin main`. 11. Repetir o processo a partir do passo 3 para os outros Pull Requests. Pode ser necessário deletar a branch release-metricas no GitHub ou forçar o próximo push com o comando `git push origin release-metricas --force`.