Fermer

août 20, 2020

CLI GitHub: guide de GitHub à partir de la ligne de commande


Dans ce guide de démarrage rapide, vous découvrirez GitHub CLI . Découvrez à quoi sert l'outil CLI GitHub, comment le configurer et comment l'utiliser.

Si vous connaissez déjà les commandes Git vous savez évidemment que vous avez besoin pour basculer vers le navigateur Web afin d'effectuer diverses actions sur votre référentiel GitHub. Avec le nouvel outil CLI GitHub, vous pouvez exécuter plusieurs de ces actions sans quitter l'interface de ligne de commande.

Configuration CLI GitHub

Pour commencer, visitez simplement la page d'installation et trouvez des instructions sur comment installer GitHub CLI pour votre système d'exploitation. Pour Windows et macOS, vous pouvez utiliser des gestionnaires de packages pour installer et maintenir GitHub CLI à jour. Pour les utilisateurs Linux, vous devrez télécharger le package à partir de la page dernière version . Il existe également des installateurs MSI signés pour les utilisateurs de Windows, mais sachez que vous devez télécharger à nouveau et mettre à jour l'outil manuellement si vous optez pour cela. Le moyen le plus simple pour les utilisateurs de Windows est d'utiliser le gestionnaire de paquets scoop .

Voici des instantanés des instructions d'installation pour chaque plate-forme prise en charge:

  • Windows:

     scoop bucket add github-gh https: //github.com/cli/scoop-gh.git
    scoop installer gh
    
  • macOS:

     brew install github
    
  • Debian / Ubuntu Linux:

     sudo apt install git & amp; & amp; sudo dpkg -i gh _ * _ linux_amd64.deb
    
  • Fedora / Centos Linux:

     sudo yum localinstall gh _ * _ linux_amd64.rpm
    
  • Arch Linux:

     yay -S github-cli
    

Sous Windows, je recommanderais l'utilisation du terminal Git Bash . Cette interface vous permettra d'accéder aux commandes Linux courantes et aux fonctionnalités Bash telles que la saisie semi-automatique. Il est également officiellement pris en charge par Visual Studio Code via l'intégration de terminal.

Après avoir installé l'interface de ligne de commande GitHub, vous devrez authentifier votre compte. L'exécution de n'importe quelle commande déclenchera ce processus d'authentification. Par exemple, essayez gh repo view cli / cli . Pour les nouveaux utilisateurs, vous serez invité avec ce qui suit:

 Authentification GitHub

Appuyez simplement sur la touche Entrée pour démarrer le processus comme illustré ci-dessous: [19659005]  Autorisation Gitub

Une fois que vous aurez fourni votre mot de passe, vous obtiendrez un message «L'interface CLI GitHub authentifiée avec succès». Vous pouvez désormais interagir avec la plate-forme GitHub via le terminal de ligne de commande. L'étape suivante consiste à implémenter la saisie semi-automatique, qui est facultative. Ajoutez simplement cette ligne à votre ~ / .bash_profile :

 eval "$ (gh completion -s bash)"

Vous pouvez également exécuter la commande ci-dessus dans votre terminal actuel pour obtenir la fonction de saisie semi-automatique sans redémarrer votre terminal. Pour confirmer qu'il fonctionne, saisissez gh repo puis appuyez deux fois sur tab . Il devrait vous montrer quatre commandes différentes que vous pouvez ajouter à la commande actuelle repo .

Structure de commande CLI GitHub

La structure de commande gh est arborescente et facile à retenir . Il existe essentiellement deux niveaux de commandes. Le premier niveau ne comprend que six commandes:

  • config
  • repo
  • issue
  • pr
  • gist
  • credits

Chaque commande a un deuxième niveau de commande où vous pouvez spécifier l'opération que vous souhaitez effectuer – comme gh repo view ou gh pr list . La commande credits n'a cependant pas de commande de second niveau. Lorsqu'il est exécuté, il répertorie simplement les noms des contributeurs d'un référentiel. Voici un exemple rapide que vous pouvez essayer vous-même:

 $ gh credits cli / cli

Nous examinerons le reste des commandes plus en détail dans les prochaines sections.

Commandes du référentiel GitHub

Le clonage d'un dépôt avec la commande gh est plus facile que d'utiliser la ] Commande git . Pour cloner, il vous suffit d'exécuter la commande au format suivant:

 gh repo clone OWNER / REPO

