github rest api tutorial rest api support github
API REST de GitHub: una interfície per interactuar programàticament amb GitHub:
En els nostres tutorials anteriors a GitHub, explorem els diversos aspectes de l’ús des de la perspectiva del desenvolupador mitjançant la interfície web.
Avui en dia, la majoria de les organitzacions han estat buscant oportunitats d'automatització en gairebé totes les àrees i les API REST han estat útils per automatitzar diversos escenaris de diferents eines.
Per descomptat, també hi podria haver altres àrees on es poguessin utilitzar les API REST.
=> Visiteu aquí la sèrie exclusiva de tutorials de formació de GitHub .
Què aprendreu:
Integració de l'API REST de GitHub
Les API REST (Representational State Transfer) utilitzen principalment les sol·licituds HTTP per fer el següent.
- ACONSEGUIR - Recupereu el recurs
- PUT / PATCH - Actualització del recurs
- POST - Crear un recurs
- ESBORRAR - Eliminar recurs
No aprofundirem en el funcionament de l'API REST, sinó que anirem directament al suport de l'API REST a GitHub mitjançant CURL ordre per realitzar la majoria de les tasques que vam veure en els nostres tutorials anteriors a GitHub mitjançant l'API REST.
La versió actual de l'API de GitHub és v3 i aquest tutorial inclou les activitats més importants que un desenvolupador necessitaria a través d'aquestes API.
Creació d’un testimoni d’accés personal
Perquè les API REST funcionin mitjançant la línia d’ordres, hem d’autenticar-nos al servidor GitHub. Per tant, hem de proporcionar les nostres credencials. Bé, no volem exposar la nostra contrasenya que s’utilitza amb el nostre compte de GitHub, de manera que generarem un testimoni d’accés personal que s’utilitzarà amb la línia d’ordres per autenticar-se a GitHub.
Inicieu sessió al vostre compte de GitHub i feu clic a Configuració sota el vostre perfil.
Anar a Configuració del desenvolupador -> Fitxes d'accés personal. Genereu un nou testimoni.
Afegiu un nom i seleccioneu l'abast de l'accés a l'API i feu clic a Crea un testimoni.
A la pantalla següent, assegureu-vos de copiar el testimoni i desar-lo en un fitxer. Aquest testimoni s'utilitzarà a la línia d'ordres per accedir a l'API GitHub.
diferència entre les proves de caixes negres i les proves de caixes blanques
El testimoni creat també es pot utilitzar durant el git clon operació quan se us demana una contrasenya. Ara, ja que tenim el testimoni al seu lloc, veurem com accedir a l'API des de la línia d'ordres mitjançant el programa CURL.
Com a requisit previ, haureu de descarregar i instal·lar 'Rínxol' .
Dipòsit
Els exemples de l'API REST que es mostren aquí s'executen a la màquina Windows. Aquesta secció mostrarà algunes de les operacions del dipòsit de GitHub.
# 1) Per llistar els dipòsits públics d'un usuari, executeu l'ordre següent en una sola línia.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
# 2) Per llistar els dipòsits públics d'una organització.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Creeu un dipòsit personal.
curl -X POST -u: https://api.github.com/user/repos -d “{” name ”: ” Demo_Repo ”}”
A la comanda anterior, hi ha un paràmetre. Vegem alguns altres paràmetres que es poden utilitzar mentre es creen repositoris personals d'usuaris.
curl -X POST -u: https://api.github.com/user/repos -d '{' nom ': ' Demo_Repo ', ' descripció ': ' Aquesta és la primera reposició a través de l'API ', ' pàgina d'inici ': ' https: //github.com ' , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
A l'ordre anterior, nom, descripció, pàgina d'inici, public, has_projects, has_wiki són paràmetres que prenen un valor de cadena i estan inclosos a '. Tingueu en compte també que hi ha un ESPAI entre: i
Per exemple, El paràmetre public fa pública la reposició. L'ordre també permet crear problemes, projectes i wikis.
# 4) Canvieu el nom del dipòsit.
curl -X POST -u: -X PATCH -d “{” name ”: ” ”}” https://api.github.com/repos//
# 5) Actualitzeu el fitxer has_wiki al dipòsit i establiu el valor a false.
curl -u: -X PATCH -d “{” has_wiki ”: ” false ”}” https://api.github.com/repos/user-name/
# 6) Suprimiu el dipòsit.
curl -X ELIMINA -u: https://api.github.com/repos//
# 7) Creeu un dipòsit en una organització.
curl -X POST -u: https://api.github.com/orgs//repos '{' Name ': ' Demo_Repo_In_Org ', ' description ': ' Aquesta és la primera reposició a l'organització a través de l'API ', ' pàgina d'inici ': ' https: //github.com ' , ”Public ”: ”true ”, ”has_issues ”: ”true ”, ”has_projects ”: ”true ”, ”has_wiki ”: ”true ”} ”
# 8) Llista Forquilles per a un dipòsit.
curl -X GET -u: https://api.github.com/repos///forks | grep -w html_url
L'ordre anterior mostrarà l'URL per navegar pel repositori bifurcat. El mateix es pot veure al dipòsit d'usuaris i 'Insights TAB => Forquilles' .
curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
L'ordre anterior mostrarà l'URL per clonar el repositori forcat.
# 9) Forqueu un dipòsit a l'organització.
curl -X POST -u: -d “{” organització ”: ” ”}” https://api.github.com/repos///forks
Col·laboradors
# 1) Enumereu col·laboradors per a un dipòsit.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w inici de sessió
# 2) Comproveu si hi ha un usuari a la llista de col·laboradors.
curl -X GET -u: https://api.github.com/repos///collaborators/
Si l'usuari forma part del col·laborador, no es mostrarà contingut com a sortida, sinó que es mostrarà el següent missatge.
{
'Missatge': 'no és un usuari',
'Documentation_url': 'https://developer.github.com/v3/repos/collaborators/#get'
}
# 3) Comproveu el permís de l'usuari.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Afegiu un usuari com a col·laborador al dipòsit.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Per publicar-ho, el convidat haurà d'acceptar la invitació per unir-se com a col·laborador. Si un usuari ja s'ha afegit com a col·laborador, no es mostrarà cap contingut sinó es mostrarà la sortida.
# 5) S'està eliminant l'usuari com a col·laborador.
curl -X ELIMINA -u: https://api.github.com/repos///collaborators/
No es mostra cap contingut una vegada que l'ordre s'ha executat correctament.
Organització
Nota: La creació d'organitzacions no és proporcionada per l'API de GitHub.
# 1) Enumereu tots els comptes de l'organització d'un usuari.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w inici de sessió
# 2) Actualitzeu una organització.
curl -X PATCH -u: -d '{' name ': ' TeamVN ', ' billing_email ': ' vniranjan72@outlook.com ', ' email ': ' vniranjan72 @ outlook .com ”, ” location ”: ” Bangalore ”, ” ”description ”: ”Actualització dels detalls de l’organització ”} ”https://api.github.com/orgs/
Branques
# 1) Llista de sucursals en un dipòsit d'usuaris. L'ordre mostrarà totes les branques d'un dipòsit.
curl -X GET -u: https://api.github.com/repos///branches | grep -w nom
# 2) Enumereu totes les branques protegides en un dipòsit d'usuaris.
curl -X GET -u: https://api.github.com/repos///branches ? protected = true | grep -w nom
# 3) Enumereu totes les branques no protegides en un repositori d'usuaris
curl -X GET -u: https://api.github.com/repos///branches ? protected = false | grep -w nom
# 4) Elimina la protecció de sucursal.
curl -X ELIMINA -u: https://api.github.com/repos///branches/master/protection
Sol·licituds d'extracció
# 1) Llista de sol·licituds Pull.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w títol
Les opcions del paràmetre d’estat són Obert, Tancat, Tot.
# 2) Creeu una sol·licitud Pull.
curl -X POST -u: -d “{” title ”: ” S'ha afegit una gran característica ”, ” body ”: ” Si us plau, feu el gran canvi realitzat a la branca mestra ”, ” head ”: ” Característica ”, ” base ”: ” mestre ”}” https://api.github.com/repos///pulls
# 3) Enumereu el nombre de sol·licituds Pull creades.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w número
# 4) Actualitzeu el cos de la sol·licitud Pull o qualsevol altre paràmetre (només 250 confirmacions com a màxim).
curl -X PATCH -u: -d “{” body ”: ” Obligatori per treure el gran canvi realitzat a la branca de funcions a branca mestra ”}” https://api.github.com/repos///pulls / 31
# 5) La sol·licitud de Pull List es compromet.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Llista de fitxers de sol·licitud Pull (només 300 fitxers com a màxim).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w nom de fitxer
# 7) Sol·licitud de combinació Pull.
curl -X PUT -u: -d “{” commit_message ”: ” Good Commit ”}” https://api.github.com/repos///pulls/31 / vaja
Resposta si es combina
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Fusionat': cert,
'Message': 'La sol·licitud d'extracció s'ha combinat correctament'
}
Resposta si la sol·licitud d'extracció no es pot combinar
{
'Message': 'La sol·licitud d'extracció no es pot fusionar',
'Documentation_url': 'https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button'
}
Etiquetes, fites i problemes
Etiquetes
# 1) Enumereu totes les etiquetes d’un dipòsit.
curl -X GET -u: https://api.github.com/repos///labels | grep -w nom
# 2) Enumereu una etiqueta específica en un dipòsit.
curl -X GET -u: https://api.github.com/repos///labels / error
# 3) Per crear una etiqueta.
curl -X POST -u: -d “{” name ”: ” defect ”, ” description ”: ” Per elevar un defecte ”, ” color ”: ” ff493b '}' https://api.github.com/repos///labels
El codi de color hexadecimal del fitxer color el paràmetre es pot establir des de Color hexadecimal
# 4) Actualitza l’etiqueta
curl -X PATCH -u: -d “{” color ”: ” 255b89 ”}” https://api.github.com/repos///labels / defecte
# 5) Suprimeix l'etiqueta
curl -X ELIMINA -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
com obrir alguna cosa amb Java
Problemes
# 6) Enumereu un problema específic en un dipòsit.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w títol
# 7) Enumereu tots els problemes d’un dipòsit.
curl -X GET -u: https://api.github.com/repos///issues | grep -w títol
# 8) Crea un problema.
curl -X POST -u: -d “{” title ”: ” Nova pàgina de benvinguda ”, ” body ”: ” Per dissenyar una pàgina nova ”, ” etiquetes ”: (” millora ”), ” fita ”: ” 3 ”, ” assignats ”: (” ”, ”
A l'ordre anterior, etiquetes i cessionaris Els paràmetres són una sèrie de cadenes on es poden proporcionar diversos valors. Estat el paràmetre també tindrà el valor obert o tancat.
# 9) Afegiu una etiqueta a un problema.
curl -X POST -u: -d “{” labels ”: (” enhancement ”)}” https://api.github.com/repos///issues / 30 / etiquetes
# 10) Editeu un problema i actualitzeu els paràmetres Per exemple, Etiquetes.
curl -X PATCH -u: -d “{” labels ”: (” bug ”, ” enhancement ”)}” https://api.github.com/repos///issues / 30
A l’ordre anterior, actualitzeu les etiquetes del número 30.
# 11) Traieu una etiqueta d'un problema específic.
curl -X ELIMINA -u: https://api.github.com/repos///issues/30/labels/bug
# 12) Elimineu TOTES les etiquetes d'un problema específic.
curl -X ELIMINA -u: https://api.github.com/repos///issues/30/labels
Fites
# 13) Enumereu totes les fites.
curl -X GET -u: -d “{” state ”: (” open ”)}” https://api.github.com/repos///milestones | grep -w títol
# 14) Enumereu els detalls d'una fita específica.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w títol
# 15) Creeu una fita.
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
A l'ordre anterior, el fitxer degut a és una marca de temps ISO 8601 dins AAAA-MM-DDTHH: MM: SSZ format. Podeu trobar més informació sobre això @ ISO 8601
# 16) Actualitzeu una fita.
curl -X PATCH -u: -d “{” state ”: ” tancat ”}” https://api.github.com/repos///milestones / 3
# 17) Suprimiu una fita.
curl -X ELIMINA -u: https://api.github.com/repos///milestones / 3
Equips
# 1) Enumereu els equips d’una organització.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w nom
Llista per identificador d’equip
curl -X GET -u: https://api.github.com/orgs//teams | grep -w identificador
# 2) Llista els equips per usuari.
curl -X GET -u: https://api.github.com/user/teams | grep -w nom
# 3) Creeu un equip, afegiu membres i afegiu un repositori a l'equip.
curl -X POST -u: -d “{” nom ”: ” ”, ” descripció ”: ” Introduïu una descripció breu ”, ” mantenidors ”: (” ”), ”Repo_names ”: ( ”/ ”)} ” https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Editeu el nom i la descripció de l'equip.
curl -X PATCH -u: -d “{” name ”: ” New Team Name ”, ” description ”: ” Latest Description ”}” https://api.github.com/teams/
L'identificador d'equip es pot recuperar executant l'ordre des del pas 1.
# 5) Afegiu un dipòsit a un equip existent ..
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Traieu el dipòsit d'un equip.
curl -X ELIMINA -u: https://api.github.com/teams/
# 7) Eliminar un equip.
curl -X ELIMINA -u: https://api.github.com/teams/
Cerca a dipòsits, codi, números
L'API de cerca permet cercar qualsevol element.
# 1) Per exemple, si voleu cercar tots els repositoris propietat d’un usuari concret.
curl -X GET https://api.github.com/search/repositories?q=user: | grep -w 'nom'
El paràmetre obligatori és q que conté els criteris de cerca que consisteixen en paraules clau i qualificatius per limitar la cerca en una àrea específica de Github.
# 2) Cerqueu tots els repositoris propietat d'un usuari concret que contingui les paraules V i Niranjan al fitxer README
curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w nom
# 3) Cerqueu una paraula clau al contingut d'un fitxer. A l'exemple següent, cerqueu les paraules clau 'Sistema' i 'addEmployee' dins d'un fitxer d'un dipòsit propietat d'un usuari.
curl -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w nom
# 4) Cerqueu la paraula clau 'benvinguda' dins dels números oberts i etiqueteu-la com a millora.
curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Cerqueu la paraula clau 'adreça' dins dels números tancats i etiqueteu-la com a millora.
curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Estrenes
# 1) Llista les versions d'un dipòsit per nom d'identificador i identificador.
curl -X GET -u: https://api.github.com/repos///releases | grep -w nom_etiqueta
curl -X GET -u: https://api.github.com/repos///releases | grep -w identificador
# 2) Obteniu detalls d’una única versió.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nom_etiqueta
curl -X GET -u: https://api.github.com/repos///releases / | grep -w cos
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nom
# 3) Obteniu detalls de l'última versió.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nom_etiqueta
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nom
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w cos
# 4) Obteniu els detalls de la versió per etiqueta.
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w nom
curl -X GET -u: https://api.github.com/repos///releases/t ags / | grep -w cos
# 5) Crea una versió.
curl -X POST -u: -d “{” tag_name ”: ” R3.0 ”, ” target_commitish ”: ” master ”, ” name ”: ” Release 3.0 ”, 'Body ': 'Això és per a la versió 3.0 del producte ', 'draft ': 'false', 'pre-release ': 'false'} ” https://api.github.com/repos//
Nota:A l'ordre per crear una versió, els paràmetres 'draft' i 'pre-release' prenen valors booleans. Introduïu true o false sense '.
- El valor d'esborrany false significa que es crea la versió publicada i, de veritat, és una versió no publicada.
- Prerelease false significa que és una versió completa. El valor real significa que és una versió prèvia.
# 6) Editeu o actualitzeu la versió.
curl -X PATCH-u: -d “{” tag_name ”: ” R3.1 ”}” https://api.github.com/repos//
# 7) Suprimiu la versió.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Enumereu els recursos per a la versió.
curl -X DELETE-u: https://api.github.com/repos//
Conclusió
En aquest tutorial de l'API REST de GitHub, hem vist com es poden utilitzar les API de REST per fer diverses accions per obtenir dades de GET, PUT, POST, PATCH, DELETE.
L’URL que s’utilitza perquè les API REST funcionin directament amb GitHub.com és https://api.github.com. Mentre que, si els equips utilitzen l'empresa GitHub a la seva organització, l'URL que s'utilitzarà amb l'API REST seria https: /// api / v3
Tots els tutorials d'aquesta sèrie fins ara es van concentrar en l'ús de GitHub des d'una perspectiva de desenvolupador juntament amb les millors pràctiques de col·laboració mentre treballaven en equip per al control de versions de diversos tipus d'artefactes directament a GitHub i no localment.
El nostre proper tutorial se centrarà en com un desenvolupador funcionarà fora de línia en un dipòsit local clonat des de GitHub mitjançant les interfícies de client Git com GitHub Desktop i TortoiseGit i torneu a empènyer els canvis al dipòsit remot.
=> Visiteu aquí per aprendre GitHub des de zero.
Lectura recomanada
- Tutorial Rest API: Arquitectura i restriccions de l'API REST
- Codis de resposta de l'API Rest i tipus de sol·licituds de descans
- Tutorial de GitHub per a desenvolupadors | Com s'utilitza GitHub
- Proves de l'API REST amb cogombre mitjançant l'enfocament BDD
- 10 millors eines de proves d'API el 2021 (eines de proves d'API SOAP i REST)
- Proves API REST amb Spring RestTemplate i TestNG
- Com automatitzar les sol·licituds d'API mitjançant Rest Assured i Jenkins
- Parasoft SOAtest Tutorial: Eina de prova d'API sense script