Assegnazione, rilevamento e risoluzione dei problemi delle attività dell'agente di codifica Copilot
L'agente di codifica di GitHub Copilot funge da compagno di squadra autonomo che funziona direttamente all'interno di GitHub. Una volta abilitata, è possibile assegnarla a un'attività, controllarne lo stato in tempo reale e guidare il lavoro lasciando commenti sulle richieste pull. Questa unità illustra come assegnare problemi a Copilot usando GitHub.com, GitHub Mobile, l'API o l'interfaccia della riga di comando. Illustra anche come tenere traccia del lavoro dell'agente e iterare con esso e fornisce una guida alla risoluzione dei problemi comuni.
Al termine di questa unità, si sarà in grado di:
- Assegnare problemi a Copilot usando GitHub.com, GitHub Mobile, l'API o CL.
- Monitorare lo stato di avanzamento di Copilot tramite sequenze temporali delle richieste pull e log di sessione.
- Iterare sul lavoro di Copilot commentando le richieste pull.
- Comprendere le regole di approvazione per le richieste pull generate dall'agente.
- Risolvere i problemi comuni quando si delegano attività a Copilot.
Assegnazione di questioni a Copilot
Quando si assegna un problema a Copilot, l'agente lo riconosce aggiungendo una 👀 reazione al problema. Crea quindi un ramo dedicato copilot/ , apre una bozza di richiesta pull collegata al problema e avvia una sessione dell'agente all'interno di un ambiente basato su GitHub Actions. Durante il suo funzionamento, Copilot invia i commit al branch e aggiorna il corpo della pull request con i messaggi di stato. Una volta completata l'attività, Copilot pubblica un evento "Copilot finished work" e richiede la revisione.
In GitHub.com si assegna un problema a Copilot proprio come si assegna a un altro utente. Passare alla scheda Problemi del repository, aprire il problema da delegare e nella barra laterale destra in Assegnazioni selezionare Copilot. Copilot riceve il titolo del problema, la descrizione e tutti i commenti esistenti al momento dell'assegnazione. I commenti successivi sul problema non vengono visualizzati dall'agente. Quindi è necessario aggiungere le nuove informazioni direttamente come commenti nella richiesta pull dell'agente.
È anche possibile assegnare problemi a Copilot dall'elenco dei problemi nella pagina Problemi di un repository, da GitHub Projects o usando GitHub Mobile. Per i flussi di lavoro della riga di comando, è possibile usare l'interfaccia della riga di comando di GitHub (gh issue edit) per aggiungere Copilot come assegnatario.
Assegnazione tramite l'API
È possibile assegnare problemi a Copilot a livello di codice tramite l'API GraphQL. Prima di tutto, verificare che l'agente di codifica sia disponibile eseguendo suggestedActors una query per il repository e verificando che copilot-swe-agent venga visualizzato come attore suggerito. Recuperare quindi l'ID del repository. Per creare e assegnare un nuovo problema, usare la createIssue mutazione, passando l'ID del repository e l'ID bot di Copilot. Per assegnare un problema esistente, recuperare l'ID del problema e quindi usare la replaceActorsForAssignable mutazione per aggiungere Copilot come assegnatario. Questo approccio è utile per l'integrazione di Copilot in flussi di lavoro automatizzati.
Controllo della disponibilità
query {
repository(owner: "octo-org", name: "octo-repo") {
suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) {
nodes { login __typename ... on Bot { id } ... on User { id } }
}
}
}
Ottenere l'ID del repository
query {
repository(owner: "octo-org", name: "octo-repo") { id }
}
Creare e assegnare un nuovo problema
mutation {
createIssue(
input: {
repositoryId: "REPOSITORY_ID",
title: "Implement comprehensive unit tests",
body: "DETAILS",
assigneeIds: ["BOT_ID"]
}
) {
issue { id title assignees(first: 10) { nodes { login } } }
}
}
Assegnare un problema esistente
query {
repository(owner: "monalisa", name: "octocat") {
issue(number: 9000) { id title }
}
}
mutation {
replaceActorsForAssignable(
input: { assignableId: "ISSUE_ID", actorIds: ["BOT_ID"] }
) {
assignable {
... on Issue {
id title
assignees(first: 10) { nodes { login } }
}
}
}
}
Monitoraggio dello stato di avanzamento di Copilot
Dopo aver assegnato un problema a GitHub Copilot, l'agente fornisce segnali visibili in modo da poter seguire il proprio lavoro dall'inizio alla fine.
Conferma immediata. Poco dopo l'assegnazione di un problema, Copilot aggiunge una 👀 reazione al problema.
Creazione di una bozza di richiesta pull. Entro pochi secondi, Copilot apre una bozza di pull request collegata al problema originale. Nella sequenza temporale del problema viene visualizzato un nuovo evento che mostra la richiesta pull.
Sessione attiva dell'agente. Copilot avvia una sessione dell'agente per lavorare sulla tua problematica. Nella sequenza temporale della richiesta pull verrà visualizzato un evento "Lavoro avviato da Copilot". Durante l'esecuzione, Copilot aggiorna il corpo del pull request con i normali messaggi di stato ed esegue il push dei commit nel ramo dedicato.
Log della sessione dal vivo Tutte le sessioni passate e presenti sono visibili nella pagina Agenti. Fare clic su Visualizza sessione nella richiesta pull per aprire il visualizzatore del log della sessione live e osservare le azioni di Copilot in tempo reale. Se è necessario arrestare Copilot, fare clic su Arresta sessione nel visualizzatore.
Completamento e revisione. Al termine del lavoro di Copilot, la sessione dell'agente termina automaticamente. Nella sequenza temporale della richiesta di pull viene visualizzato un evento "Copilot finished work" e Copilot richiede una revisione da parte tua, attivando una notifica.
Iterazione con Copilot
Si guida il lavoro di Copilot allo stesso modo in cui si guiderebbe un collaboratore umano attraverso commenti e recensioni. Menzione @copilot in un commento di richiesta pull per richiedere modifiche. Vengono elaborati solo i commenti degli utenti con autorizzazione di scrittura nel repository. Copilot invia una reazione 👀 al commento per confermare che ha ricevuto la richiesta, quindi aggiunge "Copilot ha iniziato a lavorare" alla sequenza temporale della richiesta pull mentre riavvia l'operazione. In questo modo è possibile eseguire l'iterazione sul lavoro di Copilot senza uscire dal normale flusso di lavoro di revisione.
Approvazioni e flussi di lavoro
Le richieste pull create da Copilot sono sempre in stato bozza. Richiedono l'approvazione umana prima dell'unione e i flussi di lavoro di GitHub Actions attivati dall'agente non vengono eseguiti automaticamente. Per eseguire flussi di lavoro in una richiesta pull di Copilot, fare clic su Approva ed esegui flussi di lavoro nella casella di unione. Lo sviluppatore che ha chiesto a Copilot di creare la richiesta pull non può approvarla, mantenendo le regole del repository per le "revisioni necessarie" e garantendo una revisione indipendente prima della fusione.
Risoluzione dei problemi relativi all'agente di programmazione Copilot
Copilot non nell'elenco "Assegnatari"
Assicurarsi di essere in un piano idoneo (Pro, Pro+, Business, Enterprise). Verificare che l'agente non sia disabilitato a livello di organizzazione/repository. Verifica nella pagina delle funzionalità:
github.com/settings/copilot/features.Repository personali degli utenti gestiti dall'azienda (EMU)
Agente non disponibile; usare repository di proprietà dell'organizzazione (richiede strumenti di esecuzione ospitati da GitHub).
"Impossibile creare una richiesta pull" da Chat
Verificare che l'agente sia disponibile. Negli IDE menzionare @github nel prompt (non obbligatorio in GitHub.com).
È stato assegnato un problema, ma non si è verificato nulla
Aggiornare, cercare la reazione 👀, quindi una bozza della richiesta pull.
Richiesta pull creata ma senza avanzamento
Controllare che il messaggio "Copilot ha iniziato a lavorare" sia presente, aprire i log di sessione relativi alla visualizzazione.
L'agente non risponde al commento sulla richiesta pull
Assicurarsi di avere accesso in scrittura e di aver menzionato @copilot nella richiesta di pull dell'agente.
Sembra bloccato
Recupero possibile. Il tempo di inattività delle sessioni è di un'ora. Riprovare annullando/riassegnando il problema o ripubblicando il commento.
Le azioni non sono in esecuzione
Fare clic su Approva ed esegui flussi di lavoro nella casella di unione.
I push non superano il CI
Fornire indicazioni chiare a livello di repository tramite .github/copilot-instructions.md in modo che l'agente possa eseguire la convalida automatica con test/linters.
Avvisi del firewall
Internet è limitato per impostazione predefinita; gli avvisi elencano l'indirizzo e il comando bloccati. Modificare in base a quanto indicato in Personalizzare o disabilitare il firewall per l'agente di codifica di GitHub Copilot.
Immagini non prelevate
La dimensione massima dell'immagine è 3,00 MiB; le immagini più grandi vengono rimosse.
Con un ciclo di iterazione di assegnazione affidabile, è possibile aumentare la coerenza e la velocità personalizzando l'ambiente dell'agente, estendendolo con gli strumenti MCP e applicando una convalida affidabile prima dell'unione.