Symptôme — une tâche lancée depuis Slack ou Microsoft Teams semble terminée, mais vous ne savez pas si l’agent a utilisé le bon fil, le bon compte GitHub ou le bon dépôt.

Réponse rapide — autorisez un pilote limité aux tâches réversibles, puis exigez des preuves sur l’éligibilité, l’identité, le contexte, le dépôt et la reprise avant d’élargir l’accès. Une conversation transformée en demande de fusion ne constitue jamais, à elle seule, une validation du code ; si le livrable dépend de Xcode, validez aussi une véritable construction macOS.

Cette procédure s’adresse aux équipes qui lancent des tâches GitHub depuis Slack ou Microsoft Teams et doivent relier le fil d’origine à l’issue ou à la demande de fusion obtenue. Elle concerne également les administrateurs responsables des applications, des politiques d’accès et de l’environnement d’exécution, ainsi que les équipes plateforme qui doivent examiner les interruptions et les reprises.

Dernière mise à jour le 27 septembre 2026 ; vérification fondée sur l’annonce GitHub du 25 septembre 2026, les instructions de connexion Slack et les instructions de connexion Teams.

Avant le pilote : annonce publique, accès réel à distinguer

L’annonce du 25 septembre présente des mises à jour de GitHub Copilot pour Slack et Microsoft Teams, avec de nouvelles possibilités de contexte, des liens vers les tâches et des améliorations de reprise. GitHub précise que l’intégration est en préversion publique et que certaines capacités sont déployées progressivement. Les pages de connexion décrivent elles aussi une préversion, mais leurs indications sur les offres admissibles ne se formulent pas exactement comme celles de l’annonce. Ne résolvez pas cet écart par supposition : vérifiez l’offre, les paramètres et les commandes réellement disponibles dans votre propre environnement.

Comment connecter Slack ou Teams à l’agent cloud sans ouvrir trop largement l’accès ? Commencez par consulter la documentation de la plateforme concernée, puis comparez-la aux paramètres visibles pour votre organisation GitHub. L’activation de l’application de messagerie n’accorde pas automatiquement un accès illimité aux dépôts ; inversement, voir la commande de lancement ne prouve pas que le compte et le dépôt visés sont autorisés. Les conditions peuvent dépendre de l’offre, de la politique de l’organisation, de l’application installée et de la disponibilité de la préversion dans le locataire.

Avant de commencer, consignez les éléments suivants dans une fiche de pilote :

  • l’offre et le compte GitHub du compte d’essai, sans y inclure de jetons ni de secrets ;
  • l’état des politiques d’accès de l’organisation et les dépôts que l’agent peut atteindre ;
  • l’application autorisée dans Slack ou Teams et l’identité utilisée pour l’installation ;
  • la disponibilité de Copilot cloud agent et de son environnement de travail cloud ;
  • les fonctions visibles dans votre locataire, en séparant celles annoncées de celles effectivement disponibles.

Les règles d’accès organisationnelles à Copilot cloud agent doivent être examinées avec les paramètres de protection de l’agent cloud. Ces contrôles comptent parce que le droit de participer à une discussion, l’identité qui déclenche le travail et l’accès en écriture au dépôt sont trois choses différentes. Une politique peut autoriser l’intégration tout en limitant les dépôts ou les actions permises.

Si la documentation et l’interface du locataire divergent, archivez les deux observations avec la date, l’offre consultée et le compte d’essai. La décision de poursuivre doit reposer sur la capacité effective du compte à exécuter la tâche attendue, non sur une lecture optimiste de l’annonce. Une fonction absente ou une admissibilité incertaine est un motif pour limiter le pilote, pas pour élargir les permissions afin de « voir si cela marche ».

Première connexion : compte, dépôt et branche à rendre explicites

Lors du raccordement initial, vérifiez quel compte GitHub est associé à l’intégration. Dans une équipe, il est facile de confondre l’identité de la personne qui écrit dans un canal, celle qui installe l’application et celle qui dispose des droits sur le dépôt. Conservez les preuves de configuration côté administrateur et côté compte pilote ; évitez de partager des captures contenant des informations personnelles ou des identifiants sensibles.

