Skip to main content

Automatisation des tâches avec l’interface CLI Copilot et GitHub Actions

Intégrez CLI de GitHub Copilot dans vos flux de travail GitHub Actions.

Qui peut utiliser cette fonctionnalité ?

CLI de GitHub Copilot est disponible avec toutes les formules Copilot. Si vous recevez Copilot d’une organisation, la stratégie Copilot CLI doit être activée dans les paramètres de l’organisation.

Vous pouvez exécuter CLI de GitHub Copilot dans un flux de travail GitHub Actions pour automatiser les tâches basées sur l’IA dans le cadre de votre processus CI/CD. Par exemple, vous pouvez résumer l’activité récente du référentiel, générer des rapports ou créer la structure du contenu de projet. CLI de GitHub Copilot s’exécute sur l’exécuteur Actions comme n’importe quel autre outil CLI, afin de pouvoir l’installer pendant un travail et l’appeler à partir des étapes du flux de travail.

Utilisation de Copilot CLI dans un flux de travail Actions

Il est possible de configurer une tâche dans un workflow GitHub Actions afin d’installer Copilot CLI sur le runner, de l’authentifier, de l’exécuter de manière programmatique, puis d’exploiter les résultats obtenus. Le mode programmatique est conçu pour les scripts et l'automatisation et cela permet de transmettre une invite de façon non interactive.

Les flux de travail peuvent suivre ce modèle : 1. Déclencheur : démarrez le flux de travail selon une planification, en réponse à des événements de référentiel ou manuellement. 1. Configuration: Cloner le code, configurer l'environnement. 1. Installation : installez CLI de GitHub Copilot sur l’exécuteur. 1. Authentifiez : vérifiez que l’interface CLI dispose des autorisations nécessaires pour accéder au référentiel et apporter des modifications. 1. Exécutez Copilot CLI : Utilisez Copilot CLI avec une invite décrivant la tâche que vous souhaitez automatiser.

Exemple de flux de travail

Le flux de travail suivant génère les détails des modifications apportées aujourd’hui dans la branche par défaut du référentiel et affiche ces détails comme résumé de l’exécution du flux de travail.

YAML
name: Daily summary
on:
  workflow_dispatch:
  # Run this workflow daily at 5:30pm UTC
  schedule:
    - cron: '30 17 * * *'
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - name: Set up Node.js environment
        uses: actions/setup-node@v4

      - name: Install Copilot CLI
        run: npm install -g @github/copilot

      - name: Run Copilot CLI
        env:
          COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
        run: |
          copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
          cat summary.md >> "$GITHUB_STEP_SUMMARY"

Les sections suivantes expliquent chaque partie de ce flux de travail.

Déclencheur

Dans cet exemple, le flux de travail s’exécute quotidiennement et peut également être déclenché manuellement.

Le workflow_dispatch déclencheur vous permet d’exécuter le flux de travail manuellement à partir de l’onglet Actions de votre référentiel sur GitHub, ce qui est utile lors du test des modifications apportées à votre invite ou configuration de flux de travail.

Le schedule déclencheur exécute automatiquement le flux de travail à un moment spécifié à l’aide de la syntaxe cron.

YAML
on:
  # Allows manual triggering of this workflow
  workflow_dispatch:
  # Run this workflow daily at 11:55pm UTC
  schedule:
    - cron: '55 23 * * *'

Paramétrage

Configurez la tâche pour que Copilot CLI puisse accéder à votre référentiel et s'exécuter sur le runner Actions. Cela permet à Copilot CLI d’analyser le contexte du référentiel lors de la génération du résumé quotidien.

Le permissions bloc définit l’étendue accordée au composant intégré GITHUB_TOKEN. Puisque ce flux de travail lit les données du référentiel et imprime un résumé dans les journaux de bord, il nécessite contents: read.

YAML
permissions:
  contents: read
jobs:
  daily-summary:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

Installez

