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:
Appuyez simplement sur le Entrer clé pour démarrer le processus comme illustré ci-dessous:
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:
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:
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é:
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:
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:
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:
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:
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:
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.