Ne supposez pas qu’un dépôt défini par défaut sera sélectionné de la même manière dans chaque conversation. Le comportement peut dépendre du contexte et des paramètres de l’intégration. Faites un essai privé puis, si l’usage prévu inclut un canal partagé, un essai dans ce canal avec une tâche sans enjeu. Dans chaque cas, relevez le compte d’exécution, le dépôt, la branche visée et les droits effectifs. Un canal privé ou partagé n’est pas, par lui-même, une frontière suffisante pour garantir que la tâche utilise le bon dépôt.

Pour le premier essai, demandez une modification minimale, aisément réversible et clairement identifiable. Avant de la lancer, indiquez explicitement le dépôt et, si nécessaire, la branche attendue. À l’arrivée, comparez ces indications à l’issue ou à la demande de fusion créée : dépôt propriétaire, branche source, branche de destination et compte associé. Si le produit ne permet pas de rendre une valeur explicite ou vérifiable, ne traitez pas cette valeur comme une garantie.

Les instructions officielles sont à consulter séparément pour Slack et Microsoft Teams : ne transposez pas les options d’une intégration à l’autre sans confirmation. Cela vaut notamment pour les paramètres par défaut et les façons de déclencher une tâche.

Première tâche : prouver le lien entre la discussion et le livrable

Le point délicat n’est pas seulement de vérifier qu’un agent répond. Vous devez établir quelles informations de la conversation il a utilisées, puis déterminer si l’issue ou la demande de fusion renvoie bien à la discussion et au dépôt attendus. Pour le test initial, choisissez un fil représentatif mais dépourvu de données sensibles : un besoin déjà documenté, un défaut reproductible ou une petite amélioration décrite sans informations confidentielles.

L’agent reprend-il toute la discussion Slack ou Teams comme contexte ? N’en déduisez pas la réponse de la seule présence d’un lien vers le fil. Examinez le comportement indiqué par la documentation pour les messages, pièces jointes, images et contenus transférés, puis vérifiez ce que l’agent a effectivement reçu et ce que son résultat cite ou résume. L’annonce décrit des évolutions de contexte ; elle ne justifie pas de supposer que chaque élément d’un fil est toujours disponible, interprété correctement ou conservé de la même façon.

Le risque est double. Un contexte incomplet peut faire disparaître une contrainte formulée plus tôt dans la conversation ; un contexte trop large peut faire entrer dans la tâche des messages qui n’étaient pas destinés à guider une modification de code. Les informations officielles sur le fonctionnement et les limites de l’agent cloud sont donc à rapprocher de vos essais, en particulier si les fils contiennent des pièces jointes, des images ou des messages transférés.

Pour chaque essai, conservez un relevé expurgé qui relie les éléments sans recopier le contenu confidentiel :

  • identifiant ou lien vers la discussion source, avec les messages pertinents ;
  • compte GitHub et dépôt explicitement attendus ;
  • résumé de la tâche formulée et éléments du fil que l’agent semble avoir repris ;
  • lien vers l’issue ou la demande de fusion, avec dépôt et branche ;
  • différence éventuelle entre la demande initiale, le plan présenté et le changement produit.

Comment vérifier qu’une demande de fusion créée dans Teams appartient au bon dépôt ? Ouvrez le livrable dans GitHub et contrôlez son dépôt parent, ses branches, les fichiers modifiés et le lien vers la tâche ou la discussion d’origine. La notification visible dans Teams ne suffit pas : elle peut confirmer qu’une action a eu lieu, mais pas que le résultat appartient au dépôt prévu ni qu’il traite le bon besoin. Si le lien vers le fil manque, ou si le dépôt ne correspond pas au dépôt explicitement demandé, arrêtez l’essai et classez-le comme échec de traçabilité.

Pour une tâche qui produit une issue plutôt qu’une demande de fusion, vérifiez également que l’issue est créée dans le dépôt attendu et qu’elle restitue le besoin sans transformer une hypothèse de discussion en spécification approuvée. L’agent peut organiser le travail ; la validation humaine reste nécessaire pour confirmer que la source, l’intention et le livrable concordent.

Pendant la collaboration : séparer changement de modèle, changement de dépôt et état de session

Quand plusieurs personnes utilisent l’intégration, testez séparément les changements susceptibles de brouiller les preuves. Si vous changez de modèle au cours d’une conversation, vérifiez dans l’interface si ce choix vaut pour le fil en cours, pour les tâches suivantes ou seulement pour l’action qui vient d’être lancée. Ne déduisez pas la persistance du choix d’une tâche réussie : notez ce qui est affiché et contrôlez le comportement lors d’un nouvel essai.

