github rest api tutorial rest api support github
GitHub REST API - Un'interfaccia per interagire a livello di programmazione con GitHub:
Nei nostri tutorial precedenti su GitHub, esploriamo i vari aspetti dell'utilizzo dal punto di vista dello sviluppatore utilizzando l'interfaccia web.
Oggi, la maggior parte delle organizzazioni ha esaminato le opportunità di automazione in quasi ogni area e le API REST sono state utili per automatizzare vari scenari per diversi strumenti.
Naturalmente, potrebbero esserci anche altre aree in cui è possibile utilizzare le API REST.
=> Visita qui per l'esclusiva serie di tutorial di formazione su GitHub .
Cosa imparerai:
Integrazione dell'API REST di GitHub
Le API REST (Representational State Transfer) utilizzano principalmente richieste HTTP per eseguire le seguenti operazioni.
- OTTENERE - Recupera la risorsa
- PUT / PATCH - Aggiorna risorsa
- INVIARE - Crea una risorsa
- ELIMINA - Elimina risorsa
Non approfondiremo il funzionamento dell'API REST, ma passeremo direttamente al supporto dell'API REST in GitHub utilizzando il ARRICCIARE comando per eseguire la maggior parte delle attività che abbiamo visto nei nostri tutorial precedenti su GitHub tramite le API REST.
La versione corrente dell'API GitHub è la v3 e questo tutorial copre le attività più importanti di cui uno sviluppatore avrebbe bisogno attraverso queste API.
Creazione di un token di accesso personale
Affinché le API REST funzionino tramite la riga di comando, dobbiamo autenticarci sul server GitHub. Quindi, dobbiamo fornire le nostre credenziali. Bene, non vogliamo esporre la nostra password utilizzata con il nostro account GitHub, quindi genereremo un token di accesso personale da utilizzare con la riga di comando per autenticarci su GitHub.
Accedi al tuo account GitHub e fai clic su impostazioni sotto il tuo profilo.
Vai a Impostazioni sviluppatore -> Token di accesso personali. Genera un nuovo token.
Aggiungi un nome e seleziona l'ambito per l'accesso API e fai clic su Crea token.
Nella schermata successiva, assicurati di copiare il token e di salvarlo in un file. Questo token verrà utilizzato nella riga di comando per accedere all'API GitHub.
auricolare per realtà virtuale compatibile con ps4
Il token creato può essere utilizzato anche durante il git clone operazione quando viene richiesta una password. Ora, poiché abbiamo il token in posizione, vedremo come accedere all'API dalla riga di comando utilizzando il programma CURL.
Come prerequisito, dovrai scaricare e installare 'arricciare' .
Repository
Gli esempi dell'API REST mostrati qui vengono eseguiti sulla macchina Windows. Questa sezione mostrerà alcune delle operazioni del repository GitHub.
# 1) Per elencare gli archivi pubblici per un utente, eseguire il comando seguente in una singola riga.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#Due) Per elencare gli archivi pubblici in un'organizzazione.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Crea un archivio personale.
curl -X POST -u: https://api.github.com/user/repos -d '{' nome ': ' Demo_Repo '}'
Nel nome del comando sopra c'è un parametro. Diamo un'occhiata ad alcuni altri parametri che possono essere utilizzati durante la creazione di repository utente personali.
curl -X POST -u: https://api.github.com/user/repos -d '{' name ': ' Demo_Repo ', ' description ': ' Questo è il primo repo tramite API ', ' homepage ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
Nel comando precedente, nome, descrizione, homepage, public, has_projects, has_wiki sono tutti parametri che assumono un valore stringa e sono racchiusi tra '. Nota anche che c'è uno SPAZIO tra: e
Per esempio, il parametro public rende pubblico il repo. Il comando consente anche di creare problemi, progetti, wiki.
# 4) Rinomina il repository.
curl -X POST -u: -X PATCH -d '{' nome ': ' '}' https://api.github.com/repos//
# 5) Aggiorna il file has_wiki parametro nel repository e impostare il valore su false.
curl -u: -X PATCH -d '{' has_wiki ': ' false '}' https://api.github.com/repos/user-name/
# 6) Elimina il repository.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Crea un repository in un'organizzazione.
curl -X POST -u: https://api.github.com/orgs//repos '{' Name ': ' Demo_Repo_In_Org ', ' description ': ' Questo è il primo repository in org tramite API ', ' homepage ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
# 8) Elenca fork per un repository.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
Il comando precedente elencherà l'URL per sfogliare il repository forkato. Lo stesso può essere visto sotto il repository utente e 'Insights TAB => Forks' .
curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
Il comando precedente elencherà l'URL per clonare il repository forkato.
# 9) Fork di un repository nell'organizzazione.
curl -X POST -u: -d '{' organizzazione ': ' '}' https://api.github.com/repos///forks
Collaboratori
# 1) Elenca i collaboratori per un repository.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w login
#Due) Controlla se un utente è nell'elenco dei collaboratori.
curl -X GET -u: https://api.github.com/repos///collaborators/
Se l'utente fa parte di un collaboratore, non viene visualizzato alcun contenuto come output, altrimenti viene visualizzato il seguente messaggio.
{
'Message': 'non è un utente',
'Documentation_url': 'https://developer.github.com/v3/repos/collaborators/#get'
}
# 3) Controlla l'autorizzazione dell'utente.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Aggiungi utente come collaboratore al repository.
ricciolo -X PUT -u: https://api.github.com/repos///collaborators/
Pubblica questo, l'invitato dovrà accettare l'invito a partecipare come collaboratore. Se un utente è già stato aggiunto come collaboratore, non viene visualizzato alcun contenuto altrimenti viene visualizzato l'output.
# 5) Rimozione dell'utente come collaboratore.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
Non viene visualizzato alcun contenuto una volta che il comando viene eseguito correttamente.
Organizzazione
Nota: la creazione di organizzazioni non è fornita dall'API GitHub.
# 1) Elenca tutti gli account dell'organizzazione per un utente.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w login
#Due) Aggiorna un'organizzazione.
curl -X PATCH -u: -d '{' name ': ' TeamVN ', ' billing_email ': ' vniranjan72@outlook.com ', ' email ': ' vniranjan72 @ outlook .com ', ' location ': ' Bangalore ', ' 'description ': 'Aggiornamento dei dettagli dell'organizzazione '} 'https://api.github.com/orgs/
Rami
# 1) Elenca i rami in un repository utente. Il comando elencherà tutti i rami in un repository.
curl -X GET -u: https://api.github.com/repos///branches | grep -w nome
#Due) Elenca tutti i rami protetti in un repository utente.
curl -X GET -u: https://api.github.com/repos///branches ? protected = true | grep -w nome
# 3) Elenca tutti i rami non protetti in un repository utente
curl -X GET -u: https://api.github.com/repos///branches ? protected = false | grep -w nome
# 4) Rimuovi protezione ramo.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Richieste pull
# 1) Elenca le richieste pull.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w titolo
Le opzioni per il parametro state sono Open, Closed, All.
#Due) Crea una richiesta pull.
curl -X POST -u: -d '{' title ': ' Ottima funzionalità aggiunta ', ' body ': ' Si prega di trasferire il grande cambiamento apportato al ramo principale ', ' head ': ' Feature ', ' base ': ' master '}' https://api.github.com/repos///pulls
# 3) Elenca il numero di richieste pull create.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w numero
# 4) Aggiorna il corpo della richiesta pull o qualsiasi altro parametro (solo per un massimo di 250 commit).
curl -X PATCH -u: -d '{' body ': ' Obbligatorio per trasferire il grande cambiamento apportato nel feature branch al master branch '}' https://api.github.com/repos///pulls / 31
# 5) La richiesta di pull elenco si impegna.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Elenca i file di richiesta pull (solo per un massimo di 300 file).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w nomefile
# 7) Unisci richiesta pull.
curl -X PUT -u: -d '{' commit_message ': ' Good Commit '}' https://api.github.com/repos///pulls/31 /partire
Risposta se unito
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Merged': vero,
'Messaggio': 'Richiesta pull unita con successo'
}
Risposta se la richiesta pull non può essere unita
{
'Message': 'Pull Request non è unificabile',
'Documentation_url': 'https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button'
}
Etichette, pietre miliari e problemi
Etichette
# 1) Elenca tutte le etichette in un repository.
curl -X GET -u: https://api.github.com/repos///labels | grep -w nome
#Due) Elenca l'etichetta specifica in un repository.
curl -X GET -u: https://api.github.com/repos///labels / bug
# 3) Per creare un'etichetta.
curl -X POST -u: -d '{' nome ': ' difetto ', ' descrizione ': ' Per sollevare un difetto ', ' colore ': ' ff493b '}' https://api.github.com/repos///labels
Il codice colore esadecimale per colore parametro può essere impostato da Colore-esadecimale
# 4) Aggiorna etichetta
curl -X PATCH -u: -d '{' color ': ' 255b89 '}' https://api.github.com/repos///labels /difetto
# 5) Elimina etichetta
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Problemi
# 6) Elenca un problema specifico in un repository.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w titolo
# 7) Elenca tutti i problemi in un repository.
curl -X GET -u: https://api.github.com/repos///issues | grep -w titolo
# 8) Crea un problema.
curl -X POST -u: -d '{' title ': ' Nuova pagina di benvenuto ', ' body ': ' Per progettare una nuova pagina ', ' etichette ': (' miglioramento '), ' pietra miliare ': ' 3 ', ' assegnatari ': (' ', '
Nel comando precedente, etichette e assegnatari i parametri sono array di stringhe in cui possono essere forniti più valori. Stato parametro avrà anche il valore aperto o chiuso.
# 9) Aggiungi un'etichetta a un problema.
curl -X POST -u: -d '{' labels ': (' enhancement ')}' https://api.github.com/repos///issues / 30 / etichette
# 10) Modifica un problema e aggiorna i parametri Per esempio, Etichette ad esso.
curl -X PATCH -u: -d '{' labels ': (' bug ', ' enhancement ')}' https://api.github.com/repos///issues / 30
Nel comando precedente, aggiorna le etichette per il problema numero 30.
#undici) Rimuovi un'etichetta da un problema specifico.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Rimuovi TUTTE le etichette da un problema specifico.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
Pietre miliari
# 13) Elenca tutte le pietre miliari.
curl -X GET -u: -d '{' state ': (' open ')}' https://api.github.com/repos///milestones | grep -w titolo
# 14) Elenca i dettagli di una pietra miliare specifica.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w titolo
#quindici) Crea una pietra miliare.
curl -X POST -u: -d '{' title ': ' R5 ', ' state ': ' open ', ' description ': ' Track for milestone R5 ', 'Due_on ': '2019-12-05T17: 00: 01Z '} ' https://api.github.com/repos///milestones
Nel comando precedente il file dovuto per è un timestamp ISO 8601 nel AAAA-MM-GGTHH: MM: SSZ formato. Maggiori informazioni su questo possono essere trovate @ ISO 8601
# 16) Aggiorna una pietra miliare.
curl -X PATCH -u: -d '{' state ': ' closed '}' https://api.github.com/repos///milestones / 3
# 17) Elimina una pietra miliare.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Squadre
# 1) Elenca i team in un'organizzazione.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w nome
Elenca per ID squadra
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#Due) Elenca le squadre per utente.
curl -X GET -u: https://api.github.com/user/teams | grep -w nome
# 3) Crea un team, aggiungi membri e aggiungi repository al team.
curl -X POST -u: -d '{' nome ': ' ', ' descrizione ': ' Inserisci breve descrizione ', ' manutentori ': (' '), 'Repo_names ': ( '/ ')} ' https://api.github.com/orgs/Demo-Proj-Org/teams
qual è la migliore app per spiare
# 4) Modifica il nome e la descrizione della squadra.
curl -X PATCH -u: -d '{' name ': ' New Team Name ', ' description ': ' Ultima descrizione '}' https://api.github.com/teams/
L'ID squadra può essere recuperato eseguendo il comando dal passaggio 1.
# 5) Aggiungi un repository a un team esistente ..
ricciolo -X PUT -u: https://api.github.com/teams//repos//
# 6) Rimuovi il repository da un team.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Elimina una squadra.
curl -X DELETE -u: https://api.github.com/teams/
Cerca archivi, codice, problemi
L'API di ricerca consente di cercare qualsiasi articolo.
# 1) Per esempio, se vuoi cercare tutti i repository di proprietà di un particolare utente.
curl -X GET https://api.github.com/search/repositories?q=user: | grep -w 'nome'
Il parametro richiesto è che cosa che contiene i criteri di ricerca costituiti da parole chiave e qualificatori per limitare la ricerca in un'area specifica in GitHub.
#Due) Cerca tutti i repository di proprietà di un particolare utente che contiene le parole V e Niranjan nel file README
curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w nome
# 3) Cerca una parola chiave nel contenuto di un file. Nell'esempio seguente, cerca la parola chiave 'System' e 'addEmployee' all'interno di un file in un repository di proprietà di un utente.
curl -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w nome
# 4) Cerca la parola chiave 'benvenuto' tra le questioni aperte ed etichettala come miglioramento.
curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Cerca la parola chiave 'indirizzo' all'interno di numeri chiusi ed etichettala come miglioramento.
curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Rilasci
# 1) Elenca le versioni in un repository in base al nome del tag e all'ID.
curl -X GET -u: https://api.github.com/repos///releases | grep -w nome_tag
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#Due) Ottieni i dettagli di una singola versione.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nome_tag
curl -X GET -u: https://api.github.com/repos///releases / | grep -w corpo
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nome
# 3) Ottieni i dettagli dell'ULTIMA versione.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nome_tag
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nome
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w corpo
# 4) Ottieni i dettagli sulla versione per tag.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w nome
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w corpo
# 5) Crea una liberatoria.
curl -X POST -u: -d '{' tag_name ': ' R3.0 ', ' target_commitish ': ' master ', ' name ': ' Release 3.0 ', 'Body ': 'Questo è per la versione 3.0 del prodotto ', 'bozza ': 'false', 'prerelease ': 'false'} ' https://api.github.com/repos//
Nota:Nel comando per creare una versione, i parametri 'bozza' e 'prerelease' accettano valori booleani. Inserisci vero o falso senza '.
- Il valore bozza false significa che la versione pubblicata è stata creata e per vero è una versione non pubblicata.
- Prerelease false significa che è una versione completa. Il vero valore significa che è una prerelease.
# 6) Modifica o aggiorna la versione.
curl -X PATCH-u: -d '{' tag_name ': ' R3.1 '}' https://api.github.com/repos//
# 7) Elimina la versione.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Elenca le risorse per il rilascio.
curl -X DELETE-u: https://api.github.com/repos//
Conclusione
In questo tutorial sull'API REST di GitHub, abbiamo visto come le API REST possono essere utilizzate per varie azioni per GET, PUT, POST, PATCH, DELETE data.
L'URL utilizzato per le API REST per funzionare direttamente con GitHub.com è https://api.github.com. Considerando che, se i team utilizzano GitHub enterprise nella loro organizzazione, l'URL da utilizzare con l'API REST sarebbe https: /// api / v3
Tutti i tutorial di questa serie finora si sono concentrati sull'utilizzo di GitHub dal punto di vista degli sviluppatori insieme alle migliori pratiche di collaborazione mentre si lavora in un team per il controllo della versione di vari tipi di artefatti direttamente su GitHub e non localmente.
Il nostro prossimo tutorial si concentrerà su come uno sviluppatore lavorerà offline su un repository locale clonato da GitHub utilizzando le interfacce Git Client come GitHub Desktop e TortoiseGit e rimanda le modifiche al repository remoto.
=> Visita qui per imparare GitHub da zero.
Lettura consigliata
- Tutorial API Rest: architettura e vincoli dell'API REST
- Codici di risposta API Rest e tipi di richieste di riposo
- Tutorial su GitHub per sviluppatori | Come utilizzare GitHub
- Test API REST con cetriolo utilizzando l'approccio BDD
- 10 migliori strumenti di test API nel 2021 (strumenti di test API SOAP e REST)
- Test API REST con Spring RestTemplate e TestNG
- Come automatizzare le richieste API utilizzando Rest Assured e Jenkins
- Tutorial Parasoft SOAtest: strumento di test API senza script