---
# System prepended metadata

title: Métricas SonarCloud

---

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`.