De même, un dépôt indiqué par défaut dans Slack ne doit pas être confondu avec un dépôt explicitement choisi pour chaque tâche. Testez une tâche en spécifiant le dépôt attendu, puis comparez le résultat à une tâche lancée avec les valeurs de l’environnement. Si les paramètres incluent un responsable par défaut ou un dépôt par défaut, vérifiez si ces valeurs s’appliquent au canal, à l’utilisateur ou à la tâche ; n’attribuez pas une portée que l’interface ne confirme pas.

Un échec fréquent consiste à considérer la création d’une demande de fusion comme la fin du contrôle. Or, la création ne prouve ni la correction des changements ni leur conformité aux règles du dépôt. Maintenez séparément :

  • la revue humaine du diff et de sa correspondance avec le fil ;
  • les tests déterministes du projet, exécutés dans les conditions prévues ;
  • les contrôles de branche et d’approbation avant fusion ;
  • l’attribution de l’activité et de la consommation au compte ou à l’organisation appropriés.

L’agent ne remplace pas les protections de fusion, l’analyse des tests ou la responsabilité du réviseur. Pour rendre la vérification reproductible, conservez les liens de la discussion, de l’issue et de la demande de fusion, ainsi que l’identité d’exécution et l’état des contrôles, plutôt qu’un simple commentaire « tâche réussie ».

Après une interruption : vérifier l’état avant de relancer

Les tâches longues rendent les reprises difficiles à interpréter : un message peut sembler ancien, une réponse peut ne plus être exploitable ou une personne peut relancer la demande alors que la première exécution est encore active. Les améliorations annoncées pour la reprise ne constituent pas une garantie que chaque interruption se résout sans intervention. Vérifiez les états visibles dans l’interface et comparez-les aux livrables déjà créés.

Comment repérer une exécution en double après l’interruption d’une conversation ? Avant de renvoyer la demande, recherchez la tâche initiale, son état, son lien de suivi et tout livrable créé dans le dépôt. Comparez le dépôt, la branche, l’objectif de la tâche et les modifications présentes. Si vous ne pouvez pas déterminer si l’exécution est encore active, ne relancez pas immédiatement une tâche qui écrit dans le dépôt : faites vérifier son état par la personne responsable du pilote.

Incluez dans le test des situations contrôlées : tâche qui tarde à aboutir, conversation devenue inactive, retour dans un fil après un changement de dépôt, ou message de réponse reçu après une relance. Le but n’est pas de provoquer des modifications risquées, mais d’observer si l’interface expose un état intelligible, si l’ancien travail reste visible et si une nouvelle demande crée un doublon. Si le statut est ambigu, consignez l’incertitude et suspendez les essais avec écriture jusqu’à ce que vous puissiez établir un mode de reprise fiable.

Ne confondez pas les couches suivantes dans votre compte rendu :

  • le fil de discussion dans l’outil de collaboration ;
  • l’identité GitHub qui autorise ou déclenche le travail ;
  • le dépôt et ses autorisations ;
  • la session ou le suivi de l’agent cloud ;
  • l’issue ou la demande de fusion effectivement créée ;
  • l’environnement cloud où le code est exécuté.

Cette séparation est utile lors d’un incident : une conversation peut être disponible alors que la tâche est terminée, et un résultat peut exister dans GitHub même si la personne qui revient dans le fil ne retrouve pas facilement le suivi initial.

Décider avec des preuves : élargir, limiter ou suspendre

À la fin du pilote, choisissez une décision selon les preuves disponibles, plutôt que selon le seul nombre de tâches achevées. Utilisez les branches de décision suivantes :

  • Si l’offre, la préversion et les politiques sont vérifiées, que l’identité et le dépôt restent explicites et que les liens entre discussion et livrable sont contrôlables, élargissez progressivement à des dépôts non critiques, tout en conservant la revue et les tests.
  • Si l’accès fonctionne mais que les valeurs par défaut ou le contenu réellement repris restent ambigus, limitez l’essai aux tâches avec dépôt explicitement fourni et à des discussions non sensibles.
  • Si une tâche aboutit dans le mauvais dépôt, si son identité d’exécution est indéterminée ou si une relance peut créer un second changement non repéré, suspendez les écritures et gardez l’intégration en observation.
  • Si la fonction annoncée n’est pas visible dans votre locataire ou si l’éligibilité diverge entre documentation et paramètres réels, n’élargissez pas l’accès en attendant une clarification officielle.

