github rest api tutorial rest api support github
GitHub REST API - Et grensesnitt for å samhandle programmatisk med GitHub:
I våre tidligere veiledninger om GitHub utforsker vi de forskjellige aspektene ved bruk fra et utviklerperspektiv ved hjelp av nettgrensesnittet.
I dag har de fleste av organisasjonene sett på automatiseringsmuligheter i nesten alle områder, og REST API-er har vært nyttige for å automatisere ulike scenarier for forskjellige verktøy.
Selvfølgelig kan det også være andre områder der REST API kan brukes.
=> Besøk her for den eksklusive opplæringsserien for GitHub Training .
Hva du vil lære:
GitHub REST API-integrasjon
REST API-er (Representational State Transfer) bruker primært HTTP-forespørsler for å gjøre følgende.
- FÅ - Hent ressursen
- PUT / PATCH - Oppdater ressursen
- POST - Lag en ressurs
- SLETT - Slett ressurs
Vi vil ikke dykke dypt inn i hvordan REST API fungerer, snarere vil vi hoppe direkte inn i REST API støtte i GitHub ved hjelp av KRULLE kommando om å utføre de fleste av oppgavene som vi så i våre tidligere veiledninger om GitHub gjennom REST API-er.
Den nåværende versjonen av GitHub API er v3, og denne veiledningen dekker de viktigste aktivitetene som en utvikler trenger gjennom disse API-ene.
Opprette et personlig tilgangstoken
For at REST API-er skal fungere gjennom kommandolinjen, må vi godkjenne til GitHub-serveren. Derfor må vi oppgi legitimasjon. Vel, vi ønsker ikke å avsløre passordet vårt som brukes med GitHub-kontoen, og dermed vil vi generere et personlig tilgangstoken som skal brukes med kommandolinjen for å autentisere til GitHub.
Logg inn på GitHub-kontoen din og klikk på Innstillinger under profilen din.
Gå til Utviklerinnstillinger -> Personal Access Tokens. Generer et nytt token.
Legg til et navn og velg omfanget for API-tilgang og klikk på Lag Token.
I det neste skjermbildet må du kopiere tokenet og lagre det i en fil. Dette tokenet vil bli brukt i kommandolinjen for å få tilgang til GitHub API.
beste klippeverktøy for Windows 10
Token opprettet kan også brukes under git klon operasjon når du blir bedt om et passord. Nå som vi har tokenet på plass, vil vi se hvordan du får tilgang til API fra kommandolinjen ved hjelp av CURL-programmet.
Som en forutsetning må du laste ned og installere 'Krølle' .
Oppbevaringssted
Eksemplene på REST API som vises her kjøres på Windows-maskinen. Denne delen viser noen av GitHub Repository-operasjonene.
#1) For å liste opp offentlige arkiver for en bruker, kjør følgende kommando på en enkelt linje.
krølle -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#to) Å liste opp offentlige arkiver under en organisasjon.
krølle -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Opprett et personlig lager.
krølle -X POST -u: https://api.github.com/user/repos -d “{” navn ”: ” Demo_Repo ”}”
I kommandonavnet ovenfor er det en parameter. La oss se på noen andre parametere som kan brukes når du oppretter personlige brukerregister.
krølle -X POST -u: https://api.github.com/user/repos -d “{” navn ”: ” Demo_Repo ”, ” beskrivelse ”: ” Dette er først repo gjennom API ”, ” startside ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
I kommandoen ovenfor er navn, beskrivelse, startside, offentlig, has_projects, has_wiki alle parametere som tar en strengverdi og er lukket i ”. Vær også oppmerksom på at det er et mellomrom mellom: og
For eksempel, offentlig parameter gjør repoen offentlig. Kommandoen gjør det også mulig å opprette problemer, prosjekter, wikier.
# 4) Gi nytt navn til depotet.
krøll -X POST -u: -X PATCH -d “{” navn ”: ” ”}” https://api.github.com/repos//
# 5) Oppdater has_wiki parameter i depotet og sett verdien til false.
krøll -u: -X PATCH -d “{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Slett depotet.
krøll -X SLETT -u: https://api.github.com/repos//
# 7) Opprett et depot i en organisasjon.
krølle -X POST -u: https://api.github.com/orgs//repos “{” Navn ”: ” Demo_Repo_In_Org ”, ” beskrivelse ”: ” Dette er første repo i organisasjon via API ”, ” startside ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
# 8) Liste gafler for et depot.
krølle -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Ovennevnte kommando vil liste URL-en for å bla gjennom den forked repoen. Det samme kan sees under brukerregisteret og ‘Insights TAB => Forks’ .
krølle -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Ovennevnte kommando vil liste URL-en som skal klone den gaffelte repoen.
# 9) Gaffel et depot i organisasjonen.
krøll -X POST -u: -d “{” organisasjon ”: ” ”}” https://api.github.com/repos///forks
Samarbeidspartnere
#1) Liste samarbeidspartnere for et depot.
krølle -X GET -u: https://api.github.com/repos///collaborators | grep -w login
#to) Sjekk om en bruker er i listen over samarbeidspartnere.
krølle -X GET -u: https://api.github.com/repos///collaborators/
Hvis brukeren er en del av samarbeidspartneren, vises det ikke noe innhold som utdata, ellers vises følgende melding.
{
“Melding”: “er ikke bruker”,
“Documentation_url”: “https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Sjekk brukerens tillatelse.
krølle -X GET -u: https://api.github.com/repos///collaborators/
# 4) Legg til bruker som samarbeidspartner til depotet.
krølle -X PUT -u: https://api.github.com/repos///collaborators/
Legg ut dette, den inviterte må akseptere invitasjonen til å delta som samarbeidspartner. Hvis en bruker allerede er lagt til som samarbeidspartner, vises ikke noe innhold, ellers vises utdataene.
# 5) Fjerner brukeren som samarbeidspartner.
krøll -X SLETT -u: https://api.github.com/repos///collaborators/
Intet innhold vises når kommandoen er kjørt.
Organisasjon
Merk: Opprette organisasjoner er ikke levert av GitHub API.
#1) Liste over alle organisasjonskontoer for en bruker.
krølle -X GET -u: https://api.github.com/repos/user/orgs | grep -w login
#to) Oppdater en organisasjon.
krøll -X PATCH -u: -d “{” navn ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” e-post ”: ” vniranjan72 @ outlook .com ”, ” location ”: ” Bangalore ”, ” ”beskrivelse ”: ”Oppdatering av organisasjonsdetaljer ”} ”https://api.github.com/orgs/
Grener
#1) Liste grener i et brukerregister. Kommandoen vil liste opp alle grenene i et depot.
krølle -X GET -u: https://api.github.com/repos///branches | grep -w navn
#to) Liste over alle beskyttede grener i et brukerregister.
krølle -X GET -u: https://api.github.com/repos///branches ? beskyttet = sant | grep -w navn
# 3) Liste over alle ikke-beskyttede grener i et brukerregister
krølle -X GET -u: https://api.github.com/repos///branches ? beskyttet = falsk | grep -w navn
# 4) Fjern grenbeskyttelse.
krøll -X SLETT -u: https://api.github.com/repos///branches/master/protection
Trekk forespørsler
#1) List Pull pull-forespørsler.
krølle -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w tittel
Alternativer for tilstandsparameteren er Åpne, Lukket, Alle.
#to) Lag en Pull-forespørsel.
krøll -X POST -u: -d “{” tittel ”: ” Flott funksjon lagt til ”, ” kropp ”: ” Vennligst trekk den store endringen som er gjort i hovedgrenen ”, ” head ”: ” Funksjon ”, ” base ”: ” master ”}” https://api.github.com/repos///pulls
# 3) Oppgi nummeret på opprettede Pull-forespørsler.
krølle -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w nummer
# 4) Oppdater Pull forespørselens kropp eller andre parametere (maks. 250 forpliktelser)
krøll -X PATCH -u: -d “{” body ”: ” Obligatorisk å trekke den store endringen som er gjort i funksjonsgren til hovedgren ”}” https://api.github.com/repos///pulls / 31
# 5) List Pull forespørsel forplikter.
krølle -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) List Pull-anmodningsfiler (maks. 300 filer).
krølle -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w filnavn
# 7) Merge Pull-forespørsel.
krøll -X PUT -u: -d “{” commit_message ”: ” Good Commit ”}” https://api.github.com/repos///pulls/31 /gå
Svar hvis det er slått sammen
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
“Sammenslått”: sant,
“Melding”: “Pull Request ble slått sammen”
}
Svar hvis pull-forespørsel ikke kan slås sammen
{
“Message”: “Pull Request is not mergeable”,
“Documentation_url”: “https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Etiketter, milepæler og utgaver
Etiketter
#1) Liste opp alle etikettene i et depot.
krølle -X GET -u: https://api.github.com/repos///labels | grep -w navn
#to) Liste spesifikk etikett i et depot.
krølle -X GET -u: https://api.github.com/repos///labels / feil
# 3) Å lage en etikett.
krøll -X POST -u: -d “{” navn ”: ” defekt ”, ” beskrivelse ”: ” For å heve en defekt ”, ” farge ”: ” ff493b '}' https://api.github.com/repos///labels
Den heksadesimale fargekoden for farge parameter kan angis fra Farge-heks
# 4) Oppdater etiketten
krøll -X PATCH -u: -d “{” farge ”: ” 255b89 ”}” https://api.github.com/repos///labels /defekt
# 5) Slett etiketten
krøll -X SLETT -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Problemer
# 6) Liste et spesifikt problem i et depot.
krølle -X GET -u: https://api.github.com/repos///issues/20 | grep -w tittel
# 7) Liste over alle problemene i et depot.
krølle -X GET -u: https://api.github.com/repos///utgaver | grep -w tittel
# 8) Lag et problem.
curl -X POST -u: -d “{” title ”: ” Ny velkomstside ”, ” body ”: ” For å designe en ny side ”, ” labels ”: (” forbedring ”), ” milepæl ”: ” 3 ”, ” rettighetshavere ”: (” ”, ”
I kommandoen ovenfor, etiketter og rettighetshavere parametere er en rekke strenger der flere verdier kan oppgis. Stat parameteren vil ha verdien enten åpen eller lukket.
# 9) Legg til en etikett i et problem.
krøll -X POST -u: -d “{” etiketter ”: (” forbedring ”)}” https://api.github.com/repos///utgaver / 30 / etiketter
# 10) Rediger et problem og oppdater parametrene F.eks. Merkelapper til det.
krøll -X PATCH -u: -d “{” labels ”: (” bug ”, ” enhancement ”)}” https://api.github.com/repos///utgaver / 30
I kommandoen ovenfor oppdaterer du etiketter for nummer 30.
#elleve) Fjern en etikett fra et bestemt problem.
krøll -X SLETT -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Fjern ALLE etiketter fra et bestemt problem.
krøll -X SLETT -u: https://api.github.com/repos///issues/30/labels
Milepæler
# 1. 3) Liste over milepæler.
krøll -X GET -u: -d “{” state ”: (” open ”)}” https://api.github.com/repos///milestones | grep -w tittel
# 14) Liste detaljer for en bestemt milepæl.
krølle -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w tittel
#femten) Lag en milepæl.
krøll -X POST -u: -d “{” tittel ”: ” R5 ”, ” tilstand ”: ” åpen ”, ” beskrivelse ”: ” Spor for milepæl R5 ”, ”Due_on ”: ”2019-12-05T17: 00: 01Z ”} ” https://api.github.com/repos///milestones
I kommandoen ovenfor skal grunn på er et tidsstempel ISO 8601 i ÅÅÅÅ-MM-DDTHH: MM: SSZ format. Mer om dette finner du @ ISO 8601
# 16) Oppdater en milepæl.
krøll -X PATCH -u: -d “{” tilstand ”: ” lukket ”}” https://api.github.com/repos///milestones / 3
# 17) Slett en milepæl.
krøll -X SLETT -u: https://api.github.com/repos///milestones / 3
Lag
#1) Liste lag i en organisasjon.
krølle -X GET -u: https://api.github.com/orgs//teams | grep -w navn
Liste etter team-ID
krølle -X GET -u: https://api.github.com/orgs//teams | grep -w id
#to) Liste lag etter bruker.
krølle -X GET -u: https://api.github.com/user/teams | grep -w navn
# 3) Opprett et team, legg til medlemmer og legg depot til teamet.
krøll -X POST -u: -d “{” navn ”: ” ”, ” beskrivelse ”: ” Angi kort beskrivelse ”, ” vedlikeholdere ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Rediger teamnavn og beskrivelse.
krøll -X PATCH -u: -d “{” navn ”: ” Nytt teamnavn ”, ” beskrivelse ”: ” Siste beskrivelse ”}” https://api.github.com/teams/
Team-ID kan hentes ved å kjøre kommandoen fra trinn 1.
# 5) Legg til et depot til et eksisterende team ..
krølle -X PUT -u: https://api.github.com/teams//repos//
# 6) Fjern depot fra et team.
krøll -X SLETT -u: https://api.github.com/teams/
# 7) Slett et team.
krøll -X SLETT -u: https://api.github.com/teams/
Søk etter arkiver, kode, problemer
Search API lar deg søke etter et hvilket som helst element.
#1) For eksempel, hvis du vil søke i alle arkiver som eies av en bestemt bruker.
krølle -X FÅ https://api.github.com/search/repositories?q=bruker: | grep -w “navn”
liste over programmeringsspråk på høyt nivå
Nødvendig parameter er hva som inneholder søkekriteriene som består av nøkkelord og kvalifikasjoner for å begrense søket i et bestemt område i Github.
#to) Søk i alle arkiver som eies av en bestemt bruker som inneholder 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øk etter et nøkkelord i innholdet i en fil. I eksemplet nedenfor, søk etter nøkkelordet ‘System’ og ‘addEmployee’ i en fil i et lager som eies av en bruker.
krølle -X FÅ https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w navn
# 4) Søk etter nøkkelordet 'velkommen' i åpne utgaver, og merk som forbedring.
krølle -X FÅ https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Søk etter nøkkelordet ‘adresse’ i lukkede problemer, og merk som forbedring.
krølle -X FÅ https://api.github.com/search/issues?q=address+label:hancement+state:closed+repo:/
Utgivelser
#1) Listeutgivelser i et depot etter kodenavn 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 utgivelse.
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 body
krølle -X GET -u: https://api.github.com/repos///releases / | grep -w navn
# 3) Få detaljer om den SISTE utgivelsen.
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 body
# 4) Få utgivelsesdetaljer etter 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 kropp
# 5) Lag en utgivelse.
krøll -X POST -u: -d “{” tag_name ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, ”Body ”: ”Dette er for versjon 3.0 av produktet ”, ”draft ”: “false”, ”prerelease ”: “false”} ” https://api.github.com/repos//
Merk:I kommandoen for å lage en utgivelse tar parametrene 'draft' og 'prerelease' boolske verdier. Angi sant eller usant uten ”.
- Utkastverdien false betyr at den publiserte utgivelsen er opprettet, og for sant er den en ikke-publisert utgivelse.
- Forhåndsutgivelse falsk betyr at det er en full utgivelse. Sann verdi betyr at det er en forhåndsutgivelse.
# 6) Rediger eller oppdater utgivelsen.
krølle -X PATCH-u: -d “{” tag_name ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Slett utgivelsen.
krøll -X SLETT-u: https://api.github.com/repos//
# 8) Liste eiendeler for utgivelsen.
krøll -X SLETT-u: https://api.github.com/repos//
Konklusjon
I denne GitHub REST API-opplæringen så vi hvordan REST API-er kan brukes til forskjellige handlinger for å GET, PUT, POST, PATCH, SLETTE data.
URL-en som brukes for REST API-er for å fungere direkte med GitHub.com er https://api.github.com. Mens lagene bruker GitHub enterprise i organisasjonen sin, vil URL-en som skal brukes med REST API være https: /// api / v3
Alle opplæringene i denne serien har hittil konsentrert seg om bruken av GitHub fra et utviklerperspektiv sammen med de beste metodene for samarbeid mens du jobber i et team for versjonskontroll av forskjellige typer gjenstander direkte på GitHub og ikke lokalt.
Vår kommende veiledning vil fokusere på hvordan en utvikler vil jobbe offline på et lokalt lager lagret fra GitHub ved hjelp av Git Client-grensesnittene som GitHub Desktop og TortoiseGit og skyv endringene tilbake til det eksterne depotet.
=> Besøk her for å lære GitHub fra bunnen av.
Anbefalt lesing
- Rest API Tutorial: REST API Architecture And Constraints
- Rest API-responskoder og typer hvileanmodninger
- GitHub-veiledning for utviklere | Hvordan bruke GitHub
- REST API-testing med agurk ved bruk av BDD-tilnærming
- 10 beste API-testverktøy i 2021 (SOAP og REST API-testverktøy)
- REST API-testing med Spring RestTemplate og TestNG
- Slik automatiserer du API-forespørsler ved hjelp av trygg og Jenkins
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool