github rest api tutorial rest api support github
GitHub REST API - et interface til at interagere programmatisk med GitHub:
I vores tidligere tutorials om GitHub undersøger vi de forskellige aspekter af brugen fra et udviklerperspektiv ved hjælp af webgrænsefladen.
I dag har de fleste af organisationerne set på automatiseringsmuligheder i næsten alle områder, og REST API'er har været nyttige til automatisering af forskellige scenarier for forskellige værktøjer.
Der kunne naturligvis også være andre områder, hvor REST API'er kunne bruges.
=> Besøg her for den eksklusive GitHub-træningsserie .
Hvad du vil lære:
GitHub REST API-integration
REST API'er (Representational State Transfer) bruger primært HTTP-anmodninger til at gøre følgende.
- FÅ - Hent ressourcen
- PUT / PATCH - Opdater ressource
- STOLPE - Opret en ressource
- SLET - Slet ressource
Vi dykker ikke dybt ned i, hvordan REST API fungerer, men vi springer direkte ind i REST API support i GitHub ved hjælp af KRØLLE kommando til at udføre de fleste af de opgaver, som vi så i vores tidligere tutorials på GitHub gennem REST API'er.
Den aktuelle version af GitHub API er v3, og denne vejledning dækker de vigtigste aktiviteter, som en udvikler har brug for gennem disse API'er.
Oprettelse af et personligt adgangstoken
For at REST API'er skal fungere gennem kommandolinjen, skal vi godkende til GitHub-serveren. Derfor er vi nødt til at give vores legitimationsoplysninger. Nå, vi ønsker ikke at udsætte vores adgangskode, der bruges med vores GitHub-konto, og derfor genererer vi et personligt adgangstoken, der skal bruges sammen med kommandolinjen til godkendelse til GitHub.
Log ind på din GitHub-konto, og klik på Indstillinger under din profil.
Gå til Udviklerindstillinger -> Personlige adgangstokens. Generer et nyt token.
Tilføj et navn, og vælg omfanget for API-adgangen, og klik på Opret token.
På det næste skærmbillede skal du sørge for at kopiere tokenet og gemme det i en fil. Dette token bruges i kommandolinjen for at få adgang til GitHub API.
hvad bruges c ++ programmering til
Det oprettede token kan også bruges under git klon betjening, når du bliver bedt om et kodeord. Nu, da vi har tokenet på plads, vil vi se, hvordan du får adgang til API'en fra kommandolinjen ved hjælp af CURL-programmet.
Som en forudsætning skal du downloade og installere 'Krølle' .
Datalager
REST API's eksempler vist her køres på Windows-maskinen. Dette afsnit viser nogle af GitHub Repository-operationerne.
# 1) For at liste offentlige arkiver for en bruger skal du køre følgende kommando på en enkelt linje.
krølle -X GET -u: https://api.github.com/users//repos | grep -w klon_url
#to) Sådan vises en liste over offentlige arkiver under en organisation.
krølle -X GET -u: https://api.github.com/orgs//repos | grep -w klon_url
# 3) Opret et personligt lager.
krølle -X POST -u: https://api.github.com/user/repos -d “{” navn ”: ” Demo_Repo ”}”
I ovenstående kommandonavn er en parameter. Lad os se på nogle andre parametre, der kan bruges, når du opretter personlige brugeropbevaringssteder.
krølle -X POST -u: https://api.github.com/user/repos -d “{” navn ”: ” Demo_Repo ”, ” beskrivelse ”: ” Dette er første repo gennem API ”, ” startside ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
I ovenstående kommando er navn, beskrivelse, startside, offentlig, has_projects, has_wiki alle parametre, der tager en strengværdi og er lukket i ”. Bemærk også, at der er et mellemrum mellem: og
For eksempel, offentlig parameter gør repoen offentlig. Kommandoen gør det også muligt at oprette problemer, projekter, wikier.
# 4) Omdøb lageret.
krølle -X POST -u: -X PATCH -d “{” navn ”: ” ”}” https://api.github.com/repos//
# 5) Opdater has_wiki parameter i arkivet, og indstil værdien til falsk.
krølle -u: -X PATCH -d “{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Slet lageret.
krølle -X SLET -u: https://api.github.com/repos//
# 7) Opret et lager i en organisation.
krølle -X POST -u: https://api.github.com/orgs//repos “{” Navn ”: ” Demo_Repo_In_Org ”, ” beskrivelse ”: ” Dette er første repo i organisation via API ”, ” startside ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
# 8) Liste gafler til et lager.
krølle -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Ovenstående kommando viser URL'en til at gennemse den forked repo. Det samme kan ses under brugerregistret og ‘Insights TAB => Forks’ .
krølle -X GET -u: https://api.github.com/repos///forks | grep -w klon_url
Ovenstående kommando viser URL'en til at klone den forked repo.
# 9) Fork et arkiv i organisationen.
krølle -X POST -u: -d “{” organisation ”: ” ”}” https://api.github.com/repos///forks
Samarbejdspartnere
# 1) Liste samarbejdspartnere til et lager.
krølle -X GET -u: https://api.github.com/repos///collaborators | grep -w login
#to) Kontroller, om en bruger er på listen over samarbejdspartnere.
krølle -X GET -u: https://api.github.com/repos///collaborators/
Hvis brugeren er en del af samarbejdspartner, vises der ikke noget indhold som output, ellers vises følgende meddelelse.
{
“Besked”: “er ikke bruger”,
“Documentation_url”: “https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Tjek brugerens tilladelse.
krølle -X GET -u: https://api.github.com/repos///collaborators/
# 4) Føj bruger som samarbejdspartner til lageret.
krølle -X PUT -u: https://api.github.com/repos///collaborators/
Send dette, den inviterede skal acceptere invitationen til at deltage som samarbejdspartner. Hvis en bruger allerede er tilføjet som samarbejdspartner, vises intet indhold, ellers vises output.
# 5) Fjerner bruger som samarbejdspartner.
krølle -X SLET -u: https://api.github.com/repos///collaborators/
Intet indhold vises, når kommandoen er kørt med succes.
Organisation
Bemærk: Oprettelse af organisationer leveres ikke af GitHub API.
# 1) Liste over alle organisationskonti for en bruger.
krølle -X GET -u: https://api.github.com/repos/user/orgs | grep -w login
#to) Opdater en organisation.
krølle -X PATCH -u: -d “{” navn ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” e-mail ”: ” vniranjan72 @ outlook .com ”, ” placering ”: ” Bangalore ”, ” ”beskrivelse ”: ”Opdatering af organisationsoplysninger ”} ”https://api.github.com/orgs/
Grene
# 1) Liste grene i et brugerregister. Kommandoen viser alle grene i et arkiv.
krølle -X GET -u: https://api.github.com/repos///branches | grep -w navn
#to) Liste over alle beskyttede grene i et brugerregister.
krølle -X GET -u: https://api.github.com/repos///branches ? beskyttet = sandt | grep -w navn
# 3) Liste over alle ikke-beskyttede grene i et brugerlager
krølle -X GET -u: https://api.github.com/repos///branches ? beskyttet = falsk | grep -w navn
# 4) Fjern grenbeskyttelse.
krølle -X SLET -u: https://api.github.com/repos///branches/master/protection
Træk anmodninger
# 1) List Pull-anmodninger.
krølle -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w titel
Indstillinger for tilstandsparameteren er Åben, Lukket, Alle.
#to) Opret en Pull-anmodning.
krølle -X POST -u: -d “{” titel ”: ” Fantastisk funktion tilføjet ”, ” body ”: ” Træk venligst den store ændring, der er foretaget til mastergren ”, ” head ”: ” Funktion ”, ” base ”: ” master ”}” https://api.github.com/repos///pulls
# 3) Angiv antallet af oprettede Pull-anmodninger.
krølle -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w-nummer
# 4) Opdater Pull-anmodningens brødtekst eller andre parametre (kun maksimalt 250 forpligtelser).
krølle -X PATCH -u: -d “{” body ”: ” Obligatorisk at trække den store ændring, der er foretaget i funktionsgrenen, til mastergren ”}” https://api.github.com/repos///pulls / 31
# 5) List Pull anmodning forpligter.
krølle -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) List Pull-anmodningsfiler (maksimalt 300 filer).
krølle -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w filnavn
# 7) Merge Pull-anmodning.
curl -X PUT -u: -d “{” commit_message ”: ” Good Commit ”}” https://api.github.com/repos///pulls/31 /gå
Svar, hvis flettet
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Fusioneret': sandt,
“Meddelelse”: “Pull-anmodning blev flettet”
}
Svar, hvis pull-anmodning ikke kan flettes
{
'Meddelelse': 'Pull-anmodning kan ikke flettes',
“Documentation_url”: “https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Etiketter, milepæle og udgaver
Mærkater
# 1) Liste over alle etiketter i et arkiv.
krølle -X GET -u: https://api.github.com/repos///labels | grep -w navn
#to) Angiv en specifik etiket i et arkiv.
krølle -X GET -u: https://api.github.com/repos///labels / insekt
# 3) At oprette en etiket.
krølle -X POST -u: -d “{” navn ”: ” defekt ”, ” beskrivelse ”: ” For at rejse en defekt ”, ” farve ”: ” ff493b '}' https://api.github.com/repos///labels
Den hexadecimale farvekode for farve parameter kan indstilles fra Farve-hex
# 4) Opdater etiket
krølle -X PATCH -u: -d “{” farve ”: ” 255b89 ”}” https://api.github.com/repos///labels /defekt
# 5) Slet etiket
krølle -X SLET -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Problemer
# 6) Angiv et specifikt problem i et arkiv.
krølle -X GET -u: https://api.github.com/repos///issues/20 | grep -w titel
# 7) Liste over alle problemer i et arkiv.
krølle -X GET -u: https://api.github.com/repos///udgaver | grep -w titel
# 8) Opret et problem.
krølle -X POST -u: -d “{” titel ”: ” Ny velkomstside ”, ” body ”: ” For at designe en ny side ”, ” labels ”: (” forbedring ”), ” milepæl ”: ” 3 ”, ” tildelte ”: (” ”, ”
I ovenstående kommando, etiketter og tildelte parametre er en række strenge, hvor flere værdier kan tilvejebringes. Stat parameteren har enten værdien åben eller lukket.
# 9) Føj en etiket til et problem.
krølle -X POST -u: -d “{” labels ”: (” enhancement ”)}” https://api.github.com/repos///udgaver / 30 / etiketter
bedste kloningssoftware til Windows 10
# 10) Rediger et problem, og opdater parametrene For eksempel, Mærker til det.
krølle -X PATCH -u: -d “{” labels ”: (” bug ”, ” enhancement ”)}” https://api.github.com/repos///udgaver / 30
I ovenstående kommando skal du opdatere etiketter til nummer 30.
#elleve) Fjern en etiket fra et bestemt problem.
krølle -X SLET -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Fjern ALLE etiketter fra et bestemt problem.
krølle -X SLET -u: https://api.github.com/repos///issues/30/labels
Milepæle
# 13) Liste over milepæle.
krølle -X GET -u: -d “{” state ”: (” open ”)}” https://api.github.com/repos///milepæle | grep -w titel
# 14) Listeoplysninger for en bestemt milepæl.
krølle -X GET -u: https://api.github.com/repos///milepæle / 1 | grep -w titel
#femten) Opret en milepæl.
krølle -X POST -u: -d “{” titel ”: ” R5 ”, ” tilstand ”: ” åben ”, ” beskrivelse ”: ” Spor til milepæl R5 ”, ”Due_on ”: ”2019-12-05T17: 00: 01Z ”} ” https://api.github.com/repos///milepæle
I ovenstående kommando vises due_on er et tidsstempel ISO 8601 i ÅÅÅÅ-MM-DDTHH: MM: SSZ format. Mere om dette kan findes @ ISO 8601
# 16) Opdater en milepæl.
krølle -X PATCH -u: -d “{” tilstand ”: ” lukket ”}” https://api.github.com/repos///milepæle / 3
# 17) Slet en milepæl.
krølle -X SLET -u: https://api.github.com/repos///milepæle / 3
Hold
# 1) Liste hold i en organisation.
krølle -X GET -u: https://api.github.com/orgs//teams | grep -w navn
Liste efter team-id
krølle -X GET -u: https://api.github.com/orgs//teams | grep -w id
#to) Liste hold efter bruger.
krølle -X GET -u: https://api.github.com/user/teams | grep -w navn
# 3) Opret et team, tilføj medlemmer og tilføj lager til teamet.
krølle -X POST -u: -d “{” navn ”: ” ”, ” beskrivelse ”: ” Indtast kort beskrivelse ”, ” vedligeholdere ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Rediger teamnavn og beskrivelse.
krølle -X PATCH -u: -d “{” navn ”: ” Nyt teamnavn ”, ” beskrivelse ”: ” Seneste beskrivelse ”}” https://api.github.com/teams/
Team-ID kan hentes ved at køre kommandoen fra trin 1.
# 5) Føj et lager til et eksisterende team ..
krølle -X PUT -u: https://api.github.com/teams//repos//
# 6) Fjern lager fra et team.
krølle -X SLET -u: https://api.github.com/teams/
# 7) Slet et team.
krølle -X SLET -u: https://api.github.com/teams/
Søg efter arkiver, kode, problemer
Search API giver mulighed for at søge efter ethvert element.
# 1) For eksempel, hvis du vil søge i alle arkiver, der ejes af en bestemt bruger.
krølle -X FÅ https://api.github.com/search/repositories?q=bruger: | grep -w “navn”
Påkrævet parameter er hvad der indeholder søgekriterierne, der består af nøgleord og kvalifikatorer for at begrænse søgningen i et bestemt område i Github.
#to) Søg i alle arkiver, der ejes af en bestemt bruger, der indeholder ordene V og Niranjan i README-filen
krølle -X FÅ https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w navn
# 3) Søg efter et nøgleord i filens indhold. I nedenstående eksempel skal du søge efter nøgleordet 'System' og 'addEmployee' i en fil i et lager, der ejes af en bruger.
krølle -X FÅ https://api.github.com/search/code?q=System+addEmemedarbejder+in:fil+sprog:java+repo:/ | grep -w navn
# 4) Søg efter nøgleordet 'velkommen' i åbne udgaver, og mærk som forbedring.
krølle -X FÅ https://api.github.com/search/issues?q=welcome+label:hancement+state:open+repo:/
# 5) Søg efter nøgleordet 'adresse' i lukkede udgaver, og mærk som forbedring.
krølle -X FÅ https://api.github.com/search/issues?q=address+label:hancement+state:closed+repo:/
Udgivelser
# 1) Liste frigivelser i et lager efter tagnavn og id.
krølle -X GET -u: https://api.github.com/repos///releases | grep -w tag_name
krølle -X GET -u: https://api.github.com/repos///releases | grep -w id
#to) Få detaljer om en enkelt udgivelse.
krølle -X GET -u: https://api.github.com/repos///releases / | grep -w tag_name
krølle -X GET -u: https://api.github.com/repos///releases / | grep -w krop
krølle -X GET -u: https://api.github.com/repos///releases / | grep -w navn
# 3) Få detaljer om den SENESTE udgivelse.
krølle -X GET -u: https://api.github.com/repos///releases/latest | grep -w tag_name
krølle -X GET -u: https://api.github.com/repos///releases/latest | grep -w navn
krølle -X GET -u: https://api.github.com/repos///releases/latest | grep -w krop
# 4) Få frigivelsesoplysninger ved tag.
krølle -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w navn
krølle -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w krop
# 5) Opret en frigivelse.
krølle -X POST -u: -d “{” tag_name ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, ”Body ”: ”Dette er til version 3.0 af produktet ”, ”draft ”: “false”, ”prerelease ”: “false”} ” https://api.github.com/repos//
Bemærk:I kommandoen til at oprette en frigivelse tager parametrene 'draft' og 'prerelease' boolske værdier. Indtast sandt eller falsk uden ”.
- Udkastværdien falsk betyder, at den offentliggjorte frigivelse oprettes, og for sandheden er den en ikke-offentliggjort frigivelse.
- Forhåndsudgivelse falsk betyder, at det er en fuld frigivelse. Ægte værdi betyder, at det er en forudgivelse.
# 6) Rediger eller opdater opdateringen.
krølle -X PATCH-u: -d “{” tag_name ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Slet udgivelsen.
krølle -X SLET-u: https://api.github.com/repos//
# 8) Angiv aktiver til frigivelse.
krølle -X SLET-u: https://api.github.com/repos//
Konklusion
I denne GitHub REST API-selvstudie så vi, hvordan REST API'er kan bruges til forskellige handlinger til GET, PUT, POST, PATCH, SLET data.
URL'en, der bruges til REST API'er til at arbejde direkte med GitHub.com, er https://api.github.com. Mens holdene bruger GitHub-virksomheden i deres organisation, ville URL'en, der skal bruges med REST API, være https: /// api / v3
Alle tutorials i denne serie hidtil koncentreret om brugen af GitHub fra et udviklerperspektiv sammen med de bedste fremgangsmåder ved samarbejde, mens man arbejder i et team til versionskontrol af forskellige typer artefakter direkte på GitHub og ikke lokalt.
Vores kommende vejledning vil fokusere på, hvordan en udvikler vil arbejde offline på et lokalt lager lagret fra GitHub ved hjælp af Git Client-grænseflader som GitHub Desktop og TortoiseGit og skub ændringerne tilbage til fjernlageret.
=> Besøg her for at lære GitHub fra bunden.
Anbefalet læsning
- Rest API Tutorial: REST API-arkitektur og begrænsninger
- Rest API-svarskoder og typer af hvileanmodninger
- GitHub-vejledning til udviklere | Sådan bruges GitHub
- REST API-test med agurk ved hjælp af BDD-tilgang
- 10 bedste API-testværktøjer i 2021 (SOAP og REST API-testværktøjer)
- REST API-test med Spring RestTemplate og TestNG
- Sådan automatiseres API-anmodninger ved hjælp af forsikrede og Jenkins
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool