GitHub Copilot frissítéssel kapcsolatos fogalmak

GitHub Copilot frissítés strukturált munkafolyamatokat használ a támogatott projektek frissítéséhez. Megtudhatja, hogyan használja az ügynök a technológiai csomagokat, forgatókönyveket, készségeket, feladatokat és állandó állapotot a módosítások tervezéséhez és ellenőrzéséhez.

Tip

Írja le a kívánt eredményt a forgatókönyv vagy a képességnevek memorizálása helyett. Az ügynök észleli az adattárban lévő technológiákat, és kiválasztja a megfelelő képességeket.

Az ügynök csapattagként

Az ügynök az együttműködésben jeleskedik, nem pedig az automatizálásban a vákuumban:

  • Technológiaspecifikus ismeretek: A technológiai csomagok frissítési munkafolyamatokat, eszközöket és útmutatást nyújtanak a támogatott nyelvekhez, keretrendszerekhez, csomagkezelőkhöz és projekttípusokhoz.
  • Strukturált munkafolyamat: Minden frissítés az értékelésen, a tervezésen és a végrehajtáson megy keresztül. Nincsenek véletlenszerű változások, nincsenek meglepetések.
  • Megismeri a beállításokat: Amikor azt mondja, hogy "mindig explicit típusokat használjon ahelyett var," az ügynök ezt a beállítást scenario-instructions.md írja, és a munkamenetek során megjegyzi.
  • Repülés közben javítható: Rossz döntést hozott? Mondja el az ügynöknek. Ezután alkalmazkodik és alkalmazza a korrekciót.
  • A magyarázat magyarázata: Kérdezze meg , hogy "miért választotta ezt a megközelítést?" , és az ügynök végigvezeti a döntésen.

Forgatókönyvek

A forgatókönyv egy felügyelt, teljes körű frissítési folyamat. A "Megoldás frissítése .NET 10-re" például elindítja a .NET verziófrissítési forgatókönyvet. A technológiai csomagok olyan speciális integrációhoz is biztosítanak munkafolyamatot, mint például a JavaScript- vagy TypeScript-függőségi frissítések Dependabot-ellenőrzése.

A forgatókönyvek felderítésének menete

Nem kell megjegyeznie a forgatókönyvek nevét. Az ügynök automatikusan felderíti a releváns forgatókönyveket:

  1. Elemzi a kódbázist, hogy megértse, milyen technológiákat használ, beleértve a nyelvet, a keretrendszer verzióját, a kódtárakat és a projekttípusokat.
  2. Azonosítja a projektek szempontjából releváns forgatókönyveket.
  3. Fontosság és súly szerint rangsorolja a forgatókönyveket. A legrelevánsabbak először tűnnek fel.

Közvetlenül is felteheti a kérdést: "Milyen forgatókönyvek érhetők el a megoldásomhoz?"

Forgatókönyv-perzisztencia

Minden aktív forgatókönyv saját mappát kap a következő helyen .github/upgrades/{scenarioId}/: . A forgatókönyv mappája tartalmazza a tervet, a tevékenység előrehaladását, a beállításokat és a végrehajtási naplókat. A mappa a Git-adattár része.

Az elérhető munkafolyamatokért tekintse meg .NET forgatókönyveket és készségeket, valamint a JavaScript- és TypeScript-képességeket.

A munkafolyamat életciklusa

Minden forgatókönyv ugyanazt az életciklust követi: egy háromfázisú munkafolyamatot.

1. szakasz: Értékelés

Az ügynök mindent összegyűjt, amire szüksége van a munka megkezdése előtt:

  • Cél keretrendszer: Az a verzió, amelyre frissít.
  • Git-stratégia: Az ügynök elágaztatást javasol, és Ön szabályozza a részleteket: az ág nevét, a tevékenységenkénti ágak használatát és a véglegesítés időzítését.
  • Folyamat mód: Automatikus (az ügynök irányítja) vagy irányított (Ön minden szakaszt jóváhagy).
  • Forgatókönyvspecifikus paraméterek: A forgatókönyvtől függően az ügynök további kérdéseket tehet fel.

Az ügynök inicializálja a forgatókönyv-munkaterületet a következő helyen .github/upgrades/{scenarioId}/: .

Az ügynök ezután elemzi a kódbázist:

  • Project függőségi gráf (topológiai sorrend)
  • NuGet-csomag kompatibilitása a cél-keretrendszerrel
  • Kompatibilitástörő API-módosítások
  • Tesztlefedettség
  • Összetettség és kockázati tényezők

Az ügynök egy átfogó értékelési jelentést menti a következő helyre assessment.md.

