Lien de téléchargement de L'Api Github zip ou tarball
il y avait un bon lien ici sur la façon dont la chaîne zip/tarball est créée
mais je regarde le Github APIv3 et je me demandais si je ratais quelque chose.
-
y a-t-il un moyen d'obtenir le lien zip/tarball via un appel API?
-
si non, y a-t-il un moyen de construire cette chaîne sans utiliser le binaire git ou la bibliothèque? Sens, puis-je utiliser divers appels API pour extraire des données th un besoin et assembler à L'URL dont j'ai besoin?
je sais que la deuxième question est un peu déraisonnable pour stackoverflow et c'est un peu un projet amusant pour moi, donc je préférerais sur la deuxième question si vous avez juste un peu poussé dans la bonne direction plutôt que de jeter un code snippet. Ou m'a juste dit si c'était possible.
2 réponses
Vous pouvez wget
votre moyen de sortir de l'dépôt GitHub pour obtenir un fichier tar ( archive ):
wget --no-check-certificate https://github.com/User/repo/archive/master.tar.gz
# better, if the certificate authorities are present:
wget https://github.com/User/repo/archive/master.tar.gz
vous obtiendra un fichier nommé 'master' de l'Utilisateur 's repo 'repo'.
le mise à jour de l'url de L'API V3 est:
https://api.github.com/repos/User/repo/:archive_format/:ref
#
# two possibilities for fomat:
https://api.github.com/repos/User/repo/tarball/master
https://api.github.com/repos/User/repo/zipball/master
# from github example:
$curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz
vous pouvez alors tar xpvf master
, obtenir l'archive complète.
Il va créer un répertoire suivant le nom convention décrite dans la question que vous avez mentionnée .
aucun binaire git n'est nécessaire pour obtenir une archive de GitHub, grâce à leur service de téléchargement "Nodeload" .
ligemer
proposé dans un edit l'exemple suivant:
Edit 2016-08-25 - Exemple D'Interpréteur De Commandes Avec Wget, Variables, et Untar:
#!/bin/bash -ex
# arguments:
# token =
# organization =
# repo name =
# branch =
wget --header="Authorization: token " --header="Accept:application/vnd.github.v3.raw" -O - https://api.github.com/repos///tarball/ | tar xz
Appel à l'aide:
$ scriptName.sh token my-organization site.com master
ci-dessus téléchargera et extraira le dossier Github dans le même répertoire que le script.
Diogo Quintela suggère dans les commentaires :
l'exemple suivant permet le téléchargement, extraire et couper le répertoire de haut niveau
curl -L https://api.github.com/repos/octokit/octokit.rb/tarball | tar xz --strip=1
la syntaxe est décrite dans les docs :
GET /repos/:owner/:repo/:archive_format/:ref
L'URL d'exemple suivant pointera (via un 302 redirect ) vers une archive zip De master
dans le hadley / devtools repo:
https://api.github.com/repos/hadley/devtools/zipball/master
(l'autre option pour archive_format
est tarball
.)
Je n'ai aucune idée depuis quand cette API est disponible.