Skip to content

TheMarini/python-vs-java-metrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Métricas de Python vs. Métricas de Java

📇 Sumário

  1. 🏷️ Versões
  2. 🧮 Dados
  3. ℹ️ Introdução
  4. 🔥 Instalação
  5. 👥 Autores

🏷️ Versões

Obs.: essa lista pode estar desatualizada conforme o lançamento de novas releases. A versão atualizada sempre estará no último lançamento feito, o qual se encontra na branch master.

🧮 Dados

As métricas - e as futuras análises sobre elas - serão baseadas conforme os dados diponíveis em python.csv e java.csv presentes neste repositório, obtidos em 07/10/2020 às 23h30 através do código descrito a seguir.

ℹ️ Introdução

Nesta segunda entrega do projeto, o objetivo foi o seguinte:

Sprint 02: mineração dos repositórios populares Python e Java (.csv com os valores de todas as métricas dos top-100 repositórios, bem como os scripts de coleta utilizados para mineração e análise dos repositórios)

  • Valor: 7 pontos
  • Entrega em 07/10/2020 até às 18:30 no Canvas e no SGA

Tendo isto em vista, foi desenvolvido um script em Node.js que, a partir de um token da API do GitHub, realiza uma busca paginada da query GraphQL a seguir - alternando somente o atributo language entre "Python" e "Java", conforme desejado - e analisa o LOC, SLOC e CLOC de cada repositório enquanto, paralelamente, os resultados são salvos em seus respectivos arquivos CSV.

{
    search(type: REPOSITORY, query: "stars:>100 language:python", first: 100) {
      repositoryCount
      pageInfo {
        endCursor
      }
      nodes {
        ... on Repository {
          nameWithOwner
          stargazerCount
          createdAt
          forkCount
          watchers {
            totalCount
          }
          releases {
            totalCount
          }
        }
      }
    }
  }  

⚠️ AVISO: devido há limitações da API do GitHub, só é possível ter uma boa taxa de sucesso na requisição da query acima se ela for feita de 5 em 5 resultados. Por isto, este é o número máximo de resultados por página configurado no código, necessitando então de 20 requisições no total para se chegar aos 100 desejados.

🔥 Instalação

  1. Instale as dependências:
    npm install
    
  2. (Recomendado) Crie a váriável de ambiente TOKEN a partir de um arquivo .env, na raiz do projeto, com o seguinte conteúdo:
    TOKEN=seu_token_do_GitHub_API
    
    ℹ️ Não se preocupe, caso não queira realizar o item acima, poderá informar seu token diretamente na linha de comando.
  3. Execute:
    npm start
    
  4. Pronto, agora é só esperar e os resultados estarão no diretório /data (a partir da raiz do projeto) com o nome python.csv e java.csv ✔️

👥 Autores

About

Comparação de Métricas de Qualidade de Repositórios Python e Java

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors