GitHub Copilot in contesti reali
Setup, configurazione e gestione di GitHub Copilot nell'ambiente aziendale Blulink. Licenze, policy, privacy, Copilot Chat, code completion, inline suggestions, integrazione con Azure DevOps, Copilot per documentazione. Laboratorio con output riusabili e confronto operativo diretto con Claude Code del modulo 7.
1. Cos'è GitHub Copilot oggi
GitHub Copilot è diventato un prodotto multiforme: non è più solo "autocompletion in editor". Oggi comprende almeno cinque modalità d'uso rilevanti:
- Inline completions — il cuore storico del prodotto, suggerimenti riga-per-riga mentre scrivi.
- Copilot Chat — chat integrata in editor o browser per domande, spiegazioni, generazione di codice più ampia.
- Agent mode — modalità agentica (simile a Claude Code) che pianifica e modifica più file in un task.
- Copilot in GitHub — sul web: review assistita, riepiloghi di PR, Q&A su repo.
- Copilot per linea di comando (CLI) e per applicazioni specifiche (Copilot for Azure, Copilot per Teams, ecc.).
Il vantaggio strategico di Copilot per Blulink è l'integrazione nativa con l'ecosistema Microsoft/GitHub/Azure DevOps: SSO, policy, licensing, audit log si inseriscono nell'amministrazione esistente senza strumenti aggiuntivi.
2. Licenze, policy, privacy
Tier disponibili
| Tier | Target | Note |
|---|---|---|
| Copilot Individual | Sviluppatori singoli | Non adatto a uso aziendale: privo dei controlli di policy. |
| Copilot Business | Team aziendali | SSO, policy, esclusione dell'uso dei dati per training, audit log. |
| Copilot Enterprise | Organizzazioni grandi | Aggiunge knowledge base su repo, Copilot Chat potenziata, integrazione profonda con GitHub Enterprise Cloud. |
Policy chiave da configurare
- Suggestion matching filter — blocca suggerimenti che corrispondono a codice pubblico con licenze problematiche.
- Content exclusions — definisce file o cartelle che Copilot non deve leggere (es. file di configurazione con segreti, cartelle legacy non riconciliate, contenuti di clienti).
- Data retention / training opt-out — nei tier Business/Enterprise i prompt non vengono usati per training. Verificare la configurazione sia on.
- SSO obbligatorio — per evitare che sviluppatori usino account personali.
Considerazioni privacy
I prompt (frammenti di codice + contesto) vengono inviati ai server GitHub/OpenAI per inference. In Copilot Business/Enterprise:
- Non vengono memorizzati oltre il tempo strettamente necessario alla risposta.
- Non vengono usati per training di modelli futuri.
- L'azienda mantiene visibilità via audit log.
3. Setup in ambiente Blulink
Prerequisiti
- Licenza Copilot Business o Enterprise assegnata all'utente GitHub dello sviluppatore.
- VS Code aggiornato (o Visual Studio, JetBrains IDE).
- Estensioni: GitHub Copilot + GitHub Copilot Chat.
- Autenticazione GitHub con SSO aziendale.
Configurazione utente
- Abilitare inline suggestions.
- Attivare Copilot Chat e, se disponibile, agent mode.
- Controllare che proxy/firewall aziendale non blocchi gli endpoint Copilot.
Configurazione di team (repo-level)
Copilot supporta istruzioni personalizzate a livello repo tramite .github/copilot-instructions.md.
È l'equivalente di CLAUDE.md per Copilot: lingua, convenzioni, vincoli di stile.
# .github/copilot-instructions.md
Il progetto è un microservizio .NET 8 di fatturazione B2B per Blulink.
## Lingua e stile
- Documentazione e commenti in italiano.
- Naming: PascalCase per classi e metodi pubblici; _camelCase per field privati.
- Tab = 4 spazi, encoding UTF-8.
## Stack
- .NET 8, EF Core, xUnit, FluentAssertions.
- Niente nuove dipendenze NuGet senza approvazione.
## Regole di test
- Ogni nuova funzione pubblica deve avere test unitari.
- I test coprono casi validi e invalidi (null, empty, edge case).
## Divieti
- Non modificare file in src/Legacy/ (in dismissione).
- Non proporre SQL raw: usare EF Core.
Copilot Chat e agent mode leggono queste istruzioni e le applicano automaticamente.
4. Code completion e inline suggestions
L'uso più frequente e più invisibile: completamento riga per riga. Funziona meglio quando il codice intorno è "parlante": nomi di variabili, commenti, docstring orientano il modello verso il suggerimento giusto.
Pratiche che migliorano i suggerimenti
- Scrivere commenti brevi sopra al punto in cui vuoi un suggerimento ("// calcola l'IVA applicata...").
- Nomi di funzione espliciti (
CalcolaScadenzaFatturaConTolleranza) aiutano più di nomi criptici. - Tenere aperti file correlati: Copilot considera anche gli altri tab aperti come contesto.
Pratiche da evitare
- Accettare tab con Enter meccanicamente. Leggere sempre il suggerimento prima di accettarlo.
- Copiare segreti dal password manager dentro file di codice "solo per un secondo": possono finire nei suggerimenti.
- Usarlo su cartelle escluse da content exclusion: i suggerimenti saranno poveri perché Copilot non ha contesto.
5. Copilot Chat e agent mode
Copilot Chat
Chat integrata nell'editor. Casi d'uso tipici:
- Spiegare un pezzo di codice selezionato.
- Generare un nuovo metodo o classe seguendo una specifica.
- Convertire uno snippet da un framework all'altro.
- Scrivere test per una classe esistente.
- Debug assistito: incolli un errore, chiedi ipotesi.
Slash commands utili
/explain— spiega il codice selezionato./fix— propone un fix per il codice selezionato./tests— genera test per il codice selezionato./doc— genera documentazione./new— crea un nuovo progetto o file partendo da una descrizione.
Agent mode
Modalità più recente, in cui Copilot agisce come un vero agente: pianifica, modifica più file, esegue comandi, itera. Architetturalmente è parente stretto di Claude Code. Funziona bene per:
- Piccole feature cross-file.
- Migrazione di API in un codebase.
- Risoluzione di issue ben descritte.
Come per Claude Code: sempre su branch dedicata, sempre con review del diff, sempre con test.
6. Integrazione con Azure DevOps
Copilot nasce in GitHub, ma dato il contesto Blulink (repo su Azure DevOps), serve chiarezza su cosa è nativo e cosa richiede setup.
Cosa funziona out-of-the-box su repo Azure DevOps
- Inline completions nell'editor.
- Copilot Chat (locale, non collega i work item di Azure DevOps).
- Agent mode sui file del repo locale.
Cosa richiede integrazione manuale
- Lettura di work item Azure DevOps come contesto: richiede copia manuale o uso di MCP/tool custom.
- Apertura automatica di PR: il flusso PR nativo è GitHub; per Azure DevOps si passa dal tool Azure Repos.
- Review assistita a livello PR: su Azure DevOps, strumenti come Copilot for PR non esistono nativamente — si usano approcci alternativi (Claude Code in review mode, oppure review bot custom).
Pattern pratico per Blulink
Usare Copilot come assistente quotidiano in editor (completions, chat, piccoli agent task) e tenere il flusso Azure DevOps (work item → branch → PR → review) come processo "naturale" del team, integrato da Claude Code + MCP per i lavori agent-pesanti (vedi modulo 7).
7. Copilot per la documentazione
Uno dei casi d'uso con il ROI più alto e più sottovalutato.
Commenti e docstring in linea
Copilot genera XML doc (.NET), JSDoc, docstring Python con buona qualità. Workflow: scrivi la firma del metodo, apri il commento, lascia che Copilot proponga il contenuto, rivedi, accetta.
/// <summary>
/// // Copilot completa qui con una descrizione plausibile del metodo
/// </summary>
public bool ValidatePartitaIVA(string partitaIva) { ... }
La qualità dipende molto dal nome del metodo e dal codice che lo circonda. Metodi ben nominati → commenti utili.
Guide utente e testi di supporto
Copilot Chat è efficace per scrivere testi di supporto orientati all'utente finale, se gli si fornisce:
- Il comportamento tecnico del sistema (snippet di codice o descrizione).
- La persona utente (chi legge, con che background).
- Il registro linguistico atteso (italiano formale, evitare gergo tecnico, ecc.).
- Esempi di testi esistenti che rispettano lo stile aziendale.
Release notes
Un pattern utile: selezionare il diff tra due tag, aprire Copilot Chat, chiedere la redazione delle release notes seguendo un template aziendale predefinito. Funziona bene per note tecniche; per note user-facing va sempre rivisto da un umano.
8. Confronto operativo con Claude Code
La domanda pratica che si porrà ogni team: "quando uso Copilot, quando uso Claude Code?". La risposta sincera è: usali insieme, ciascuno dove brilla di più.
| Dimensione | GitHub Copilot | Claude Code |
|---|---|---|
| UX primaria | Editor (VS Code, VS, JetBrains) | Terminale (+ estensioni IDE) |
| Inline completions | ★★★ core strength | — |
| Chat in editor | ★★★ | — |
| Agent mode / task multi-file | ★★ in crescita | ★★★ forte e maturo |
| Gestione esplicita del contesto (CLAUDE.md / copilot-instructions) | ★★ | ★★★ |
| Plan mode / passi approvabili | presente ma meno rituale | ★★★ parte del DNA |
| MCP / tool esterni | parziale | ★★★ nativo |
| Subagents | — | ★★★ |
| Integrazione GitHub | ★★★ nativa | via MCP/CLI |
| Integrazione Azure DevOps | ★ parziale | ★★ via MCP |
| Licensing enterprise nel mondo MS | ★★★ immediato | ★★ via Bedrock/Vertex o Anthropic diretto |
Raccomandazione operativa per Blulink
Dato lo stack Microsoft/.NET/Azure DevOps:
- Default quotidiano → Copilot Business/Enterprise come layer di produttività continua: completion, chat, agent per task piccoli-medi. È il "pavimento" su cui lavorano tutti.
- Task complessi → Claude Code per refactoring, feature development cross-file, debug di bug profondi, gestione esplicita del contesto con CLAUDE.md, uso intensivo di MCP.
- Layer operazionale → OpenClaw (modulo 6) per tutto ciò che sta fuori dall'IDE.
Questi tre strumenti non competono: si complementano. Un'organizzazione matura li userà tutti, ciascuno per quello in cui è più forte.
9. Laboratorio pratico
Lab 1 — Setup completo
Ogni partecipante installa e configura Copilot nel proprio VS Code, verifica SSO, prova completions, chat, agent mode su un repo Blulink.
Lab 2 — copilot-instructions.md
Scrittura del file di istruzioni custom per uno dei propri repo, test di efficacia confrontando suggerimenti prima/dopo.
Lab 3 — Generazione di test xUnit
Data una classe di dominio Blulink, generare i test con Copilot Chat e valutare: copertura, leggibilità, eventuali bug introdotti.
Lab 4 — Documentazione di un modulo
Usare Copilot per: (a) aggiungere XML doc a metodi pubblici di un modulo esistente; (b) generare una sezione di guida utente in italiano su una feature reale.
Lab 5 — Confronto head-to-head
Stesso task di refactoring: una volta con Copilot agent mode, una volta con Claude Code. Valutazione oggettiva (test verdi, qualità del diff, tempo speso) e soggettiva (esperienza d'uso). L'output è un piccolo report interno che alimenta la policy di adozione.
Risorse di approfondimento
- GitHub Copilot — documentazione ufficiale
- Custom instructions for Copilot · come configurare
copilot-instructions.md. - Copilot best practices nel blog GitHub
- Policy management per Copilot Business/Enterprise
- Copilot in Visual Studio — installazione
- Azure Repos docs · il contesto in cui si svolge il workflow Blulink.
- Feature page GitHub Copilot · per aggiornamenti sui prodotti.