Estamos trabalhando em um projeto onde precisamos exibir todos os projetos de uma pessoa em seu repositório na conta GitHub.
Alguém pode sugerir, como posso exibir os nomes de todos os repositórios git de uma pessoa em particular usando seu nome de usuário git?
github
github-api
user1127981
fonte
fonte
?per_page=
developer.github.com/v3/#paginationUse a API Github :
/users/:user/repos
Isso lhe dará todos os repositórios públicos do usuário. Se você precisar descobrir repositórios privados, você precisará se autenticar como o usuário específico. Você pode então usar a chamada REST:
/user/repos
para encontrar todos os repositórios do usuário.
Para fazer isso em Python, faça algo como:
Onde o url passado para a função é o url REST, como nos exemplos acima. Se você não precisa se autenticar, simplesmente modifique o método para remover a adição do cabeçalho de autorização. Você pode obter qualquer URL de API público usando uma simples solicitação GET.
fonte
?per_page=100
para obter a quantidade máxima, mas se um usuário tiver mais de cem repositórios, você precisará seguir váriosnext
URLs noLink
cabeçalho HTTP enviado com a resposta.Tente o seguinte
curl
comando para listar os repositórios:Para listar URLs clonados, execute:
Se for privado, você precisa adicionar sua chave de API (
access_token=GITHUB_API_TOKEN
), por exemplo:Se o usuário for uma organização, use
/orgs/:username/repos
, em vez disso, para retornar todos os repositórios.Para cloná-los, consulte: Como clonar todos os repos de uma vez no GitHub?
Veja também: Como baixar a versão do GitHub do repositório privado usando a linha de comando
fonte
per_page=1000
.-s
opção ao seucurl
comando para se livrar daquelas barras de progresso feias, como emcurl -s ...
/orgs/:username/repos
devolva todos os repositórios,/users/...
devolva parte deles, isso é realmente estranho. o nome de usuário pode ser tratado como um usuário ou uma organização.Se você tiver o jq instalado, você pode usar o seguinte comando para listar todos os repositórios públicos de um usuário
fonte
Você provavelmente precisa de uma solução jsonp:
https://api.github.com/users/[user name]/repos?callback=abc
Se você 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>
fonte
O módulo NPM repos pega o JSON para todos os repositórios públicos para algum usuário ou grupo. Você pode executar isso diretamente de
npx
para que não precise instalar nada, basta escolher uma organização ou usuário ("W3C" aqui):Isso criará um arquivo chamado W3Crepos.json. Grep é bom o suficiente para, por exemplo, buscar a lista de repositórios:
prós:
contras:
npx
(ounpm
se você quiser instalá-lo de verdade).fonte
Recupere a lista de todos os repositórios públicos de um usuário GitHub usando 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")
Referência
fonte
Agora existe a opção de usar o incrível GraphQL API Explorer .
Eu queria uma lista de todos os repositórios ativos da minha organização com seus respectivos idiomas. Esta consulta faz exatamente isso:
fonte
Se estiver procurando por repos de uma organização-
api.github.com/orgs/$NAMEOFORG/repos
Exemplo:
Além disso, você pode adicionar o parâmetro per_page para obter todos os nomes, caso haja um problema de paginação
fonte
Aqui está uma especificação completa para a API de repos:
https://developer.github.com/v3/repos/#list-repositories-for-a-user
GET /users/:username/repos
Parâmetros da string de consulta:
Os 5 primeiros estão documentados no link da API acima. Os parâmetros para
page
eper_page
que estão documentados em outro lugar e são úteis em uma descrição completa.type
(string): Pode ser um dosall
,owner
,member
. Padrão:owner
sort
(string): Pode ser um doscreated
,updated
,pushed
,full_name
. Padrão:full_name
direction
(string): pode ser umasc
oudesc
. Padrão:asc
ao usarfull_name
, caso contráriodesc
page
(inteiro): página atualper_page
(inteiro): número de registros por páginaComo esta é uma API HTTP GET, além de cURL, você pode experimentar isso simplesmente no navegador. Por exemplo:
https://api.github.com/users/grokify/repos?per_page=1&page=2
fonte
HTML
JavaScript
// Github repos
Se você quiser limitar a lista de repositórios, basta adicionar
?per_page=3
depoisusername/repos
.por exemplo
username/repos?per_page=3
Em vez de /
username
/, você pode colocar o nome de usuário de qualquer pessoa no Github.fonte
JSON de paginação
O código JS a seguir deve ser usado em um console.
fonte
A resposta é "/ users /: user / repo", mas eu tenho todo o código que faz isso em um projeto de código aberto que você pode usar para criar um aplicativo da web em um servidor.
Eu criei um projeto GitHub chamado Git-Captain que se comunica com a API GitHub que lista todos os repositórios.
É um aplicativo da web de código aberto desenvolvido com Node.js, utilizando a API GitHub para encontrar, criar e excluir um branch em vários repositórios GitHub.
Ele pode ser configurado para organizações ou um único usuário.
Também tenho um passo a passo de como configurá-lo no leia-me.
fonte
Para obter o url dos 100 repositórios públicos do usuário:
$.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>
fonte
fonte