Estamos trabajando en un proyecto en el que necesitamos mostrar todos los proyectos de una persona en su repositorio en la cuenta de GitHub.
¿Alguien puede sugerir cómo puedo mostrar los nombres de todos los repositorios de git de una persona en particular usando su nombre de usuario de git?
github
github-api
usuario1127981
fuente
fuente
?per_page=
developer.github.com/v3/#paginationUtilice la API de Github :
/users/:user/repos
Esto le dará todos los repositorios públicos del usuario. Si necesita encontrar repositorios privados, deberá autenticarse como el usuario en particular. Luego puede usar la llamada REST:
/user/repos
para encontrar todos los repositorios del usuario.
Para hacer esto en Python, haga algo como:
Donde la URL pasada a la función es la URL REST como en los ejemplos anteriores. Si no necesita autenticarse, simplemente modifique el método para eliminar la adición del encabezado de autorización. A continuación, puede obtener cualquier URL de API pública mediante una simple solicitud GET.
fuente
?per_page=100
para obtener la cantidad máxima, pero si un usuario tiene más de cien repositorios, deberá seguir variasnext
URL en elLink
envío del encabezado HTTP con la respuesta.Pruebe el siguiente
curl
comando para enumerar los repositorios:Para enumerar las URL clonadas, ejecute:
Si es privado, debe agregar su clave API (
access_token=GITHUB_API_TOKEN
), por ejemplo:Si el usuario es una organización, utilice
/orgs/:username/repos
en su lugar para devolver todos los repositorios.Para clonarlos, consulte: ¿Cómo clonar todos los repositorios a la vez desde GitHub?
Ver también: Cómo descargar GitHub Release desde un repositorio privado usando la línea de comandos
fuente
per_page=1000
.-s
opción a sucurl
comando para deshacerse de esas barras de progreso antiestéticas, como encurl -s ...
/orgs/:username/repos
devuelva todos los repositorios,/users/...
devuelva parte de ellos, esto es realmente extraño. el nombre de usuario puede tratarse tanto como un usuario como como una organización.Si tiene jq instalado, puede usar el siguiente comando para listar todos los repositorios públicos de un usuario
fuente
Probablemente necesite una solución jsonp:
https://api.github.com/users/[user name]/repos?callback=abc
Si usa 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>
fuente
Los repositorios del módulo NPM capturan el JSON para todos los repositorios públicos de algún usuario o grupo. Puede ejecutar esto directamente desde
npx
para que no necesite instalar nada, simplemente elija una organización o usuario ("W3C" aquí):Esto creará un archivo llamado W3Crepos.json. Grep es lo suficientemente bueno como para, por ejemplo, obtener la lista de repositorios:
pros:
contras:
npx
(onpm
si desea instalarlo de verdad).fuente
Recupere la lista de todos los repositorios públicos de un usuario de GitHub que usa 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")
Referencia
fuente
Ahora hay una opción para usar el asombroso GraphQL API Explorer .
Quería una lista de todos los repositorios activos de mi organización con sus respectivos idiomas. Esta consulta hace precisamente eso:
fuente
Si busca repositorios de una organización-
api.github.com/orgs/$NAMEOFORG/repos
Ejemplo:
También puede agregar el parámetro per_page para obtener todos los nombres en caso de que haya un problema de paginación.
fuente
Aquí hay una especificación completa para la API de repositorios:
https://developer.github.com/v3/repos/#list-repositories-for-a-user
GET /users/:username/repos
Parámetros de cadena de consulta:
Los primeros 5 están documentados en el enlace API anterior. Los parámetros para
page
yper_page
que están documentados en otra parte y son útiles en una descripción completa.type
(cadena): Puede ser uno deall
,owner
,member
. Defecto:owner
sort
(cadena): Puede ser uno decreated
,updated
,pushed
,full_name
. Defecto:full_name
direction
(cadena): puede ser uno deasc
odesc
. Predeterminado:asc
cuando se usafull_name
, de lo contrariodesc
page
(entero): página actualper_page
(entero): número de registros por páginaDado que se trata de una API HTTP GET, además de cURL, puede probar esto simplemente en el navegador. Por ejemplo:
https://api.github.com/users/grokify/repos?per_page=1&page=2
fuente
HTML
JavaScript
// Repositorios de Github
Si desea limitar la lista de repositorios, puede agregar
?per_page=3
despuésusername/repos
.p.ej
username/repos?per_page=3
En lugar de /
username
/, puede poner el nombre de usuario de cualquier persona en Github.fuente
Paging JSON
El código JS a continuación está diseñado para usarse en una consola.
fuente
La respuesta es "/ users /: user / repo", pero tengo todo el código que hace esto en un proyecto de código abierto que puede usar para instalar una aplicación web en un servidor.
Presenté un proyecto de GitHub llamado Git-Captain que se comunica con la API de GitHub que enumera todos los repositorios.
Es una aplicación web de código abierto creada con Node.js que utiliza la API de GitHub para buscar, crear y eliminar una rama en numerosos repositorios de GitHub.
Se puede configurar para organizaciones o un solo usuario.
También tengo un paso a paso sobre cómo configurarlo en el archivo read-me.
fuente
Para obtener la URL de los 100 repositorios públicos del usuario:
$.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>
fuente
fuente