Skip to content

Commit 3bf3bdc

Browse files
committed
[+] README.md
1 parent 53a2b9f commit 3bf3bdc

1 file changed

Lines changed: 78 additions & 2 deletions

File tree

README.md

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,78 @@
1-
# python-vs-java-metrics
2-
Comparação de Métricas de Qualidade de Repositórios Python e Java
1+
# :bar_chart: Métricas de Python vs. Métricas de Java
2+
3+
## :card_index: Sumário
4+
5+
1. [:label: Versões](#label-versões)
6+
2. [:abacus: Dados](#abacus-dados)
7+
3. [:information_source: Introdução](#information_source-introdução)
8+
4. [:fire: Instalação](#fire-instalação)
9+
5. [:busts_in_silhouette: Autores](#busts_in_silhouette-autores)
10+
11+
## :label: Versões
12+
13+
- [Sprint 1 (v0.1.0) - _current_](https://github.com/TheMarini/python-vs-java-metrics/tree/v0.1.0)
14+
15+
**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](https://github.com/TheMarini/python-vs-java-metrics).
16+
17+
## :abacus: Dados
18+
19+
As métricas - e as futuras análises sobre elas - serão baseadas conforme os dados diponíveis em [python.csv](https://github.com/TheMarini/python-vs-java-metrics/blob/v1.0.0/data/python.csv) e [java.csv](https://github.com/TheMarini/python-vs-java-metrics/blob/v1.0.0/data/java.csv) presentes neste repositório, obtidos em 30/09/2020 às 18h55 através do código descrito a seguir.
20+
21+
## :information_source: Introdução
22+
23+
Nesta primeira entrega do projeto, o objetivo foi o seguinte:
24+
25+
> **Sprint 01:** arquivo .csv com a lista dos top-100 repositórios Java e os top-100 repositórios Python, bem como os scripts de coleta utilizados para mineração e análise dos repositórios
26+
> - Valor: 5 pontos
27+
> - Entrega em 30/09/2020 até às 18:30 no Canvas e no SGA
28+
29+
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 - enquanto, paralelamente, os resultados são salvos em seus respectivos arquivos CSV.
30+
31+
32+
```GraphQL
33+
{
34+
search(type: REPOSITORY, query: "stars:>100 language:python", first: 100) {
35+
repositoryCount
36+
pageInfo {
37+
endCursor
38+
}
39+
nodes {
40+
... on Repository {
41+
nameWithOwner
42+
stargazerCount
43+
createdAt
44+
forkCount
45+
watchers {
46+
totalCount
47+
}
48+
releases {
49+
totalCount
50+
}
51+
}
52+
}
53+
}
54+
}
55+
```
56+
57+
**:warning: 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.
58+
59+
## :fire: Instalação
60+
61+
1. Instale as dependências:
62+
```
63+
npm install
64+
```
65+
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:
66+
```
67+
TOKEN=seu_token_do_GitHub_API
68+
```
69+
:information_source: Não se preocupe, caso não queira realizar o item acima, poderá informar seu _token_ diretamente na linha de comando.
70+
3. Execute:
71+
```
72+
npm start
73+
```
74+
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` :heavy_check_mark:
75+
76+
## :busts_in_silhouette: Autores
77+
78+
- [Bruno Marini](https://github.com/TheMarini)

0 commit comments

Comments
 (0)