Nous travaillons sur un projet où nous devons afficher tous les projets d'une personne dans son référentiel sur un compte GitHub.
Quelqu'un peut-il suggérer, comment puis-je afficher les noms de tous les référentiels git d'une personne en particulier en utilisant son nom git-user?
github
github-api
user1127981
la source
la source
?per_page=
developer.github.com/v3/#paginationUtilisez l' API Github :
/users/:user/repos
Cela vous donnera tous les référentiels publics de l'utilisateur. Si vous avez besoin de découvrir 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 dépôts de l'utilisateur.
Pour faire cela en Python, faites quelque chose comme:
Où l'url passée à 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 d'autorisation. Vous pouvez ensuite obtenir n'importe quelle URL publique d'API en utilisant une simple requête GET.
la source
?per_page=100
pour obtenir le montant maximum, mais si un utilisateur a plus d'une centaine de dépôts, vous devrez suivre plusieursnext
URL dans l'en-Link
tête HTTP envoyé avec la réponse.Essayez la
curl
commande suivante pour répertorier les référentiels:Pour répertorier les URL clonées, exécutez:
S'il est privé, vous devez ajouter votre clé API (
access_token=GITHUB_API_TOKEN
), par exemple:Si l'utilisateur est une organisation, utilisez à la
/orgs/:username/repos
place pour renvoyer tous les référentiels.Pour les cloner, consultez: Comment cloner tous les dépôts à la fois à partir de GitHub?
Voir aussi: Comment télécharger GitHub Release à partir d'un dépôt privé en utilisant la ligne de commande
la source
per_page=1000
.-s
option à votrecurl
commande pour vous débarrasser de ces barres de progression disgracieuses, comme danscurl -s ...
/orgs/:username/repos
retournez tous les dépôts,/users/...
retournez une partie d'entre eux, c'est en effet bizarre. le nom d'utilisateur peut être traité à la fois comme un utilisateur ou comme une organisation.Si jq est installé, vous pouvez utiliser la commande suivante pour lister tous les dépôts publics d'un utilisateur
la source
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) } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
la source
Le module de NPM repo saisit le JSON pour les prises en pension publique pour un utilisateur ou d'un groupe. Vous pouvez l'exécuter directement depuis
npx
pour ne pas avoir besoin d'installer quoi que ce soit, choisissez simplement une organisation ou un utilisateur ("W3C" ici):Cela créera un fichier appelé W3Crepos.json. Grep est assez bon pour récupérer par exemple la liste des dépôts:
avantages:
les inconvénients:
npx
(ounpm
si vous souhaitez l'installer pour de vrai).la source
Récupérez la liste de tous les référentiels publics d'un utilisateur GitHub à l'aide de Python:
import requests username = input("Enter the github username:") request = requests.get('https://api.github.com/users/'+username+'/repos') json = request.json() for i in range(0,len(json)): print("Project Number:",i+1) print("Project Name:",json[i]['name']) print("Project URL:",json[i]['svn_url'],"\n")
Référence
la source
Il existe maintenant une option pour utiliser l'impressionnant explorateur d'API GraphQL .
Je voulais une liste de tous les dépôts actifs de mon organisation avec leurs langues respectives. Cette requête fait exactement cela:
la source
Si vous recherchez des pensions d'une organisation-
api.github.com/orgs/$NAMEOFORG/repos
Exemple:
Vous pouvez également ajouter le paramètre per_page pour obtenir tous les noms au cas où il y aurait un problème de pagination-
la source
Voici une spécification complète de l'API repos:
https://developer.github.com/v3/repos/#list-repositories-for-a-user
GET /users/:username/repos
Paramètres de chaîne de requête:
Les 5 premiers sont documentés dans le lien API ci-dessus. Les paramètres pour
page
etper_page
qui sont documentés ailleurs et sont utiles dans une description complète.type
(string): Peut - être l' un desall
,owner
,member
. Défaut:owner
sort
(string): Peut - être l' un descreated
,updated
,pushed
,full_name
. Défaut:full_name
direction
(chaîne): peut être l'un deasc
oudesc
. Par défaut:asc
lors de l'utilisationfull_name
, sinondesc
page
(entier): page actuelleper_page
(entier): nombre d'enregistrements par pagePuisqu'il s'agit d'une API HTTP GET, en plus de cURL, vous pouvez l'essayer simplement dans le navigateur. Par exemple:
https://api.github.com/users/grokify/repos?per_page=1&page=2
la source
HTML
JavaScript
// Dépôts Github
Si vous souhaitez limiter la liste des référentiels, vous pouvez simplement ajouter
?per_page=3
aprèsusername/repos
.par exemple
username/repos?per_page=3
Au lieu de /
username
/, vous pouvez mettre le nom d'utilisateur de n'importe quelle personne sur Github.la source
Pagination JSON
Le code JS ci-dessous est destiné à être utilisé dans une console.
la source
La réponse est "/ users /: user / repo", mais j'ai tout le code qui fait cela dans un projet open-source que vous pouvez utiliser pour mettre en place une application Web sur un serveur.
J'ai lancé un projet GitHub appelé Git-Captain qui communique avec l'API GitHub qui répertorie tous les dépôts.
Il s'agit d'une application Web open source construite avec Node.js utilisant l'API GitHub pour rechercher, créer et supprimer une branche dans de nombreux référentiels GitHub.
Il peut être configuré pour les organisations ou un seul utilisateur.
J'ai une étape par étape comment le configurer également dans le read-me.
la source
Pour obtenir l'URL des 100 dépôts publics de l'utilisateur:
$.getJSON("https://api.github.com/users/suhailvs/repos?per_page=100", function(json) { var resp = ''; $.each(json, function(index, value) { resp=resp+index + ' ' + value['html_url']+ ' -'; console.log(resp); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
la source
la source