Ce format facilite le clonage depuis la mémoire. Vous n'avez plus besoin de taper ou de copier-coller la longue URL Git à cloner. Voici un exemple:

 $ gh repo clone tailwindcss / tailwindcss

Vous pouvez également ajouter facilement des référentiels existants à votre compte à partir de la ligne de commande. Essayez:

 $ gh repo fork cli / cli

Pendant le processus de forking, l'outil vous demandera si vous souhaitez également cloner. Si vous dites «oui», il effectuera le clonage, configurera la branche amont distante et effectuera une mise à jour pour vous automatiquement. C’est assez pratique. Vous pouvez le confirmer en vérifiant la configuration du dépôt via votre ligne de commande: git config -e . Voici à quoi ressemble ma sortie:

[core]
     repositoryformatversion = 0
    filemode = false
    nu = faux
    logallrefupdates = true
    liens symboliques = faux
    ignorecase = vrai
[remote "origin"]
    url = https://github.com/brandiqa/cli.git
    fetch = + refs / heads / *: refs / remotes / origin / *
[branch "trunk"]
    remote = origine
    merge = refs / têtes / tronc
[remote "upstream"]
    url = https://github.com/cli/cli.git
    fetch = + refs / heads / *: refs / remotes / upstream / *

Pour ce projet, trunk est la branche par défaut. Vous devrez utiliser la commande git pour synchroniser votre dépôt fourchu comme d'habitude. Dans le cas du dépôt cli :

 # Assurez-vous que vous êtes dans la branche par défaut
$ git checkout tronc

# Récupérer les mises à jour
$ git chercher en amont

# Fusionner
$ git merge en amont / tronc

# Mettez à jour votre repo distant
$ git push

Vous pouvez également afficher la description et le fichier README d'un projet hébergé sur GitHub à l'aide de la commande gh repo view . Essayez cette commande:

 $ gh repo view facebook / react

Jusqu'à présent, vous avez appris comment cloner fork et afficher à l'aide des commandes gh repo . Créons un nouveau référentiel GitHub à partir de la ligne de commande. Tout d'abord, nous devons créer un nouveau projet. Générons rapidement un projet Next.js. Lorsque vous y êtes invité, utilisez le modèle "application de démarrage par défaut":

 $ npx create-next-app example-next
...
# accédez au dossier du projet une fois le processus de création terminé
$ cd exemple-suivant

Vous constaterez que le dépôt Git local du projet a déjà été initialisé. Pour créer un dépôt à partir de la ligne de commande, exécutez simplement la commande suivante:

 $ gh repo create --public
✓ Création du référentiel brandiqa / example-next sur GitHub
✓ Ajout de https://github.com/brandiqa/example-next.git distant

# Poussez le code de votre projet dans votre nouveau référentiel distant
$ git push -u origin master

Si vous ne spécifiez pas l'option - public un référentiel privé sera créé par défaut. Voici une liste complète des indicateurs que vous pouvez spécifier:

  -d, --description string Description du référentiel
      --enable-issues Activer les problèmes dans le nouveau référentiel (true par défaut)
      --enable-wiki Activer le wiki dans le nouveau référentiel (true par défaut)
  -h, --homepage string URL de la page d'accueil du référentiel
      --public Rendre le nouveau référentiel public (par défaut: privé)
  -t, --team string Le nom de l'équipe d'organisation à laquelle l'accès est autorisé

Si vous souhaitez créer le dépôt sous une autre organisation, vous devrez utiliser ce qui suit pour créer la syntaxe du dépôt: gh repo create org / repo .

Pull Request Commands

La création d'une pull request (PR) que votre équipe doit examiner peut maintenant être effectuée sur le terminal. Juste après avoir validé une fonctionnalité ou une branche de bogue, vous pouvez exécuter gh pr create . Cela créera la demande d'extraction de manière interactive:

 Création d'une demande d'extraction

Voici la sortie complète:

 $ gh pr create
Création de pull request pour feature-1 dans master dans brandiqa / example-next
? Titre Mise à jour du titre de la page d'accueil
? Corps & lt; Reçu & gt;
? Quelle est la prochaine? Soumettre
Énumération des objets: 7, terminé.
Comptage d'objets: 100% (7/7), terminé.
Compression delta utilisant jusqu'à 8 threads
Compression d'objets: 100% (4/4), terminé.
Objets d'écriture: 100% (4/4), 398 octets | 398,00 Kio / s, terminé.
Total 4 (delta 2), réutilisé 0 (delta 0), pack réutilisé 0
remote: Résolution des deltas: 100% (2/2), complétée par 2 objets locaux.
éloigné:
remote: créez une pull request pour 'feature-1' sur GitHub en visitant:
télécommande: https://github.com/brandiqa/example-next/pull/new/feature-1
éloigné:
À https://github.com/brandiqa/example-next.git
* [new branch] TÊTE - & gt; fonction-1
Configuration de la branche 'feature-1' pour suivre
branche distante 'feature-1' depuis 'origin'.
https://github.com/brandiqa/example-next/pull/1

