Github API PT2

Scritto da il
🍒 Cherry Bin

usiamo il trucco del giorno sui tag di github per scaricare una release da github. Innanzitutto preleviamo il nome del tag da scaricare, ad esempio la prima release tag stabile di bottles è la sesta nel json.
Quindi:

nome=$(curl "https://api.github.com/repos/bottlesdevs/bottles/tags"  | jq ".[6].name")

Ora che abbiamo il nome della release, gioca un passo fondamentale conoscere la prassi con cui, coloro che caricano le release sul repository, nominano i loro package in questa forma:

Bottles-NOMERELEASE-x86_64.FORMATORELEASE 

Va aggiunto la base dell’url, cioè:

https://github.com/bottlesdevs/Bottles/releases/download/2021.10.28-treviso

Se proprio abbiamo il dubbio, possiamo chiederlo a github, utilizzando ancora una volta le sue API!

Per l’URL della release app image di bottles ad esempio:

curl "https://api.github.com/repos/bottlesdevs/bottles/releases" | jq ".[6].assets[0].browser_download_url"

L’output è:

"https://github.com/bottlesdevs/Bottles/releases/download/2021.10.28-treviso/Bottles-2021.10.28-treviso-x86_64.AppImage"

Ora possiamo scaricarlo:

URL=$(curl "https://api.github.com/repos/bottlesdevs/bottles/releases" | jq ".[6].assets[0].browser_download_url" | tr -d '"')

wget $URL

et voilĂ .

Ovviamente per costruire un procedimento automatico user friendly c’è da lavorare un pochino, districarsi ad esempio tra i vari assets o tra i vari tag non è semplicissimo. Ma con le API di github tutto è possibile!