GitHub Copilot per la riga di comando

Completato

GitHub Copilot non è solo per gli ambienti di sviluppo integrato( IDE), è ora un potente assistente nel terminale. L'interfaccia della riga di comando di GitHub Copilot porta Copilot direttamente nella riga di comando, in cui può spiegare i comandi, suggerire comandi della shell dal linguaggio naturale e aiutare a lavorare in modo sicuro e interattivo con i file e i progetti.

L'interfaccia della riga di comando di Copilot usa l'autenticazione di GitHub e viene eseguita in modo indipendente dall'interfaccia della riga di comando di GitHub, anche se usa le credenziali esistenti. Se sei nuovo alla riga di comando o che tu sia uno sviluppatore esperto, la CLI di Copilot riduce il margine d'incertezza e accelera i flussi di lavoro di tutti i giorni.

Questa unità illustra:

  • Installazione ed esecuzione di GitHub Copilot CLI
  • Sessioni interattive nel terminale
  • Comandi slash e input in linguaggio naturale
  • Configurazione e opzioni

Installazione e avvio della CLI di Copilot

Eseguire l'installazione tramite Homebrew in macOS e Linux:

brew install copilot-cli

In alternativa, usare lo script di installazione ufficiale:

curl -fsSL https://gh.io/copilot-install | bash

Avvia il CLI di Copilot in modalità interattiva:

copilot

Viene visualizzato un banner di benvenuto e un prompt:

Screenshot del banner della modalità interattiva Copilot.

Al primo avvio, Copilot chiede se considerare attendibili i file nella cartella corrente. Copilot può leggere, modificare o eseguire file in questa directory durante la sessione, quindi procedere solo nei percorsi attendibili.

Screenshot della directory specifica interattiva di Copilot.

È possibile usare il @ per selezionare un file specifico che si desidera utilizzare come contesto.

Screenshot della selezione di un file in modalità interattiva Copilot.

All'interno di una sessione interattiva è possibile:

  • Usare i comandi slash (/command) per controllare la sessione e configurare l'interfaccia della riga di comando di Copilot.
  • Digitare prompt in linguaggio naturale per spiegare, suggerire o rivedere comandi.

Per richieste singole senza entrare in modalità di interazione completa:

copilot -i "explain brew install git"
copilot -i "suggest find large files and delete them"

Comandi slash comuni

I comandi Slash sono comandi espliciti di controllo sessione. Ecco i più comuni:

Comando Slash Description
/help Mostra comandi e opzioni disponibili
/explain <command> Chiedere a Copilot di spiegare qualsiasi comando shell
/suggest <task> Chiedere a Copilot di suggerire un comando shell per un'attività
/revise Rivedere l'ultimo suggerimento in base alle istruzioni
/feedback Inviare commenti e suggerimenti su una risposta o un suggerimento
/exit Uscire dalla modalità interattiva
/model <model> Selezionare il modello di intelligenza artificiale da usare
/theme [auto|dark|light] Modificare il tema del terminale
/skills Gestire le competenze per capacità migliorate
/mcp Gestire la configurazione del server MCP
/list-dirs Mostra directory consentite per le operazioni di file
/reset-allowed-tools Reimpostare l'elenco degli strumenti consentiti

I comandi Slash non possono essere sostituiti con prompt del linguaggio naturale. Sono l'unico modo per controllare le impostazioni e la configurazione della sessione.

Flussi di lavoro di esempio

1. Spiegare un comando

> Explain what `git reset --hard HEAD` does

Copilot fornirà una spiegazione dettagliata.

Screenshot dell'interfaccia della riga di comando di Copilot che illustra un comando in modalità interattiva.

2. Suggerire un comando

> Find and delete all .log files in my home folder

Copilot genera un suggerimento di comando e chiede di eseguirlo se si è soddisfatti dei suggerimenti.

Screenshot dell'interfaccia della riga di comando di Copilot che suggerisce un comando in modalità interattiva.

3. Rivedere un suggerimento

Dopo aver ricevuto un suggerimento, è possibile digitare un prompt di completamento per rivedere il comando suggerito:

> Include only files modified in the last 7 days

