Skip to main content
Skip to content

Autoriser l’exécution de commandes sécurisées sans approbation manuelle

L’option assisted permissions réduit les invites d’approbation manuelles à l’aide d’un grand modèle de langage pour évaluer les demandes d’autorisation.

Introduction

Lorsque Copilot travaille sur une tâche, il doit souvent effectuer des actions susceptibles de modifier votre système, telles que l’exécution de commandes shell, la modification de fichiers ou l’accès aux URL. Vous pouvez choisir la façon dont les demandes d’autorisation pour ces actions sont gérées.

Répondre aux demandes d’approbation vous permet de garder le contrôle, mais cela peut vous ralentir, en particulier au début d’une session, lorsque Copilot doit déterminer quelles actions il est autorisé à effectuer. Pour réduire le nombre de demandes, vous pouvez accorder Copilot des autorisations inconditionnelles, mais cela supprime votre supervision des actions individuelles.

Assisted permissions est un compromis entre l’approbation manuelle et l’octroi d’autorisations étendues avec une option Tout autoriser. Il utilise un modèle de langage volumineux pour examiner les demandes d’autorisation et approuver automatiquement les actions qu’il juge sûres dans le contexte de votre tâche. Dans une session interactive standard, les demandes qui nécessitent toujours une approbation vous sont soumises.

Remarque

Assisted permissions est disponible dans GitHub Copilot CLI, Visual Studio Codeet le GitHub Copilot app.

Options d’approbation

Vous pouvez choisir entre trois options qui déterminent dans quelle mesure vous souhaitez être impliqué dans l’approbation des actions que Copilot effectue. Les règles de refus existantes et les restrictions d’entreprise s’appliquent toujours. Les demandes déjà autorisées par vos autorisations peuvent s’exécuter sans invite ni révision de modèle.

  • **Approbation manuelle :**Copilot Cette option demande votre approbation lorsqu’une action n’est pas déjà autorisée, comme l’exécution d’une commande qui n’est pas en lecture seule, la modification d’un fichier ou l’accès à une URL. Vous pouvez approuver une action une seule fois ou pour le reste de la session. Cela vous donne le plus de supervision, mais vous oblige à répondre au plus grand nombre d’invites.

  • **Assisted permissions:**Copilot utilise un modèle pour évaluer les demandes d’autorisation éligibles et approuve automatiquement celles qu’il juge sûres. Vous êtes invité lorsqu’une demande a toujours besoin de votre approbation. Cela réduit les invites sans accorder l’autorisation générale d’exécuter des commandes.

  • **Approbation sans condition :**Copilot a une autorisation générale d’utiliser des outils, des chemins d’accès et des URL sans examen de sécurité du modèle ni demandes d’approbation individuelles. C’est l’option la plus permissive et elle supprime votre contrôle des actions individuelles. Il s’agit du comportement que vous obtenez dans Copilot CLI lorsque vous utilisez l’option de ligne de commande --allow-all (ou --yolo), ou la commande /permissions allow-all (ou /yolo).

Votre administrateur peut désactiver l’approbation inconditionnelle avec permissions.disableBypassPermissionsMode: "disable" sans désactiver assisted permissions. Le paramètre séparé permissions.disableAssistedPermissionsMode: true désactive assisted permissions. Pour plus d’informations, consultez « Paramètres gérés par l’entreprise ».

Comment fonctionne assisted permissions

Lorsque vous activez assisted permissions, les règles existantes et les approbations humaines sont évaluées avant une révision de modèle. Pour les demandes éligibles qui ne sont pas déjà traitées (qu’il s’agisse d’exécuter une commande, d’accéder à un chemin d’accès ou d’extraire une URL), le modèle évalue si l’action est sécurisée et dans l’autorité que vous avez donnée pour la tâche.

Dans Copilot CLI, les règles d’entreprise ask pour les commandes d’interpréteur de commandes, les lectures de fichiers, les écritures de fichiers et les URL peuvent être satisfaites par l’approbation du modèle lorsque la demande est éligible à la révision. Cela signifie que ces règles n’entraînent pas toujours une demande de confirmation. Les règles de blocage d’entreprise s’appliquent toujours.

Assisted permissions ne passe pas en revue les autres appels d’outils que les règles d’entreprise vous obligent à approuver, ni les demandes de contournement de l’isolation locale. Ces demandes restent soumises à la gestion normale des autorisations de la session.

