Catégories
Astuces et Design

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

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

Si vous êtes déjà familiarisé avec les commandes Git, vous savez évidemment que vous devez basculer vers le navigateur Web pour effectuer diverses actions sur votre dépôt GitHub. Avec le nouvel outil CLI GitHub, vous pouvez exécuter plusieurs de ces actions sans quitter l'interface de ligne de commande.

Configuration de l'interface de ligne de commande GitHub

Pour commencer, visitez simplement la page d'installation et trouvez des instructions sur la façon d'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 dernière page de 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 packages scoop.

Vous trouverez ci-dessous des instantanés des instructions d'installation pour chaque plate-forme prise en charge:

  • Les fenêtres:

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

    brew install github
    
  • Debian / Ubuntu Linux:

    sudo apt install git && 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 terminaux.

Après avoir installé GitHub CLI, 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é à fournir les informations suivantes:

Authentification GitHub

Appuyez simplement sur le Entrer clé pour démarrer le processus comme illustré ci-dessous:

Autorisation Gitub

Une fois que vous avez fourni votre mot de passe, vous recevez le message "L'interface de ligne de commande GitHub authentifiée avec succès" s'affiche. 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 que cela fonctionne, saisissez gh repo, puis appuyez languette deux fois. Il devrait vous montrer quatre commandes différentes que vous pouvez ajouter à l'actuel repo commander.

Structure des commandes CLI GitHub

le gh la structure de commande est en forme d'arbre 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 dans lequel vous pouvez spécifier l'opération que vous souhaitez effectuer, telle que gh repo view ou gh pr list. le credits Cependant, la commande n'a 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 sections à venir.

Commandes du référentiel GitHub

Cloner un repo avec le gh est plus simple que d'utiliser la commande git commander. Pour cloner, il vous suffit d'exécuter la commande au format suivant:

gh repo clone OWNER/REPO

Ce format facilite le clonage à partir de 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. Essayer:

$ 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 référentiel via votre ligne de commande: git config -e. Voici à quoi ressemble ma sortie:

(core)
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
(remote "origin")
    url = https://github.com/brandiqa/cli.git
    fetch = +refs/heads/*:refs/remotes/origin/*
(branch "trunk")
    remote = origin
    merge = refs/heads/trunk
(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 le git commande pour synchroniser votre dépôt forké comme d'habitude. Dans le cas du cli repo:

# Make sure you’re in the default branch
$ git checkout trunk

# Fetch updates
$ git fetch upstream

# Merge
$ git merge upstream/trunk

# Update your remote repo
$ git push

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

$ gh repo view facebook/react

Jusqu'à présent, vous avez appris comment vous pouvez clone, fork et view en utilisant le gh repo commandes. 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
...
# navigate to project folder after creation process is completed
$ cd example-next

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 ce qui suit:

$ gh repo create --public
✓ Created repository brandiqa/example-next on GitHub
✓ Added remote https://github.com/brandiqa/example-next.git

# Push your project code to your new remote repository
$ git push -u origin master

Si vous ne spécifiez pas le --public option, 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 of repository
      --enable-issues        Enable issues in the new repository (default true)
      --enable-wiki          Enable wiki in the new repository (default true)
  -h, --homepage string      Repository home page URL
      --public               Make the new repository public (default: private)
  -t, --team string          The name of the organization team to be granted access

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

Commandes de demande d'extraction

La création d'une pull request (PR) que votre équipe doit examiner peut désormais ê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éer une pull request

Voici la sortie complète:

$ gh pr create
Creating pull request for feature-1 into master in brandiqa/example-next
? Title Updated Home Page Title
? Body <Received>
? What is  next? Submit
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 398 bytes | 398.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote:
remote: Create a pull request for 'feature-1' on GitHub by visiting:
remote:      https://github.com/brandiqa/example-next/pull/new/feature-1
remote:
To https://github.com/brandiqa/example-next.git
* (new branch)      HEAD -> feature-1
Branch 'feature-1' set up to track
remote branch 'feature-1' from '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 plateforme GitHub, vous pouvez exécuter la commande gh pr list pour répertorier toutes les demandes d'extraction. Voici la sortie:

$ gh pr list
Showing 1 of 1 pull request in brandiqa/example-next
#1  Updated Home Page Title  feature-1

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

Liste PR

Les colonnes illustrées ci-dessus sont:

  • Numéro PR
  • Description PR
  • Direction des relations publiques

Vous pouvez utiliser la commande gh pr checkout pour récupérer 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 commander. 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:

Bosses 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 le gh pr merge commander. Voici une capture d'écran de la commande en action:

pr fusionner

Après avoir effectué une fusion, il est préférable de faire un tirage juste après. Si vous souhaitez 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 <number> && git pull

Il y a d'autres très utiles gh pr commandes que nous ne traiterons pas ici, mais je les mentionnerai rapidement:

Commandes d'émission

Les problèmes sont la façon dont nous suivons les bogues, les tâches et les 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 y a aussi gh issue list commande qui répertorie tous les problèmes. Voici un exemple de capture d'écran de la commande en cours d'utilisation:

Liste des problèmes GitHub

Le reste de la gh issue les commandes sont assez similaires à gh pr commandes. Voici un bref résumé:

Commandes Gist

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

Créer un résumé

Par défaut, un gist privé sera créé si vous ne spécifiez pas le --public drapeau. 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’existe pas d’autres commandes essentielles, mais il y a un autre indicateur que je n’ai pas mentionné:

  • -d, --desc string: une description de cet élément essentiel.

Résumé de l'interface de ligne de commande GitHub

J'espère que vous avez appris à utiliser le nouveau gh outil de ligne de commande. 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 vous référer au manuel pour les nouvelles fonctionnalités et les informations sur l'utilisation des outils existants.

La seule commande que je n'ai pas couverte 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 publication pour les dernières mises à jour.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *