github rest api tutorial rest api support github
GitHub REST API - Ett gränssnitt för att interagera programmatiskt med GitHub:
I våra tidigare handledning om GitHub utforskar vi de olika användningsaspekterna ur ett utvecklingsperspektiv med hjälp av webbgränssnittet.
Idag har de flesta organisationer tittat på automatiseringsmöjligheter i nästan alla områden och REST API: er har varit användbara för att automatisera olika scenarier för olika verktyg.
Naturligtvis kan det också finnas andra områden där REST API kan användas.
=> Besök här för den exklusiva GitHub-utbildningsserien .
Vad du kommer att lära dig:
GitHub REST API-integration
REST API: er (Representational State Transfer) använder primärt HTTP-förfrågningar för att göra följande.
- SKAFFA SIG - Hämta resursen
- PUT / PATCH - Uppdatera resurs
- POSTA - Skapa en resurs
- RADERA - Ta bort resurs
Vi kommer inte att dyka djupt in i hur REST API fungerar, utan vi hoppar direkt in i REST API-stöd i GitHub med hjälp av RINGLA kommando för att utföra de flesta uppgifter som vi såg i våra tidigare självstudier om GitHub via REST API: er.
Den nuvarande versionen av GitHub API är v3 och den här handledningen täcker de viktigaste aktiviteterna som en utvecklare skulle behöva genom dessa API: er.
Skapa ett personligt åtkomsttoken
För att REST-API: er ska fungera genom kommandoraden måste vi autentisera till GitHub-servern. Därför måste vi tillhandahålla våra referenser. Tja, vi vill inte avslöja vårt lösenord som används med vårt GitHub-konto, så vi genererar en personlig åtkomsttoken som ska användas med kommandoraden för att autentisera till GitHub.
Logga in på ditt GitHub-konto och klicka på inställningar under din profil.
Gå till Utvecklarinställningar -> Personliga åtkomsttoken. Skapa en ny token.
Lägg till ett namn och välj omfånget för API-åtkomst och klicka på Skapa Token.
På nästa skärm, se till att kopiera token och spara den i en fil. Den här token kommer att användas i kommandoraden för att komma åt GitHub API.
vad vr fungerar med xbox one
Den skapade token kan också användas under git klon när du blir ombedd att ange ett lösenord. Nu, när vi har token på plats, kommer vi att se hur du kommer åt API: et från kommandoraden med CURL-programmet.
Som en förutsättning måste du ladda ner och installera 'ringla' .
Förvar
REST API: s exempel som visas här körs på Windows-maskinen. Det här avsnittet visar några av GitHub Repository-operationerna.
# 1) För att lista offentliga arkiv för en användare, kör följande kommando på en enda rad.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#två) För att lista offentliga arkiv under en organisation.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Skapa ett personligt arkiv.
curl -X POST -u: https://api.github.com/user/repos -d “{” namn ”: ” Demo_Repo ”}”
I kommandot ovan finns en parameter. Låt oss titta på några andra parametrar som kan användas när du skapar personliga användarförråd.
curl -X POST -u: https://api.github.com/user/repos -d “{” namn ”: ” Demo_Repo ”, ” beskrivning ”: ” Detta är första repo genom API ”, ” hemsida ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
I kommandot ovan är namn, beskrivning, hemsida, offentligt, has_projects, has_wiki alla parametrar som tar ett strängvärde och är inneslutna i ”. Observera också att det finns ett mellanslag mellan: och
Till exempel, public parameter gör repo offentlig. Kommandot gör det också möjligt att skapa problem, projekt, wikis.
# 4) Byt namn på förvaret.
curl -X POST -u: -X PATCH -d “{” name ”: ” ”}” https://api.github.com/repos//
# 5) Uppdatera has_wiki parameter i förvaret och ställ in värdet till falskt.
curl -u: -X PATCH -d “{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Ta bort arkivet.
curl -X RADERA -u: https://api.github.com/repos//
# 7) Skapa ett arkiv i en organisation.
curl -X POST -u: https://api.github.com/orgs//repos “{” Namn ”: ” Demo_Repo_In_Org ”, ” beskrivning ”: ” Detta är första repo i organisation via API ”, ” hemsida ”: ” https: //github.com ” , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
# 8) Lista gafflar för ett förvar.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Ovanstående kommando listar webbadressen för att bläddra i den gafflade repo. Detsamma kan ses under användarförvaret och 'Insights TAB => Forks' .
curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Ovanstående kommando listar webbadressen för att klona den gafflade repo.
# 9) Gaffla ett arkiv i organisationen.
curl -X POST -u: -d “{” organisation ”: ” ”}” https://api.github.com/repos///forks
Samarbetare
# 1) Lista samarbetspartners för ett arkiv.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w inloggning
#två) Kontrollera om en användare finns i Collaborator-listan.
curl -X GET -u: https://api.github.com/repos///collaborators/
Om användaren är en del av medarbetaren visas inget innehåll som utdata, annars visas följande meddelande.
{
“Meddelande”: “är inte en användare”,
“Documentation_url”: “https://developer.github.com/v3/repos/collaborators/#get”
}
# 3) Kontrollera användarens tillstånd.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Lägg till användare som samarbetspartner till arkivet.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Lägg upp detta, den inbjudna måste acceptera inbjudan att gå med som medarbetare. Om en användare redan har lagts till som medarbetare visas inget innehåll annars visas utdata.
# 5) Tar bort användaren som samarbetspartner.
curl -X RADERA -u: https://api.github.com/repos///collaborators/
Inget innehåll visas när kommandot har körts framgångsrikt.
Organisation
Obs! Skapa organisationer tillhandahålls inte av GitHub API.
# 1) Lista alla organisationskonton för en användare.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w inloggning
#två) Uppdatera en organisation.
curl -X PATCH -u: -d “{” name ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” email ”: ” vniranjan72 @ outlook .com ”, ” plats ”: ” Bangalore ”, ” ”beskrivning ”: ”Uppdatering av organisationsdetaljer ”} ”https://api.github.com/orgs/
Grenar
# 1) Lista filialer i ett användarförvar. Kommandot listar alla grenar i ett arkiv.
curl -X GET -u: https://api.github.com/repos///branches | grep -w namn
#två) Lista alla skyddade grenar i ett användarförvar.
curl -X GET -u: https://api.github.com/repos///branches ? skyddad = sant | grep -w namn
# 3) Lista alla oskyddade grenar i ett användarförvar
curl -X GET -u: https://api.github.com/repos///branches ? skyddad = falsk | grep -w namn
# 4) Ta bort grenskydd.
curl -X RADERA -u: https://api.github.com/repos///branches/master/protection
Dra begäranden
# 1) List Pull Pull-förfrågningar.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w titel
Alternativ för tillståndsparametern är Öppna, Stängda, Alla.
#två) Skapa en Pull-begäran.
curl -X POST -u: -d “{” title ”: ” Stor funktion tillagd ”, ” body ”: ” Vänligen dra den stora förändringen som gjorts till mastergrenen ”, ” head ”: ” Funktion ”, ” bas ”: ” master ”}” https://api.github.com/repos///pulls
# 3) Lista antalet skapade Pull-förfrågningar.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w-nummer
# 4) Uppdatera Pull-begäran eller andra parametrar (max 250 åtaganden).
curl -X PATCH -u: -d “{” body ”: ” Obligatoriskt att dra den stora förändringen som görs i funktionsgrenen till mastergrenen ”}” https://api.github.com/repos///pulls / 31
# 5) List Pull-begäran begår.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) List Pull Pull-begäran filer (högst 300 filer endast).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w filnamn
# 7) Merge Pull-begäran.
curl -X PUT -u: -d “{” commit_message ”: ” Good Commit ”}” https://api.github.com/repos///pulls/31 /gå
Svar om det slås samman
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
”Sammanslagna”: sant,
“Meddelande”: “Pull-begäran har slagits samman”
}
Svar om pull-begäran inte kan slås samman
{
'Meddelande': 'Pull Request kan inte slås samman',
“Documentation_url”: “https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button”
}
Etiketter, milstolpar och nummer
Etiketter
# 1) Lista alla etiketter i ett arkiv.
curl -X GET -u: https://api.github.com/repos///labels | grep -w namn
#två) Lista specifik etikett i ett arkiv.
curl -X GET -u: https://api.github.com/repos///labels / insekt
# 3) Att skapa en etikett.
curl -X POST -u: -d “{” namn ”: ” defekt ”, ” beskrivning ”: ” För att höja en defekt ”, ” färg ”: ” ff493b '}' https://api.github.com/repos///labels
Den hexadecimala färgkoden för Färg kan ställas in från Färg-hex
# 4) Uppdatera etikett
curl -X PATCH -u: -d “{” color ”: ” 255b89 ”}” https://api.github.com/repos///labels /defekt
# 5) Ta bort etiketten
curl -X RADERA -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Problem
# 6) Lista ett specifikt problem i ett arkiv.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w titel
# 7) Lista alla problem i ett arkiv.
curl -X GET -u: https://api.github.com/repos///issues | grep -w titel
# 8) Skapa ett problem.
curl -X POST -u: -d “{” title ”: ” Ny välkomstsida ”, ” body ”: ” För att designa en ny sida ”, ” labels ”: (” förbättring ”), ” milstolpe ”: ” 3 ”, ” tilldelade ”: (” ”, ”
I ovanstående kommando, etiketter och tilldelade personer parametrar är en rad strängar där flera värden kan tillhandahållas. stat har antingen värdet öppen eller stängd.
# 9) Lägg till en etikett i ett problem.
curl -X POST -u: -d “{” labels ”: (” enhancement ”)}” https://api.github.com/repos///issues / 30 / etiketter
# 10) Redigera ett problem och uppdatera parametrarna T.ex, Märker det.
curl -X PATCH -u: -d “{” labels ”: (” bug ”, ” enhancement ”)}” https://api.github.com/repos///issues / 30
I ovanstående kommando uppdaterar du etiketter för nummer 30.
#elva) Ta bort en etikett från ett specifikt problem.
curl -X RADERA -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Ta bort ALLA etiketter från ett specifikt problem.
curl -X RADERA -u: https://api.github.com/repos///issues/30/labels
Milstolpar
# 13) Lista alla milstolpar.
curl -X GET -u: -d “{” state ”: (” open ”)}” https://api.github.com/repos///milestones | grep -w titel
# 14) Lista detaljer för en specifik milstolpe.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w titel
#femton) Skapa en milstolpe.
curl -X POST -u: -d “{” title ”: ” R5 ”, ” state ”: ” open ”, ” description ”: ” Spår för milstolpe R5 ”, ”Due_on ”: ”2019-12-05T17: 00: 01Z ”} ” https://api.github.com/repos///milestones
I ovanstående kommando betalas på är en tidsstämpel ISO 8601 i ÅÅÅÅ-MM-DDTHH: MM: SSZ formatera. Mer om detta hittar du @ ISO 8601
# 16) Uppdatera en milstolpe.
curl -X PATCH -u: -d “{” state ”: ” closed ”}” https://api.github.com/repos///milestones / 3
# 17) Ta bort en milstolpe.
curl -X RADERA -u: https://api.github.com/repos///milestones / 3
Lag
# 1) Lista lag i en organisation.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w namn
Lista efter team-ID
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#två) Lista team efter användare.
curl -X GET -u: https://api.github.com/user/teams | grep -w namn
# 3) Skapa ett team, lägg till medlemmar och lägg till förvar till teamet.
curl -X POST -u: -d “{” namn ”: ” ”, ” beskrivning ”: ” Ange kort beskrivning ”, ” underhållare ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Redigera lagets namn och beskrivning.
curl -X PATCH -u: -d “{” namn ”: ” Nytt teamnamn ”, ” beskrivning ”: ” Senaste beskrivning ”}” https://api.github.com/teams/
Team-ID kan hämtas genom att köra kommandot från steg 1.
# 5) Lägg till ett arkiv i ett befintligt team ..
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Ta bort arkivet från ett team.
curl -X RADERA -u: https://api.github.com/teams/
# 7) Ta bort ett team.
curl -X RADERA -u: https://api.github.com/teams/
Sök i arkiv, kod, problem
Sök-API: et gör det möjligt att söka efter valfritt objekt.
# 1) Till exempel, om du vill söka i alla arkiv som ägs av en viss användare.
curl -X FÅ https://api.github.com/search/repositories?q=user: | grep -w “namn”
Nödvändig parameter är Vad som innehåller sökkriterierna som består av nyckelord och kvalifikationer för att begränsa sökningen i ett specifikt område i Github.
#två) Sök i alla arkiv som ägs av en viss användare som innehåller orden V och Niranjan i README-filen
curl -X FÅ https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w namn
hur man kör .swf-filer
# 3) Sök efter ett nyckelord i filens innehåll. I exemplet nedan söker du efter nyckelordet 'System' och 'addEmployee' i en fil i ett arkiv som ägs av en användare.
curl -X FÅ https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w namn
# 4) Sök efter nyckelordet ”välkommen” i öppna nummer och märk det som förbättring.
curl -X FÅ https://api.github.com/search/issues?q=welcome+label:hancement+state:open+repo:/
# 5) Sök efter nyckelordet ”adress” i stängda utgåvor och märk som förbättring.
curl -X FÅ https://api.github.com/search/issues?q=address+label:hancement+state:closed+repo:/
Släpp
# 1) Lista utsläpp i ett arkiv efter taggnamn och id.
curl -X GET -u: https://api.github.com/repos///releases | grep -w tag_name
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#två) Få information om en enda release.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w tag_name
curl -X GET -u: https://api.github.com/repos///releases / | grep -w kropp
curl -X GET -u: https://api.github.com/repos///releases / | grep -w namn
# 3) Få detaljer om den SENASTE versionen.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w tag_name
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w namn
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w kropp
# 4) Få utgivningsinformation via Tag.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w namn
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w kropp
# 5) Skapa en release.
curl -X POST -u: -d “{” tag_name ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, ”Body ”: ”Detta är för version 3.0 av produkten ”, ”draft ”: “false”, ”prelelease ”: “false”} ” https://api.github.com/repos//
Notera:I kommandot för att skapa en release tar parametrarna 'draft' och 'prerelease' booleska värden. Ange sant eller falskt utan ”.
- Utkastet värde falsk betyder att den publicerade versionen skapas och i sanning är den en icke publicerad release.
- Förutsatt falskt betyder att det är en fullständig release. Verkligt värde betyder att det är en förhandsutgåva.
# 6) Redigera eller uppdatera versionen.
curl -X PATCH-u: -d “{” tag_name ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Radera utgåvan.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Lista tillgångar för frisläppandet.
curl -X DELETE-u: https://api.github.com/repos//
Slutsats
I denna GitHub REST API-handledning såg vi hur REST API: er kan användas för olika åtgärder för att GET, PUT, POST, PATCH, DELETE data.
Webbadressen som används för REST API: er för att fungera direkt med GitHub.com är https://api.github.com. Medan lag använder GitHub-företag i sin organisation skulle URL: en som ska användas med REST API vara https: /// api / v3
Alla tutorials i denna serie hittills koncentrerade sig till användningen av GitHub ur ett utvecklarperspektiv tillsammans med de bästa metoderna för samarbete medan man arbetar i ett team för versionskontroll av olika typer av artefakter direkt på GitHub och inte lokalt.
Vår kommande handledning kommer att fokusera på hur en utvecklare kommer att arbeta offline på ett lokalt arkiv klonat från GitHub med hjälp av Git Client-gränssnitt som GitHub Desktop och TortoiseGit och tryck tillbaka ändringarna till fjärrförvaret.
=> Besök här för att lära dig GitHub From Scratch.
Rekommenderad läsning
- Rest API Tutorial: REST API Architecture And Constraints
- Rest API-svarskoder och typer av vilovärden
- GitHub-handledning för utvecklare | Hur man använder GitHub
- REST API-testning med gurka med BDD-metod
- De 10 bästa API-testverktygen 2021 (SOAP och REST API-testverktyg)
- REST API-testning med Spring RestTemplate och TestNG
- Hur man automatiserar API-förfrågningar med Rest Assured och Jenkins
- Parasoft SOAtest Tutorial: Scriptless API Testing Tool