Comme la plupart des visiteurs de cette question, j'étais absolument frustré de trouver un moyen d'automatiser entièrement le téléchargement de la DERNIÈRE version versionnée ou d'un repo dans Github. L'avantage de cette solution est que vous n'avez pas besoin de spécifier de numéro de version ou de tag, il récupérera simplement le DERNIER .
J'ai effectué mes tests en utilisant l'utilisateur et le référentiel Github suivants:
" f1linux " = Utilisateur Github
" pi-ap " = Repo
Le nom de répertoire arbitraire dans lequel le dépôt est enregistré est défini dans:
--one-top-level="pi-ap"
DIRECT:
En utilisant les outils " Développeur Web " de Firefox (3 barres dans le coin supérieur droit), dans la section " Réseau ", j'ai trouvé que je https://api.github.com
redirigeait vers https://codeload.github.com
, donc en acheminant le curl
vers, tar
j'ai pu récupérer le dernier repo versionné et l'enregistrer sous un nom prévisible. il pourrait être opéré sur:
curl https://codeload.github.com/f1linux/pi-ap/legacy.tar.gz/master | tar xzvf - --one-top-level="pi-ap" --strip-components 1
INDIRECT:
Après avoir réalisé des téléchargements entièrement automatisés de la dernière version versionnée à l'aide d'une URL DIRECTE , j'ai concentré mon attention sur la même chose avec la redirection de Github:
curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1
Méthode préférée:
Cependant, veuillez noter que selon le commentaire de Von ci-dessous, INDIRECT est la méthode préférée
Validation supplémentaire:
Pour m'assurer que mes résultats étaient reproductibles avec d'autres dépôts Github versionnés, les mêmes tests ont été exécutés avec succès pour la doctl
boîte à outils api de Digital Ocean (ce qui a en fait commencé tout l'exercice!):
Les deux DIRECT et INDIRECT travail en utilisant la même forme que ci - dessus, juste changer le nom d' utilisateur et repo:
DIRECT:
curl https://codeload.github.com/digitalocean/doctl/legacy.tar.gz/master | tar xzvf - --one-top-level="doctl" --strip-components 1
INDIRECT:
curl -L https://api.github.com/repos/digitalocean/doctl/tarball | tar xzvf - --one-top-level="doctl" --strip-components 1