Vous pouvez également exécuter la commande create avec des indicateurs comme celui-ci:

 gh pr create --title "Pull request title" --body "Pull request body"

Pour confirmer que la demande d'extraction a été créée sur la plate-forme GitHub, vous pouvez exécuter la commande gh pr list pour lister toutes les demandes d'extraction. Voici la sortie:

 $ gh pr list
Affichage de 1 sur 1 pull request dans brandiqa / example-next
# 1 Mise à jour de la fonction de titre de la page d'accueil-1

Pour un projet plus actif tel que TailwindCSS vous obtiendrez une liste plus longue des PR actifs:

 PR list

Les colonnes ci-dessus sont:

  • Numéro PR
  • Description PR
  • Branche PR

Vous pouvez utiliser la commande gh pr checkout pour extraire une demande d'extraction. Cette commande tirera la branche de fonctionnalité distante et y basculera. Pendant que vous y êtes, vous pouvez également faire un gh pr diff pour voir ce qui a changé:

 checkout diff

Jetons un coup d'œil à la gh pr merge ] commande. Comme vous le savez probablement, GitHub vérifie les vulnérabilités dans votre code et fournit des solutions via des requêtes de bump pull. Voici un exemple:

 Bumps de sécurité GitHub

La fusion de ces PR un par un peut être fastidieuse pour vous, en particulier sur une connexion Internet lente. Cependant, vous pouvez accélérer le processus à l'aide du terminal via la commande gh pr merge . Vous trouverez ci-dessous une capture d’écran de la commande en action:

 pr merge

Après avoir effectué une fusion, il est préférable d’effectuer un tirage juste après. Si vous voulez faire tout cela en une seule étape sans exécuter la commande de manière interactive, vous pouvez utiliser des indicateurs:

 gh pr merge -m -d & lt; number & gt; & amp; & amp; git pull

Il existe d'autres commandes gh pr très utiles que nous n'aborderons pas ici, mais je vais les mentionner rapidement:

Commandes d'émission

Les problèmes sont garder une trace des bogues, des tâches et des demandes de fonctionnalités sur un référentiel de projet GitHub. Nous pouvons utiliser la commande gh issue create pour créer un nouveau problème via le terminal:

 Créer un problème

Il existe également la commande gh issue list qui répertorie tous les problèmes. Voici un exemple de capture d'écran de la commande utilisée:

 GitHub issue list

Le reste des commandes gh issue sont assez similaires à gh pr ] commandes. Voici un bref résumé:

Commandes Gist

La création d'un gist sur GitHub peut maintenant être facilement effectuée via le terminal de la console en utilisant la commande gh gist create . Voici un exemple de commande avec l'option d'indicateur - public :

 Création d'un gist

Par défaut, un gist privé sera créé si vous ne spécifiez pas le drapeau - public . Voici un lien vers l'essentiel que je viens de créer. Il contient une liste d'alias de commandes Linux courants que j'utilise régulièrement.

Il n'y a pas d'autres commandes gist, mais il y a un autre indicateur que je n'ai pas mentionné:

  • -d --desc string: une description de l'essentiel.

Résumé de l'interface CLI GitHub

J'espère que vous avez appris à utiliser le nouvel outil de ligne de commande gh . Je vous recommande d'intégrer l'outil dans votre flux de travail et d'en faire une habitude, car cela vous fait clairement gagner du temps dans la gestion de votre référentiel. Veuillez noter que l'outil est toujours en cours de développement et que de nouvelles commandes peuvent apparaître après la publication de cet article. Vous pouvez consulter le manuel pour de nouvelles fonctionnalités et des informations sur l’utilisation des outils existants.

La seule commande que je n’ai pas abordée est gh config . C'est parce qu'il n'y a pas beaucoup de documentation sur son utilisation au moment de la rédaction. Gardez un œil sur le manuel et la page de release pour les dernières mises à jour.




Source link