github rest api tutorial rest api support github
GitHub REST API - vmesnik za programsko interakcijo z GitHub:
V naših prejšnjih vajah o GitHubu s spletnega vmesnika raziskujemo različne vidike uporabe z vidika razvijalca.
Danes večina organizacij preučuje možnosti avtomatizacije na skoraj vseh področjih, API-ji REST pa so bili uporabni za avtomatizacijo različnih scenarijev za različna orodja.
Seveda bi lahko obstajala tudi druga področja, kjer bi lahko uporabili API-je REST.
=> Obiščite tukaj za ekskluzivno serijo vadnic za GitHub .
Kaj se boste naučili:
GitHub REST API integracija
API-ji REST (Reprezentativni prenos držav) v prvi vrsti uporabljajo zahteve HTTP za naslednje.
- GET - Pridobite vir
- PUT / PATCH - Posodobite vir
- OBJAVI - Ustvari vir
- IZBRIŠI - Izbriši vir
Ne bomo se poglobili v to, kako deluje REST API, ampak bomo neposredno vstopili v podporo REST API v GitHub z uporabo ZAVET ukaz za izvajanje večine nalog, ki smo jih videli v naših prejšnjih vadnicah na GitHubu prek REST API-jev.
Trenutna različica API-ja GitHub je v3 in ta vadnica zajema najpomembnejše dejavnosti, ki bi jih razvijalci potrebovali prek teh API-jev.
Ustvarjanje osebnega žetona za dostop
Da bodo API-ji REST delovali prek ukazne vrstice, moramo preveriti pristnost strežnika GitHub. Zato moramo predložiti svoje poverilnice. No, ne želimo razkriti svojega gesla, uporabljenega z našim računom GitHub, zato bomo ustvarili osebni žeton za dostop, ki se bo uporabljal z ukazno vrstico za overjanje v GitHub.
Prijavite se v svoj račun GitHub in kliknite Nastavitve pod svojim profilom.
Pojdi do Nastavitve za razvijalce -> Žetoni osebnega dostopa. Ustvari nov žeton.
Dodajte ime in izberite obseg za dostop do API-ja ter kliknite Ustvari žeton.
Na naslednjem zaslonu obvezno kopirajte žeton in ga shranite v datoteko. Ta žeton bo uporabljen v ukazni vrstici za dostop do API-ja GitHub.
java, ki posreduje matriko metodi
Ustvarjeni žeton lahko uporabite tudi med klon git na zahtevo za geslo. Zdaj, ko imamo žeton, bomo videli, kako dostopati do API-ja iz ukazne vrstice s programom CURL.
Kot predpogoj boste morali prenesti in namestiti 'Curl' .
Odlagališče
Primeri API-ja REST, ki so prikazani tukaj, se izvajajo v sistemu Windows. V tem razdelku bodo predstavljene nekatere operacije skladišča GitHub.
# 1) Če želite uporabniku našteti javne repozitorije, v eni vrstici zaženite naslednji ukaz.
curl -X GET -u: https://api.github.com/users//repos | grep -w klon_url
#two) Seznam javnih skladišč v organizaciji.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w klon_url
# 3) Ustvarite osebno repozitorij.
curl -X POST -u: https://api.github.com/user/repos -d “{” ime ”: ” Demo_Repo ”}”
V zgornjem imenu ukaza je parameter. Poglejmo še nekatere druge parametre, ki jih lahko uporabimo pri ustvarjanju osebnih uporabniških repozitorijev.
curl -X POST -u: https://api.github.com/user/repos -d '{' ime ': ' Demo_Repo ', ' opis ': ' To je prvi repo prek API-ja ', ' domača stran ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
V zgornjem ukazu so ime, opis, domača stran, javno, has_projects, has_wiki vsi parametri, ki imajo nizno vrednost in so zaprti v ”. Upoštevajte tudi, da obstaja PROSTOR med: in
Na primer, public parameter naredi repo javni. Ukaz omogoča tudi ustvarjanje vprašanj, projektov in wikijev.
# 4) Preimenujte repozitorij.
curl -X POST -u: -X PATCH -d “{” name ”: ” ”}” https://api.github.com/repos//
# 5) Posodobite has_wiki parameter v repozitoriju in vrednost nastavite na false.
curl -u: -X PATCH -d “{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Izbrišite skladišče.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Ustvarite repozitorij v organizaciji.
curl -X POST -u: https://api.github.com/orgs//repos '{' Ime ': ' Demo_Repo_In_Org ', ' opis ': ' To je prvi repo v organizaciji prek API-ja ', ' domača stran ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
# 8) Seznam vilic za odlagališče.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Zgornji ukaz bo navedel URL za brskanje po razcepljeni repo. Enako je razvidno iz uporabniškega repozitorija in ‘Vpogled TAB => Vilice’ .
curl -X GET -u: https://api.github.com/repos///forks | grep -w klon_url
Zgornji ukaz bo navedel URL za kloniranje razcepljenega repoja.
# 9) V organizacijo postavite repozitorij.
curl -X POST -u: -d “{” organizacija ”: ” ”}” https://api.github.com/repos///forks
Sodelavci
# 1) Seznam sodelavcev za skladišče.
curl -X GET -u: https://api.github.com/repos///collaborators | prijava grep -w
#two) Preverite, ali je uporabnik na seznamu sodelavcev.
curl -X GET -u: https://api.github.com/repos///collaborators/
Če je uporabnik del sodelavca, vsebina ni prikazana kot izhod, sicer se prikaže naslednje sporočilo.
{
“Message”: “ni uporabnik”,
“Documentation_url”: “https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Preverite uporabniško dovoljenje.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) V repozitorij dodajte uporabnika kot sodelavca.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Objavi to, povabljeni bo moral sprejeti vabilo, da se pridruži kot sodelavec. Če je uporabnik že dodan kot sodelavec, potem ni prikazana nobena vsebina, razen izhodnih podatkov.
# 5) Odstranjevanje uporabnika kot sodelavca.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
Ko se ukaz uspešno zažene, se vsebina ne prikaže.
Organizacija
Opomba: GitHub API ne omogoča ustvarjanja organizacij.
# 1) Naštejte vse račune organizacije za uporabnika.
curl -X GET -u: https://api.github.com/repos/user/orgs | prijava grep -w
#two) Posodobite organizacijo.
curl -X PATCH -u: -d “{” name ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” email ”: ” vniranjan72 @ outlook .com ', ' lokacija ': ' Bangalore ', ' 'opis ': 'Posodabljanje podrobnosti o organizaciji '} 'https://api.github.com/orgs/
Podružnice
# 1) Seznam vej v uporabniškem repozitoriju. Ukaz bo navedel vse veje v repozitoriju.
curl -X GET -u: https://api.github.com/repos///branches | grep -w ime
#two) Seznam vseh zaščitenih vej v uporabniškem repozitoriju.
curl -X GET -u: https://api.github.com/repos///branches ? zaščiteno = resnično | grep -w ime
# 3) Seznam vseh nezaščitenih vej v uporabniškem repozitoriju
curl -X GET -u: https://api.github.com/repos///branches ? zaščiteno = napačno | grep -w ime
# 4) Odstranite zaščito podružnice.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Zahteve za vlečenje
# 1) Seznam zahtev za vlečenje.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w naslov
Možnosti za parameter stanja so Odprto, Zaprto, Vse.
#two) Ustvari zahtevo za vlečenje.
curl -X POST -u: -d “{” naslov ”: ” Odlična funkcija dodana ”, ” telo ”: ” Prosimo, potegnite veliko spremembo v glavno vejo ”, ” glava ': ' Funkcija ', ' osnova ': ' mojster '}' https://api.github.com/repos///pulls
# 3) Naštejte število ustvarjenih zahtev za vlečenje.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w številka
# 4) Telo zahteve za posodobitev vlečenja ali kateri koli drug parameter (največ 250 popravkov).
curl -X PATCH -u: -d “{” body ”: ” Obvezno potegniti veliko spremembo v veji funkcije v glavno vejo ”}” https://api.github.com/repos///pulls / 31
# 5) Seznam prevzetih zahtev za vlečenje.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Datoteke zahtev za vlečenje seznama (največ 300 datotek).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w ime datoteke
# 7) Zahteva za združitev vlečenja.
curl -X PUT -u: -d “{” commit_message ”: ” Dober zapis ”}” https://api.github.com/repos///pulls/31 / pojdi
Odgovor, če je združen
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Združeno': resnično,
“Message”: “Zahteva za vlečenje je bila uspešno združena”
}
Odgovor, če zahteve za vlečenje ni mogoče združiti
{
“Message”: “Zahteva za vlečenje ni združljiva”,
“Documentation_url”: “https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Oznake, mejniki in izdaje
Nalepke
najboljša programska oprema za posnetek zaslona za Windows 10
# 1) Seznam vseh oznak v repozitoriju.
curl -X GET -u: https://api.github.com/repos///labels | grep -w ime
#two) Navedite oznako v repozitoriju.
curl -X GET -u: https://api.github.com/repos///labels / napaka
# 3) Če želite ustvariti oznako.
curl -X POST -u: -d '{' ime ': ' napaka ', ' opis ': ' Če želite opozoriti na napako ', ' barva ': ' ff493b '}' https://api.github.com/repos///labels
Šestnajstiška barvna koda za barva parameter lahko nastavite iz Barvno-šestnajstiška
# 4) Posodobi nalepko
curl -X PATCH -u: -d “{” barva ”: ” 255b89 ”}” https://api.github.com/repos///labels / napaka
# 5) Izbriši oznako
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Vprašanja
# 6) V repozitoriju navedite določeno težavo.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w naslov
# 7) Navedite vse težave v repozitoriju.
curl -X GET -u: https://api.github.com/repos///issues | grep -w naslov
# 8) Ustvari težavo.
curl -X POST -u: -d '{' naslov ': ' Nova pozdravna stran ', ' telo ': ' Oblikovanje nove strani ', ' nalepke ': (' izboljšava '), ' mejnik ': ' 3 ', ' pooblaščenci ': (' ', '
V zgornjem ukazu etikete in pooblaščenci parametri so niz nizov, kjer je mogoče navesti več vrednosti. Država parameter bo imel vrednost odprt ali zaprt.
# 9) Izdaji dodajte oznako.
curl -X POST -u: -d “{” nalepke ”: (” izboljšava ”)}” https://api.github.com/repos///issues / 30 / nalepke
# 10) Uredite težavo in posodobite parametre Npr. Oznake.
curl -X PATCH -u: -d '{' nalepke ': (' hrošč ', ' izboljšava ')}' https://api.github.com/repos///issues / 30
V zgornjem ukazu posodobite oznake za številko 30.
#eleven) Odstranite oznako iz določene težave.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Odstranite VSE oznake iz določene težave.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
Mejniki
# 13) Naštej vse mejnike.
curl -X GET -u: -d “{” stanje ”: (” odprto ”)}” https://api.github.com/repos///milestones | grep -w naslov
# 14) Navedite podrobnosti določenega mejnika.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w naslov
# petnajst) Ustvari mejnik.
curl -X POST -u: -d '{' naslov ': ' R5 ', ' stanje ': ' odprto ', ' opis ': ' Pot za mejnik R5 ', 'Zaradi_na ': '2019-12-05T17: 00: 01Z '} ' https://api.github.com/repos///milestones
V zgornjem ukazu rok oddaje je časovni žig ISO 8601 v LLLL-MM-DDTHH: MM: SSZ format. Več o tem najdete @ ISO 8601
# 16) Posodobite mejnik.
curl -X PATCH -u: -d “{” stanje ”: ” zaprto ”}” https://api.github.com/repos///milestones / 3
# 17) Izbrišite mejnik.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Ekipe
# 1) Seznam ekip v organizaciji.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w ime
Seznam po ID-ju ekipe
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#two) Seznam ekip po uporabnikih.
curl -X GET -u: https://api.github.com/user/teams | grep -w ime
# 3) Ustvarite ekipo, dodajte člane in dodajte repozitorij v ekipo.
curl -X POST -u: -d “{” ime ”: ” ”, ” opis ”: ” Vnesite kratek opis ”, ” vzdrževalci ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Uredite ime in opis ekipe.
curl -X PATCH -u: -d “{” ime ”: ” Novo ime ekipe ”, ” opis ”: ” Najnovejši opis ”}” https://api.github.com/teams/
ID ekipe lahko dobite z zagonom ukaza iz 1. koraka.
# 5) Dodajte repozitorij obstoječi skupini.
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Odstranite repozitorij iz skupine.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Izbriši ekipo.
curl -X DELETE -u: https://api.github.com/teams/
Iskanje po repozitorijih, kodi, številkah
API za iskanje omogoča iskanje katerega koli predmeta.
# 1) Na primer, če želite iskati po vseh skladiščih v lasti določenega uporabnika.
curl -X GET https://api.github.com/search/repositories?q=user: | grep -w “ime”
Zahtevani parameter je kaj ki vsebuje iskalna merila, sestavljena iz ključnih besed in kvalifikatorjev, ki omejujejo iskanje na določenem območju v Githubu.
#two) Poiščite vsa skladišča v lasti določenega uporabnika, ki vsebujejo besede V in Niranjan v datoteki README
curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w ime
# 3) V vsebini datoteke poiščite ključno besedo. V spodnjem primeru v datoteki v repozitoriju, ki je v lasti uporabnika, poiščite ključno besedo »Sistem« in »addE Employee«.
curl -X GET https://api.github.com/search/code?q=System+addEfficiee+in:file+language:java+repo:/ | grep -w ime
# 4) V odprtih izdajah poiščite ključno besedo »dobrodošli« in jo označite kot izboljšavo.
curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Poiščite ključno besedo »naslov« v zaprtih izdajah in označite kot izboljšavo.
curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Izpusti
# 1) Seznam objav v repozitoriju po imenu oznake in ID-ju.
curl -X GET -u: https://api.github.com/repos///releases | grep -w ime_tage
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#two) Poiščite podrobnosti o posamezni izdaji.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w ime_tage
curl -X GET -u: https://api.github.com/repos///releases / | grep -w telo
curl -X GET -u: https://api.github.com/repos///releases / | grep -w ime
# 3) Poiščite podrobnosti o NAJnovejši izdaji.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w ime_tage
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w ime
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w telo
# 4) Poiščite podrobnosti o izdaji Tag.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w ime
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w telo
# 5) Ustvari izdajo.
curl -X POST -u: -d “{” ime_taga ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, 'Body ': 'To je za izdajo 3.0 izdelka ', 'osnutek ': 'false', 'prerelease ': 'false'} ' https://api.github.com/repos//
Opomba:V ukazu za ustvarjanje izdaje parametra 'draft' in 'prerelease' zavzameta logične vrednosti. Vnesite true ali false brez ”.
- Vrednost osnutka false pomeni, da je objavljena izdaja ustvarjena, v resnici pa neobjavljena izdaja
- Prerelease false pomeni, da gre za popolno izdajo. Prava vrednost pomeni, da gre za predhodno izdajo.
# 6) Uredite ali posodobite izdajo.
curl -X PATCH-u: -d “{” ime_taga ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Izbrišite izdajo.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Naštejte sredstva za izdajo.
curl -X DELETE-u: https://api.github.com/repos//
Zaključek
V tej vadnici API-ja za GitHub REST smo videli, kako lahko API-je REST uporabljamo za različna dejanja za pridobivanje podatkov, PUT, POST, PATCH, DELETE.
URL, ki ga API REST uporablja za neposredno delo z GitHub.com, je https://api.github.com. Če pa skupine uporabljajo GitHub Enterprise v svoji organizaciji, bi bil URL, ki bi ga uporabljali z REST API, https: /// api / v3
Vse vaje v tej seriji so se doslej osredotočale na uporabo GitHub-a z vidika razvijalca, skupaj z najboljšimi praksami sodelovanja, medtem ko so delali v skupini za nadzor različic različnih vrst artefaktov neposredno na GitHub-u in ne lokalno.
Naša prihajajoča vadnica se bo osredotočila na to, kako bo razvijalec deloval brez povezave na lokalnem skladišču, kloniranem iz GitHub, z uporabo vmesnikov Git Client, kot so Namizje GitHub in TortoiseGit in spremembe potisnite nazaj v oddaljeno repozitorij.
=> Obiščite tukaj, če se želite naučiti GitHub iz nič.
Priporočeno branje
- Vadnica API za počitek: Arhitektura in omejitve API-ja REST
- Kode odzivov API za počitek in vrste zahtev za počitek
- Vadnica za razvijalce GitHub | Kako uporabljati GitHub
- Testiranje REST API s kumaricami z uporabo pristopa BDD
- 10 najboljših orodij za testiranje API-jev v letu 2021 (orodja za testiranje API-jev SOAP in REST)
- Preizkušanje API-ja REST s pomočjo Spring RestTemplate in TestNG
- Kako avtomatizirati zahteve za API z uporabo Rest Assured in Jenkinsa
- Vadnica za parasoft SOAtest: orodje za preizkušanje API-jev brez skript