Copilot Spaces
Utilisez Copilot Spaces pour intégrer un contexte curé et spécifique à un projet dans vos conversations. Un Space est une collection partagée de repositories, de fichiers, de documentation et d'instructions qui ancre les réponses de Copilot dans le code et les connaissances réels de votre équipe.
Outils disponibles
Outils MCP (lecture seule)
| Outil | Objectif |
|---|---|
mcp__github__list_copilot_spaces |
Lister tous les espaces accessibles à l'utilisateur actuel |
mcp__github__get_copilot_space |
Charger le contexte complet d'un espace par propriétaire et nom |
REST API via gh api (CRUD complet)
L'API REST Spaces supporte la création, la mise à jour, la suppression d'espaces et la gestion des collaborateurs. Le serveur MCP n'expose que les opérations de lecture, donc utilisez gh api pour les écritures.
Espaces utilisateur :
| Méthode | Endpoint | Objectif |
|---|---|---|
POST |
/users/{username}/copilot-spaces |
Créer un espace |
GET |
/users/{username}/copilot-spaces |
Lister les espaces |
GET |
/users/{username}/copilot-spaces/{number} |
Obtenir un espace |
PUT |
/users/{username}/copilot-spaces/{number} |
Mettre à jour un espace |
DELETE |
/users/{username}/copilot-spaces/{number} |
Supprimer un espace |
Espaces d'organisation : Même modèle sous /orgs/{org}/copilot-spaces/...
Collaborateurs : Ajouter, lister, mettre à jour et supprimer des collaborateurs sur .../collaborators
Exigences de portée : Le PAT nécessite read:user pour les lectures, user pour les écritures. Ajoutez avec gh auth refresh -h github.com -s user.
Note : Cette API est fonctionnelle mais pas encore dans la documentation publique de l'API REST. Elle peut nécessiter le flag de fonctionnalité copilot_spaces_api.
Quand utiliser les Spaces
- L'utilisateur mentionne « Copilot space » ou demande de « charger un espace »
- L'utilisateur souhaite des réponses ancrées dans une documentation, un code ou des standards de projet spécifiques
- L'utilisateur demande « quels espaces sont disponibles ? » ou « trouver un espace pour X »
- L'utilisateur a besoin d'un contexte d'onboarding, de documentation d'architecture ou de conseils spécifiques à l'équipe
- L'utilisateur souhaite suivre un workflow structuré défini dans un Space (modèles, listes de contrôle, processus multi-étapes)
Workflow
1. Découvrir les Spaces
Quand un utilisateur demande quels espaces sont disponibles ou que vous devez trouver le bon espace :
Appelez mcp__github__list_copilot_spaces
Cela retourne tous les espaces auxquels l'utilisateur peut accéder, chacun avec un name et owner_login. Présentez les correspondances pertinentes à l'utilisateur.
Pour filtrer les espaces d'un utilisateur spécifique, comparez owner_login au nom d'utilisateur (par exemple, « montrez-moi mes espaces »).
2. Charger un Space
Quand un utilisateur nomme un espace spécifique ou que vous avez identifié le bon :
Appelez mcp__github__get_copilot_space avec :
owner: "org-or-user" (le owner_login de la liste)
name: "Space Name" (nom exact du space, sensible à la casse)
Cela retourne le contenu complet de l'espace : documentation jointe, contexte de code, instructions personnalisées et tout autre matériel curé. Utilisez ce contexte pour informer vos réponses.
3. Suivre les indices
Le contenu d'un space référence souvent des ressources externes : problèmes GitHub, tableaux de bord, repos, discussions ou autres outils. Récupérez proactivement ces ressources en utilisant d'autres outils MCP pour rassembler un contexte complet. Par exemple :
- Un space référence un problème de suivi d'initiative. Utilisez
issue_readpour obtenir les derniers commentaires. - Un space pointe vers un tableau de projet. Utilisez les outils de projet pour vérifier le statut actuel.
- Un space mentionne un plan directeur du repo. Utilisez
get_file_contentspour le lire.
4. Répondre ou exécuter
Une fois chargé, utilisez le contenu du space en fonction de ce qu'il contient :
Si le space contient du matériel de référence (docs, code, standards) :
- Répondez à des questions sur l'architecture, les motifs ou les standards du projet
- Générez du code qui suit les conventions de l'équipe
- Déboguez les problèmes en utilisant la connaissance spécifique au projet
Si le space contient des instructions de workflow (modèles, processus étape par étape) :
- Suivez le workflow tel que défini, étape par étape
- Rassemblez les données des sources que le workflow spécifie
- Produisez une sortie au format que le workflow définit
- Montrez la progression après chaque étape pour que l'utilisateur puisse orienter
5. Gérer les Spaces (via gh api)
Quand un utilisateur souhaite créer, mettre à jour ou supprimer un espace, utilisez gh api. Trouvez d'abord le numéro de space à partir de l'endpoint de liste.
Mettre à jour les instructions d'un space :
gh api users/{username}/copilot-spaces/{number} \
-X PUT \
-f general_instructions="Nouvelles instructions ici"
Mettre à jour le nom, la description ou les instructions ensemble :
gh api users/{username}/copilot-spaces/{number} \
-X PUT \
-f name="Nom mis à jour" \
-f description="Description mise à jour" \
-f general_instructions="Instructions mises à jour"
Créer un nouvel espace :
gh api users/{username}/copilot-spaces \
-X POST \
-f name="Mon nouvel espace" \
-f general_instructions="Aidez-moi avec..." \
-f visibility="private"
Joindre des ressources (remplace la liste entière de ressources) :
{
"resources_attributes": [
{ "resource_type": "free_text", "metadata": { "name": "Notes", "text": "Contenu ici" } },
{ "resource_type": "github_issue", "metadata": { "repository_id": 12345, "number": 42 } },
{ "resource_type": "github_file", "metadata": { "repository_id": 12345, "file_path": "docs/guide.md" } }
]
}
Supprimer un espace :
gh api users/{username}/copilot-spaces/{number} -X DELETE
Champs modifiables : name, description, general_instructions, icon_type, icon_color, visibility ("private"/"public"), base_role ("no_access"/"reader"), resources_attributes
Exemples
Exemple 1 : L'utilisateur demande un Space
Utilisateur : « Charger le copilot space Accessibilité »
Action :
- Appelez
mcp__github__get_copilot_spaceavec owner"github", name"Accessibility" - Utilisez le contexte retourné pour répondre aux questions sur les standards d'accessibilité, les grades MAS, les processus de conformité, etc.
Exemple 2 : L'utilisateur veut trouver des Spaces
Utilisateur : « Quels copilot spaces sont disponibles pour notre équipe ? »
Action :
- Appelez
mcp__github__list_copilot_spaces - Filtrez/présentez les espaces pertinents pour l'organisation ou les intérêts de l'utilisateur
- Proposez de charger tout espace qui l'intéresse
Exemple 3 : Question ancrée dans le contexte
Utilisateur : « En utilisant le space sécurité, quelle est notre politique sur la détection de secrets ? »
Action :
- Appelez
mcp__github__get_copilot_spaceavec le propriétaire et le nom appropriés - Trouvez la politique pertinente dans le contenu du space
- Répondez basé sur la documentation interne réelle
Exemple 4 : Space comme moteur de workflow
Utilisateur : « Écrivez ma mise à jour hebdomadaire en utilisant le space PM Weekly Updates »
Action :
- Appelez
mcp__github__get_copilot_spacepour charger le space. Il contient un format de modèle et des instructions étape par étape. - Suivez le workflow du space : extrayez les données des problèmes d'initiative joints, rassemblez les métriques, rédigez chaque section.
- Récupérez les ressources externes référencées par le space (problèmes de suivi, tableaux de bord) en utilisant d'autres outils MCP.
- Montrez le brouillon après chaque section pour que l'utilisateur puisse examiner et combler les lacunes.
- Produisez le résultat final au format que le space définit.
Exemple 5 : Mettre à jour les instructions du Space programmatiquement
Utilisateur : « Mettre à jour mon space PM Weekly Updates pour inclure une nouvelle directive d'écriture »
Action :
- Appelez
mcp__github__list_copilot_spaceset trouvez le numéro du space (par exemple, 19). - Appelez
mcp__github__get_copilot_spacepour lire les instructions actuelles. - Modifiez le texte des instructions comme demandé.
- Poussez la mise à jour :
gh api users/labudis/copilot-spaces/19 -X PUT -f general_instructions="instructions mises à jour..."
Conseils
- Les noms des Spaces sont sensibles à la casse. Utilisez le nom exact de
list_copilot_spaces. - Les Spaces peuvent être possédés par des utilisateurs ou des organisations. Fournissez toujours
owneretname. - Le contenu d'un Space peut être volumineux (20 KB+). S'il est retourné comme fichier temporaire, utilisez grep ou view_range pour trouver les sections pertinentes plutôt que de tout lire à la fois.
- Si un space n'est pas trouvé, suggérez de lister les espaces disponibles pour trouver le bon nom.
- Les Spaces se mettent à jour automatiquement quand les repos sous-jacents changent, donc le contexte est toujours actuel.
- Certains spaces contiennent des instructions personnalisées qui doivent guider votre comportement (standards de codage, motifs préférés, workflows). Traitez-les comme des directives, pas comme des suggestions.
- Les opérations d'écriture (
gh apipour créer/mettre à jour/supprimer) nécessitent la portée PATuser. Si vous recevez un 404 sur les opérations d'écriture, exécutezgh auth refresh -h github.com -s user. - Les mises à jour de ressources remplacent le tableau entier. Pour ajouter une ressource, incluez toutes les ressources existantes plus la nouvelle. Pour en supprimer une, incluez
{ "id": 123, "_destroy": true }dans le tableau.