github rest api tutorial rest api support github
GitHub REST API - Eine Schnittstelle zur programmgesteuerten Interaktion mit GitHub:
In unseren früheren Tutorials zu GitHub untersuchen wir die verschiedenen Aspekte der Verwendung aus Entwicklersicht mithilfe der Weboberfläche.
Heutzutage haben die meisten Unternehmen in fast allen Bereichen nach Automatisierungsmöglichkeiten gesucht, und REST-APIs waren nützlich, um verschiedene Szenarien für verschiedene Tools zu automatisieren.
Natürlich könnte es auch andere Bereiche geben, in denen REST-APIs verwendet werden könnten.
=> Besuchen Sie hier für die exklusive GitHub-Schulungsserie .
Was du lernen wirst:
GitHub REST API Integration
REST-APIs (Representational State Transfer) verwenden hauptsächlich HTTP-Anforderungen, um Folgendes zu tun.
- ERHALTEN - Rufen Sie die Ressource ab
- PUT / PATCH - Ressource aktualisieren
- POST - Erstellen Sie eine Ressource
- LÖSCHEN - Ressource löschen
Wir werden nicht tief in die Funktionsweise der REST-API eintauchen, sondern direkt in die REST-API-Unterstützung in GitHub mit der CURL Befehl, um die meisten Aufgaben auszuführen, die wir in unseren vorherigen Tutorials auf GitHub über REST-APIs gesehen haben.
Die aktuelle Version der GitHub-API ist Version 3, und dieses Lernprogramm behandelt die wichtigsten Aktivitäten, die ein Entwickler über diese APIs benötigen würde.
Erstellen eines persönlichen Zugriffstokens
Damit REST-APIs über die Befehlszeile funktionieren, müssen wir uns beim GitHub-Server authentifizieren. Daher müssen wir unsere Anmeldeinformationen bereitstellen. Nun, wir möchten unser mit unserem GitHub-Konto verwendetes Passwort nicht offenlegen, daher generieren wir ein persönliches Zugriffstoken, das mit der Befehlszeile zur Authentifizierung bei GitHub verwendet wird.
Melden Sie sich bei Ihrem GitHub-Konto an und klicken Sie auf die Einstellungen unter deinem Profil.
Gehe zu Entwicklereinstellungen -> Persönliche Zugriffstoken. Generieren Sie ein neues Token.
Fügen Sie einen Namen hinzu, wählen Sie den Bereich für den API-Zugriff aus und klicken Sie auf Token erstellen.
Stellen Sie im nächsten Bildschirm sicher, dass Sie das Token kopieren und in einer Datei speichern. Dieses Token wird in der Befehlszeile verwendet, um auf die GitHub-API zuzugreifen.
wie man ein String-Array Java macht
Das erstellte Token kann auch während des verwendet werden Git-Klon Betrieb, wenn Sie nach einem Passwort gefragt werden. Nachdem wir das Token eingerichtet haben, werden wir sehen, wie Sie mit dem CURL-Programm über die Befehlszeile auf die API zugreifen können.
Voraussetzung ist, dass Sie herunterladen und installieren 'Curl' .
Repository
Die hier gezeigten Beispiele der REST-API werden auf dem Windows-Computer ausgeführt. In diesem Abschnitt werden einige der GitHub-Repository-Vorgänge vorgestellt.
# 1) Führen Sie den folgenden Befehl in einer einzelnen Zeile aus, um öffentliche Repositorys für einen Benutzer aufzulisten.
Curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#zwei) So listen Sie öffentliche Repositorys unter einer Organisation auf
Curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
#3) Erstellen Sie ein persönliches Repository.
Curl -X POST -u: https://api.github.com/user/repos -d '{' Name ': ' Demo_Repo '}'
Im obigen Befehl ist der Name ein Parameter. Schauen wir uns einige andere Parameter an, die beim Erstellen persönlicher Benutzerrepositorys verwendet werden können.
Curl -X POST -u: https://api.github.com/user/repos -d '{' Name ': ' Demo_Repo ', ' Beschreibung ': ' Dies ist das erste Repo über API ', ' Homepage ': ' https: //github.com ' , 'Public': 'true', 'has_issues': 'true', 'has_projects': 'true', 'has_wiki': 'true'} '
Im obigen Befehl sind Name, Beschreibung, Homepage, public, has_projects und has_wiki Parameter, die einen Zeichenfolgenwert annehmen und in ”eingeschlossen sind. Beachten Sie auch, dass zwischen: und ein Leerzeichen steht
Zum Beispiel, Der Parameter public macht das Repo öffentlich. Mit dem Befehl können auch Probleme, Projekte und Wikis erstellt werden.
# 4) Benennen Sie das Repository um.
curl -X POST -u: -X PATCH -d '{' name ': ' '}' https://api.github.com/repos//
# 5) Aktualisieren Sie die has_wiki Parameter im Repository und setzen Sie den Wert auf false.
curl -u: -X PATCH -d '{' has_wiki ': ' false '}' https://api.github.com/repos/user-name/
# 6) Löschen Sie das Repository.
locken -X LÖSCHEN -u: https://api.github.com/repos//
# 7) Erstellen Sie ein Repository in einer Organisation.
Curl -X POST -u: https://api.github.com/orgs//repos '{' Name ':' Demo_Repo_In_Org ',' Beschreibung ':' Dies ist das erste Repo in org über API ',' Homepage ':' https: //github.com ' , 'Public': 'true', 'has_issues': 'true', 'has_projects': 'true', 'has_wiki': 'true'} '
# 8) Listengabeln für ein Repository.
Curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Mit dem obigen Befehl wird die URL zum Durchsuchen des gegabelten Repos aufgelistet. Das gleiche kann unter dem Benutzer-Repository und gesehen werden ‘Insights TAB => Gabeln’ .
Curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Der obige Befehl listet die URL auf, um das gegabelte Repo zu klonen.
# 9) Fork ein Repository in der Organisation.
curl -X POST -u: -d '{' Organisation ': ' '}' https://api.github.com/repos///forks
Mitarbeiter
# 1) Listen Sie Mitarbeiter für ein Repository auf.
Curl -X GET -u: https://api.github.com/repos///collaborators | grep -w login
#zwei) Überprüfen Sie, ob sich ein Benutzer in der Collaborator-Liste befindet.
Curl -X GET -u: https://api.github.com/repos///collaborators/
Wenn der Benutzer Teil des Mitarbeiters ist, wird kein Inhalt als Ausgabe angezeigt, andernfalls wird die folgende Meldung angezeigt.
{
'Nachricht': 'ist kein Benutzer',
'Documentation_url': 'https://developer.github.com/v3/repos/collaborators/#get'
}}
#3) Überprüfen Sie die Berechtigung des Benutzers.
Curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Fügen Sie dem Repository einen Benutzer als Collaborator hinzu.
Curl -X PUT -u: https://api.github.com/repos///collaborators/
Wenn Sie dies posten, muss der eingeladene Teilnehmer die Einladung zum Beitritt als Mitarbeiter annehmen. Wenn ein Benutzer bereits als Mitarbeiter hinzugefügt wurde, wird kein Inhalt angezeigt, andernfalls wird die Ausgabe angezeigt.
# 5) Benutzer als Collaborator entfernen.
locken -X LÖSCHEN -u: https://api.github.com/repos///collaborators/
Sobald der Befehl erfolgreich ausgeführt wurde, wird kein Inhalt angezeigt.
Organisation
Hinweis: Das Erstellen von Organisationen wird nicht von der GitHub-API bereitgestellt.
# 1) Listen Sie alle Organisationskonten für einen Benutzer auf.
Curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w login
#zwei) Aktualisieren Sie eine Organisation.
curl -X PATCH -u: -d '{' name ': ' TeamVN ', ' billing_email ': ' vniranjan72@outlook.com ', ' email ': ' vniranjan72 @ Outlook .com ', ' Standort ': ' Bangalore ', ' 'Beschreibung ': 'Aktualisieren der Organisationsdetails '} 'https://api.github.com/orgs/
Geäst
# 1) Listen Sie Zweige in einem Benutzer-Repository auf. Der Befehl listet alle Zweige in einem Repository auf.
Curl -X GET -u: https://api.github.com/repos///branches | grep -w Name
#zwei) Listen Sie alle geschützten Zweige in einem Benutzer-Repository auf.
Curl -X GET -u: https://api.github.com/repos///branches protected = true | grep -w Name
#3) Listen Sie alle nicht geschützten Zweige in einem Benutzer-Repository auf
Curl -X GET -u: https://api.github.com/repos///branches ? protected = false | grep -w Name
# 4) Abzweigschutz entfernen.
locken -X LÖSCHEN -u: https://api.github.com/repos///branches/master/protection
Anfragen ziehen
# 1) Liste Pull-Anfragen.
Curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w Titel
Optionen für den Statusparameter sind Offen, Geschlossen, Alle.
#zwei) Erstellen Sie eine Pull-Anfrage.
curl -X POST -u: -d '{' title ': ' Großartige Funktion hinzugefügt ', ' body ': ' Bitte ziehen Sie die großartige Änderung, die am Hauptzweig vorgenommen wurde ',' head '. ':' Feature ',' Basis ':' Master '}' https://api.github.com/repos///pulls
#3) Listen Sie die Anzahl der erstellten Pull-Anforderungen auf.
Curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w Nummer
# 4) Update Pull-Anforderungshauptteil oder ein anderer Parameter (maximal 250 Commits).
curl -X PATCH -u: -d '{' body ': ' Obligatorisch, um die große Änderung im Feature-Zweig in den Master-Zweig zu übernehmen '}' https://api.github.com/repos///pulls / 31
# 5) List Pull Request Commits.
Curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Liste Pull-Anforderungsdateien (maximal 300 Dateien).
Curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w Dateiname
# 7) Merge Pull-Anforderung.
curl -X PUT -u: -d '{' commit_message ': ' Good Commit '}' https://api.github.com/repos///pulls/31 /gehen
Antwort bei Zusammenführung
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Zusammengeführt': wahr,
'Nachricht': 'Pull Request erfolgreich zusammengeführt'
}}
Antwort, wenn die Pull-Anforderung nicht zusammengeführt werden kann
{
'Nachricht': 'Pull Request ist nicht zusammenführbar',
'Documentation_url': 'https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button'
}}
Labels, Meilensteine und Probleme
Etiketten
# 1) Listen Sie alle Labels in einem Repository auf.
Curl -X GET -u: https://api.github.com/repos///labels | grep -w Name
#zwei) Listen Sie ein bestimmtes Label in einem Repository auf.
Curl -X GET -u: https://api.github.com/repos///labels /. Fehler
#3) So erstellen Sie ein Etikett.
Curl -X POST -u: -d '{' Name ': ' Defekt ', ' Beschreibung ': ' Um einen Defekt auszulösen ', ' Farbe ': ' ff493b '}' https://api.github.com/repos///labels
Der hexadezimale Farbcode für die Farbe Parameter kann von eingestellt werden Farbhex
# 4) Etikett aktualisieren
curl -X PATCH -u: -d '{' color ': ' 255b89 '}' https://api.github.com/repos///labels /Defekt
# 5) Etikett löschen
locken -X LÖSCHEN -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Probleme
# 6) Listen Sie ein bestimmtes Problem in einem Repository auf.
Curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w Titel
# 7) Listen Sie alle Probleme in einem Repository auf.
Curl -X GET -u: https://api.github.com/repos///issues | grep -w Titel
# 8) Erstellen Sie ein Problem.
curl -X POST -u: -d '{' title ': ' Neue Begrüßungsseite ', ' body ': ' So entwerfen Sie eine neue Seite ', ' label ': (' Verbesserung '), ' Meilenstein ': ' 3 ', ' Beauftragte ': (' ', '
Im obigen Befehl Etiketten und Beauftragte Parameter sind Arrays von Zeichenfolgen, in denen mehrere Werte angegeben werden können. Zustand Parameter hat entweder den Wert offen oder geschlossen.
# 9) Fügen Sie einem Problem eine Bezeichnung hinzu.
Curl -X POST -u: -d '{' Labels ': (' Enhancement ')}' https://api.github.com/repos///issues / 30 / Etiketten
# 10) Bearbeiten Sie ein Problem und aktualisieren Sie die Parameter Z.B, Beschriftet es.
curl -X PATCH -u: -d '{' Labels ': (' Bug ', ' Enhancement ')}' https://api.github.com/repos///issues / 30
Aktualisieren Sie im obigen Befehl die Beschriftungen für die Ausgabenummer 30.
#elf) Entfernen Sie ein Etikett von einem bestimmten Problem.
locken -X LÖSCHEN -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Entfernen Sie ALLE Etiketten von einem bestimmten Problem.
locken -X LÖSCHEN -u: https://api.github.com/repos///issues/30/labels
Meilensteine
# 13) Listen Sie alle Meilensteine auf.
curl -X GET -u: -d '{' state ': (' open ')}' https://api.github.com/repos///milestones | grep -w Titel
# 14) Listen Sie Details eines bestimmten Meilensteins auf.
Curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w Titel
#fünfzehn) Erstellen Sie einen Meilenstein.
curl -X POST -u: -d '{' title ': ' R5 ', ' state ': ' open ', ' description ': ' Track for meestone R5 ', 'Due_on ': '2019-12-05T17: 00: 01Z '} ' https://api.github.com/repos///milestones
Im obigen Befehl wird der fällig am ist ein Zeitstempel ISO 8601 im JJJJ-MM-TTTHH: MM: SSZ Format. Mehr dazu finden Sie unter @ ISO 8601
# 16) Aktualisieren Sie einen Meilenstein.
Curl -X PATCH -u: -d '{' Zustand ': ' geschlossen '}' https://api.github.com/repos///milestones /3
# 17) Löschen Sie einen Meilenstein.
locken -X LÖSCHEN -u: https://api.github.com/repos///milestones /3
Teams
# 1) Listen Sie Teams in einer Organisation auf.
Curl -X GET -u: https://api.github.com/orgs//teams | grep -w Name
Liste nach Team-ID
Curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#zwei) Listen Sie die Teams nach Benutzer auf.
Curl -X GET -u: https://api.github.com/user/teams | grep -w Name
#3) Erstellen Sie ein Team, fügen Sie Mitglieder hinzu und fügen Sie dem Team ein Repository hinzu.
curl -X POST -u: -d '{' name ': ' ', ' description ': ' Geben Sie eine kurze Beschreibung ein ', ' Betreuer ': (' '), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Bearbeiten Sie den Teamnamen und die Beschreibung.
curl -X PATCH -u: -d '{' name ': ' Neuer Teamname ', ' description ': ' Latest Description '}' https://api.github.com/teams/
Die Team-ID kann durch Ausführen des Befehls aus Schritt 1 abgerufen werden.
# 5) Fügen Sie einem vorhandenen Team ein Repository hinzu.
Curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Entfernen Sie das Repository aus einem Team.
locken -X LÖSCHEN -u: https://api.github.com/teams/
pl sql Interview Frage und Antworten für erfahrene
# 7) Löschen Sie ein Team.
locken -X LÖSCHEN -u: https://api.github.com/teams/
Repositorys, Code, Probleme durchsuchen
Die Such-API ermöglicht die Suche nach beliebigen Elementen.
# 1) Zum Beispiel, Wenn Sie alle Repositorys eines bestimmten Benutzers durchsuchen möchten.
Curl -X GET https://api.github.com/search/repositories?q=user: | grep -w 'Name'
Erforderlicher Parameter ist Was Das enthält die Suchkriterien, die aus Schlüsselwörtern und Qualifikationsmerkmalen bestehen, um die Suche in einem bestimmten Bereich in Github einzuschränken.
#zwei) Durchsuchen Sie alle Repositorys eines bestimmten Benutzers, die die Wörter V und Niranjan in der README-Datei enthalten
Curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w Name
#3) Suchen Sie im Inhalt einer Datei nach einem Schlüsselwort. Suchen Sie im folgenden Beispiel in einer Datei in einem Repository eines Benutzers nach dem Schlüsselwort 'System' und 'addEmployee'.
Curl -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w Name
# 4) Suchen Sie in offenen Ausgaben nach dem Schlüsselwort 'Willkommen' und kennzeichnen Sie es als Erweiterung.
Curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Suchen Sie in geschlossenen Ausgaben nach dem Schlüsselwort 'Adresse' und kennzeichnen Sie es als Erweiterung.
Curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Veröffentlichungen
# 1) Listen Sie Releases in einem Repository nach Tag-Name und ID auf.
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
#zwei) Holen Sie sich Details zu einer einzelnen Version.
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 Körper
Curl -X GET -u: https://api.github.com/repos///releases / | grep -w Name
#3) Holen Sie sich Details zur neuesten Version.
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 Name
Curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w Körper
# 4) Erhalten Sie Release-Details per Tag.
Curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w Name
Curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w Körper
# 5) Erstellen Sie eine Version.
curl -X POST -u: -d '{' tag_name ': ' R3.0 ', ' target_commitish ': ' master ', ' name ': ' Release 3.0 ', 'Body': 'Dies ist für Release 3.0 des Produkts', 'Draft': 'false', 'prerelease': 'false'} ' https://api.github.com/repos//
Hinweis:Im Befehl zum Erstellen einer Version nehmen die Parameter 'Entwurf' und 'Vorabversion' boolesche Werte an. Geben Sie true oder false ohne ein.
- Der Entwurfswert false bedeutet, dass die veröffentlichte Version erstellt wurde, und für true handelt es sich um eine nicht veröffentlichte Version.
- Prerelease false bedeutet, dass es sich um eine vollständige Version handelt. Wahrer Wert bedeutet, dass es sich um eine Vorabversion handelt.
# 6) Bearbeiten oder aktualisieren Sie die Version.
curl -X PATCH-u: -d '{' tag_name ': ' R3.1 '}' https://api.github.com/repos//
# 7) Löschen Sie die Version.
locken -X LÖSCHEN-u: https://api.github.com/repos//
# 8) Listen Sie die Assets für die Veröffentlichung auf.
locken -X LÖSCHEN-u: https://api.github.com/repos//
Fazit
In diesem GitHub REST API-Tutorial haben wir gesehen, wie REST-APIs für verschiedene Aktionen zum Abrufen, PUT, POST, PATCH und LÖSCHEN von Daten verwendet werden können.
Die URL, über die REST-APIs direkt mit GitHub.com zusammenarbeiten, lautet https://api.github.com. Wenn die Teams GitHub Enterprise in ihrer Organisation verwenden, lautet die mit der REST-API zu verwendende URL https: /// api / v3
Alle Tutorials in dieser Reihe konzentrierten sich bisher auf die Verwendung von GitHub aus Entwicklersicht sowie auf die Best Practices der Zusammenarbeit während der Arbeit in einem Team zur Versionskontrolle verschiedener Arten von Artefakten direkt auf GitHub und nicht lokal.
Unser bevorstehendes Tutorial konzentriert sich darauf, wie ein Entwickler offline an einem lokalen Repository arbeitet, das von GitHub mithilfe der Git Client-Schnittstellen wie geklont wurde GitHub Desktop und TortoiseGit und übertragen Sie die Änderungen zurück in das Remote-Repository.
=> Besuchen Sie hier, um GitHub von Grund auf neu zu lernen.
Literatur-Empfehlungen
- Rest API Tutorial: REST API Architektur und Einschränkungen
- Antwortcodes der Rest-API und Arten von Rest-Anforderungen
- GitHub Tutorial für Entwickler | Verwendung von GitHub
- REST-API-Test mit Gurke unter Verwendung des BDD-Ansatzes
- 10 besten API-Testtools im Jahr 2021 (SOAP- und REST-API-Testtools)
- REST-API-Tests mit Spring RestTemplate und TestNG
- So automatisieren Sie API-Anforderungen mit Rest Assured und Jenkins
- Parasoft SOAtest Tutorial: Skriptloses API-Testtool