fga-eps-mds / 2022-1-MeasureSoftGram-Doc

Repositório destinado à documentação do projeto MeasureSoftGram para a disciplinas de EPS durante o semestre 01/2022
https://fga-eps-mds.github.io/2022-1-MeasureSoftGram-Doc/
GNU General Public License v3.0
0 stars 1 forks source link

Portar parser para coletar métricas do `SonarQube` #130

Open durvalcarvalho opened 2 years ago

durvalcarvalho commented 2 years ago

História de Usuário

Como Valéria Gostaria que o sistema tivesse um endpoint que recebesse o JSON do SonarQube e salvasse as métricas Para assim ser possível posteriormente calcular o valor das demais entidades do modelo

Critérios de aceitação

Observações

É preciso que o serviço service seja capaz de receber o JSON que contém as métricas do SonarCube e salve em seu banco de dados. Para isso é preciso modelar a tabela Metrics que irá armazenar os dados calculados pelo Sonar, uma vez que haverá outras partes do sistema que irá requisitar o valor mais recente de determinada métricas e também o histórico de valores de uma métricas.

Tarefas

durvalcarvalho commented 2 years ago

Todos as métricas disponíveis no Sonar já estão salvas na tabela Supported metrics no banco do Heroku. Para cadastrá-las localmente basta rodar o comando python manage.py load_initial_data.

Para salvar uma métrica coletada basta usar a tabela Collected metrics. As tuplas dessa tabelas precisam da chave estrangeira da métrica em questão (referência para a tabela Supported metrics) e um valor.

A sugestão é que se use o endpoint organizations/1/repository/1/import/sonarqube-metrics/

durvalcarvalho commented 2 years ago

Sugestão de roteiro de validação da US

1. Obtenha um JSON do SonarQube

Isso pode ser feito fazendo uma requisição diretamente a API do SonarQube OU por meio de um dos arquivos já salvos no repositórios dos projetos da disciplina de EPS.

Link do analytics-raw-data do projeto measuresoftgram

2. Envie esse JSON para a API do MeasureSoftGram

A maneira mais fácil de se fazer isso é por meio da Browsable API do MeasureSoftGram. Para isso acesse o link e cole o conteúdo do JSON no campo Content:

Link: https://measuresoftgram-service.herokuapp.com/api/v1/organizations/8/products/6/repositories/11/collectors/sonarqube/

image

3. Confira no endpoint que lista o valor atual das métricas se os valores estão condizentes aos valores contidos no JSON

O link que lista os valores das métricas do repositório do exemplo é: https://measuresoftgram-service.herokuapp.com/api/v1/organizations/8/products/6/repositories/11/historical-values/metrics/

Observação: Caso você tenha enviado o JSON para outro repositório, utiliza o ID da organização, do produto e do repositório em questão.