github rest api tutorial rest api support github
API REST GitHub - Une interface pour interagir par programme avec GitHub:
Dans nos tutoriels précédents sur GitHub, nous explorons les différents aspects de l'utilisation du point de vue du développeur à l'aide de l'interface Web.
Aujourd'hui, la plupart des organisations ont étudié les opportunités d'automatisation dans presque tous les domaines et les API REST ont été utiles pour automatiser divers scénarios pour différents outils.
Bien sûr, il pourrait y avoir d'autres domaines dans lesquels les API REST pourraient être utilisées.
=> Visitez ici pour la série exclusive de didacticiels de formation GitHub .
Ce que vous apprendrez:
Intégration de l'API REST GitHub
Les API REST (Representational State Transfer) utilisent principalement des requêtes HTTP pour effectuer les opérations suivantes.
- OBTENIR - Récupérer la ressource
- PUT / PATCH - Mettre à jour la ressource
- PUBLIER - Créer une ressource
- EFFACER - Supprimer la ressource
Nous n'entrerons pas dans le détail du fonctionnement de l'API REST, nous allons plutôt passer directement à la prise en charge de l'API REST dans GitHub à l'aide de BOUCLE pour effectuer la plupart des tâches que nous avons vues dans nos précédents tutoriels sur GitHub via les API REST.
La version actuelle de l'API GitHub est v3 et ce didacticiel couvre les activités les plus importantes dont un développeur aurait besoin via ces API.
Création d'un jeton d'accès personnel
Pour que les API REST fonctionnent via la ligne de commande, nous devons nous authentifier auprès du serveur GitHub. Par conséquent, nous devons fournir nos informations d'identification. Eh bien, nous ne voulons pas exposer notre mot de passe utilisé avec notre compte GitHub, nous allons donc générer un jeton d'accès personnel à utiliser avec la ligne de commande pour nous authentifier sur GitHub.
Connectez-vous à votre compte GitHub et cliquez sur Réglages sous votre profil.
Aller à Paramètres du développeur -> Jetons d'accès personnels. Générez un nouveau jeton.
Ajoutez un nom et sélectionnez la portée de l'accès à l'API et cliquez sur Créez un jeton.
Dans l'écran suivant, assurez-vous de copier le jeton et de l'enregistrer dans un fichier. Ce jeton sera utilisé dans la ligne de commande pour accéder à l'API GitHub.
qu'est-ce que les métadonnées dans l'entreposage de données
Le token créé peut également être utilisé lors de la clone git opération lorsqu'on lui demande un mot de passe. Maintenant que nous avons le jeton en place, nous allons voir comment accéder à l'API à partir de la ligne de commande à l'aide du programme CURL.
Au préalable, vous devrez télécharger et installer 'boucle' .
Dépôt
Les exemples de l'API REST présentés ici sont exécutés sur la machine Windows. Cette section présentera certaines des opérations du référentiel GitHub.
#1) Pour répertorier les référentiels publics pour un utilisateur, exécutez la commande suivante sur une seule ligne.
curl -X GET -u: https://api.github.com/users//repos | grep -w clone_url
#deux) Pour répertorier les référentiels publics sous une organisation.
curl -X GET -u: https://api.github.com/orgs//repos | grep -w clone_url
# 3) Créez un référentiel personnel.
curl -X POST -u: https://api.github.com/user/repos -d '{' nom ': ' Demo_Repo '}'
Dans le nom de commande ci-dessus se trouve un paramètre. Examinons quelques autres paramètres qui peuvent être utilisés lors de la création de référentiels d'utilisateurs personnels.
curl -X POST -u: https://api.github.com/user/repos -d '{' nom ': ' Demo_Repo ', ' description ': ' Ceci est le premier dépôt via l'API ', ' page d'accueil ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
Dans la commande ci-dessus, nom, description, page d'accueil, public, has_projects, has_wiki sont tous des paramètres qui prennent une valeur de chaîne et sont inclus dans ”. Notez également qu'il existe un ESPACE entre: et
Par exemple, Le paramètre public rend le dépôt public. La commande permet également de créer des problèmes, des projets, des wikis.
# 4) Renommez le référentiel.
curl -X POST -u: -X PATCH -d '{' nom ': ' '}' https://api.github.com/repos//
# 5) Mettre à jour le has_wiki dans le référentiel et définissez la valeur sur false.
curl -u: -X PATCH -d '{' has_wiki ': ' false '}' https://api.github.com/repos/user-name/
# 6) Supprimez le référentiel.
curl -X DELETE -u: https://api.github.com/repos//
# 7) Créez un référentiel dans une organisation.
curl -X POST -u: https://api.github.com/orgs//repos '{' Nom ': ' Demo_Repo_In_Org ', ' description ': ' Ceci est le premier dépôt de l'organisation via l'API ', ' page d'accueil ': ' https: //github.com ' , 'Public ': 'true ', 'has_issues ': 'true ', 'has_projects ': 'true ', 'has_wiki ': 'true '} '
# 8) Listez les fourchettes pour un référentiel.
curl -X GET -u: https://api.github.com/repos///forks | grep -w url_html
La commande ci-dessus répertorie l'URL pour parcourir le dépôt forké. La même chose peut être vue sous le référentiel d'utilisateurs et «Insights TAB => Forks» .
curl -X GET -u: https://api.github.com/repos///forks | grep -w clone_url
La commande ci-dessus répertorie l'URL pour cloner le dépôt forké.
# 9) Créez un référentiel dans l'organisation.
curl -X POST -u: -d '{' organisation ': ' '}' https://api.github.com/repos///forks
Collaborateurs
#1) Liste des collaborateurs pour un référentiel.
curl -X GET -u: https://api.github.com/repos///collaborators | grep -w login
#deux) Vérifiez si un utilisateur figure dans la liste des collaborateurs.
curl -X GET -u: https://api.github.com/repos///collaborators/
Si l'utilisateur fait partie du collaborateur, aucun contenu n'est affiché en sortie, sinon le message suivant s'affiche.
{
'Message': 'n'est pas un utilisateur',
'Documentation_url': 'https://developer.github.com/v3/repos/collaborators/#get'
}
# 3) Vérifiez l'autorisation de l'utilisateur.
curl -X GET -u: https://api.github.com/repos///collaborators/
# 4) Ajoutez un utilisateur en tant que collaborateur au référentiel.
curl -X PUT -u: https://api.github.com/repos///collaborators/
Publiez ceci, l'invité devra accepter l'invitation à rejoindre en tant que collaborateur. Si un utilisateur est déjà ajouté en tant que collaborateur, aucun contenu n'est affiché, sinon la sortie est affichée.
# 5) Suppression de l'utilisateur en tant que collaborateur.
curl -X DELETE -u: https://api.github.com/repos///collaborators/
Aucun contenu ne s'affiche une fois la commande exécutée avec succès.
Organisation
Remarque: la création d'organisations n'est pas fournie par l'API GitHub.
#1) Répertoriez tous les comptes d'organisation d'un utilisateur.
curl -X GET -u: https://api.github.com/repos/user/orgs | grep -w login
#deux) Mettre à jour une organisation.
curl -X PATCH -u: -d “{” nom ”: ” TeamVN ”, ” billing_email ”: ” vniranjan72@outlook.com ”, ” email ”: ” vniranjan72 @ outlook .com ', ' location ': ' Bangalore ', ' 'description ': 'Mise à jour des détails de l'organisation '} 'https://api.github.com/orgs/
Branches
#1) Répertoriez les branches dans un référentiel d'utilisateurs. La commande listera toutes les branches d'un référentiel.
curl -X GET -u: https://api.github.com/repos///branches | grep -w nom
#deux) Répertoriez toutes les branches protégées dans un référentiel d'utilisateurs.
curl -X GET -u: https://api.github.com/repos///branches ? protected = true | grep -w nom
# 3) Répertorier toutes les branches non protégées dans un référentiel d'utilisateurs
curl -X GET -u: https://api.github.com/repos///branches ? protected = false | grep -w nom
# 4) Supprimer la protection de branche.
curl -X DELETE -u: https://api.github.com/repos///branches/master/protection
Demandes d'extraction
#1) Répertorier les demandes d'extraction.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w titre
Les options pour le paramètre d'état sont Ouvert, Fermé, Tout.
#deux) Créez une demande d'extraction.
curl -X POST -u: -d '{' titre ': ' Grande fonctionnalité ajoutée ', ' corps ': ' Veuillez extraire la grande modification apportée à la branche principale ', ' tête ': ' Fonctionnalité ', ' base ': ' maître '}' https://api.github.com/repos///pulls
# 3) Répertoriez le nombre de demandes Pull créées.
curl -X GET -u: https://api.github.com/repos///pulls?state=open | grep -w nombre
# 4) Mettre à jour le corps de la demande d'extraction ou tout autre paramètre (maximum de 250 validations uniquement).
curl -X PATCH -u: -d '{' body ': ' Obligatoire pour extraire le grand changement effectué dans la branche de fonctionnalité vers la branche principale '}' https://api.github.com/repos///pulls / 31
# 5) La demande d'extraction de liste est validée.
curl -X GET -u: https://api.github.com/repos///pulls/31/commits
# 6) Liste des fichiers de demande d'extraction (maximum de 300 fichiers uniquement).
curl -X GET -u: https://api.github.com/repos///pulls/31/files | grep -w nom de fichier
# 7) Merge Pull request.
curl -X PUT -u: -d '{' commit_message ': ' Good Commit '}' https://api.github.com/repos///pulls/31 /aller
Réponse en cas de fusion
{
'Sha': 'e5db2ce465f48ada4adfb571cca2d6cb859a53c6',
'Fusionné': vrai,
'Message': 'Pull Request fusionné avec succès'
}
Réponse si la demande d'extraction ne peut pas être fusionnée
{
'Message': 'La demande d'extraction n'est pas fusionnable',
'Documentation_url': 'https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button'
}
Étiquettes, jalons et problèmes
Étiquettes
#1) Répertoriez toutes les étiquettes dans un référentiel.
curl -X GET -u: https://api.github.com/repos///labels | grep -w nom
#deux) Répertoriez les étiquettes spécifiques dans un référentiel.
curl -X GET -u: https://api.github.com/repos///labels / punaise
# 3) Pour créer une étiquette.
curl -X POST -u: -d '{' nom ': ' défaut ', ' description ': ' Pour signaler un défaut ', ' couleur ': ' ff493b '}' https://api.github.com/repos///labels
Le code couleur hexadécimal du Couleur le paramètre peut être réglé à partir de Couleur hexagonale
# 4) Mettre à jour l'étiquette
curl -X PATCH -u: -d '{' couleur ': ' 255b89 '}' https://api.github.com/repos///labels /défaut
# 5) Supprimer l'étiquette
curl -X DELETE -u: https://api.github.com/repos/vniranjan1972/Demo_Project_Repo_VN/labels/defect
Questions
# 6) Répertoriez un problème spécifique dans un référentiel.
curl -X GET -u: https://api.github.com/repos///issues/20 | grep -w titre
# 7) Répertoriez tous les problèmes dans un référentiel.
curl -X GET -u: https://api.github.com/repos///issues | grep -w titre
# 8) Créez un problème.
curl -X POST -u: -d '{' titre ': ' Nouvelle page d'accueil ', ' corps ': ' Pour créer une nouvelle page ', ' étiquettes ': (' amélioration ”), ” jalon ”: ” 3 ”, ” cessionnaires ”: (” ”, ”
Dans la commande ci-dessus, libellés et cessionnaires Les paramètres sont des tableaux de chaînes dans lesquels plusieurs valeurs peuvent être fournies. État paramètre aura la valeur soit ouvert ou fermé.
# 9) Ajoutez une étiquette à un problème.
curl -X POST -u: -d '{' labels ': (' enhancement ')}' https://api.github.com/repos///issues / 30 / étiquettes
# dix) Modifier un problème et mettre à jour les paramètres Par exemple, Des étiquettes à lui.
curl -X PATCH -u: -d '{' labels ': (' bug ', ' enhancement ')}' https://api.github.com/repos///issues / 30
Dans la commande ci-dessus, mettez à jour les étiquettes pour le numéro de problème 30.
#Onze) Supprimez une étiquette d'un problème spécifique.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels/bug
N ° 12) Supprimez TOUTES les étiquettes d'un problème spécifique.
curl -X DELETE -u: https://api.github.com/repos///issues/30/labels
Jalons
N ° 13) Listez tous les jalons.
curl -X GET -u: -d '{' état ': (' ouvert ')}' https://api.github.com/repos///milestones | grep -w titre
N ° 14) Répertoriez les détails d'un jalon spécifique.
curl -X GET -u: https://api.github.com/repos///milestones / 1 | grep -w titre
#quinze) Créez un jalon.
curl -X POST -u: -d '{' titre ': ' R5 ', ' état ': ' ouvert ', ' description ': ' Suivi du jalon R5 ', 'Due_on ': '2019-12-05T17: 00: 01Z '} ' https://api.github.com/repos///milestones
Dans la commande ci-dessus, le due_on est un horodatage ISO 8601 dans AAAA-MM-JJTHH: MM: SSZ format. Pour en savoir plus, consultez @ ISO 8601
N ° 16) Mettre à jour un jalon.
curl -X PATCH -u: -d '{' état ': ' fermé '}' https://api.github.com/repos///milestones / 3
# 17) Supprimer un jalon.
curl -X DELETE -u: https://api.github.com/repos///milestones / 3
Les équipes
#1) Répertoriez les équipes dans une organisation.
curl -X GET -u: https://api.github.com/orgs//teams | grep -w nom
Liste par ID d'équipe
curl -X GET -u: https://api.github.com/orgs//teams | grep -w id
#deux) Listez les équipes par utilisateur.
curl -X GET -u: https://api.github.com/user/teams | grep -w nom
# 3) Créez une équipe, ajoutez des membres et ajoutez un référentiel à l'équipe.
curl -X POST -u: -d “{” nom ”: ” ”, ” description ”: ” Entrez une brève description ”, ” mainteneurs ”: (” ”), 'Repo_names ': ( '/ ')} ' https://api.github.com/orgs/Demo-Proj-Org/teams
# 4) Modifiez le nom et la description de l'équipe.
curl -X PATCH -u: -d '{' nom ': ' Nouveau nom d'équipe ', ' description ': ' Dernière description '}' https://api.github.com/teams/
L'ID d'équipe peut être récupéré en exécutant la commande à partir de l'étape 1.
# 5) Ajouter un référentiel à une équipe existante.
curl -X PUT -u: https://api.github.com/teams//repos//
# 6) Supprimer le référentiel d'une équipe.
curl -X DELETE -u: https://api.github.com/teams/
# 7) Supprimer une équipe.
curl -X DELETE -u: https://api.github.com/teams/
Rechercher dans les référentiels, le code, les problèmes
L'API de recherche permet de rechercher n'importe quel élément.
#1) Par exemple, si vous souhaitez rechercher tous les référentiels appartenant à un utilisateur particulier.
curl -X GET https://api.github.com/search/repositories?q=user: | grep -w 'nom'
Le paramètre requis est Quel qui contient les critères de recherche composés de mots-clés et de qualificatifs pour limiter la recherche dans une zone spécifique de Github.
#deux) Rechercher dans tous les référentiels appartenant à un utilisateur particulier contenant les mots V et Niranjan dans le fichier README
curl -X GET https://api.github.com/search/repositories?q=V+Niranjan+in:readme+user: | grep -w nom
# 3) Recherchez un mot-clé dans le contenu d'un fichier. Dans l'exemple ci-dessous, recherchez le mot-clé 'System' et 'addEmployee' dans un fichier d'un référentiel appartenant à un utilisateur.
curl -X GET https://api.github.com/search/code?q=System+addEmployee+in:file+language:java+repo:/ | grep -w nom
# 4) Recherchez le mot-clé 'Bienvenue' dans les problèmes en cours et indiquez-le comme amélioration.
curl -X GET https://api.github.com/search/issues?q=welcome+label:enhancement+state:open+repo:/
# 5) Recherchez le mot clé 'adresse' dans les problèmes résolus et indiquez-le comme amélioration.
curl -X GET https://api.github.com/search/issues?q=address+label:enhancement+state:closed+repo:/
Communiqués
#1) Répertoriez les versions dans un référentiel par nom de balise et identifiant.
curl -X GET -u: https://api.github.com/repos///releases | grep -w nom_tiquette
curl -X GET -u: https://api.github.com/repos///releases | grep -w id
#deux) Obtenez les détails d'une seule version.
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nom_tiquette
curl -X GET -u: https://api.github.com/repos///releases / | grep -w corps
curl -X GET -u: https://api.github.com/repos///releases / | grep -w nom
# 3) Obtenez des détails sur la dernière version.
curl -X GET -u: https://api.github.com/repos///releases/latest | grep -w nom_tiquette
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 corps
# 4) Obtenez les détails de la version par tag.
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 corps
# 5) Créez une version.
curl -X POST -u: -d '{' nom_tiquette ': ' R3.0 ', ' target_commitish ': ' maître ', ' nom ': ' Version 3.0 ', 'Body ': 'Ceci concerne la version 3.0 du produit ', 'draft ': 'false', 'prerelease ': 'false'} ' https://api.github.com/repos//
Noter:Dans la commande de création d’une version, les paramètres «brouillon» et «avant-version» prennent des valeurs booléennes. Entrez vrai ou faux sans ”.
- La valeur de brouillon false signifie que la version publiée est créée et pour true, il s'agit d'une version non publiée.
- L'avant-première fausse signifie qu'il s'agit d'une version complète. La vraie valeur signifie qu'il s'agit d'une avant-première.
# 6) Modifiez ou mettez à jour la version.
curl -X PATCH-u: -d '{' nom_tiquette ': ' R3.1 '}' https://api.github.com/repos//
# 7) Supprimez la version.
curl -X DELETE-u: https://api.github.com/repos//
# 8) Répertoriez les éléments de la version.
curl -X DELETE-u: https://api.github.com/repos//
implémentation d'arbre de recherche binaire en java
Conclusion
Dans ce didacticiel sur l'API REST GitHub, nous avons vu comment les API REST peuvent être utilisées pour diverses actions visant à GET, PUT, POST, PATCH, DELETE data.
L'URL utilisée pour que les API REST fonctionnent directement avec GitHub.com est https://api.github.com. Tandis que si les équipes utilisent GitHub Enterprise dans leur organisation, l'URL à utiliser avec l'API REST serait https: /// api / v3
Tous les didacticiels de cette série se sont jusqu'à présent concentrés sur l'utilisation de GitHub du point de vue du développeur ainsi que sur les meilleures pratiques de collaboration tout en travaillant en équipe pour le contrôle de version de divers types d'artefacts directement sur GitHub et non localement.
Notre prochain tutoriel se concentrera sur la façon dont un développeur travaillera hors ligne sur un référentiel local cloné à partir de GitHub à l'aide des interfaces Git Client telles que Bureau GitHub et TortueGit et repoussez les modifications vers le référentiel distant.
=> Visitez ici pour apprendre GitHub à partir de zéro.
lecture recommandée
- Tutoriel de l'API Rest: architecture et contraintes de l'API REST
- Codes de réponse de l'API Rest et types de demandes de repos
- Tutoriel GitHub pour les développeurs | Comment utiliser GitHub
- Test de l'API REST avec le concombre à l'aide de l'approche BDD
- 10 meilleurs outils de test d'API en 2021 (outils de test d'API SOAP et REST)
- Test de l'API REST avec Spring RestTemplate et TestNG
- Comment automatiser les demandes d'API à l'aide de Rest Assured et Jenkins
- Tutoriel Parasoft SOAtest: outil de test d'API sans script