Pracujemy nad projektem, w którym musimy wyświetlić wszystkie projekty osoby w jej repozytorium na koncie GitHub.
Czy ktoś może zasugerować, jak mogę wyświetlić nazwy wszystkich repozytoriów git konkretnej osoby, używając jej nazwy git-user?
github
github-api
user1127981
źródło
źródło
?per_page=
Skorzystaj z Github API :
/users/:user/repos
W ten sposób otrzymasz wszystkie publiczne repozytoria użytkownika. Jeśli chcesz znaleźć prywatne repozytoria, musisz uwierzytelnić się jako konkretny użytkownik. Następnie możesz użyć wywołania REST:
/user/repos
aby znaleźć wszystkie repozytoria użytkownika.
Aby to zrobić w Pythonie, zrób coś takiego:
Gdzie adres URL przekazany do funkcji jest adresem URL REST, jak w przykładach powyżej. Jeśli nie potrzebujesz uwierzytelniania, po prostu zmodyfikuj metodę, aby usunąć dodawanie nagłówka Authorization. Następnie możesz uzyskać dowolny publiczny adres URL interfejsu API za pomocą prostego żądania GET.
źródło
?per_page=100
aby uzyskać maksymalną kwotę, ale jeśli użytkownik ma więcej niż sto repozytoriów, będziesz musiał śledzić kilkanext
adresów URL wLink
nagłówku HTTP wysyłanym z odpowiedzią.Wypróbuj następujące
curl
polecenie, aby wyświetlić listę repozytoriów:Aby wyświetlić sklonowane adresy URL, uruchom:
Jeśli jest prywatny, musisz dodać swój klucz API (
access_token=GITHUB_API_TOKEN
), na przykład:Jeśli użytkownik jest organizacją, użyj
/orgs/:username/repos
zamiast tego, aby zwrócić wszystkie repozytoria.Aby je sklonować, zobacz: Jak sklonować wszystkie repozytoria jednocześnie z GitHub?
Zobacz też: Jak pobrać GitHub Release z prywatnego repozytorium za pomocą wiersza poleceń
źródło
per_page=1000
.-s
opcję docurl
polecenia, aby pozbyć się tych brzydkich pasków postępu, jak wcurl -s ...
/orgs/:username/repos
zwróć wszystkie repozytoria,/users/...
zwróć ich część, to naprawdę dziwne. nazwa użytkownika może być traktowana zarówno jako użytkownik, jak i organizacja.Jeśli masz zainstalowany jq , możesz użyć następującego polecenia, aby wyświetlić wszystkie publiczne repozytoria użytkownika
źródło
Prawdopodobnie potrzebujesz rozwiązania JSONP:
https://api.github.com/users/[user name]/repos?callback=abc
Jeśli używasz 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>
źródło
Moduł NPM repo chwyta JSON dla wszystkich transakcji repo publicznych dla jakiegoś użytkownika lub grupy. Możesz to uruchomić bezpośrednio z poziomu,
npx
więc nie musisz niczego instalować, wystarczy wybrać organizację lub użytkownika („W3C” tutaj):Spowoduje to utworzenie pliku o nazwie W3Crepos.json. Grep jest wystarczająco dobry, aby np. Pobrać listę repozytoriów:
plusy:
Cons:
npx
(lubnpm
jeśli chcesz go zainstalować naprawdę).źródło
Pobierz listę wszystkich publicznych repozytoriów użytkownika GitHub za pomocą Pythona:
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")
Odniesienie
źródło
Jest teraz opcja korzystania z niesamowitego GraphQL API Explorer .
Chciałem uzyskać listę wszystkich aktywnych repozytoriów mojej organizacji z ich odpowiednimi językami. To zapytanie robi właśnie to:
źródło
Jeśli szukasz repozytoriów organizacji-
api.github.com/orgs/$NAMEOFORG/repos
Przykład:
Możesz również dodać parametr per_page, aby uzyskać wszystkie nazwy na wypadek, gdyby wystąpił problem z paginacją.
źródło
Oto pełna specyfikacja interfejsu API repozytoriów:
https://developer.github.com/v3/repos/#list-repositories-for-a-user
GET /users/:username/repos
Parametry ciągu zapytania:
Pierwsze 5 jest udokumentowane w powyższym linku API. Parametry dla
page
iper_page
które są udokumentowane w innym miejscu i są przydatne w pełnym opisie.type
(string): Może być jednym zall
,owner
,member
. Domyślna:owner
sort
(string): Może być jednym zcreated
,updated
,pushed
,full_name
. Domyślna:full_name
direction
(ciąg): może być jednym zasc
lubdesc
. Domyślnie:asc
podczas używaniafull_name
, w przeciwnym raziedesc
page
(liczba całkowita): Bieżąca stronaper_page
(liczba całkowita): liczba rekordów na stronęPonieważ jest to interfejs API HTTP GET, oprócz cURL, możesz go wypróbować po prostu w przeglądarce. Na przykład:
https://api.github.com/users/grokify/repos?per_page=1&page=2
źródło
HTML
JavaScript
// Repozytoria Github
Jeśli chcesz ograniczyć listę repozytoriów, możesz po prostu dodać
?per_page=3
pousername/repos
.na przykład
username/repos?per_page=3
Zamiast /
username
/ możesz umieścić nazwę użytkownika dowolnej osoby na Github.źródło
Paging JSON
Poniższy kod JS jest przeznaczony do użycia w konsoli.
źródło
Odpowiedź brzmi: „/ users /: user / repo”, ale mam cały kod, który to robi w projekcie open source, którego można użyć do wystawienia aplikacji internetowej na serwerze.
Uruchomiłem projekt GitHub o nazwie Git-Captain, który komunikuje się z interfejsem API GitHub, który zawiera listę wszystkich repozytoriów.
Jest to aplikacja internetowa typu open source zbudowana przy użyciu Node.js przy użyciu interfejsu API GitHub do znajdowania, tworzenia i usuwania gałęzi w wielu repozytoriach GitHub.
Można go skonfigurować dla organizacji lub pojedynczego użytkownika.
Mam również instrukcje krok po kroku, jak to skonfigurować w read-me.
źródło
Aby uzyskać adres URL 100 repozytoriów publicznych użytkownika:
$.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>
źródło
źródło