Skip to content

Commit 6e8e2e9

Browse files
feat(trending): add trending score and sortable data
1 parent 0ccf91f commit 6e8e2e9

20 files changed

Lines changed: 2074 additions & 279 deletions

.github/workflows/tranding.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: tranding
2+
3+
on:
4+
schedule:
5+
- cron: "43 2 * * *"
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
trending:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Build trending ranking
21+
run: make trending
22+
23+
- name: Commit and push changes
24+
run: |
25+
git config user.name "github-actions[bot]"
26+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
27+
git add data/trending.json data/trending.csv data/[0-9][0-9][0-9][0-9]/
28+
if git diff --cached --quiet; then
29+
echo "No trending changes to commit"
30+
exit 0
31+
fi
32+
SNAPSHOT_DATE="$(date -u +%F)"
33+
git commit -m "Update trending ranking ${SNAPSHOT_DATE}"
34+
git push

Makefile

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@ HOST ?= 127.0.0.1
33
ROOT ?= .
44
QUERY ?= location:Italy type:org followers:>231
55
MAX_ORGS ?= 100
6+
TRENDING_LIMIT ?= 100
7+
WATCH_ORGS_FILE ?= data/watchorgs.txt
8+
IGNORE_ORGS_FILE ?= data/ignoreorgs.txt
69
DATE_ARG := $(if $(SNAPSHOT_DATE),--date $(SNAPSHOT_DATE),)
710

8-
.PHONY: serve populate
11+
.PHONY: serve populate trending
912
serve:
1013
python3 -m http.server $(PORT) --bind $(HOST) --directory $(ROOT)
1114

1215
populate:
13-
GITHUB_SEARCH_QUERY='$(QUERY)' MAX_ORGS='$(MAX_ORGS)' python3 scripts/populate.py $(DATE_ARG)
16+
GITHUB_SEARCH_QUERY='$(QUERY)' MAX_ORGS='$(MAX_ORGS)' WATCH_ORGS_FILE='$(WATCH_ORGS_FILE)' IGNORE_ORGS_FILE='$(IGNORE_ORGS_FILE)' python3 scripts/populate.py $(DATE_ARG)
17+
18+
trending:
19+
python3 scripts/trending.py --limit $(TRENDING_LIMIT)

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ L'obiettivo e' mantenere un indice semplice, verificabile e riusabile da persone
2222
- `description`: descrizione breve.
2323
- `source_url`: fonte usata per la verifica.
2424
- `last_checked`: data di ultimo controllo in formato `YYYY-MM-DD`.
25+
- `total_stargazers`: somma delle stelle su tutte le repository pubbliche dell'organizzazione.
2526

2627
## Criteri di inclusione
2728

@@ -65,6 +66,22 @@ make populate SNAPSHOT_DATE=2026-05-25
6566

6667
Se presenti, `GITHUB_TOKEN` o `GH_TOKEN` vengono usati per aumentare i limiti API.
6768

69+
### Organizzazioni ignorate
70+
71+
`data/ignoreorgs.txt` contiene i login GitHub da escludere sempre dai dati e dalle classifiche. La ignorelist ha precedenza sulla watchlist, sulla query GitHub e sugli snapshot precedenti.
72+
73+
### Organizzazioni sempre monitorate
74+
75+
`data/watchorgs.txt` contiene i login GitHub delle organizzazioni da processare sempre, anche quando non rientrano nella query di popolamento. Il file accetta una organizzazione per riga, righe vuote, commenti con `#` e URL GitHub completi.
76+
77+
Questo file e' parte del contratto dati del progetto: anche gli script futuri di scoring o trending devono leggerlo per includere sempre le organizzazioni monitorate manualmente.
78+
79+
Per usare una watchlist diversa:
80+
81+
```bash
82+
make populate WATCH_ORGS_FILE=data/watchorgs.txt
83+
```
84+
6885
Ogni esecuzione crea una fotografia in:
6986

