github rest api tutorial rest api support github
GitHub REST API - Sučelje za programsku interakciju s GitHubom:
U našim ranijim vodičima o GitHubu istražujemo različite aspekte korištenja iz perspektive programera pomoću web sučelja.
Danas je većina organizacija u gotovo svim područjima gledala na mogućnosti automatizacije, a REST API-i bili su korisni za automatizaciju različitih scenarija za različite alate.
Naravno, mogu postojati i druga područja na kojima bi se mogli koristiti REST API-ji.
=> Posjetite ovdje za ekskluzivnu seriju GitHub Training Tutorial .
Što ćete naučiti:
GitHub REST API integracija
API-ji REST (Reprezentativni prijenos države) prvenstveno koriste HTTP zahtjeve da bi učinili sljedeće.
- DOBITI - Dohvatite resurs
- PUT / PATCH - Ažuriranje resursa
- OBJAVI - Stvorite resurs
- IZBRISATI - Izbriši resurs
Nećemo zaranjati duboko u to kako funkcionira REST API, već ćemo izravno uskočiti u podršku za REST API u GitHubu koristeći KOVRČA naredba za izvršavanje većine zadataka koje smo vidjeli u našim prethodnim vodičima na GitHub-u putem REST API-ja.
Trenutačna verzija GitHub API-ja je v3 i ovaj tutorial pokriva najvažnije aktivnosti koje bi programer trebao putem ovih API-ja.
Stvaranje osobnog pristupnog tokena
Da bi REST API-ji mogli raditi kroz naredbeni redak, moramo se ovjeriti na GitHub poslužitelju. Stoga moramo dati svoje vjerodajnice. Pa, ne želimo izložiti svoju lozinku koja se koristi s našim GitHub računom, stoga ćemo generirati osobni pristupni token koji će se koristiti s naredbenim retkom za autentifikaciju na GitHub.
Prijavite se na svoj GitHub račun i kliknite na Postavke ispod vašeg profila.
Ići Postavke programera -> Tokeni osobnog pristupa. Generirajte novi token.
Dodajte ime i odaberite opseg za pristup API-ju i kliknite na Stvori žeton.
Na sljedećem zaslonu obavezno kopirajte token i spremite ga u datoteku. Ovaj token će se koristiti u naredbenom retku za pristup GitHub API-ju.
Pitanja i odgovori u vezi s skriptanjem ljuske
Stvoreni token također se može koristiti tijekom git klon operacija kada se traži lozinka. Sada, kad imamo token, vidjet ćemo kako pristupiti API-ju iz naredbenog retka pomoću programa CURL.
Kao preduvjet, morat ćete preuzeti i instalirati 'kovrča' .
Spremište
Primjeri REST API-ja koji su ovdje prikazani pokreću se na Windows računalu. Ovaj će odjeljak prikazati neke od operacija GitHub Repozitorija.
# 1) Da biste popisali javna spremišta za korisnika, pokrenite sljedeću naredbu u jednom retku.
curl -X GET -u: https://api.github.com/users//repos | grep -w klon_url
#dva) Za popis javnih repozitorija pod organizacijom.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w klon_url
# 3) Stvorite osobno spremište.
curl -X POST -u: https://api.github.com/user/repos -d “{” name ”: ” Demo_Repo ”}”
U gornjem imenu naredbe je parametar. Pogledajmo neke druge parametre koji se mogu koristiti tijekom stvaranja osobnih korisničkih spremišta.
curl -X POST -u: https://api.github.com/user/repos -d “{” naziv ”: ” Demo_Repo ”, ” opis ”: ” Ovo je prvo repo putem API-ja ”, ” početna stranica ”: ” https: //github.com ” , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
U gornjoj naredbi, ime, opis, početna stranica, javno, has_projects, has_wiki su svi parametri koji uzimaju vrijednost niza i zatvoreni su u ”. Također imajte na umu da postoji PROSTOR između: i
Na primjer, parametar public čini repo javnim. Naredba također omogućuje stvaranje problema, projekata i wikija.
# 4) Preimenujte Spremište.
curl -X POST -u: -X PATCH -d “{” name ”: ” ”}” https://api.github.com/repos//
# 5) Ažurirajte has_wiki parametar u spremištu i postavite vrijednost na false.
curl -u: -X PATCH -d '{' has_wiki ': ' false '}' https://api.github.com/repos/user-name/
# 6) Izbrišite Spremište.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Stvorite spremište u organizaciji.
curl -X POST -u: https://api.github.com/orgs//repos '{' Naziv ': ' Demo_Repo_In_Org ', ' opis ': ' Ovo je prvi repo u organizaciji putem API-ja ', ' početna stranica ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
# 8) Popis vilica za spremište.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Gornja naredba će navesti URL za pregledavanje račvanog repoa. Isto se može vidjeti pod korisničkim spremištem i ‘TAB Tights => Vilice’ .
curl -X GET -u: https://api.github.com/repos///forks | grep -w klon_url
Gornja naredba će navesti URL za kloniranje raščlanjenog repo-a.
# 9) Forknite spremište u organizaciji.
curl -X POST -u: -d “{” organizacija ”: ” ”}” https://api.github.com/repos///forks
Suradnici
# 1) Popis suradnika za spremište.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w prijava
#dva) Provjerite je li korisnik na popisu suradnika.
curl -X GET -u: https://api.github.com/repos///collaborators/
Ako je korisnik dio suradnika, tada se sadržaj ne prikazuje kao izlaz, prikazuje se sljedeća poruka.
{
'Message': 'nije korisnik',
“Documentation_url”: „https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Provjerite korisničku dozvolu.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Dodajte korisnika kao Suradnika u Spremište.
curl -X STAVITE -u: https://api.github.com/repos///collaborators/
Objavi ovo, pozvani će morati prihvatiti poziv da se pridruži kao suradnik. Ako je korisnik već dodan kao suradnik, tada se ne prikazuje nikakav sadržaj, osim izlaza.
# 5) Uklanjanje korisnika kao suradnika.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
Jednom kada se naredba uspješno pokrene, ne prikazuje se sadržaj.
Organizacija
Napomena: Stvaranje organizacija ne pruža GitHub API.
# 1) Navedite sve račune organizacije za korisnika.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w prijava
#dva) Ažurirajte organizaciju.
curl -X PATCH -u: -d “{” name ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” email ”: ” vniranjan72 @ outlook .com ', ' lokacija ': ' Bangalore ', ' 'opis ': 'Ažuriranje podataka o organizaciji '} 'https://api.github.com/orgs/
Podružnice
# 1) Popis grana u korisničkom spremištu. Naredba će navesti sve grane u spremištu.
curl -X GET -u: https://api.github.com/repos///branches | grep -w ime
#dva) Navedite sve zaštićene grane u korisničkom spremištu.
curl -X GET -u: https://api.github.com/repos///branches ? zaštićeno = istinito | grep -w ime
# 3) Navedite sve nezaštićene grane u korisničkom spremištu
curl -X GET -u: https://api.github.com/repos///branches ? zaštićeno = lažno | grep -w ime
# 4) Uklonite zaštitu grane.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Zahtjevi za povlačenje
# 1) Popis zahtjeva za povlačenje.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w naslov
Opcije za parametar stanja su Otvoreno, Zatvoreno, Sve.
#dva) Stvorite zahtjev za povlačenjem.
curl -X POST -u: -d “{” naslov ”: ” Dodana je sjajna značajka ”, ” tijelo ”: ” Povucite veliku promjenu u glavnu granu ”, ” glava ': ' Značajka ', ' baza ': ' master '}' https://api.github.com/repos///pulls
# 3) Navedite broj stvorenih zahtjeva za povlačenje.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w broj
# 4) Ažurirajte tijelo zahtjeva za povlačenjem ili bilo koji drugi parametar (maksimalno samo 250 predavanja).
curl -X PATCH -u: -d “{” body ”: ” Obavezno povući veliku promjenu u grani značajki u glavnu granu ”}” https://api.github.com/repos///pulls / 31
# 5) Popis obveza za povlačenje.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Popis datoteka zahtjeva za povlačenje (najviše 300 datoteka).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w naziv datoteke
# 7) Spoji zahtjev za povlačenjem.
curl -X STAVITE -u: -d “{” commit_message ”: ” Dobro predavanje ”}” https://api.github.com/repos///pulls/31 /ići
Odgovor ako se spoji
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Spojeno': istina,
“Message”: “Zahtjev za povlačenjem uspješno spojen”
}
Odgovor ako se zahtjev za povlačenje ne može spojiti
{
'Message': 'Zahtjev za povlačenjem se ne može spojiti',
“Documentation_url”: „https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Oznake, prekretnice i izdanja
Oznake
# 1) Popis svih oznaka u spremištu.
curl -X GET -u: https://api.github.com/repos///labels | grep -w ime
#dva) Popis specifičnih oznaka u spremištu.
curl -X GET -u: https://api.github.com/repos///labels / buba
# 3) Da biste stvorili oznaku.
curl -X POST -u: -d '{' naziv ': ' kvar ', ' opis ': ' Za podizanje kvara ', ' boja ': ' ff493b '}' https://api.github.com/repos///labels
Heksadecimalni kôd boje za boja parametar se može postaviti iz Šesterokutna boja
# 4) Ažuriraj oznaku
curl -X PATCH -u: -d “{” boja ”: ” 255b89 ”}” https://api.github.com/repos///labels /mana
# 5) Izbriši oznaku
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Pitanja
# 6) Navedite određeno izdanje u spremištu.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w naslov
# 7) Navedite sve probleme u spremištu.
curl -X GET -u: https://api.github.com/repos///issues | grep -w naslov
# 8) Izradite problem.
curl -X POST -u: -d '{' naslov ': ' Nova stranica dobrodošlice ', ' tijelo ': ' Za dizajn nove stranice ', ' oznake ': (' poboljšanje '), ' prekretnica ': ' 3 ', ' dodijeljeni ': (' ', '
U gornjoj naredbi, etikete i asignati parametri su niz nizova u kojima se može pružiti više vrijednosti. država parametar imat će vrijednost otvoren ili zatvoren.
# 9) Dodajte oznaku izdanju.
curl -X POST -u: -d “{” oznake ”: (” poboljšanje ”)}” https://api.github.com/repos///issues / 30 / naljepnice
# 10) Uredite problem i ažurirajte parametre Npr. Oznake.
curl -X PATCH -u: -d '{' oznake ': (' bug ', ' poboljšanje ')}' https://api.github.com/repos///issues / 30
U gornjoj naredbi ažurirajte oznake za broj 30.
#jedanaest) Uklonite naljepnicu iz određenog problema.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Uklonite SVE naljepnice iz određenog problema.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
Prekretnice
# 13) Navedi sve prekretnice.
curl -X GET -u: -d '{' stanje ': (' otvoreno ')}' https://api.github.com/repos///milestones | grep -w naslov
# 14) Navedite detalje određene prekretnice.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w naslov
#petnaest) Stvorite prekretnicu.
curl -X POST -u: -d '{' naslov ': ' R5 ', ' stanje ': ' otvoreno ', ' opis ': ' Trag za prekretnicu R5 ', 'Zbog_na ': '2019-12-05T17: 00: 01Z '} ' https://api.github.com/repos///milestones
U gornjoj naredbi zbog je vremenska oznaka ISO 8601 u GGGG-MM-DDTHH: MM: SSZ format. Više o tome možete pronaći @ ISO 8601
# 16) Ažurirajte prekretnicu.
curl -X PATCH -u: -d “{” stanje ”: ” zatvoreno ”}” https://api.github.com/repos///milestones / 3
# 17) Izbrišite prekretnicu.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Timovi
# 1) Popis timova u organizaciji.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w ime
Popis prema ID-u tima
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#dva) Popis timova prema korisniku.
curl -X GET -u: https://api.github.com/user/teams | grep -w ime
# 3) Stvorite tim, dodajte članove i dodajte spremište u tim.
curl -X POST -u: -d “{” naziv ”: ” ”, ” opis ”: ” Unesite kratki opis ”, ” održavači ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Uredite naziv i opis tima.
curl -X PATCH -u: -d “{” naziv ”: ” Novo ime tima ”, ” opis ”: ” Najnoviji opis ”}” https://api.github.com/teams/
ID tima može se dobiti pokretanjem naredbe iz koraka 1.
# 5) Dodajte spremište postojećem timu ..
curl -X STAVITE -u: https://api.github.com/teams//repos//
# 6) Uklonite spremište iz tima.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Izbrišite tim.
curl -X DELETE -u: https://api.github.com/teams/
Pretraži spremišta, kôd, izdanja
API pretraživanja omogućuje pretraživanje bilo koje stavke.
# 1) Na primjer, ako želite pretražiti sva spremišta u vlasništvu određenog korisnika.
uvojak -X GET https://api.github.com/search/repositories?q=user: | grep -w “ime”
Potreban parametar je što koja sadrži kriterije pretraživanja koji se sastoje od ključnih riječi i kvalifikatora za ograničavanje pretraživanja u određenom području u Githubu.
#dva) Pretražite sva spremišta u vlasništvu određenog korisnika koja sadrže riječi V i Niranjan u datoteci README
kako gledati .mkv datoteke
uvojak -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w ime
# 3) Potražite ključnu riječ u sadržaju datoteke. U donjem primjeru potražite ključnu riječ 'Sustav' i 'addEfficiee' unutar datoteke u spremištu u vlasništvu korisnika.
uvojak -X GET https://api.github.com/search/code?q=System+addE Employee+in:file+language:java+repo:/ | grep -w ime
# 4) Ključnu riječ 'dobrodošli' potražite u okviru otvorenih izdanja i označite kao poboljšanje.
uvojak -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Ključnu riječ 'adresa' potražite u zatvorenim izdanjima i označite kao poboljšanje.
uvojak -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Izdanja
# 1) Popis izdanja u spremištu prema nazivu oznake i ID-u.
curl -X GET -u: https://api.github.com/repos///releases | grep -w ime_taga
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#dva) Saznajte detalje o jednom izdanju.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w ime_taga
curl -X GET -u: https://api.github.com/repos///releases / | grep -w tijelo
curl -X GET -u: https://api.github.com/repos///releases / | grep -w ime
# 3) Saznajte detalje o NAJNOVIJEM izdanju.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w ime_taga
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 tijelo
# 4) Doznajte detalje o izdanju putem Taga.
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 tijelo
# 5) Stvorite izdanje.
curl -X POST -u: -d “{” tag_name ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Izdanje 3.0 ”, ”Body ”: ”Ovo je za izdanje 3.0 proizvoda ”, ”draft ”: “false”, ”prerelease ”: “false”} ” https://api.github.com/repos//
Bilješka:U naredbi za stvaranje izdanja parametri 'draft' i 'prerelease' uzimaju logičke vrijednosti. Unesite true ili false bez ”.
- Vrijednost nacrta false znači da je objavljeno izdanje stvoreno, a istinito je neobjavljeno izdanje.
- Prerelease false znači da je puna verzija. Prava vrijednost znači da je to prerelease.
# 6) Uredite ili ažurirajte izdanje.
curl -X PATCH-u: -d “{” naziv_naznake ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Izbrišite izdanje.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Navedite sredstva za izdanje.
curl -X DELETE-u: https://api.github.com/repos//
Zaključak
U ovom vodiču za GitHub REST API vidjeli smo kako se REST API mogu koristiti za razne radnje za GET, PUT, POST, PATCH, DELETE podatke.
URL koji se koristi za REST API-je za izravnu suradnju s GitHub.com je https://api.github.com. Dok, ako timovi koriste GitHub enterprise u svojoj organizaciji, tada bi URL koji se koristi s REST API-jem bio https: /// api / v3
Svi su se vodiči u ovoj seriji do sada koncentrirali na upotrebu GitHub-a iz perspektive programera, zajedno s najboljim praksama suradnje, dok je radio u timu za kontrolu verzija različitih vrsta artefakata izravno na GitHub-u, a ne lokalno.
Naša nadolazeća lekcija usredotočit će se na to kako će programer raditi offline na lokalnom spremištu kloniranom iz GitHub-a koristeći sučelja Git klijenta poput GitHub radna površina i TortoiseGit i gurnite promjene natrag u udaljeno spremište.
=> Posjetite ovdje da biste GitHub naučili ispočetka.
Preporučena literatura
- Vodič za API za odmor: REST API arhitektura i ograničenja
- Kodovi odgovora na API za odmor i vrste zahtjeva za odmor
- Vodič za programere za GitHub | Kako koristiti GitHub
- REST API ispitivanje krastavca korištenjem BDD pristupa
- 10 najboljih alata za testiranje API-ja u 2021. godini (SOAP i REST API alati za testiranje)
- REST API testiranje s Spring RestTemplate i TestNG
- Kako automatizirati zahtjeve za API korištenjem uvjerenih i Jenkinsa
- Vodič za parasoft SOAtest: Alat za testiranje API-ja bez skripti