Az értékelés alapján az ügynök kiértékeli a megoldást, és azonosítja, hogy mely frissítési döntések relevánsak. Ésszerű alapértelmezett értékeket jelenít meg, és lehetővé teszi a választási lehetőségek áttekintését és felülbírálását.

A lehetőségek közé tartozhatnak a következők:

  • Frissítési stratégia: Alulról felfelé, felülről lefelé vagy mind egyszerre.
  • Projektfrissítési megközelítés: Webalkalmazások helybeni átírása vagy párhuzamos használata; kódtárak helybeni vagy több célpontú célzása.
  • Technológia korszerűsítése: Az Entity Framework frissítésére, a függőséginjektálásra, a naplózásra és a konfigurációra vonatkozó lehetőségek.
  • Csomagkezelés: A központi csomagkezelés bevezetésének és időpontjának megadása.
  • Kompatibilitás kezelése: Nem támogatott API-k és csomagok kezelése.

Az ügynök a megerősített döntéseket a következőre upgrade-options.mdmenti: .

Irányított módban az ügynök itt megáll, hogy Ön áttekintse, mielőtt továbblép.

2. szakasz: Tervezés

Az ügynök az értékelés és a megerősített lehetőségek alapján hozza létre a feladattervet. A tervezés három fő fájlt hoz létre:

  • plan.md: A frissítési terv stratégiával és tevékenységleírásokkal.
  • scenario-instructions.md: Az Ön preferenciái, döntései és az ügynök memóriája.
  • tasks.md — Az ügynök által végrehajtandó feladatok rendezett listája.

3. szakasz: Végrehajtás

Az ügynök egymás után hajtja végre a feladatokat. Az ügynök minden tevékenységhez tasks.mdegy ciklust követ: indítás, végrehajtás, ellenőrzés (létrehozás és tesztelés) és befejezés. Szabályozhatja, hogy az ügynök mikor és hogyan véglegesítse a módosításokat: tevékenységenként, tevékenységcsoportonként vagy a végén. Az ügynök munkája közben a tasks.md élő állapotjelzőkkel frissül, így nyomon követheti az előrehaladást.

Frissítési stratégiák

Az értékelési szakaszban az ügynök kiértékeli a megoldást, és az alábbi stratégiák egyikét javasolja:

Strategy Legjobb a számára Hogyan működik?
Alulról felfelé Nagy megoldások mély függőségi gráfokkal Kezdje a levélprojektekkel (függőségek nélkül), dolgozzon felfelé.
Felülről lefelé Gyors visszajelzés a fő alkalmazásról Kezdje az alkalmazásprojekttel, és szükség szerint javítsa ki a függőségeket.
Egyszerre Kicsi, egyszerű megoldások Frissítsen mindent egy lépésben.

Tip

Az ügynök csak a projekt szempontjából releváns döntéseket jeleníti meg. Az egyszerű konzolalkalmazások nem látják a webes keretrendszer választási lehetőségeit, és az Entity Framework nélküli projektek nem látják az adatbázis-frissítési lehetőségeket.

Készségek

A készségek kisebb, célzott modernizációs képességek. Amikor az ügynök EF6-kóddal találkozik a frissítés során, betölti az EF6-EF-Core készséget részletes, lépésről lépésre frissítési utasításokkal. Egy képesség meghívása közvetlenül a frissítés során: "a projekt WCF-szolgáltatásainak frissítése a CoreWCF-re".

A technológiai csomagok tartomány szerint szervezett beépített készségeket biztosítanak. Ide sorolhatóak például a következők:

  • Adathozzáférés: EF6-ról EF Core-ra (kódelső és EDMX), LINQ-ról SQL-re és SqlClient-frissítésre
  • Web/ASP.NET: Identity, Global.asax, OWIN, MVC routing/szűrők/csomagolás és WCF átalakítása CoreWCF-re
  • Szerializációs: Newtonsoft.Json to System.Text.Json
  • Cloud: Átmenet az Azure Functions in-process modellből az izolált feldolgozói modellbe
  • Könyvtárak: ADAL–MSAL, SignalR, PowerShell SDK és egyebek
  • JavaScript és TypeScript: npm függőségi frissítések, TypeScript fordítófrissítések, keretrendszer migrálási útmutatója és futtatókörnyezet ellenőrzése

A képességek automatikusan betöltődnek, amikor egy program észleli azokat a kódbázisban. Nem kell kezelnie a képességbetöltést. Csak írja le, hogy mire van szüksége.

A technológiaspecifikus listákért lásd .NET forgatókönyveket és készségeket, valamint a JavaScript- és TypeScript-képességeket.

Tasks

A feladatok atomi munkaegységei egy forgatókönyvben. Minden feladat a frissítés egy meghatározott, határolt részét jelöli, például a "CommonLib frissítése .NET 6-ról .NET 10-re" vagy "Ef6-használat frissítése a DataLayerben EF Core-ra".

Tevékenység életciklusa

A feladatok az alábbi állapotokon haladnak át:

  • Elérhető: Készen áll a kezdésre, minden függőség teljesült.
  • Folyamatban: Az ügynök aktívan dolgozik a feladaton.
  • Befejezett: Kódmódosítások alkalmazva, build sikeres, tesztelések sikeresek.

Minden tevékenységhez az ügynök:

  1. Betölti a kapcsolódó készségeket és kontextust.
  2. Az összetettség felmérése és annak eldöntése, hogy a tevékenységnek altevékenységekre van-e szüksége.
  3. Hatókör-összegzést ír a fájlba tasks/{taskId}/task.md.
  4. Kódmódosításokat hajt végre.
  5. Ellenőrzi a folyamatot építések és tesztek futtatásával.
  6. Az eredményeket rögzíti: tasks/{taskId}/progress-details.md.
  7. Véglegesíti a módosításokat, és a következő tevékenységre lép.

Állapotkezelés

Az ügynök állandó állapotot tart fenn, így bármikor megszakíthatja és folytathatja a munkát. Minden az adattárban .github/upgrades/{scenarioId}/ alatt él.

Fájl Alkalmazás célja
scenario-instructions.md Az Ön beállításai, döntései és egyéni utasításai. Az ügynök állandó memóriája.
upgrade-options.md Megerősített frissítési döntések
plan.md A frissítési terv stratégiával és tevékenységleírásokkal
tasks.md Feladatállapotokat mutató vizuális irányítópult
tasks/{taskId}/task.md Tevékenységenkénti hatókör és környezet
tasks/{taskId}/progress-details.md Feladatonkénti végrehajtási jegyzetek és eredmények

Resumálhatóság

Zárja be a csevegést, zárja be az IDE-t, vagy térjen vissza másnap. Az ügynök ott veszi fel, ahol abbahagyta:

  1. A következő interakció során az ügynök automatikusan ellenőrzi a munkaterület aktuális állapotát.
  2. Az ügynök észleli a meglévő forgatókönyvet, és megjeleníti az aktuális előrehaladást, például "8 elvégzett tevékenységből 3".
  3. Az ügynök észleli az elavult feladatokat (egy korábbi megszakított munkamenet során elakadt), és felajánlja azok folytatását vagy újraindítását.
  4. Az ügynök újra betölti a preferenciákat a következőből: scenario-instructions.md.

Több IDE-t átfogó folytonosság

Mivel az állapot a Gitben található, válthat a VS Code, Visual Studio és Copilot parancssori felület között a frissítés közepén. A .github/upgrades/ mappa az a megosztott állapot, amelyet mindkét IDE-k megértenek.

Tip

Véglegesítse a .github/upgrades/ mappát az ágon. Az ág távoli adattárba való leküldésével a csapattagok megtekinthetik az előrehaladást, vagy folytathatják a frissítést egy másik gépen.

Folyamatmódok

Az ügynök két olyan folyamatmódot támogat, amelyek szabályozzák, hogy mennyi felügyelete van: automatikus mód és irányított mód.

Automatikus mód

Az ügynök az összes fázison (értékelés, tervezés és végrehajtás) végig dolgozik anélkül, hogy a jóváhagyást szünetelteti. Felfedi a legfontosabb megállapításokat és az előrehaladási frissítéseket, de folyamatosan halad előre.

Tapasztalt felhasználók, egyszerű frissítések és kis megoldások esetén a legjobb.

Irányított mód

Az ügynök a felülvizsgálat egyes fázishatárainál szünetel:

  • Értékelés után: "Itt van, amit találtam. Folytassam a frissítési lehetőségeket?"
  • Tervezés után: "Itt a feladatterv. Szeretné, ha elkezdenem a végrehajtást?"
  • Összetett tevékenységlebontások előtt: "Ez a tevékenység összetett. Így bontanám le."

Az első felhasználók, az összetett megoldások és a folyamat megismerése esetén a legjobb.

Üzemmódok váltása bármikor

  • Mondja ki a "szünet" vagy a "váltás irányított üzemmódra" szöveget az Irányított módra való váltáshoz.
  • A "folytatás" vagy a "tovább" gombra való váltáshoz váltson automatikus módra.

Tip

A munkafolyamat megismeréséhez kezdje az irányított üzemmódot az első frissítéshez, majd váltson automatikusra, ha már jól érzi magát.