Pour les demandes qu’il peut examiner, le modèle fait une recommandation :

  • Si le modèle est sûr que la demande est sûre, Copilot l’approuve automatiquement et continue, sans vous inviter.
  • Si le modèle n’est pas sûr que la demande est sécurisée, Copilot demande votre approbation, comme elle le ferait avec une approbation manuelle.

Si une révision de sécurité n’est pas disponible ou ne peut pas évaluer une demande, la demande suit la gestion normale des autorisations de la session.

Remarque

En mode Autopilot et en exécutions non interactives, les demandes qui nécessitent toujours votre approbation sont refusées à la place. Lorsque l’examen de sécurité nécessite une approbation, son explication est renvoyée à Copilot afin qu’il puisse essayer une approche différente. Consultez « Autoriser GitHub Copilot à travailler de manière autonome ».

Copilot sélectionne le modèle utilisé pour la révision de sécurité, qui peut différer du modèle que vous avez sélectionné pour votre conversation. Si le modèle de révision sélectionné n’est pas disponible, la révision peut utiliser le modèle actif de votre session à la place. Si vous utilisez votre propre fournisseur de modèles, la révision utilise le modèle actif de votre session.

Important

Assisted permissions réduit la fréquence à laquelle vous êtes invité, mais cela ne supprime pas votre responsabilité quant à ce que Copilot fait. Le modèle peut faire des erreurs et approuver des actions dangereuses ou involontaires. Cette fonctionnalité ne remplace pas l’isolation en bac à sable ni les restrictions d’accès. Comme pour toute option d’approbation automatique, vous devez passer en revue les actions qu’Copilot effectue et envisager de l’exécuter dans un bac à sable ou dans un autre environnement isolé. Pour plus d’informations, consultez « GitHub Copilot CLI ».

Utilisation de assisted permissions dans le GitHub Copilot app

Pour activer assisted permissions pour une session locale :

  1. Dans la zone d’invite, ouvrez le menu du mode, qui affiche le mode actuel, tel que Interactive, Plan ou Autopilot.
  2. Cliquez sur Autorisations de l’outil, puis sélectionnez Assisté.

Votre sélection s’applique à la session active et est également enregistrée comme valeur par défaut pour les nouvelles sessions locales. Elle ne modifie pas d’autres sessions existantes. Pour modifier la valeur par défaut sans modifier la session active, ouvrez Paramètres, sélectionnez Sessions, puis sélectionnez Assisté sous Autorisations de l’outil.

Pour activer assisted permissions uniquement pour la session active en cours, sans modifier la valeur par défaut, entrez /permissions assisted dans la zone d’invite. Sélectionnez /permissions manual pour remettre cette session en approbation manuelle, ou /permissions show pour vérifier son mode d’autorisation.

Les contrôles d’autorisation des outils ne sont pas disponibles pour les sessions cloud. Pour les sessions sur un hôte distant, les modes d’autorisation disponibles dépendent de ce que cet hôte prend en charge. Les restrictions d’administrateur s’appliquent toujours, même si vous sélectionnez Assisté comme valeur par défaut.

Utilisation assisted permissions dans GitHub Copilot CLI

Il existe trois façons d’activer assisted permissions, selon que vous le souhaitez pour la session dans laquelle vous êtes, pour chaque nouvelle session ou pour une seule exécution automatisée.

L’activer pendant une session interactive

Entrez la commande slash suivante :

Copilot prompt
/permissions assisted

Pour revenir à l’approbation manuelle, entrez /permissions manual. Pour vérifier le mode d’autorisation dans lequel vous êtes actuellement, entrez /permissions show. Vous pouvez également entrer /permissions, sans argument, pour choisir un mode dans une liste.

Définir ceci comme valeur par défaut pour les nouvelles sessions

Pour rendre assisted permissions votre mode préféré pour les nouvelles sessions interactives, définissez defaultPermissionMode sur "assisted" dans votre fichier de configuration utilisateur (~/.copilot/settings.json). Vous pouvez modifier le fichier directement ou utiliser la commande /settings slash pendant une session. Pour plus d’informations, consultez « GitHub Copilot le répertoire de configuration du CLI ».

Le paramètre s’applique uniquement aux nouvelles sessions interactives. Si votre administrateur définit permissions.defaultMode, cette valeur par défaut gérée est prioritaire sur vos préférences. Vous pouvez toujours choisir un autre mode pour une session, par exemple avec /permissions manual, si la stratégie l’autorise.

