GitHub Copilot — Learning Path GitHub

210 — Copilot CLI — automatiser depuis le terminal

Durée estimée : 30 min · Complexité : ⭐ · Pré-requis : Module 100 — Setup & posture

Tu connais Copilot dans VS Code. Mais que se passe-t-il quand tu n’as pas d’IDE — juste un terminal, un script CI, ou un serveur distant en SSH ? Ou quand ton IDE n’a pas encore rattrapé les dernières fonctionnalités de Copilot ?

Pourquoi ce module

Copilot n’est pas prisonnier de VS Code. L’extension gh-copilot pour le GitHub CLI te donne accès à deux capacités directement depuis le terminal :

Ça couvre un besoin réel. Combien de fois as-tu cherché la bonne syntaxe find, hésité sur les flags de tar, ou copié-collé un awk depuis Stack Overflow sans comprendre ce qu’il fait ? Copilot CLI remplace ce cycle recherche-copier-prier par une interaction directe dans ton terminal.

À la fin de ce module, tu sais :

Pré-requis

Concepts clés

GitHub CLI et les extensions

Le GitHub CLI (gh) est l’outil en ligne de commande officiel de GitHub. Il gère les PR, les issues, les releases — et il supporte un système d’extensions. Copilot CLI est une de ces extensions : elle ajoute la sous-commande gh copilot à ton installation existante.

L’installation se fait en une ligne :

gh extension install github/gh-copilot

Tu peux vérifier que l’extension est bien installée :

gh copilot --version

Si tu avais déjà installé l’extension, mets-la à jour :

gh extension upgrade github/gh-copilot

gh copilot suggest — de l’intention à la commande

gh copilot suggest transforme une description en langage naturel en une commande shell. Tu décris ce que tu veux faire, Copilot propose la commande correspondante.

gh copilot suggest "trouve les fichiers de plus de 1MB dans le dossier courant"

Copilot te propose une commande — par exemple :

find . -type f -size +1M

Tu as ensuite trois options interactives :

Le flag -t permet de préciser le type de commande attendu :

Flag Type Exemple
-t shell Commande shell générique find, grep, awk
-t gh Commande GitHub CLI gh pr list, gh issue create
-t git Commande Git git rebase, git log

Exemple avec un type explicite :

gh copilot suggest -t git "annule le dernier commit sans perdre les changements"

Résultat proposé :

git reset --soft HEAD~1

gh copilot explain — comprendre une commande existante

gh copilot explain fait l’inverse : tu lui passes une commande, et il t’en donne une explication en langage naturel.

gh copilot explain "tar -xzf archive.tar.gz -C /opt/app --strip-components=1"

Copilot décompose chaque flag :

C’est particulièrement utile pour :

Les alias ghcs et ghce

Taper gh copilot suggest à chaque fois est verbeux. La pratique recommandée est de créer deux alias dans ton shell :

Pour Bash ou Zsh, ajoute ces lignes à ton ~/.bashrc ou ~/.zshrc :

alias ghcs='gh copilot suggest'
alias ghce='gh copilot explain'

Pour Fish :

alias ghcs 'gh copilot suggest'
alias ghce 'gh copilot explain'

Pour PowerShell, ajoute à ton $PROFILE :

Set-Alias -Name ghcs -Value "gh copilot suggest"
function ghce { gh copilot explain @args }

Après avoir rechargé ton shell (source ~/.zshrc ou relancer le terminal), tu peux écrire :

ghcs "liste les 10 plus gros fichiers du dépôt"
ghce "du -sh * | sort -rh | head -10"

Deux caractères de moins, mais surtout : ça rend l’outil assez rapide pour devenir un réflexe.

Quand le CLI est plus pertinent que l’IDE

Copilot dans VS Code et Copilot CLI ne sont pas en concurrence — ils couvrent des contextes différents. Le CLI est le bon choix quand :

flowchart LR
    Q{"Quel contexte ?"}
    Q -->|Écrire du code| IDE["Copilot IDE"]
    Q -->|Commande shell / script| CLI["Copilot CLI"]
    Q -->|Serveur distant / CI| CLI
    Q -->|Comprendre une commande| CLI

En revanche, pour écrire du code applicatif (fonctions, classes, tests), l’IDE reste supérieur : il a le contexte du projet, les fichiers ouverts, le langage détecté.

Démonstration

Tu vas installer Copilot CLI, tester les deux commandes principales, puis configurer tes alias.

Étape 1 — Installer l’extension

Vérifie d’abord que le GitHub CLI est installé et authentifié :

gh --version
gh auth status

Si gh auth status indique que tu n’es pas connecté, lance gh auth login et suis les instructions.

Installe ensuite l’extension Copilot :

gh extension install github/gh-copilot

Vérifie l’installation :

gh copilot --version

Étape 2 — Tester suggest

Lance une première suggestion :

gh copilot suggest "trouve tous les fichiers .md modifiés dans les 7 derniers jours"

Copilot devrait proposer quelque chose comme :

find . -name "*.md" -mtime -7

Essaie avec un type explicite :

gh copilot suggest -t git "montre les commits du dernier mois avec les fichiers modifiés"

Étape 3 — Tester explain

Prends une commande que tu utilises souvent sans comprendre tous les flags :

gh copilot explain "rsync -avz --delete --exclude='.git' ./src/ user@server:/opt/app/"

Lis l’explication proposée. Vérifie que chaque flag est documenté.

Étape 4 — Configurer les alias

Ouvre ton fichier de configuration shell :

# Pour Zsh (macOS par défaut)
echo 'alias ghcs="gh copilot suggest"' >> ~/.zshrc
echo 'alias ghce="gh copilot explain"' >> ~/.zshrc
source ~/.zshrc

Vérifie que les alias fonctionnent :

ghcs "affiche l'espace disque utilisé par dossier, trié par taille"
ghce "df -h | grep '/dev/disk'"

Exercice ⭐

Énoncé

Crée trois alias dans ton shell et utilise gh copilot suggest pour résoudre une vraie tâche de ton quotidien.

  1. Alias de base — Configure ghcs et ghce dans ton shell (si ce n’est pas déjà fait depuis la démonstration).

  2. Alias personnalisé — Crée un troisième alias ghcsg qui appelle gh copilot suggest -t git. Tu auras ainsi un raccourci dédié aux commandes Git :

    alias ghcsg='gh copilot suggest -t git'
    
  3. Résoudre une vraie tâche — Utilise ghcs pour résoudre un problème réel. Voici quelques idées si tu manques d’inspiration :

    • « Trouve les fichiers de plus de 100 Mo dans mon home directory. »
    • « Compresse tous les fichiers .log de plus de 7 jours dans une archive. »
    • « Liste les ports réseau ouverts sur cette machine. »
    • « Renomme tous les fichiers .jpeg en .jpg dans le dossier courant. »
  4. Comprendre le résultat — Passe la commande proposée par ghcs à ghce pour vérifier que tu comprends chaque partie avant de l’exécuter.

Critères de réussite

Validation

Tu utilises ghcs et ghce sans aide-mémoire. Quand tu as besoin d’une commande shell, ton premier réflexe est de la demander à Copilot CLI plutôt que de chercher sur le web. Tu sais choisir entre l’IDE et le CLI selon le contexte.

Pour vérifier que tu as intégré ce module :

Pour aller plus loin