À propos de la personnalisation de l’environnement de développement de Copilot, agent de codage
Pendant que vous travaillez sur une tâche, Copilot a accès à son propre environnement de développement éphémère, propulsé par GitHub Actions, où il peut explorer votre code, apporter des modifications, exécuter des tests et des linters automatisés, etc.
Vous pouvez personnaliser l’environnement de développement de Copilot avec un fichier d’étapes de configuration de Copilot. Vous pouvez utiliser un fichier de configuration Copilot pour :
-
[Préinstaller des outils ou des dépendances dans l’environnement de Copilot](#preinstalling-tools-or-dependencies-in-copilots-environment) -
[Effectuer une mise à niveau des exécuteurs GitHub Actions hébergés par GitHub standard vers des exécuteurs plus grands](#upgrading-to-larger-github-hosted-github-actions-runners) -
[Exécuter sur des runners auto-hébergés de GitHub Actions](#using-self-hosted-github-actions-runners) -
[Donnez Copilot un environnement de développement Windows](#switching-copilot-to-a-windows-development-environment), au lieu de l’environnement Linux Ubuntu par défaut -
[Enable Git Large File Storage (LFS)](#enabling-git-large-file-storage-lfs)
Par ailleurs, vous pouvez :
-
[Définir des variables d’environnement dans l’environnement de Copilot](#setting-environment-variables-in-copilots-environment) -
[Désactiver ou personnaliser le pare-feu de l’agent](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)
Personnaliser l’environnement de développement de Copilot avec les étapes de configuration de Copilot
Vous pouvez personnaliser l'environnement de Copilot en créant un fichier de workflow spécial GitHub Actions, situé à .github/workflows/copilot-setup-steps.yml dans votre référentiel.
Un fichier copilot-setup-steps.yml ressemble à un fichier de flux de travail GitHub Actions standard, mais doit comporter une seule tâche copilot-setup-steps. Les étapes de cette tâche seront exécutées dans GitHub Actions avant que Copilot ne commence à travailler. Pour plus d’informations sur les fichiers de flux de travail %{data variables.product.prodname_actions}, consultez Syntaxe de flux de travail pour GitHub Actions.
Remarque
Le flux de travail copilot-setup-steps.yml ne se déclenchera pas s’il n’est pas présent sur votre branche par défaut.
Voici un exemple simple d'un fichier copilot-setup-steps.yml pour un project TypeScript qui clone le project, installe Node.js et télécharge et met en cache les dépendances du project. Vous devez le personnaliser pour qu'il corresponde à vos propres langages et dépendances de votre propre project :
name: "Copilot Setup Steps"
# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: ubuntu-latest
# Set the permissions to the lowest permissions possible needed for your steps.
# Copilot will be given its own token for its operations.
permissions:
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission.
# If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
contents: read
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
# ...
name: "Copilot Setup Steps"
# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: ubuntu-latest
# Set the permissions to the lowest permissions possible needed for your steps.
# Copilot will be given its own token for its operations.
permissions:
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission.
# If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
contents: read
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
# ...
Dans votre fichier copilot-setup-steps.yml, vous pouvez uniquement personnaliser les paramètres suivants de la tâche copilot-setup-steps. Si vous essayez de personnaliser d’autres paramètres, vos modifications sont ignorées.
-
`steps` (voir ci-dessus) -
`permissions` (voir ci-dessus) -
`runs-on` (voir ci-dessous) servicessnapshot-
`timeout-minutes` (valeur maximale : `59`)
Pour plus d’informations sur ces options, consultez Syntaxe de flux de travail pour GitHub Actions.
Toute valeur définie pour l’option fetch-depth de l’action actions/checkout est remplacée, afin de permettre à l’agent d’annuler les validations sur demande, tout en réduisant les risques de sécurité. Pour plus d’informations, consultez actions/checkout/README.md.
Votre fichier copilot-setup-steps.yml est automatiquement exécuté comme un flux de travail GitHub Actions standard lorsque des modifications sont apportées, afin que vous puissiez vérifier s’il s’exécute correctement. Cela s’affiche avec d’autres vérifications dans une demande de tirage où vous créez ou modifiez le fichier.
Après avoir fusionné le fichier yml dans votre branche par défaut, vous pouvez exécuter manuellement le flux de travail à partir de l’onglet Actions du dépôt à tout moment pour vérifier que tout fonctionne comme prévu. Pour plus d’informations, consultez « Exécution manuelle d’un workflow ».
Lorsque Copilot démarre, vos étapes de configuration sont exécutées et les mises à jour s’affichent dans les journaux de session. Consultez Suivi des sessions GitHub Copilot.
Si une étape de configuration échoue en renvoyant un code de sortie différent de zéro, Copilot ignore les étapes de configuration restantes et commence à utiliser l’état actuel de son environnement de développement.
Préinstallation d’outils ou de dépendances dans l’environnement de Copilot
Dans son environnement de développement éphémère, Copilot peut générer ou compiler votre projet et exécuter des tests automatisés, des linters et d'autres outils. Pour cela, il faudra installer les dépendances de votre projet.
Copilot peut découvrir et installer ces dépendances lui-même par un processus d’essais et d’erreurs, mais cela peut être lent et peu fiable, étant donné la nature non déterministe des grands modèles de langage (LLM). Dans certains cas, le téléchargement de ces dépendances peut même s’avérer impossible, par exemple si elles sont privées.
Vous pouvez utiliser un fichier de configuration Copilot pour installer de manière déterministe les outils ou les dépendances, avant que Copilot ne démarre. Pour faire cela, ajoutez steps à la tâche copilot-setup-steps :
# ...
jobs:
copilot-setup-steps:
# ...
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install JavaScript dependencies
run: npm ci
Mise à niveau vers des exécuteurs GitHub hébergés par GitHub Actions plus grands
Par défaut, Copilot fonctionne dans un exécuteur GitHub Actions standard. Vous pouvez effectuer une mise à niveau vers des exécuteurs plus volumineux pour de meilleures performances (processeur et mémoire), plus d’espace disque et de fonctionnalités avancées comme Azure mise en réseau privée. Pour plus d’informations, consultez Exécuteurs plus grands.
-
Configurer des runners de plus grande taille pour votre organisation. Pour plus d’informations, consultez Gestion des exécuteurs de plus grande taille.
-
Si vous utilisez des exécuteurs plus grands avec la mise en réseau privée d'Azure, configurez votre réseau privé Azure pour autoriser les accès sortants aux hôtes requis pour Copilot, agent de codage :
uploads.github.comuser-images.githubusercontent.com-
`api.individual.githubcopilot.com` (si vous prévoyez que des utilisateurs de Copilot Pro ou Copilot Pro+ utiliseront Copilot, agent de codage dans votre dépôt) -
`api.business.githubcopilot.com` (si vous prévoyez que les utilisateurs de Copilot Business utilisent Copilot, agent de codage dans votre référentiel) -
`api.enterprise.githubcopilot.com` (si vous attendez que les utilisateurs de Copilot Entreprise utilisent Copilot, agent de codage dans votre référentiel) - Si vous utilisez l’agent tiers OpenAI Codex (pour plus d’informations, consultez À propos des agents tiers) :
npmjs.orgnpmjs.comregistry.npmjs.comregistry.npmjs.orgskimdb.npmjs.com
-
Utilisez un fichier
copilot-setup-steps.ymldans votre référentiel pour configurer Copilot, agent de codage afin qu’il s’exécute sur les runners de votre choix. Définissez l’étaperuns-onde la tâchecopilot-setup-stepssur l’étiquette et/ou le groupe correspondant aux runners de plus grande taille que vous souhaitez que Copilot utilise. Pour en savoir plus sur la spécification d’exécuteurs plus grands avecruns-on, consultez Exécution de travaux sur des exécuteurs de plus grande taille.# ... jobs: copilot-setup-steps: runs-on: ubuntu-4-core # ...
Remarque
- Copilot, agent de codage est uniquement compatible avec les runners Ubuntu Linux x64 et Windows 64 bits. Les exécuteurs sous macOS ou d’autres systèmes d’exploitation ne sont pas pris en charge.
Utilisation d’exécuteurs GitHub Actions auto-hébergés
Vous pouvez exécuter Copilot, agent de codage sur des runners auto-hébergés. Cela peut vous être utile pour adapter la façon dont vous gérez les workflows CI/CD sur GitHub Actions, ou pour donner un accès Copilot aux ressources internes de votre réseau.
Nous vous recommandons d’utiliser Copilot, agent de codage uniquement avec des runners éphémères, à usage unique, qui ne sont pas réutilisés pour plusieurs tâches. La plupart des clients configurent ceci à l’aide d’ARC (Actions Runner Controller) ou du GitHub Actions Runner Scale Set Client. Pour plus d’informations, consultez « Documentation de référence relative aux runners auto-hébergés ».
Remarque
Copilot, agent de codage est uniquement compatible avec les exécuteurs Ubuntu x64 et Windows 64 bits. Les exécuteurs sous macOS ou d’autres systèmes d’exploitation ne sont pas pris en charge.
-
Configurez les contrôles de sécurité réseau pour vos exécuteurs GitHub Actions afin d'assurer que Copilot, agent de codage n’a pas d’accès ouvert à votre réseau ou à l’internet public.
Vous devez configurer votre pare-feu pour autoriser les connexions aux hôtes standard requis pour les exécuteurs auto-hébergés GitHub Actions, ainsi que les hôtes suivants :
uploads.github.comuser-images.githubusercontent.com-
`api.individual.githubcopilot.com` (si vous prévoyez que des utilisateurs de Copilot Pro ou Copilot Pro+ utiliseront Copilot, agent de codage dans votre dépôt) -
`api.business.githubcopilot.com` (si vous prévoyez que les utilisateurs de Copilot Business utilisent Copilot, agent de codage dans votre référentiel) -
`api.enterprise.githubcopilot.com` (si vous attendez que les utilisateurs de Copilot Entreprise utilisent Copilot, agent de codage dans votre référentiel) - Si vous utilisez l’agent tiers OpenAI Codex (pour plus d’informations, consultez À propos des agents tiers) :
npmjs.orgnpmjs.comregistry.npmjs.comregistry.npmjs.orgskimdb.npmjs.com
-
Désactivez le pare-feu intégré Copilot, agent de codage dans les paramètres de votre référentiel. Le pare-feu n’est pas compatible avec les exécuteurs auto-hébergés. Sauf si cette option est désactivée, l’utilisation de Copilot, agent de codage est bloquée. Pour plus d’informations, consultez « Personnalisation ou désactivation du pare-feu pour GitHub Agent de codage Copilot ».
-
Dans votre fichier
copilot-setup-steps.yml, définissez l’attributruns-onsur le nom de votre groupe identique géré par ARC :# ... jobs: copilot-setup-steps: runs-on: arc-scale-set-name # ... -
Si vous souhaitez configurer un serveur proxy pour Copilot, agent de codage connexions à Internet, configurez les variables d'environnement suivantes selon vos besoins :
Variable Descriptif Example https_proxyURL du proxy pour le trafic HTTPS. Vous pouvez inclure l’authentification de base si nécessaire. http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.localhttp_proxyURL du proxy pour le trafic HTTP. Vous pouvez inclure l’authentification de base si nécessaire. http://proxy.localhttp://192.168.1.1:8080http://username:password@proxy.localno_proxyListe séparée par des virgules d’hôtes ou d’adresses IP qui doivent contourner le proxy. Certains clients respectent uniquement les adresses IP lorsque les connexions sont effectuées directement à l’adresse IP plutôt qu’à un nom d’hôte. example.comexample.com,myserver.local:443,example.org
| ssl_cert_file | Chemin d’accès au certificat SSL présenté par votre serveur proxy. Vous devez le configurer si votre proxy intercepte les connexions SSL.
|
/path/to/key.pem |
| node_extra_ca_certs | Chemin d’accès au certificat SSL présenté par votre serveur proxy. Vous devez le configurer si votre proxy intercepte les connexions SSL. | /path/to/key.pem |
Vous pouvez définir ces variables d’environnement en suivant les [instructions ci-dessous](#setting-environment-variables-in-copilots-environment) ou en les définissant directement sur l’exécuteur, par exemple avec une image d’exécuteur personnalisée. Pour plus d’informations sur la création d’une image personnalisée, consultez [AUTOTITLE](/actions/concepts/runners/actions-runner-controller#creating-your-own-runner-image).
Passer Copilot à un environnement de développement Windows
Par défaut, Copilot utilise un environnement de développement Linux Ubuntu.
Vous pouvez utiliser un environnement de développement Windows si vous créez des logiciels pour Windows ou que votre référentiel utilise une chaîne d'outils Windows. Copilot peut générer votre project, exécuter des tests et valider son travail.
Le pare-feu intégré de Copilot, agent de codage n’est pas compatible avec Windows ; nous vous recommandons donc d’utiliser uniquement des runners auto-hébergés ou des runners de plus grande taille hébergés par GitHub avec mise en réseau privée Azure, où vous pouvez mettre en place vos propres contrôles réseau. Pour en savoir plus sur les runners avec mise en réseau privée Azure, consultez À propos de la mise en réseau privée Azure pour les agents hébergés par GitHub dans votre entreprise.
Pour utiliser Windows avec des exécuteurs auto-hébergés, suivez les instructions de la section Utilisation des exécuteurs auto-hébergés GitHub Actions ci-dessus, à l’aide de l’étiquette de vos exécuteurs Windows. Pour utiliser Windows avec des exécuteurs plus volumineux hébergés par GitHub, suivez les instructions de la section Mise à niveau vers des exécuteurs plus volumineux ci-dessus, à l’aide de l’étiquette de vos exécuteurs Windows.
Activation de l’Storage de fichiers volumineux Git (LFS)
Si vous utilisez Git Large File Storage (LFS) pour stocker des fichiers volumineux dans votre référentiel, vous devez personnaliser Copilotl'environnement de }pour installer Git LFS et extraire des objets LFS.
Pour activer Git LFS, ajoutez une étape actions/checkout à votre tâche copilot-setup-steps avec l’option lfs définie sur true.
# ...
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout
steps:
- uses: actions/checkout@v5
with:
lfs: true
# ...
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout
steps:
- uses: actions/checkout@v5
with:
lfs: true
Définition de variables d’environnement dans l’environnement de Copilot
Vous pouvez définir des variables d'environnement dans l'environnement de Copilot pour configurer ou authentifier des outils ou des dépendances auxquelles il a accès.
Pour définir une variable d’environnement pour Copilot, créez une variable ou un secret GitHub Actions dans l’environnement copilot. Si la valeur comporte des informations sensibles, par exemple un mot de passe ou une clé API, il est préférable d’utiliser un secret GitHub Actions.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre référentiel, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

-
Dans la barre latérale gauche, cliquez sur Environnements.
-
Cliquez sur l’environnement
copilot. -
Pour ajouter un secret, sous « Secrets d’environnement », cliquez sur Ajouter un secret d’environnement. Pour ajouter une variable, sous « Variables d’environnement », cliquez sur Ajouter une variable d’environnement.
-
Renseignez les champs « Nom » et « Valeur », puis cliquez sur Ajouter un secret ou Ajouter une variable, le cas échéant.
Pour aller plus loin
-
[AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)