Les sessions reprises conservent leur mode d’autorisation enregistré, sous réserve des restrictions de stratégie actuelles. L’option --yolo ou --allow-all est prioritaire sur l’une ou l’autre des valeurs par défaut si la stratégie l’autorise. Si la valeur par défaut sélectionnée n’est pas disponible ou bloquée par la stratégie, l’outil CLI démarre avec une approbation manuelle.

Pour définir l’approbation manuelle comme option par défaut, définissez defaultPermissionMode sur "manual". Ni vous ni votre administrateur n’avez configuré de valeur par défaut, les nouvelles sessions peuvent démarrer en mode manuel ou assisté. Utilisez /permissions show pour vérifier.

Utilisation de celui-ci pour une exécution non interactive

Lorsque vous exécutez Copilot CLI de manière non interactive, avec l’option --prompt ou -p, ou dans un environnement sans terminal attaché, tel qu’un flux de travail CI/CD, utilisez l’option de ligne de commande --assisted-approval :

Shell
copilot -p "Fix the failing tests" --assisted-approval

Vous pouvez également définir la variable d’environnement COPILOT_ASSISTED_APPROVAL sur true, ce qui est utile dans les environnements automatisés où vous ne pouvez pas facilement modifier la commande exécutée.

Cette option concerne uniquement les exécutions non interactives. Si vous l’utilisez lors du démarrage d’une session interactive, l’interface CLI se termine par une erreur. Pour utiliser assisted permissions dans une session interactive, utilisez /permissions assisted ou le paramètre defaultPermissionMode à la place.

Quand utiliser l’option de ligne de commande

Dans une exécution non interactive, il n’y a personne disponible pour répondre aux invites d’approbation. Vous devrez donc choisir entre deux options peu attrayantes. Sans aucune option d’autorisation, Copilot se voit refuser tout ce qui a besoin d’approbation et ne peut souvent pas terminer la tâche. Avec --allow-all-tools, vous accordez des autorisations générales des outils sans examen de sécurité du modèle.

--assisted-approval est un compromis. Les demandes sollicitant que les juges d’examen de la sécurité soient sûrs sont approuvées automatiquement. Si la révision nécessite votre approbation, la demande est refusée et son explication est renvoyée à Copilot pour qu’il puisse essayer une autre approche. D’autres demandes qui sont toujours en attente d’approbation sont également refusées.

Envisagez de l’utiliser lorsque vous souhaitez une exécution sans assistance ( dans un flux de travail CI/CD, un travail planifié ou un script de traitement par lots) pour effectuer un travail réel sans accorder Copilot l’autorisation inconditionnelle d’exécuter n’importe quelle commande.

Pour plus d’informations sur l’exécution Copilot CLI par programmation, consultez Exécution GitHub Copilot CLI par programmation.

Avertissement

Lorsqu’elle est activée avec succès, --assisted-approval est prioritaire sur --allow-all-tools, mais elle ne change ni --allow-all-urls ni --allow-all-paths. Si vous le combinez avec --allow-all (ou --yolo), le chemin d’accès et l’accès URL peuvent toujours être illimités, même si assisted permissions est activé pour les demandes d’outil.

Si assisted permissions ne peut pas être activé — parce que vos paramètres d’entreprise le bloquent, par exemple — l’interface CLI écrit un avertissement sur la sortie d’erreur standard. Il n’annule pas une option distincte --allow-all-tools que vous avez fournie, de sorte que les demandes d’outils peuvent toujours être approuvées sans révision de sécurité. Recherchez cet avertissement dans la sortie des exécutions automatisées.

Comment assisted permissions se comporte dans Copilot CLI

  • L’activation dans une session affecte uniquement cette session. Lorsque vous entrez /permissions assisted, assisted permissions reste activé pour le reste de cette session, sauf si vous le désactivez. Elle n’affecte pas les autres sessions que vous avez actuellement ouvertes. Pour l’appliquer à des sessions ultérieures, utilisez le defaultPermissionMode paramètre décrit ci-dessus.

  • Vous pouvez passer à assisted permissions à tout moment. Si vous avez démarré une session avec le paramètre le plus permissif (--allow-all ou son alias --yolo), la saisie de /permissions assisted vous fait passer de l’approbation inconditionnelle à assisted permissions.

  • Vous pouvez activer assisted permissions pendant que Copilot fonctionne. Vous n’avez pas besoin d’attendre la fin d’une tâche. Les demandes d’autorisation admissibles ultérieures utilisent assisted permissions. Selon votre paramètre précédent, cela peut augmenter ou réduire le nombre de demandes d’approbation que vous voyez pendant la tâche.

Pour en savoir plus