Screenshot dell'interfaccia della riga di comando di Copilot che migliora un suggerimento in base alla richiesta di completamento.

4. Fornire commenti e suggerimenti

Dopo una risposta o un suggerimento:

> /feedback

Screenshot dell'uso del comando slash /feedack in modalità interattiva dell'interfaccia della riga di comando di Copilot.

Copilot chiede di scegliere il tipo di feedback che si vuole inviare, quindi passare al modulo appropriato per completare il feedback.

5. Uscire dalla modalità interattiva

> /exit

Opzioni di configurazione

Nell'interfaccia della riga di comando di Copilot la configurazione viene gestita tramite:

  1. Comandi slash in modalità interattiva

    • /model scegliere il modello di intelligenza artificiale
    • /theme modificare il tema del terminale
    • /skills gestire funzionalità avanzate
    • /reset-allowed-tools reimpostare gli strumenti
    • /list-dirs visualizzare le directory consentite
    • /mcp Impostazioni del server MCP
  2. Configurazione dell'interfaccia della riga di comando di Copilot (modalità non interattiva)

La configurazione dell'interfaccia a riga di comando di Copilot è gestita tramite richieste di autorizzazione, flag della riga di comando e file di configurazione locali. Queste impostazioni controllano ciò che Copilot può accedere e fare per conto dell'utente.

Le opzioni di configurazione comuni includono:

  • Directory attendibili: controllare i punti in cui Copilot può leggere, modificare ed eseguire file.
  • Autorizzazioni degli strumenti: consente o impedisce a Copilot di eseguire comandi della shell o di modificare file usando flag come --allow-tool o --deny-tool.
  • Autorizzazioni di percorso: controllare le directory a cui è possibile accedere Copilot.
  • Autorizzazioni URL: consente di gestire i domini esterni a cui Copilot può connettersi.

Per opzioni di configurazione complete, vedere la documentazione ufficiale dell'interfaccia della riga di comando di GitHub Copilot.

Ambienti di esecuzione in modalità sandbox

GitHub Copilot'interfaccia della riga di comando supporta ambienti di esecuzione in modalità sandbox che consentono di proteggere il sistema, consentendo al tempo Copilot di eseguire attività per conto dell'utente.

Il sandboxing isola i comandi, le operazioni di file e altre attività dall'ambiente di sviluppo primario. A seconda del flusso di lavoro, è possibile scegliere tra sandboxing locale e sandboxing cloud.

Isolamento locale

Il sandboxing locale consente Copilot di eseguire comandi all'interno di un ambiente con restrizioni nel computer.

Se abilitata, l'accesso di Copilot al file system, alla connettività di rete e alle funzionalità del sistema operativo è limitato, consentendo di ridurre il rischio di modifiche impreviste, consentendo comunque di trarre vantaggio dai flussi di lavoro assistito dall'agente.

Per abilitare la sandbox locale durante una sessione interattiva:

/sandbox enable

Dopo aver abilitato la sandbox, i comandi eseguiti da Copilot vengono eseguiti nell'ambiente in modalità sandbox anziché direttamente nel sistema host.

Vantaggi del sandboxing locale

Benefit Description
Maggiore sicurezza Limita l'accesso alle risorse di sistema sensibili.
Sperimentazione più sicura Consente di testare flussi di lavoro basati su agenti con un rischio ridotto.
Esecuzione locale Usa le risorse del computer senza richiedere l'infrastruttura cloud.
Maggiore controllo Fornisce misure di sicurezza aggiuntive durante l'uso di agenti autonomi.

Sandboxing nel cloud

Il sandboxing cloud consente di eseguire Copilot sessioni dell'interfaccia della riga di comando all'interno di ambienti Linux completamente isolati ospitati da GitHub.

A differenza del sandboxing locale, le sessioni sandbox cloud vengono eseguite interamente nell'infrastruttura ospitata GitHub e rimangono separate dal computer locale e da altre sessioni sandbox.

Il sandboxing cloud si basa su sandbox App contenitore di Azure, con GitHub che fornisce l'autenticazione, la governance, l'imposizione dei criteri e l'integrazione della fatturazione.

Per avviare una sessione sandbox nel cloud:

