Présentation

Le volet My work de l’application GitHub Copilot regroupe en un seul endroit les pull requests et les issues liées aux dépôts que l’utilisateur a déjà exploités via l’app. Dès l’ouverture, quatre onglets sont affichés : All, Active, Review requests et Done. Le premier liste l’ensemble des tickets, tandis que les trois suivants filtrent respectivement les éléments ouverts, les revues demandées et les éléments fermés. Cette segmentation repose sur les métadonnées GitHub (state, review_requested) et ne s’étend qu’aux dépôts « touchés » dans le cadre de sessions Copilot, limitant ainsi la visibilité aux projets réellement actifs.

Fonctionnement du panneau My work

Le filtrage par défaut s’appuie sur le champ repo du contexte Copilot ; lorsqu’un dépôt n’est pas encore présent, il suffit de lancer une session ciblée pour qu’il apparaisse dans All. La logique de mise à jour est asynchrone : chaque création ou clôture d’un ticket déclenche une requête GraphQL qui rafraîchit les listes sans rechargement complet de l’interface. Cette approche minimise la latence perçue, mais elle dépend de la capacité du serveur GitHub à répondre en moins de 200 ms, seuil souvent observé dans les tests internes.

Personnalisation et filtres avancés

Outre les vues intégrées, l’utilisateur peut créer des vues personnalisées via le bouton « New view ». Le système accepte deux syntaxes : une saisie manuelle utilisant la même grammaire que les recherches GitHub (exemple ci‑dessous) et une interface graphique qui génère automatiquement le même texte. Le filtre suivant illustre la syntaxe angle‑bracket :

is:issue assignee:me

Cette expression est traduite en paramètres d’API REST : type=issue&assignee=current_user. La persistance du filtre repose sur le stockage local du navigateur, ce qui signifie que la vue disparaît si l’utilisateur change de machine ou vide le cache. En mode table, l’utilisateur peut sélectionner les colonnes affichées, les réordonner et les redimensionner. Ces réglages sont appliqués via CSS Grid et sauvegardés dans le même stockage local, offrant une expérience « WYSIWYG » sans rechargement serveur.

Gestion des sessions et portée des dépôts

Le point d’intégration majeur réside dans le lancement d’une session d’agent directement depuis une issue ou un pull request. En sélectionnant l’item et en invoquant « Hey, let’s get to work on this », Copilot crée un contexte d’exécution où le texte de l’issue devient le prompt initial du modèle. Le mécanisme supporte la sélection multiple : plusieurs tickets peuvent être groupés en une seule session, ce qui entraîne la création d’un batch context où chaque description est concaténée avec un séparateur ---. Cette agrégation augmente la longueur du prompt, potentiellement jusqu’à la limite de 128 k tokens du modèle, ce qui impose une troncature automatique des tickets les plus anciens. Le filtre de dépôt, affiché en haut du volet, reste par défaut sur All Repositories mais reste limité aux dépôts déjà « touchés ». Cette contrainte évite des appels API massifs, mais empêche l’accès à des projets inactifs sans créer d’abord une session dédiée. Enfin, le bouton New issue crée instantanément une issue via l’API POST /repos/:owner/:repo/issues, puis ouvre une session liée, illustrant la boucle complète de création‑gestion‑exécution proposée par l’app.