Installez Copilot CLI sur l’exécuteur afin que votre flux de travail puisse l’appeler en tant que commande. Vous pouvez installer CLI de GitHub Copilot à l’aide de n’importe quelle méthode d’installation prise en charge. Pour obtenir la liste complète des options d’installation, consultez Installation de GitHub Copilot CLI.

Dans cet exemple, le flux de travail installe CLI de GitHub Copilot globalement avec npm.

YAML
- name: Set up Node.js environment
  uses: actions/setup-node@v4

- name: Install Copilot CLI
  run: npm install -g @github/copilot

Authentifier

Pour autoriser Copilot CLI à s’exécuter sur un exécuteur Actions, vous devez authentifier un compte d’utilisateur GitHub valide avec une licence Copilot valide.

          **Étape 1 : Créez un personal access token (PAT) avec la permission « Demandes Copilot » :**
  1. Accédez à vos paramètres personnels pour créer un fine-grained personal access token : github.com/settings/personal-access-tokens/new.

  2. Créez un nouveau PAT avec l’autorisation « Copilot Requests ».

  3. Copiez la valeur du jeton.

           **Étape 2 : Stocker le PAT comme secret du référentiel Actions :**
    
  4. Dans votre référentiel, accédez à Paramètres > secrets et variables > Actions , puis cliquez sur Nouveau secret de référentiel.

  5. Donnez au secret un nom que vous utiliserez dans le flux de travail. Dans cet exemple, nous utilisons PERSONAL_ACCESS_TOKEN le nom du secret.

  6. Collez la valeur du jeton dans le champ « Secret », puis cliquez sur Ajouter un secret.

Le flux de travail définit une variable d’environnement spéciale avec la valeur du secret du dépôt. Copilot CLI prend en charge plusieurs variables d’environnement spéciales pour l’authentification. Dans cet exemple, le flux de travail utilise COPILOT_GITHUB_TOKEN, qui est spécifique à Copilot CLI et vous permet de définir des autorisations différentes pour Copilot que vous pouvez utiliser ailleurs avec la variable d’environnement intégrée GITHUB_TOKEN .

YAML
- name: Run Copilot CLI
  env:
   COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

Exécuter Copilot CLI

Utiliser copilot -p PROMPT [OPTIONS] pour exécuter le programme CLI de façon programmatique et sortir lorsque la commande est terminée.

L’interface CLI affiche sa réponse à la sortie standard, qui est enregistrée dans le journal pour l’exécution du flux de travail d'Actions. Toutefois, pour faciliter l’accès aux modifications, cet exemple ajoute ces informations au résumé de l’exécution du flux de travail.

YAML
  run: |
    copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
    cat summary.md >> "$GITHUB_STEP_SUMMARY"

Cet exemple utilise plusieurs options après l’invite CLI :

  •         `--allow-tool='shell(git:*)'` permet à Copilot d’exécuter des commandes Git pour analyser l’historique du référentiel. Cela est nécessaire pour générer le résumé des modifications récentes.
    
  •         `--allow-tool='write'` permet à Copilot d’écrire le résumé généré dans un fichier sur le système de l’exécuteur.
    
  •         `--no-ask-user` empêche l’interface CLI de demander une saisie utilisateur, ce qui est important lors de l’exécution dans un flux de travail automatisé où il n’y a pas d’utilisateur pour répondre aux demandes de saisie supplémentaire.
    

Étapes suivantes

Une fois que vous avez confirmé que le flux de travail génère un résumé des modifications, vous pouvez adapter le même modèle à d’autres tâches d’automatisation. Commencez par modifier l’invite que vous passez à copilot -p PROMPT, puis décidez comment vous voulez utiliser la sortie. Par exemple, vous pouvez :

  • Créez un pull request pour mettre à jour un fichier de changelog dans le dépôt avec les changements du jour.
  • Envoyez le résumé par e-mail aux responsables du référentiel.

Lectures complémentaires

  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)
    
  •         [AUTOTITLE](/actions)
    
  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)