Les tableaux suivants servent à formaliser la décision : ils ne décrivent pas des résultats de tests effectués par MacPull. Les appréciations sont des critères de lecture pour votre pilote, à remplir avec vos propres observations.

Axe d’acceptation Preuve à conserver Acceptable pour poursuivre Motif de restriction
Éligibilité Offre, état de préversion, paramètres visibles Compte autorisé et capacité disponible dans le locataire Fonction absente ou statut d’accès indéterminé
Identité et accès Compte d’exécution, politique, dépôts autorisés Identité et périmètre cohérents avec l’essai Compte inattendu ou périmètre trop large
Contexte Fil source et éléments repris par l’agent Besoin et contraintes pertinents retrouvés Pièce jointe ou message décisif non vérifiable
Traçabilité Liens discussion, issue ou demande de fusion, dépôt Chaîne de liens cohérente Livrable orphelin ou dépôt incorrect
Reprise État initial, relance éventuelle, livrables obtenus Pas de doublon non maîtrisé et état compréhensible Tâche encore active ou résultat ambigu
Situation constatée Décision Contrôle à maintenir
Tâche réversible, dépôt explicite, livrable relié au fil Poursuivre à périmètre limité Revue du diff et tests du dépôt
Valeurs par défaut difficiles à interpréter Restreindre aux tâches explicitement paramétrées Contrôle du compte, du dépôt et de la branche
Contexte de discussion impossible à vérifier Reporter les fils contenant des données sensibles Essais avec contenu expurgé et représentatif
Statut de reprise ou doublon incertain Suspendre les tâches avec écriture Inspection de la session et des livrables avant relance
Besoin de construction Xcode Ajouter une validation distincte sur macOS Résultat de construction dans l’environnement cible

Les notes de votre pilote peuvent rester simples, mais elles doivent distinguer « observé », « annoncé » et « non vérifié ». Cette séparation empêche de présenter une capacité de préversion comme une propriété garantie, et facilite une nouvelle décision si la documentation officielle ou l’état du locataire évolue.

Usage visé Environnement nécessaire Ce que l’essai prouve Ce qu’il ne prouve pas
Lancer un travail depuis Slack ou Teams Intégration, compte autorisé, dépôt accessible et environnement cloud Le flux de demande est utilisable dans le périmètre observé La conformité de tout code produit
Créer une issue ou une demande de fusion Dépôt cible, droits et protections de branche Le livrable existe et peut être relié à sa source La qualité suffisante pour fusionner
Construire un projet dépendant de Xcode Environnement macOS avec la chaîne de construction requise Le projet construit dans les conditions testées Le comportement de toutes les configurations de livraison

Une intégration Slack ou Teams n’exige pas en soi un Mac : l’agent cloud peut servir à des tâches de dépôt sans valider pour autant une construction propre à Apple. Si votre livraison dépend de Xcode, vérifiez le résultat dans un environnement macOS réel et conforme à votre chaîne de construction ; la documentation Apple sur le système de construction de Xcode décrit les éléments du processus à prendre en compte. Pour distinguer l’exécution cloud d’un environnement Mac, vous pouvez aussi consulter notre guide sur le choix d’un environnement d’exécution Copilot et d’un Mac cloud, puis notre article sur les limites de validation iOS et Xcode sans Mac.

Pour une équipe qui ne fait que créer des issues ou préparer des changements sans dépendance Apple, l’environnement cloud et l’exécution locale peuvent être plus adaptés : louer un Mac n’apporte pas de validation utile si votre chaîne ne nécessite pas macOS. En revanche, si vous devez reproduire une construction Xcode, vérifier un comportement iOS ou maintenir temporairement une machine de test, un environnement Mac loué évite l’achat d’un poste dédié à un essai ponctuel ; examinez les options MacPull et leur tarification en fonction de la durée, des outils requis et de vos contraintes d’accès. Ne transférez pas de code sensible avant d’avoir vérifié les conditions de votre organisation, et ne remplacez pas une validation déterministe par la seule présence d’un agent dans votre fil de discussion.

Lectures complémentaires