copilot --cloud

Dopo l'avvio, Copilot può eseguire comandi, modificare file, eseguire test ed eseguire attività di sviluppo all'interno dell'ambiente cloud anziché nel dispositivo locale.

Vantaggi del sandboxing cloud

Benefit Description
Isolamento sicuro I carichi di lavoro vengono eseguiti separatamente dal computer locale.
Flessibilità del dispositivo Riprendere le sessioni da dispositivi diversi.
Scarico delle risorse Usa risorse cloud anziché CPU e memoria locali.
Esecuzione parallela Eseguire più attività guidate dall'agente contemporaneamente.

Continuare le sessioni tra dispositivi

Poiché le sessioni sandbox cloud vengono eseguite nell'infrastruttura ospitata GitHub, il lavoro non è associato a un computer specifico.

In questo modo è possibile:

  • Avviare una sessione in un dispositivo
  • Riprendere la stessa sessione da un altro dispositivo
  • Continuare a lavorare senza trasferire manualmente i file o ricreare gli ambienti

Questa flessibilità è particolarmente utile per gli sviluppatori che lavorano in più computer o posizioni.

Ciclo di vita della sessione di sandbox cloud

Le sessioni sandbox cloud possono esistere in tre stati:

State Description
Attivo La sessione è in esecuzione e disponibile per l'interazione.
Arrestato La sessione viene sospesa, ma il relativo stato viene mantenuto per un uso futuro.
Eliminato La sessione e tutto lo stato salvato vengono rimossi definitivamente.

Quando una sessione viene arrestata, GitHub salva uno snapshot dell'ambiente, inclusi file, variabili di ambiente e lavoro in corso. Riprendere la sessione ripristina lo stato salvato, così puoi continuare da dove avevi interrotto.

Autenticazione e accesso

Le sandbox nel cloud usano lo stesso modello di autenticazione di GitHub Copilot CLI.

Se è possibile eseguire l'autenticazione per GitHub Copilot interfaccia della riga di comando e avere accesso a GitHub Copilot, non è necessaria alcuna configurazione aggiuntiva del provider di servizi cloud.

Non è necessario:

  • Gestire chiavi API
  • Configurare l'infrastruttura cloud
  • Eseguire il provisioning delle macchine virtuali
  • Gestire gli ambienti contenitore

Annotazioni

Gli amministratori dell'organizzazione o dell'organizzazione devono abilitare i criteri di accesso a Cloud Sandbox prima che i membri possano usare ambienti sandbox cloud.

Sandboxing locale e cloud

Feature Sandbox locale Cloud Sandbox
Ubicazione di esecuzione Macchina locale ambiente ospitato da GitHub
Utilizzo delle risorse Risorse locali Risorse cloud
Livello di isolamento Ambiente locale con restrizioni Ambiente cloud completamente isolato
Indipendenza del dispositivo No
Carichi di lavoro paralleli Limitato dall'hardware locale Scalabilità semplice

Quando usare un ambiente sandbox?

È consigliabile usare il sandboxing quando:

  • Uso di repository non familiari
  • Test dei comandi generati dall'agente
  • Esecuzione di flussi di lavoro autonomi
  • Esecuzione di operazioni potenzialmente distruttive
  • Lavorare su più dispositivi
  • Delega delle attività di sviluppo ad alta intensità di calcolo

Il sandboxing offre un ulteriore livello di sicurezza e flessibilità, consentendo di sfruttare in modo sicuro le funzionalità dell'agente dell'interfaccia della riga di comando di GitHub Copilot.

Suggerimenti per un uso efficace dell'interfaccia della riga di comando di Copilot

  • Usare la modalità interattiva (copilot) per le attività esplorative.
  • Usa la modalità one-shot (copilot -i) per risposte rapide.
  • L'input in linguaggio naturale funziona: non sono sempre necessari comandi barra.
  • Esaminare sempre i comandi prima dell'esecuzione.
  • Combinare l'interfaccia della riga di comando di Copilot con l'interfaccia della riga di comando di GitHub (gh) per la gestione dei problemi e del repository.
  • Usa i comandi slash quando desideri azioni o feedback strutturati.