github rest api tutorial rest api support github
GitHub REST API - interfejs do programowej interakcji z GitHub:
We wcześniejszych samouczkach w witrynie GitHub badamy różne aspekty użytkowania z perspektywy programisty przy użyciu interfejsu internetowego.
Obecnie większość organizacji przygląda się możliwościom automatyzacji w prawie każdym obszarze, a interfejsy API REST były przydatne do automatyzacji różnych scenariuszy dla różnych narzędzi.
Oczywiście mogą istnieć również inne obszary, w których można by użyć REST API.
=> Odwiedź tutaj, aby zapoznać się z ekskluzywną serią samouczków szkoleniowych GitHub .
Czego się nauczysz:
Integracja GitHub REST API
Interfejsy API REST (Representational State Transfer) używają głównie żądań HTTP do wykonywania następujących czynności.
- OTRZYMAĆ - Odzyskaj zasób
- PUT / PATCH - Zaktualizuj zasób
- POCZTA - Utwórz zasób
- KASOWAĆ - Usuń zasób
Nie będziemy zagłębiać się w sposób działania REST API, raczej przejdziemy bezpośrednio do obsługi REST API w GitHubie, używając KĘDZIOR polecenie, aby wykonać większość zadań, które widzieliśmy w naszych poprzednich samouczkach na GitHub za pośrednictwem REST API.
Bieżąca wersja GitHub API to v3, a ten samouczek obejmuje najważniejsze czynności, których programista potrzebuje za pośrednictwem tych interfejsów API.
Tworzenie osobistego tokena dostępu
Aby interfejsy API REST działały z wiersza poleceń, musimy uwierzytelnić się na serwerze GitHub. Dlatego musimy podać nasze poświadczenia. Cóż, nie chcemy ujawniać naszego hasła używanego z naszym kontem GitHub, dlatego wygenerujemy osobisty token dostępu do użycia z wierszem poleceń do uwierzytelnienia w GitHub.
Zaloguj się na swoje konto GitHub i kliknij Ustawienia pod Twoim profilem.
Iść do Ustawienia programisty -> Osobiste tokeny dostępu. Wygeneruj nowy token.
Dodaj nazwę i wybierz zakres dostępu do interfejsu API i kliknij Utwórz token.
Na następnym ekranie skopiuj token i zapisz go w pliku. Ten token będzie używany w wierszu poleceń w celu uzyskania dostępu do interfejsu API GitHub.
który z poniższych jest przykładem eksploracji danych
Utworzony token może być również używany podczas git clone operacja na żądanie podania hasła. Teraz, gdy mamy już token, zobaczymy, jak uzyskać dostęp do API z wiersza poleceń za pomocą programu CURL.
Jako warunek wstępny musisz pobrać i zainstalować 'kędzior' .
Magazyn
Przedstawione tutaj przykłady interfejsu API REST działają na komputerze z systemem Windows. Ta sekcja przedstawia niektóre operacje repozytorium GitHub.
# 1) Aby wyświetlić repozytoria publiczne dla użytkownika, uruchom następujące polecenie w jednym wierszu.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#dwa) Aby wyświetlić repozytoria publiczne w ramach organizacji.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Utwórz repozytorium osobiste.
curl -X POST -u: https://api.github.com/user/repos -d „{” nazwa ”: ” Demo_Repo ”}”
W powyższym poleceniu nazwa jest parametrem. Przyjrzyjmy się innym parametrom, których można użyć podczas tworzenia osobistych repozytoriów użytkowników.
curl -X POST -u: https://api.github.com/user/repos -d „{” nazwa ”: ” Demo_Repo ”, ” description ”: ” To jest pierwsze repozytorium przez API ”, ” strona główna ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
W powyższym poleceniu nazwa, opis, strona główna, public, has_projects, has_wiki to wszystkie parametry, które przyjmują wartość ciągu i są zawarte w ”. Zwróć również uwagę, że między: a jest SPACJA
Na przykład, parametr public sprawia, że repozytorium jest publiczne. Polecenie umożliwia również tworzenie spraw, projektów, wiki.
# 4) Zmień nazwę repozytorium.
curl -X POST -u: -X PATCH -d „{” nazwa ”: ” ”}” https://api.github.com/repos//
# 5) Zaktualizuj has_wiki parametr w repozytorium i ustaw wartość na false.
curl -u: -X PATCH -d „{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Usuń repozytorium.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Utwórz repozytorium w organizacji.
curl -X POST -u: https://api.github.com/orgs//repos „{” Nazwa ”: ” Demo_Repo_In_Org ”, ” description ”: ” To jest pierwsze repozytorium w organizacji przez API ”, ” strona główna ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
# 8) Lista rozwidleń dla repozytorium.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Powyższe polecenie wyświetli adres URL do przeglądania rozwidlonego repozytorium. To samo można zobaczyć w repozytorium użytkowników i „Insights TAB => Forks” .
curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Powyższe polecenie wyświetli adres URL do sklonowania rozwidlonego repozytorium.
# 9) Rozwidlaj repozytorium w organizacji.
curl -X POST -u: -d „{” organizacja ”: ” ”}” https://api.github.com/repos///forks
Współpracownicy
# 1) Lista współpracowników dla repozytorium.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w login
#dwa) Sprawdź, czy użytkownik jest na liście współpracowników.
curl -X GET -u: https://api.github.com/repos///collaborators/
Jeśli użytkownik jest częścią współpracownika, wówczas nie ma treści wyświetlanych jako dane wyjściowe, w przeciwnym razie wyświetlany jest następujący komunikat.
{
„Message”: „nie jest użytkownikiem”,
„Document_url”: „https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Sprawdź uprawnienia użytkownika.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Dodaj użytkownika jako współpracownika do repozytorium.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Opublikuj to, zaproszona osoba będzie musiała zaakceptować zaproszenie, aby dołączyć jako współpracownik. Jeśli użytkownik jest już dodany jako współpracownik, wówczas żadna treść nie jest wyświetlana, w przeciwnym razie wyświetlane są wyniki.
# 5) Usuwanie użytkownika jako współpracownika.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
Żadna treść nie jest wyświetlana po pomyślnym uruchomieniu polecenia.
Organizacja
Uwaga: Tworzenie organizacji nie jest obsługiwane przez interfejs API GitHub.
# 1) Lista wszystkich kont organizacji dla użytkownika.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w login
#dwa) Zaktualizuj organizację.
curl -X PATCH -u: -d „{” name ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” email ”: ” vniranjan72 @ outlook .com ”, ” location ”: ” Bangalore ”, ” ”description ”: ”Aktualizacja danych organizacji ”} ”https://api.github.com/orgs/
Gałęzie
# 1) Lista gałęzi w repozytorium użytkowników. Polecenie wyświetli listę wszystkich gałęzi w repozytorium.
curl -X GET -u: https://api.github.com/repos///branches | grep -w nazwa
#dwa) Wyświetl wszystkie chronione gałęzie w repozytorium użytkowników.
curl -X GET -u: https://api.github.com/repos///branches ? protected = true | grep -w nazwa
# 3) Wyświetl wszystkie niechronione gałęzie w repozytorium użytkowników
curl -X GET -u: https://api.github.com/repos///branches ? protected = false | grep -w nazwa
# 4) Usuń ochronę gałęzi.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Pull Requests
# 1) Lista żądań ściągnięcia.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w tytuł
Opcje parametru stanu to Otwarte, Zamknięte, Wszystkie.
#dwa) Utwórz żądanie ściągnięcia.
curl -X POST -u: -d „{” tytuł ”: ” Dodano świetną funkcję ”, ” body ”: ” Wyciągnij wielką zmianę wprowadzoną do gałęzi głównej ”, ” head ”: ” Feature ”, ” base ”: ” master ”}” https://api.github.com/repos///pulls
# 3) Podaj liczbę utworzonych żądań ściągnięcia.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w liczba
# 4) Zaktualizuj treść żądania ściągnięcia lub dowolny inny parametr (maksymalnie 250 tylko zatwierdzeń).
curl -X PATCH -u: -d „{” body ”: ” Obowiązkowe, aby przeciągnąć wielką zmianę dokonaną w gałęzi funkcji do gałęzi głównej ”}” https://api.github.com/repos///pulls / 31
# 5) Lista zatwierdzeń żądań ściągnięcia.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Lista plików żądań ściągnięcia (maksymalnie 300 plików).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w nazwa_pliku
# 7) Merge pull request.
curl -X PUT -u: -d „{” komunikat_ o zatwierdzeniu ”: ” Dobre zatwierdzenie ”}” https://api.github.com/repos///pulls/31 /iść
Odpowiedź w przypadku połączenia
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
„Połączone”: prawda,
„Message”: „pull request został pomyślnie połączony”
}
Odpowiedź, jeśli nie można scalić żądania ściągnięcia
{
„Message”: „Pull Request nie można łączyć”,
„Document_url”: „https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Etykiety, kamienie milowe i problemy
Etykiety
# 1) Wypisz wszystkie etykiety w repozytorium.
curl -X GET -u: https://api.github.com/repos///labels | grep -w nazwa
#dwa) Wymień określoną etykietę w repozytorium.
curl -X GET -u: https://api.github.com/repos///labels / pluskwa
# 3) Aby utworzyć etykietę.
curl -X POST -u: -d „{” nazwa ”: ” wada ”, ” opis ”: ” Aby zgłosić usterkę ”, ” kolor ”: ” ff493b '}' https://api.github.com/repos///labels
Szesnastkowy kod koloru dla kolor parametr można ustawić z Kolor sześciokątny
# 4) Zaktualizuj etykietę
curl -X PATCH -u: -d „{” color ”: ” 255b89 ”}” https://api.github.com/repos///labels /wada
# 5) Usuń etykietę
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Zagadnienia
# 6) Wymień konkretny problem w repozytorium.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w tytuł
# 7) Wypisz wszystkie sprawy w repozytorium.
curl -X GET -u: https://api.github.com/repos///issues | grep -w tytuł
# 8) Utwórz problem.
curl -X POST -u: -d „{” tytuł ”: ” Nowa strona powitalna ”, ” body ”: ” Aby zaprojektować nową stronę ”, ” etykiety ”: (” ulepszenie ”), ” kamień milowy ”: ” 3 ”, ” przypisane ”: (” ”, ”
W powyższym poleceniu etykiety i cesjonariusze parametry to tablica ciągów, w której można podać wiele wartości. Stan parametr będzie miał również wartość otwarte lub zamknięte.
# 9) Dodaj etykietę do problemu.
curl -X POST -u: -d „{” etykiety ”: (” rozszerzenie ”)}” https://api.github.com/repos///issues / 30 / etykiety
w modelu OSI, która warstwa jest na dole i reprezentuje sprzęt tworzący sieć?
# 10) Edytuj problem i zaktualizuj parametry Na przykład, Etykiety do tego.
curl -X PATCH -u: -d „{” etykiety ”: (” błąd ”, ” wzmocnienie ”)}” https://api.github.com/repos///issues / 30
W powyższym poleceniu zaktualizuj etykiety dla numeru wydania 30.
#jedenaście) Usuń etykietę z określonego problemu.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Usuń WSZYSTKIE etykiety z określonego problemu.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
Kamienie milowe
# 13) Wymień wszystkie kamienie milowe.
curl -X GET -u: -d „{” stan ”: (” otwórz ”)}” https://api.github.com/repos///milestones | grep -w tytuł
# 14) Wypisz szczegóły konkretnego Kamienia milowego.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w tytuł
#piętnaście) Utwórz kamień milowy.
curl -X POST -u: -d „{” tytuł ”: ” R5 ”, ” stan ”: ” otwarte ”, ” opis ”: ” Śledź kamień milowy R5 ”, ”Due_on ”: ”2019-12-05T17: 00: 01Z ”} ” https://api.github.com/repos///milestones
W powyższym poleceniu due_on to sygnatura czasowa ISO 8601 w RRRR-MM-DDTHH: MM: SSZ format. Więcej na ten temat można znaleźć @ ISO 8601
# 16) Zaktualizuj kamień milowy.
curl -X PATCH -u: -d „{” stan ”: ” zamknięte ”}” https://api.github.com/repos///milestones / 3
# 17) Usuń kamień milowy.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Drużyny
# 1) Lista zespołów w organizacji.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w nazwa
Lista według identyfikatora zespołu
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#dwa) Lista zespołów według użytkownika.
curl -X GET -u: https://api.github.com/user/teams | grep -w nazwa
# 3) Utwórz zespół, dodaj członków i dodaj repozytorium do zespołu.
curl -X POST -u: -d „{” nazwa ”: ” ”, ” opis ”: ” Wprowadź krótki opis ”, ” opiekunowie ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Edytuj nazwę i opis zespołu.
curl -X PATCH -u: -d „{” nazwa ”: ” Nowa nazwa zespołu ”, ” opis ”: ” Najnowszy opis ”}” https://api.github.com/teams/
Identyfikator zespołu można pobrać, uruchamiając polecenie z kroku 1.
# 5) Dodaj repozytorium do istniejącego zespołu.
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Usuń repozytorium z zespołu.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Usuń zespół.
curl -X DELETE -u: https://api.github.com/teams/
Przeszukaj repozytoria, kod, problemy
Search API umożliwia wyszukiwanie dowolnego elementu.
# 1) Na przykład, jeśli chcesz przeszukać wszystkie repozytoria należące do określonego użytkownika.
curl -X GET https://api.github.com/search/repositories?q=user: | grep -w „nazwa”
Wymagany parametr to co który zawiera kryteria wyszukiwania składające się ze słów kluczowych i kwalifikatorów w celu ograniczenia wyszukiwania w określonym obszarze w Github.
#dwa) Przeszukaj wszystkie repozytoria należące do konkretnego użytkownika, które zawierają słowa V i Niranjan w pliku README
curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w nazwa
# 3) Wyszukaj słowo kluczowe w treści pliku. W poniższym przykładzie wyszukaj słowo kluczowe „System” i „addEmployee” w pliku w repozytorium należącym do użytkownika.
curl -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w nazwa
# 4) Wyszukaj słowo kluczowe „witamy” w otwartych sprawach i oznacz jako ulepszenie.
curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Wyszukaj słowo kluczowe „adres” w zamkniętych sprawach i oznacz jako ulepszenie.
curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Wydania
# 1) Wyświetl listę wydań w repozytorium według nazwy i identyfikatora znacznika.
curl -X GET -u: https://api.github.com/repos///releases | grep -w nazwa_tagu
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#dwa) Uzyskaj szczegółowe informacje o pojedynczym wydaniu.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nazwa_tagu
curl -X GET -u: https://api.github.com/repos///releases / | grep -w body
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nazwa
# 3) Poznaj szczegóły NAJNOWSZEJ wersji.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nazwa_tagu
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nazwa
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w body
# 4) Uzyskaj szczegóły wydania według tagu.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w nazwa
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w body
# 5) Utwórz wersję.
curl -X POST -u: -d „{” nazwa_tagu ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, ”Body ”: ”To jest dla wersji 3.0 produktu ”, ”draft ”: “false”, ”prerelease ”: “false”} ” https://api.github.com/repos//
Uwaga:W poleceniu tworzenia zwolnienia parametry „wersja robocza” i „wersja wstępna” przyjmują wartości logiczne. Wpisz prawdę lub fałsz bez ”.
- Wartość robocza false oznacza, że opublikowana wersja została utworzona i w rzeczywistości jest to wersja niepublikowana.
- Prerelease false oznacza, że jest to pełne wydanie. Prawdziwa wartość oznacza, że jest to wersja wstępna.
# 6) Edytuj lub zaktualizuj wydanie.
curl -X PATCH-u: -d „{” nazwa_tagu ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Usuń wydanie.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Wymień zasoby do wydania.
curl -X DELETE-u: https://api.github.com/repos//
Wniosek
W tym samouczku GitHub REST API widzieliśmy, jak interfejsy API REST mogą być używane do różnych działań w celu GET, PUT, POST, PATCH, DELETE.
Adres URL używany przez REST API do bezpośredniej współpracy z GitHub.com to https://api.github.com. Natomiast jeśli zespoły używają GitHub Enterprise w swojej organizacji, wówczas adres URL do użycia z REST API to https: /// api / v3
Wszystkie samouczki z tej serii do tej pory koncentrowały się na wykorzystaniu GitHub z punktu widzenia programisty, a także na najlepszych praktykach współpracy podczas pracy w zespole nad kontrolą wersji różnych typów artefaktów bezpośrednio na GitHub, a nie lokalnie.
Nasz nadchodzący samouczek skupi się na tym, jak programista będzie pracował w trybie offline na lokalnym repozytorium sklonowanym z GitHub przy użyciu interfejsów klienta Git, takich jak GitHub Desktop i TortoiseGit i odeślij zmiany z powrotem do zdalnego repozytorium.
=> Odwiedź tutaj, aby nauczyć się GitHub od podstaw.
rekomendowane lektury
- Samouczek dotyczący interfejsu API REST: Architektura i ograniczenia interfejsu API REST
- Kody odpowiedzi Rest API i rodzaje żądań odpoczynku
- Samouczek GitHub dla programistów | Jak korzystać z GitHub
- Testowanie REST API z ogórkiem przy użyciu metody BDD
- 10 najlepszych narzędzi do testowania API w 2021 r. (Narzędzia testowe SOAP i REST API)
- Testowanie REST API z Spring RestTemplate i TestNG
- Jak zautomatyzować żądania API za pomocą Rest Assured i Jenkins
- Parasoft SOAtest Tutorial: Bezskryptowe narzędzie do testowania API