Nous travaillons sur un projet où nous devons afficher tous les projets d’une personne dans son référentiel sur le compte GitHub.
Quelqu’un peut-il suggérer, comment puis-je afficher les noms de tous les repositorys git d’une personne particulière en utilisant son nom d’utilisateur git?
Utilisez l’ API Github :
/users/:user/repos
Cela vous donnera tous les référentiels publics de l’utilisateur. Si vous avez besoin de trouver des référentiels privés, vous devrez vous authentifier en tant qu’utilisateur particulier. Vous pouvez ensuite utiliser l’appel REST:
/user/repos
pour trouver tous les repos de l’utilisateur
Pour ce faire en Python, faites quelque chose comme:
USER='AUSER' API_TOKEN='ATOKEN' GIT_API_URL='https://api.github.com' def get_api(url): try: request = urllib2.Request(GIT_API_URL + url) base64ssortingng = base64.encodessortingng('%s/token:%s' % (USER, API_TOKEN)).replace('\n', '') request.add_header("Authorization", "Basic %s" % base64ssortingng) result = urllib2.urlopen(request) result.close() except: print 'Failed to get api request from %s' % url
Où l’URL transmise à la fonction est l’URL REST comme dans les exemples ci-dessus. Si vous n’avez pas besoin de vous authentifier, modifiez simplement la méthode pour supprimer l’ajout de l’en-tête Authorization. Vous pouvez ensuite obtenir n’importe quelle URL publique en utilisant une simple requête GET.
Vous pouvez utiliser le github api pour cela. Frapper https://api.github.com/users/username/repos
listera les référentiels publics de cet utilisateur.
Essayez la commande curl
suivante pour répertorier les référentiels:
GHUSER=CHANGEME; curl "https://api.github.com/users/$GHUSER/repos?per_page=100" | grep -o 'git@[^"]*'
Pour répertorier les URL clonées, exécutez:
GHUSER=CHANGEME; curl -s "https://api.github.com/users/$GHUSER/repos?per_page=1000" | grep -w clone_url | grep -o '[^"]\+://.\+.git'
Si c’est privé, vous devez append votre clé API ( access_token=GITHUB_API_TOKEN
), par exemple:
curl "https://api.github.com/users/$GHUSER/repos?access_token=$GITHUB_API_TOKEN" | grep -w clone_url
Pour les cloner, voir: Comment cloner tous les repositorys à la fois à partir de GitHub?
Voir aussi: Comment télécharger GitHub Release à partir de repo privé en utilisant la ligne de commande
Vous avez probablement besoin d’une solution jsonp:
https://api.github.com/users/[user name]/repos?callback=abc
Si vous utilisez jQuery:
$.ajax({ url: "https://api.github.com/users/blackmiaool/repos", jsonp: true, method: "GET", dataType: "json", success: function(res) { console.log(res) } });