7087
```text
@@ -82,3 +99,17 @@ I file `data/organizations.json` e `data/organizations.csv` rappresentano sempre
8299
## Automazione GitHub Actions
83100

84101
Il workflow `.github/workflows/populate.yml` esegue `make populate` ogni notte, committa le modifiche in `data/` solo se lo snapshot cambia e pusha sul branch corrente.
102+
103+
## Trending
104+
105+
La classifica viene generata con:
106+
107+
```bash
108+
make trending
109+
```
110+
111+
Il risultato viene scritto in `data/trending.json`, `data/trending.csv` e nello snapshot giornaliero `data/YYYY/MM/DD/`. Lo score combina crescita stimata a 30 giorni di follower, repository e stelle totali, piu base audience, base repository e verifica.
112+
113+
Le baseline a 30 giorni usano interpolazione lineare tra le letture disponibili. Se non esiste una lettura piu vecchia della finestra richiesta, il valore piu vecchio disponibile viene considerato costante andando indietro nel tempo.
114+
115+
Il workflow `.github/workflows/tranding.yml` aggiorna la classifica ogni notte e committa solo se cambia.

data/2026/05/25/metadata.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,17 @@
22
"snapshot_date": "2026-05-25",
33
"query": "location:Italy type:org followers:>231",
44
"max_orgs": 20,
5-
"records": 20,
6-
"generated_at": "2026-05-25T16:45:09.044188+00:00",
5+
"watch_orgs_file": "data/watchorgs.txt",
6+
"ignore_orgs_file": "data/ignoreorgs.txt",
7+
"watched_orgs": [
8+
"openapi",
9+
"alterloop"
10+
],
11+
"ignored_orgs": [
12+
"mybatis"
13+
],
14+
"records": 21,
15+
"generated_at": "2026-05-25T17:07:16.892225+00:00",
716
"source": "GitHub Search API and Organizations API",
817
"errors": []
918
}

data/2026/05/25/organizations.csv

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
1-
snapshot_date,login,name,github_url,website,location,sector,verified,description,followers,following,public_repos,public_gists,created_at,updated_at,archived_at,source_url,last_checked
2-
2026-05-25,OpenIPC,OpenIPC,https://github.com/OpenIPC,https://openipc.org,Italy,Da classificare,False,Alternative IP Camera firmware from an open community,2218,0,134,0,2018-12-22T15:41:17Z,2025-09-03T09:21:11Z,,https://github.com/OpenIPC,2026-05-25
3-
2026-05-25,italia,Developers Italia,https://github.com/italia,https://developers.italia.it,Italy,Pubblica amministrazione,True,Open source code and developers community of the Italian government,1854,0,426,0,2015-10-29T10:07:29Z,2026-05-24T12:04:11Z,,https://github.com/italia,2026-05-25
4-
2026-05-25,mybatis,MyBatis,https://github.com/mybatis,http://www.mybatis.org,"Canada, Colombia, Italy, Japan, Perú, Spain, Russia, Thailand, UK, Ukranie and USA",Da classificare,False,,1191,0,37,0,2012-02-28T21:21:10Z,2026-05-09T11:35:02Z,,https://github.com/mybatis,2026-05-25
5-
2026-05-25,unitn-drive,UniTN - DISI Drive,https://github.com/unitn-drive,,Italy,Da classificare,False,,791,0,5,0,2022-05-23T17:02:55Z,2023-06-16T11:36:14Z,,https://github.com/unitn-drive,2026-05-25
6-
2026-05-25,NyarchLinux,Nyarch Linux,https://github.com/NyarchLinux,https://nyarchlinux.moe,Italy,Da classificare,False,Nyarch Linux is a (meme) linux distribution based on Arch Linux made for very degenerated weebs,648,0,33,0,2022-12-30T13:39:51Z,2024-01-27T20:07:31Z,,https://github.com/NyarchLinux,2026-05-25
7-
2026-05-25,cheshire-cat-ai,Cheshire Cat AI,https://github.com/cheshire-cat-ai,,Italy,Da classificare,False,,623,0,25,0,2023-06-01T14:02:25Z,2024-03-06T16:11:54Z,,https://github.com/cheshire-cat-ai,2026-05-25
8-
2026-05-25,DevExpPlatform,Developer Experience Platform for Eng Group,https://github.com/DevExpPlatform,,Italy,Da classificare,False,Sperimentazione Piattaforma Corporate per gli sviluppatori,484,0,6,0,2024-06-17T13:32:11Z,2026-04-24T01:55:39Z,,https://github.com/DevExpPlatform,2026-05-25
9-
2026-05-25,Tiledesk,Tiledesk,https://github.com/Tiledesk,https://www.tiledesk.com,Italy,Da classificare,False,"Open-source platform to build and automate AI agents, streamline workflows and integrate seamlessly with your products through white-label solutions",418,0,41,0,2018-06-03T19:50:26Z,2025-09-14T17:10:10Z,,https://github.com/Tiledesk,2026-05-25
10-
2026-05-25,SPDM-Team,SPDM Team,https://github.com/SPDM-Team,spdmteam.com,Italy,Da classificare,False,Secret Police Department (mainly lego hacks department),398,0,3,0,2022-05-19T17:43:18Z,2022-05-19T17:49:35Z,,https://github.com/SPDM-Team,2026-05-25
11-
2026-05-25,robotology,Robotology,https://github.com/robotology,https://icub.iit.it,Italy,Da classificare,False,Group software repositories of the iCub eco-system (but code developed is not necessarily iCub specific!).,324,0,147,0,2012-03-29T13:49:13Z,2025-10-31T17:18:17Z,,https://github.com/robotology,2026-05-25
12-
2026-05-25,pagopa,PagoPA S.p.A.,https://github.com/pagopa,https://pagopa.it/,Italy,Societa pubblica,True,Software e servizi digitali pubblici gestiti da PagoPA S.p.A.,315,0,755,0,2019-11-14T05:21:03Z,2026-05-06T21:54:39Z,,https://github.com/pagopa,2026-05-25
13-
2026-05-25,sapienzastudentsnetwork,Sapienza Students Network,https://github.com/sapienzastudentsnetwork,https://sapienzastudents.net/,Italy,Da classificare,False,Organizzazione studentesca indipendente volta a promuovere iniziative collaborative e a favorire un senso di comunità,307,0,30,0,2021-11-30T16:47:18Z,2025-10-05T16:32:29Z,,https://github.com/sapienzastudentsnetwork,2026-05-25
14-
2026-05-25,cnr-isti-vclab,Visual Computing Lab - ISTI - CNR,https://github.com/cnr-isti-vclab,http://vcg.isti.cnr.it,Italy,Da classificare,False,,296,0,39,0,2015-07-17T08:45:26Z,2022-02-19T22:20:22Z,,https://github.com/cnr-isti-vclab,2026-05-25
15-
2026-05-25,cartabinaria,CartaBinaria,https://github.com/cartabinaria,https://cartabinaria.students.cs.unibo.it,Italy,Da classificare,False,Community of students from the Department of Computer Science and Engineering of the University of Bologna,279,0,198,0,2021-09-14T06:56:43Z,2024-10-25T15:49:36Z,,https://github.com/cartabinaria,2026-05-25
16-
2026-05-25,BendingSpoons,Bending Spoons,https://github.com/BendingSpoons,https://www.bendingspoons.com,"Milan, Italy",Da classificare,False,,274,0,3,0,2013-05-05T15:31:21Z,2026-04-24T00:52:57Z,,https://github.com/BendingSpoons,2026-05-25
17-
2026-05-25,ami-iit,Artificial and Mechanical Intelligence ,https://github.com/ami-iit,https://ami.iit.it/,Italy,Da classificare,False,,254,0,168,0,2017-05-04T15:42:54Z,2025-03-27T12:33:36Z,,https://github.com/ami-iit,2026-05-25
18-
2026-05-25,teamdigitale,Team Digitale,https://github.com/teamdigitale,https://teamdigitale.governo.it,"Rome, Italy",Pubblica amministrazione,True,Team per la Trasformazione Digitale - Presidenza del Consiglio dei Ministri - Italia,142,0,150,0,2017-01-12T14:12:28Z,2026-03-30T15:42:56Z,,https://github.com/teamdigitale,2026-05-25
19-
2026-05-25,ministero-salute,Ministero della Salute,https://github.com/ministero-salute,https://www.salute.gov.it,Italy,Pubblica amministrazione,False,Organizzazione GitHub del Ministero della Salute.,73,0,103,0,2021-04-27T13:13:21Z,2026-05-11T14:21:27Z,,https://github.com/ministero-salute,2026-05-25
20-
2026-05-25,openpolis,Openpolis,https://github.com/openpolis,http://www.openpolis.it,"Roma, Italia",Civic tech,False,"Open data, open government, open source.",49,0,71,0,2009-12-10T09:13:07Z,2020-06-01T18:16:26Z,,https://github.com/openpolis,2026-05-25
21-
2026-05-25,istat,istat,https://github.com/istat,https://www.istat.it,"Via Cesare Balbo 16, 00184 Rome",Ricerca e statistica,False,Organizzazione GitHub associata a Istat.,9,0,12,0,2023-02-10T14:31:40Z,2025-11-13T13:00:36Z,,https://github.com/istat,2026-05-25
1+
snapshot_date,login,name,github_url,website,location,sector,verified,description,followers,following,public_repos,public_gists,total_stargazers,created_at,updated_at,archived_at,source_url,last_checked
2+
2026-05-25,OpenIPC,OpenIPC,https://github.com/OpenIPC,https://openipc.org,Italy,Da classificare,False,Alternative IP Camera firmware from an open community,2218,0,134,0,5908,2018-12-22T15:41:17Z,2025-09-03T09:21:11Z,,https://github.com/OpenIPC,2026-05-25
3+
2026-05-25,italia,Developers Italia,https://github.com/italia,https://developers.italia.it,Italy,Pubblica amministrazione,True,Open source code and developers community of the Italian government,1854,0,426,0,6670,2015-10-29T10:07:29Z,2026-05-24T12:04:11Z,,https://github.com/italia,2026-05-25
4+
2026-05-25,unitn-drive,UniTN - DISI Drive,https://github.com/unitn-drive,,Italy,Da classificare,False,,791,0,5,0,19,2022-05-23T17:02:55Z,2023-06-16T11:36:14Z,,https://github.com/unitn-drive,2026-05-25
5+
2026-05-25,NyarchLinux,Nyarch Linux,https://github.com/NyarchLinux,https://nyarchlinux.moe,Italy,Da classificare,False,Nyarch Linux is a (meme) linux distribution based on Arch Linux made for very degenerated weebs,648,0,33,0,1685,2022-12-30T13:39:51Z,2024-01-27T20:07:31Z,,https://github.com/NyarchLinux,2026-05-25
6+
2026-05-25,cheshire-cat-ai,Cheshire Cat AI,https://github.com/cheshire-cat-ai,,Italy,Da classificare,False,,623,0,25,0,3375,2023-06-01T14:02:25Z,2024-03-06T16:11:54Z,,https://github.com/cheshire-cat-ai,2026-05-25
7+
2026-05-25,DevExpPlatform,Developer Experience Platform for Eng Group,https://github.com/DevExpPlatform,,Italy,Da classificare,False,Sperimentazione Piattaforma Corporate per gli sviluppatori,484,0,6,0,1,2024-06-17T13:32:11Z,2026-04-24T01:55:39Z,,https://github.com/DevExpPlatform,2026-05-25
8+
2026-05-25,Tiledesk,Tiledesk,https://github.com/Tiledesk,https://www.tiledesk.com,Italy,Da classificare,False,"Open-source platform to build and automate AI agents, streamline workflows and integrate seamlessly with your products through white-label solutions",418,0,41,0,1615,2018-06-03T19:50:26Z,2025-09-14T17:10:10Z,,https://github.com/Tiledesk,2026-05-25
9+
2026-05-25,SPDM-Team,SPDM Team,https://github.com/SPDM-Team,spdmteam.com,Italy,Da classificare,False,Secret Police Department (mainly lego hacks department),398,0,3,0,82,2022-05-19T17:43:18Z,2022-05-19T17:49:35Z,,https://github.com/SPDM-Team,2026-05-25
10+
2026-05-25,robotology,Robotology,https://github.com/robotology,https://icub.iit.it,Italy,Da classificare,False,Group software repositories of the iCub eco-system (but code developed is not necessarily iCub specific!).,324,0,147,0,2685,2012-03-29T13:49:13Z,2025-10-31T17:18:17Z,,https://github.com/robotology,2026-05-25
11+
2026-05-25,pagopa,PagoPA S.p.A.,https://github.com/pagopa,https://pagopa.it/,Italy,Societa pubblica,True,Software e servizi digitali pubblici gestiti da PagoPA S.p.A.,315,0,755,0,1662,2019-11-14T05:21:03Z,2026-05-06T21:54:39Z,,https://github.com/pagopa,2026-05-25
12+
2026-05-25,sapienzastudentsnetwork,Sapienza Students Network,https://github.com/sapienzastudentsnetwork,https://sapienzastudents.net/,Italy,Da classificare,False,Organizzazione studentesca indipendente volta a promuovere iniziative collaborative e a favorire un senso di comunità,307,0,30,0,377,2021-11-30T16:47:18Z,2025-10-05T16:32:29Z,,https://github.com/sapienzastudentsnetwork,2026-05-25
13+
2026-05-25,cnr-isti-vclab,Visual Computing Lab - ISTI - CNR,https://github.com/cnr-isti-vclab,http://vcg.isti.cnr.it,Italy,Da classificare,False,,296,0,39,0,9593,2015-07-17T08:45:26Z,2022-02-19T22:20:22Z,,https://github.com/cnr-isti-vclab,2026-05-25
14+
2026-05-25,cartabinaria,CartaBinaria,https://github.com/cartabinaria,https://cartabinaria.students.cs.unibo.it,Italy,Da classificare,False,Community of students from the Department of Computer Science and Engineering of the University of Bologna,279,0,198,0,156,2021-09-14T06:56:43Z,2024-10-25T15:49:36Z,,https://github.com/cartabinaria,2026-05-25
15+
2026-05-25,BendingSpoons,Bending Spoons,https://github.com/BendingSpoons,https://www.bendingspoons.com,"Milan, Italy",Da classificare,False,,274,0,3,0,2957,2013-05-05T15:31:21Z,2026-04-24T00:52:57Z,,https://github.com/BendingSpoons,2026-05-25
16+
2026-05-25,ami-iit,Artificial and Mechanical Intelligence ,https://github.com/ami-iit,https://ami.iit.it/,Italy,Da classificare,False,,254,0,168,0,575,2017-05-04T15:42:54Z,2025-03-27T12:33:36Z,,https://github.com/ami-iit,2026-05-25
17+
2026-05-25,teamdigitale,Team Digitale,https://github.com/teamdigitale,https://teamdigitale.governo.it,"Rome, Italy",Pubblica amministrazione,True,Team per la Trasformazione Digitale - Presidenza del Consiglio dei Ministri - Italia,142,0,150,0,328,2017-01-12T14:12:28Z,2026-03-30T15:42:56Z,,https://github.com/teamdigitale,2026-05-25
18+
2026-05-25,ministero-salute,Ministero della Salute,https://github.com/ministero-salute,https://www.salute.gov.it,Italy,Pubblica amministrazione,False,Organizzazione GitHub del Ministero della Salute.,73,0,103,0,434,2021-04-27T13:13:21Z,2026-05-11T14:21:27Z,,https://github.com/ministero-salute,2026-05-25
19+
2026-05-25,openapi,Openapi®,https://github.com/openapi,https://openapi.com/,Home of 🍕,Da classificare,False,The Largest Certified API Marketplace & Open Source Ecosystem,56,0,17,0,199,2025-10-20T14:25:43Z,2026-05-05T09:36:26Z,,https://github.com/openapi,2026-05-25
20+
2026-05-25,openpolis,Openpolis,https://github.com/openpolis,http://www.openpolis.it,"Roma, Italia",Civic tech,False,"Open data, open government, open source.",49,0,71,0,463,2009-12-10T09:13:07Z,2020-06-01T18:16:26Z,,https://github.com/openpolis,2026-05-25
21+
2026-05-25,istat,istat,https://github.com/istat,https://www.istat.it,"Via Cesare Balbo 16, 00184 Rome",Ricerca e statistica,False,Organizzazione GitHub associata a Istat.,9,0,12,0,7,2023-02-10T14:31:40Z,2025-11-13T13:00:36Z,,https://github.com/istat,2026-05-25
22+
2026-05-25,alterloop,Alterloop | Francesco Bianco,https://github.com/alterloop,https://alterloop.dev,Italy,Da classificare,False,CI/CD Experts ~ DevOps Consultancy ~ Open Source Solutions,1,0,5,0,5,2019-02-26T23:25:58Z,2025-02-17T10:34:33Z,,https://github.com/alterloop,2026-05-25

0 commit comments

Comments
 (0)