Personalizzazione, estensione e convalida dell'agente di codifica Copilot
L'agente di codifica Di GitHub Copilot viene eseguito all'interno di un ambiente GitHub Actions sicuro e temporaneo. Con alcuni passaggi di configurazione è possibile pre-usare questo ambiente per migliorare l'affidabilità e la velocità, estendere le funzionalità dell'agente con strumenti esterni tramite il protocollo MCP (Model Context Protocol) e applicare le procedure consigliate per testare e convalidare l'output dell'agente prima dell'unione.
Al termine di questa unità, si sarà in grado di:
- Preinstallare strumenti, dipendenze e segreti per personalizzare l'ambiente di sviluppo dell'agente.
- Estendere le funzionalità dell'agente usando il protocollo MCP (Model Context Protocol).
- Testare e convalidare l'output dell'agente in modo efficace prima di unire le modifiche.
Preconfigurazione dell'ambiente di sviluppo
Preinstallare strumenti e dipendenze concopilot-setup-steps.yml
Crea .github/workflows/copilot-setup-steps.yml nel ramo predefinito del repository. Il flusso di lavoro deve definire un singolo processo denominato copilot-setup-steps. Includere i passaggi necessari per installare le dipendenze o configurare gli strumenti.
Esempio per TypeScript:
name: "Copilot Setup Steps"
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
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
Chiavi di configurazione consentite per il copilot-setup-steps processo: steps, permissions, runs-on, container, services, snapshot, timeout-minutes (≤ 59). Qualsiasi profondità di recupero di actions/checkout viene sovrascritta per consentire il ripristino dello stato precedente sicuro. Il flusso di lavoro di installazione viene eseguito autonomo (in modo da poterlo convalidare) e quindi automaticamente prima dell'avvio dell'agente.
Strumenti di esecuzione di dimensioni maggiori ospitati da GitHub
- Aggiungere prima gli strumenti di esecuzione di dimensioni maggiori
- In
copilot-setup-steps.yml, impostareruns-onsull'etichetta/gruppo (ad esempio,ubuntu-4-core). - Sono supportati solo gli strumenti di esecuzione Ubuntu x64; Gli strumenti di esecuzione self-hosted non sono supportati.
Git LFS
Se si usa Git Large File Storage, abilitarlo nei passaggi di installazione:
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v5
with:
lfs: true
Personalizzazione del firewall
L'accesso a Internet predefinito è limitato a ridurre il rischio di esfiltrazione. Se necessario, è possibile personalizzare o disabilitare il firewall per ogni criterio dell'organizzazione.
Estendere con il protocollo MCP (Model Context Protocol)
MCP è uno standard aperto per la connessione di VM a strumenti e dati. L'agente può usare gli strumenti forniti dai server MCP locali o remoti per espandere le relative funzionalità.
Nota: l'agente di codifica Copilot supporta solo gli strumenti MCP (non risorse o richieste). I server MCP remoti che richiedono OAuth non sono supportati.
Server MCP predefiniti
- Server MCP GitHub: problemi di accesso, richieste pull e dati di GitHub con un token di sola lettura con ambito limitato al repository corrente per impostazione predefinita (è possibile personalizzare il token).
- Playwright MCP Server: Leggere, interagire con e acquisire screenshot delle pagine Web accessibili all'interno dell'ambiente dell'agente (localhost/127.0.0.1).
Configurazione del repository
Gli amministratori possono dichiarare i server MCP tramite una configurazione JSON nel repository. Dopo la configurazione, l'agente utilizza autonomamente gli strumenti disponibili senza la necessità di prompt di approvazione per ogni utilizzo. Consulta la guida all'estensione dell'agente di codifica di GitHub Copilot con MCP.
Procedure consigliate
- Esaminare i server MCP di terze parti per verificare le implicazioni relative alla qualità delle prestazioni e dell'output.
- Preferisce gli strumenti di lettura; se esistono strumenti di scrittura, consentire solo ciò che è necessario.
- Convalidare attentamente la configurazione MCP prima del salvataggio.
Test e convalida dell'output dell'agente
Sei responsabile della qualità e della sicurezza.
- Eseguire CI (test, linter, analisi) in ogni richiesta pull dell'agente; questi controlli non verranno eseguiti finché non si fa clic su Approva ed esegui i flussi di lavoro.
- Esaminare manualmente le aree ad alto impatto o sensibili.
- Chiedere all'agente di generare test (ad esempio, "Aggiungere test unitari Jest per tutte le funzioni nello stile del repository seguente in
src/utils/"). La generazione di test su più file usa le unità richieste Premium. - Applicare i set di regole in modo che le richieste pull dell'agente debbano superare test, analisi e linting prima del merge.
- Etichettare le richieste pull dell'agente (ad esempio
agent-refactor, agent-tests) per monitorare, valutare e annullare, se necessario. - Eseguire l'iterazione delle istruzioni in .github/copilot-instructions.md quando vengono visualizzati errori ripetuti.
- Eseguire rapidamente il ripristino, se necessario, e richiedere le nuove modifiche all'agente.
Uso intenzionale delle PRUs per la convalida
Sfruttare le UR per attività di convalida più approfondite, ad esempio l'espansione della copertura dei test, i controlli nelle directory o le analisi di aree rischiose. I controlli leggeri utilizzano un minor numero di PRU, quindi applicarli intenzionalmente per massimizzare il valore.
Con la configurazione, le estensioni e le procedure di convalida applicate, il passaggio finale consiste nell'usare l'agente per definire correttamente l'ambito delle attività, proteggere gli ambienti e rivedere continuamente i risultati.