github rest api tutorial rest api support github
GitHub REST API - Een interface om programmatisch te communiceren met GitHub:
In onze eerdere tutorials over GitHub verkennen we de verschillende aspecten van het gebruik vanuit een ontwikkelaarsperspectief met behulp van de webinterface.
Tegenwoordig hebben de meeste organisaties op bijna elk gebied naar automatiseringsmogelijkheden gekeken en REST API's zijn nuttig geweest voor het automatiseren van verschillende scenario's voor verschillende tools.
Natuurlijk kunnen er ook andere gebieden zijn waar REST API's kunnen worden gebruikt.
Bezoek hier voor de exclusieve GitHub Training Tutorial Series
Wat je leert:
GitHub REST API-integratie
REST API's (Representational State Transfer) gebruiken voornamelijk HTTP-verzoeken om het volgende te doen.
- KRIJGEN - Haal de bron op
- PUT / PATCH - Update bron
- POST - Maak een bron
- VERWIJDEREN - Verwijder bron
We zullen niet diep ingaan op hoe REST API's werken, maar we zullen direct ingaan op REST API-ondersteuning in GitHub met behulp van de KRULLEN opdracht om de meeste taken uit te voeren die we in onze vorige tutorials op GitHub hebben gezien via REST API's.
De huidige versie van GitHub API is v3 en deze tutorial behandelt de belangrijkste activiteiten die een ontwikkelaar nodig zou hebben via deze API's.
Een persoonlijk toegangstoken maken
Om REST API's via de opdrachtregel te laten werken, moeten we verifiëren bij de GitHub-server. Daarom moeten we onze inloggegevens opgeven. Welnu, we willen ons wachtwoord dat wordt gebruikt met ons GitHub-account niet bekendmaken, dus we zullen een persoonlijk toegangstoken genereren dat kan worden gebruikt met de opdrachtregel om te verifiëren bij GitHub.
Log in op uw GitHub-account en klik op Instellingen onder je profiel.
Ga naar Ontwikkelaarsinstellingen -> Persoonlijke toegangstokens. Genereer een nieuw token.
Voeg een naam toe en selecteer het bereik voor de API-toegang en klik op Maak een token.
Zorg ervoor dat u in het volgende scherm het token kopieert en in een bestand opslaat. Dit token zal worden gebruikt in de opdrachtregel om toegang te krijgen tot GitHub API.
voorbeelden van client-serverapplicaties en webgebaseerde applicaties
Het gemaakte token kan ook worden gebruikt tijdens de git kloon bediening wanneer om een wachtwoord wordt gevraagd. Nu we het token hebben, zullen we zien hoe we toegang kunnen krijgen tot de API vanaf de opdrachtregel met behulp van het CURL-programma.
Als eerste vereiste moet u. Downloaden en installeren 'krullen'
Opslagplaats
De voorbeelden van de REST API die hier worden weergegeven, worden uitgevoerd op de Windows-computer. In deze sectie worden enkele van de GitHub Repository-bewerkingen getoond.
# 1) Om openbare repositories voor een gebruiker weer te geven, voert u de volgende opdracht op één regel uit.
krul -X GET -u: https://api.github.com/users//repos grep -w clone_url
#twee) Om openbare repositories onder een organisatie te vermelden.
krul -X GET -u: https://api.github.com/orgs//repos grep -w clone_url
# 3) Maak een persoonlijke opslagplaats.
krul -X POST -u: https://api.github.com/user/repos -d '{' naam ': ' Demo_Repo '}'
In de bovenstaande commandonaam is een parameter. Laten we eens kijken naar enkele andere parameters die kunnen worden gebruikt bij het maken van persoonlijke gebruikersrepository's.
krul -X POST -u: https://api.github.com/user/repos -d '{' name ': ' Demo_Repo ', ' description ': ' Dit is de eerste opslagplaats via API ', ' homepage ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
In het bovenstaande commando zijn name, description, homepage, public, has_projects, has_wiki alle parameters die een stringwaarde aannemen en ingesloten zijn in ”. Merk ook op dat er een RUIMTE is tussen: en
Bijvoorbeeld, public parameter maakt de repo openbaar. Met het commando kunnen ook problemen, projecten en wiki's worden gemaakt.
# 4) Hernoem de repository.
curl -X POST -u: -X PATCH -d '{' naam ': ' '}' https://api.github.com/repos//
# 5) Werk het has_wiki parameter in de repository en stel de waarde in op false.
curl -u: -X PATCH -d '{' has_wiki ': ' false '}' https://api.github.com/repos/gebruikersnaam/
# 6) Verwijder de repository.
krul -X DELETE -u: https://api.github.com/repos//
# 7) Maak een repository in een organisatie.
krul -X POST -u: https://api.github.com/orgs//repos '{' Name ': ' Demo_Repo_In_Org ', ' description ': ' Dit is de eerste opslagplaats in de organisatie via API ', ' homepage ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
# 8) Lijst Forks voor een repository.
krul -X GET -u: https://api.github.com/repos///forks grep -w html_url
De bovenstaande opdracht geeft de URL weer om door de gevorkte opslagplaats te bladeren. Hetzelfde is te zien onder de gebruikersrepository en ‘Insights TAB => Forks’
krul -X GET -u: https://api.github.com/repos///forks grep -w clone_url
De bovenstaande opdracht geeft de URL weer om de gevorkte opslagplaats te klonen.
# 9) Fork een repository in de organisatie.
curl -X POST -u: -d '{' organisatie ': ' '}' https://api.github.com/repos///forks
Medewerkers
# 1) Lijst met bijdragers voor een opslagplaats.
krul -X GET -u: https://api.github.com/repos///collaborators grep -w login
#twee) Controleer of een gebruiker in de Collaborator-lijst staat.
krul -X GET -u: https://api.github.com/repos///collaborators/
Als de gebruiker deel uitmaakt van een medewerker, wordt er geen inhoud weergegeven als uitvoer, anders wordt het volgende bericht weergegeven.
'Message': 'is geen gebruiker',
'Documentation_url': 'https://developer.github.com/v3/repos/collaborators/#get'
# 3) Controleer de toestemming van de gebruiker.
krul -X GET -u: https://api.github.com/repos///collaborators/
# 4) Voeg een gebruiker toe als medewerker aan de repository.
krul -X PUT -u: https://api.github.com/repos///collaborators/
Plaats dit, de genodigde moet de uitnodiging accepteren om als bijdrager deel te nemen. Als een gebruiker al is toegevoegd als medewerker, wordt er geen inhoud weergegeven, anders wordt de uitvoer weergegeven.
# 5) Gebruiker verwijderen als bijdrager.
krul -X DELETE -u: https://api.github.com/repos///collaborators/
Er wordt geen inhoud weergegeven nadat de opdracht met succes is uitgevoerd.
Organisatie
Opmerking: het maken van organisaties wordt niet geleverd door de GitHub API.
# 1) Maak een lijst van alle organisatieaccounts voor een gebruiker.
krul -X GET -u: https://api.github.com/repos/user/orgs grep -w login
#twee) Werk een organisatie bij.
curl -X PATCH -u: -d '{' naam ': ' TeamVN ', ' billing_email ': ' vniranjan72@outlook.com ', ' email ': ' vniranjan72 @ outlook .com ”, ” locatie ”: ” Bangalore ”, ” ”description ”: ”De organisatiegegevens bijwerken ”} ”https://api.github.com/orgs/
Takken
# 1) Maak een lijst van vertakkingen in een gebruikersrepository. Het commando geeft een lijst van alle branches in een repository.
krul -X GET -u: https://api.github.com/repos///branches grep -w naam
#twee) Maak een lijst van alle beschermde branches in een gebruikersrepository.
krul -X GET -u: https://api.github.com/repos///branches ? protected = true | grep -w naam
# 3) Maak een lijst van alle niet-beveiligde takken in een gebruikersrepository
krul -X GET -u: https://api.github.com/repos///branches ? protected = false | grep -w naam
# 4) Takbescherming verwijderen.
krul -X DELETE -u: https://api.github.com/repos///branches/master/protection
Pull-verzoeken
# 1) Lijst Pull-verzoeken.
krul -X GET -u: https://api.github.com/repos///pulls?state=open grep -w titel
Opties voor de statusparameter zijn Open, Gesloten, Alles.
#twee) Maak een Pull-aanvraag.
curl -X POST -u: -d '{' title ': ' Geweldige functie toegevoegd ', ' body ': ' Trek de grote wijziging die is aangebracht in master branch ', ' head ': ' Feature ', ' base ': ' master '}' https://api.github.com/repos///pulls
# 3) Maak een lijst van het aantal gecreëerde Pull-verzoeken.
krul -X GET -u: https://api.github.com/repos///pulls?state=open grep -w nummer
# 4) Werk de body van het pull-verzoek of een andere parameter bij (maximaal 250 commits).
curl -X PATCH -u: -d '{' body ': ' Verplicht om de grote wijziging die is aangebracht in de feature branch naar master branch '}' te halen https://api.github.com/repos///pulls / 31
# 5) List Pull request commits.
krul -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Lijst met pull-aanvraagbestanden (maximaal 300 bestanden).
krul -X GET -u: https://api.github.com/repos///pulls/31/files grep -w bestandsnaam
# 7) Pull-verzoek samenvoegen.
curl -X PUT -u: -d '{' commit_message ': ' Good Commit '}' https://api.github.com/repos///pulls/31 /Gaan
Reactie indien samengevoegd
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Samengevoegd': waar,
'Message': 'Pull Request succesvol samengevoegd'
Reactie als pull-verzoek niet kan worden samengevoegd
'Message': 'Pull Request is niet samen te voegen',
'Documentation_url': 'https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button'
Labels, mijlpalen en problemen
Etiketten
# 1) Maak een lijst van alle labels in een repository.
krul -X GET -u: https://api.github.com/repos///labels grep -w naam
#twee) Geef een specifiek label op in een opslagplaats.
krul -X GET -u: https://api.github.com/repos///labels bug
# 3) Om een label te maken.
curl -X POST -u: -d '{' naam ': ' defect ', ' beschrijving ': ' Om een defect te verhogen ', ' kleur ': ' ff493b https://api.github.com/repos///labels
De hexadecimale kleurcode voor de kleur parameter kan worden ingesteld vanaf Kleur-hex
# 4) Update label
curl -X PATCH -u: -d '{' kleur ': ' 255b89 '}' https://api.github.com/repos///labels /defect
# 5) Label verwijderen
krul -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Problemen
# 6) Maak een lijst van een specifiek probleem in een repository.
krul -X GET -u: https://api.github.com/repos///issues/20 grep -w titel
# 7) Maak een lijst van alle problemen in een repository.
krul -X GET -u: https://api.github.com/repos///issues grep -w titel
# 8) Creëer een probleem.
curl -X POST -u: -d '{' title ': ' Nieuwe welkomstpagina ', ' body ': ' Om een nieuwe pagina te ontwerpen ', ' labels ': (' verbetering '), ' mijlpaal ': ' 3 ', ' toegewezen personen ': (' ', '
In het bovenstaande commando, labels en rechtverkrijgenden Parameters zijn een reeks tekenreeksen waarin meerdere waarden kunnen worden opgegeven. Staat parameter zal de waarde hebben open of gesloten.
# 9) Voeg een label toe aan een probleem.
curl -X POST -u: -d '{' labels ': (' verbetering ')}' https://api.github.com/repos///issues / 30 / labels
# 10) Bewerk een probleem en werk de parameters bij Bijv. Etiketten erop.
curl -X PATCH -u: -d '{' labels ': (' bug ', ' verbetering ')}' https://api.github.com/repos///issues / 30
Werk in de bovenstaande opdracht de labels bij voor het nummer 30.
#elf) Verwijder een label van een specifiek probleem.
krul -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Verwijder ALLE labels van een specifiek probleem.
krul -X DELETE -u: https://api.github.com/repos///issues/30/labels
Mijlpalen
# 13) Maak een lijst van alle mijlpalen.
curl -X GET -u: -d '{' state ': (' open ')}' https://api.github.com/repos///milestones grep -w titel
# 14) Lijst met details van een specifieke mijlpaal.
krul -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w titel
#vijftien) Creëer een mijlpaal.
curl -X POST -u: -d '{' title ': ' R5 ', ' state ': ' open ', ' description ': ' Track voor mijlpaal R5 ', 'Due_on ': '2019-12-05T17: 00: 01Z '} ' https://api.github.com/repos///milestones
In het bovenstaande commando de verschuldigd op is een tijdstempel ISO 8601 in JJJJ-MM-DDTHH: MM: SSZ formaat. Meer hierover is te vinden op @ ISO 8601
# 16) Werk een mijlpaal bij.
curl -X PATCH -u: -d '{' state ': ' gesloten '}' https://api.github.com/repos///milestones / 3
# 17) Verwijder een mijlpaal.
krul -X DELETE -u: https://api.github.com/repos///milestones / 3
Teams
# 1) Lijst met teams in een organisatie.
krul -X GET -u: https://api.github.com/orgs//teams grep -w naam
Lijst op team-ID
krul -X GET -u: https://api.github.com/orgs//teams grep -w id
#twee) Lijst teams op gebruiker.
krul -X GET -u: https://api.github.com/user/teams grep -w naam
# 3) Creëer een team, voeg leden toe en voeg repository toe aan het team.
curl -X POST -u: -d '{' naam ': ' ', ' beschrijving ': ' Voer een korte beschrijving in ', ' beheerders ': (' '), 'Repo_names ': ( '/ ')} ' https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Bewerk teamnaam en beschrijving.
curl -X PATCH -u: -d '{' naam ': ' Nieuwe teamnaam ', ' beschrijving ': ' Laatste beschrijving '}' https://api.github.com/teams/
Team-ID kan worden opgehaald door de opdracht uit stap 1 uit te voeren.
# 5) Voeg een opslagplaats toe aan een bestaand team.
krul -X PUT -u: https://api.github.com/teams//repos//
# 6) Verwijder de opslagplaats uit een team.
krul -X DELETE -u: https://api.github.com/teams/
# 7) Verwijder een team.
krul -X DELETE -u: https://api.github.com/teams/
Doorzoek opslagplaatsen, code, problemen
Met de zoek-API kan naar elk item worden gezocht.
# 1) Bijvoorbeeld, als u alle repositories wilt doorzoeken die eigendom zijn van een bepaalde gebruiker.
krul -X GET https://api.github.com/search/repositories?q=gebruiker: grep -w 'naam'
Vereiste parameter is wat dat de zoekcriteria bevat die bestaan uit trefwoorden en kwalificaties om de zoekopdracht in een specifiek gebied in Github te beperken.
#twee) Doorzoek alle opslagplaatsen die eigendom zijn van een bepaalde gebruiker die de woorden V en Niranjan bevatten in het README-bestand
krul -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: grep -w naam
# 3) Zoek naar een trefwoord in de inhoud van een bestand. Zoek in het onderstaande voorbeeld naar het trefwoord ‘Systeem’ en ‘addEmployee’ in een bestand in een opslagplaats die eigendom is van een gebruiker.
krul -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ grep -w naam
# 4) Zoek naar het zoekwoord ‘welkom’ in openstaande problemen en label als verbetering.
krul -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Zoek naar het trefwoord ‘adres’ in gesloten problemen en label als verbetering.
krul -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Releases
# 1) Maak een lijst van releases in een repository op tagnaam en id.
krul -X GET -u: https://api.github.com/repos///releases grep -w tag_name
krul -X GET -u: https://api.github.com/repos///releases grep -w id
#twee) Krijg details van een enkele release.
krul -X GET -u: https://api.github.com/repos///releases grep -w tag_name
krul -X GET -u: https://api.github.com/repos///releases grep -w lichaam
krul -X GET -u: https://api.github.com/repos///releases grep -w naam
# 3) Bekijk details van de LAATSTE release.
krul -X GET -u: https://api.github.com/repos///releases/latest grep -w tag_name
krul -X GET -u: https://api.github.com/repos///releases/latest grep -w naam
krul -X GET -u: https://api.github.com/repos///releases/latest grep -w lichaam
# 4) Verkrijg releasegegevens per tag.
krul -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w naam
krul -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w lichaam
# 5) Maak een release.
curl -X POST -u: -d '{' tag_name ': ' R3.0 ', ' target_commitish ': ' master ', ' name ': ' Release 3.0 ', 'Body ': 'Dit is voor versie 3.0 van het product ', 'draft ': 'false', 'prerelease ': 'false'} ' https://api.github.com/repos//
SQL server interviewvragen voor ervaren
Notitie:In de opdracht om een release te maken, hebben de parameters ‘draft’ en ‘prerelease’ Booleaanse waarden. Voer true of false in zonder ”.
- De conceptwaarde false betekent dat de gepubliceerde release is gemaakt en voor true is het een niet-gepubliceerde release.
- Prerelease false betekent dat het een volledige release is. Echte waarde betekent dat het een voorlopige versie is.
# 6) Bewerk of update de release.
curl -X PATCH-u: -d '{' tag_naam ': ' R3.1 '}' https://api.github.com/repos//
# 7) Verwijder de release.
krul -X DELETE-u: https://api.github.com/repos//
# 8) Lijst met items voor de release.
krul -X DELETE-u: https://api.github.com/repos//
Gevolgtrekking
In deze GitHub REST API-tutorial hebben we gezien hoe REST API's kunnen worden gebruikt voor verschillende acties om gegevens te GET, PUT, POST, PATCH, DELETE.
De URL die wordt gebruikt voor REST API's om rechtstreeks met GitHub.com te werken, is https://api.github.com. Terwijl, als de teams GitHub enterprise in hun organisatie gebruiken, de URL om met REST API te gebruiken https: /// api / v3 zou zijn
Alle tutorials in deze serie waren tot dusver geconcentreerd op het gebruik van GitHub vanuit een ontwikkelaarsperspectief, samen met de best practices van samenwerking tijdens het werken in een team voor versiebeheer van verschillende soorten artefacten rechtstreeks op GitHub en niet lokaal.
Onze aanstaande tutorial zal zich concentreren op hoe een ontwikkelaar offline zal werken op een lokale repository die is gekloond vanuit GitHub met behulp van de Git Client-interfaces zoals GitHub Desktop en TortoiseGit en push de wijzigingen terug naar de externe repository.
Bezoek hier om GitHub vanaf het begin te leren.
Aanbevolen literatuur
- Rest API-zelfstudie: REST API-architectuur en beperkingen
- Rest API-antwoordcodes en soorten rustverzoeken
- GitHub-zelfstudie voor ontwikkelaars | Hoe GitHub te gebruiken
- REST API-testen met komkommer met behulp van BDD-benadering
- 10 beste API-testtools in 2021 (SOAP- en REST API-testtools)
- REST API-testen met Spring RestTemplate en TestNG
- API-verzoeken automatiseren met Rest Assured en Jenkins
- Parasoft SOAtest-zelfstudie: scriptloze API-testtool