From e64a4cf888f16dfa396baf8d55fee8f4db6c4724 Mon Sep 17 00:00:00 2001 From: Marco Antonio Silva Date: Fri, 21 Aug 2026 18:35:08 +0100 Subject: [PATCH] Add modernization workflow canvas Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/plugin/marketplace.json | 6 + docs/README.plugins.md | 1 + extensions/modernization-workflow/LICENSE | 21 ++ extensions/modernization-workflow/README.md | 26 ++ .../modernization-workflow/assets/preview.png | Bin 0 -> 168661 bytes .../copilot-extension.json | 4 + .../modernization-workflow/extension.mjs | 167 +++++++++++++ .../modernization-workflow/lib/renderer.mjs | 190 +++++++++++++++ .../modernization-workflow/lib/server.mjs | 104 ++++++++ .../modernization-workflow/lib/state.mjs | 227 ++++++++++++++++++ plugins/modernization-workflow/README.md | 20 ++ plugins/modernization-workflow/plugin.json | 33 +++ 12 files changed, 799 insertions(+) create mode 100644 extensions/modernization-workflow/LICENSE create mode 100644 extensions/modernization-workflow/README.md create mode 100644 extensions/modernization-workflow/assets/preview.png create mode 100644 extensions/modernization-workflow/copilot-extension.json create mode 100644 extensions/modernization-workflow/extension.mjs create mode 100644 extensions/modernization-workflow/lib/renderer.mjs create mode 100644 extensions/modernization-workflow/lib/server.mjs create mode 100644 extensions/modernization-workflow/lib/state.mjs create mode 100644 plugins/modernization-workflow/README.md create mode 100644 plugins/modernization-workflow/plugin.json diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index 3a4502efc..725f0a85c 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -992,6 +992,12 @@ "ref": "v0.0.179" } }, + { + "name": "modernization-workflow", + "source": "plugins/modernization-workflow", + "description": "Visualize and guide the GitHub Copilot Modernize CLI Assess, Plan, and Execute workflow for .NET, Java, and C++ application repositories.", + "version": "1.0.0" + }, { "name": "modernize-dotnet", "description": "AI-powered .NET modernization and upgrade assistant. Helps upgrade .NET Framework and .NET applications to the latest versions of .NET.", diff --git a/docs/README.plugins.md b/docs/README.plugins.md index ba76c8438..3c611385d 100644 --- a/docs/README.plugins.md +++ b/docs/README.plugins.md @@ -72,6 +72,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t | [java-modernization-studio](../plugins/java-modernization-studio/README.md) | Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts. | 1 items | app-modernization, assessment-dashboard, azure-migration, java-modernization, legacy-java, modernization-cockpit, validation-gates | | [kotlin-mcp-development](../plugins/kotlin-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor | | [mcp-m365-copilot](../plugins/mcp-m365-copilot/README.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 4 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards | +| [modernization-workflow](../plugins/modernization-workflow/README.md) | Visualize and guide the GitHub Copilot Modernize CLI Assess, Plan, and Execute workflow for .NET, Java, and C++ application repositories. | 1 items | app-modernization, assessment-dashboard, azure-migration, cpp-modernization, dotnet-modernization, java-modernization, modernization-canvas, modernize-cli | | [napkin](../plugins/napkin/README.md) | Visual whiteboard collaboration for Copilot CLI. Opens an interactive whiteboard in your browser where you can draw, sketch, and add sticky notes — then share everything back with Copilot. Copilot sees your drawings and responds with analysis, suggestions, and ideas. | 1 items | whiteboard, visual, collaboration, brainstorming, non-technical, drawing, sticky-notes, accessibility, copilot-cli, ux | | [noob-mode](../plugins/noob-mode/README.md) | Plain-English translation layer for non-technical Copilot CLI users. Translates every approval prompt, error message, and technical output into clear, jargon-free English with color-coded risk indicators. | 1 items | accessibility, plain-english, non-technical, beginner, translation, copilot-cli, ux | | [openapi-to-application-csharp-dotnet](../plugins/openapi-to-application-csharp-dotnet/README.md) | Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices. | 2 items | openapi, code-generation, api, csharp, dotnet, aspnet | diff --git a/extensions/modernization-workflow/LICENSE b/extensions/modernization-workflow/LICENSE new file mode 100644 index 000000000..ed9f9a40c --- /dev/null +++ b/extensions/modernization-workflow/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 EMEA App GBB + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/extensions/modernization-workflow/README.md b/extensions/modernization-workflow/README.md new file mode 100644 index 000000000..d457a6dc6 --- /dev/null +++ b/extensions/modernization-workflow/README.md @@ -0,0 +1,26 @@ +# Modernization Workflow canvas + +An interactive GitHub Copilot CLI canvas that visualizes the documented +Modernize CLI lifecycle: + +1. **Assess** the application and generate evidence. +2. **Plan** a reviewable modernization strategy and task list. +3. **Execute** transformations with build, security, and result validation. + +The canvas detects .NET, Java, and C++ repository signals, generates commands +from the current workflow configuration, and refreshes progress from artifacts +under `.github/modernize/`. + +## Canvas ID + +`modernization-workflow` + +## Agent actions + +- `get_workflow_state` +- `configure_workflow` +- `set_step_status` +- `refresh_from_artifacts` + +Workflow state is stored in `.github/modernize/canvas-.json` in the +application repository so progress survives canvas and CLI restarts. diff --git a/extensions/modernization-workflow/assets/preview.png b/extensions/modernization-workflow/assets/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..27ac2e9ee9abb6bf778ced86c74bc5046cb9112c GIT binary patch literal 168661 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�>y01r})M`tvde0}L?EwLbXwP@U%qOg&hgxb2 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 z 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%0AR|H3iU8~zb46xynJ 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 z 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

t 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 { + const rec = instance(ctx); + return getWorkflowState(rec.workspace, rec.stateId); + }, + }, + { + name: "configure_workflow", + description: "Configure the source, language, modernization goal, and plan name.", + inputSchema: { + type: "object", + additionalProperties: false, + properties: { + language: { type: "string", enum: ["auto", "dotnet", "java", "cpp"] }, + source: { type: "string", minLength: 1 }, + goal: { type: "string", minLength: 1 }, + upgradeTarget: { type: "string" }, + planName: { type: "string", pattern: "^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$" }, + delegate: { type: "string", enum: ["local", "cloud"] }, + }, + }, + handler: async (ctx) => { + const rec = instance(ctx); + return updateInstance(rec, (workspace, stateId) => + configureWorkflow(workspace, stateId, ctx.input ?? {})); + }, + }, + { + name: "set_step_status", + description: "Set an Assess, Plan, or Execute step to pending, active, complete, or blocked.", + inputSchema: { + type: "object", + additionalProperties: false, + required: ["step", "status"], + properties: { + step: { type: "string", enum: ["assess", "plan", "execute"] }, + status: { type: "string", enum: ["pending", "active", "complete", "blocked"] }, + }, + }, + handler: async (ctx) => { + const rec = instance(ctx); + return updateInstance(rec, (workspace, stateId) => + setStepStatus(workspace, stateId, ctx.input.step, ctx.input.status)); + }, + }, + { + name: "refresh_from_artifacts", + description: "Re-scan the repository and update progress from Modernize CLI output artifacts.", + handler: async (ctx) => { + const rec = instance(ctx); + return updateInstance(rec, refreshWorkflow); + }, + }, + ], + open: async (ctx) => { + const workspace = resolveWorkspace(ctx.input?.workspace, workingDirectory); + const stateId = ctx.input?.stateId ?? "default"; + let rec = instances.get(ctx.instanceId); + + if (rec && (rec.workspace !== workspace || rec.stateId !== stateId)) { + for (const client of rec.clients) client.end(); + await new Promise((resolve) => rec.server.close(resolve)); + instances.delete(ctx.instanceId); + rec = null; + } + + if (!rec) { + rec = await createInstanceServer({ + workspace, + stateId, + initialConfig: ctx.input ?? {}, + onConfigure: (input) => configureWorkflow(workspace, stateId, input), + onSetStep: (step, status) => setStepStatus(workspace, stateId, step, status), + onRefresh: () => refreshWorkflow(workspace, stateId), + }); + instances.set(ctx.instanceId, rec); + } + + return { + title: "Modernization Workflow", + status: basename(workspace), + url: rec.url, + }; + }, + onClose: async (ctx) => { + const rec = instances.get(ctx.instanceId); + if (!rec) return; + instances.delete(ctx.instanceId); + for (const client of rec.clients) client.end(); + await new Promise((resolve) => rec.server.close(resolve)); + }, + }), + ], + hooks: { + onSessionStart: async (input) => { + if (input.workingDirectory) workingDirectory = input.workingDirectory; + return { + additionalContext: + "When a user is modernizing an application, use the Modernization Workflow canvas to make Assess, Plan, and Execute progress visible. Refresh it after Modernize CLI commands change repository artifacts.", + }; + }, + }, +}); + +sessionRef = session; + +session.on("session.idle", async () => { + for (const rec of instances.values()) { + const state = await refreshWorkflow(rec.workspace, rec.stateId); + await pushState(rec, state); + } +}); + +await session.log("Modernization Workflow canvas ready", { ephemeral: true }); diff --git a/extensions/modernization-workflow/lib/renderer.mjs b/extensions/modernization-workflow/lib/renderer.mjs new file mode 100644 index 000000000..a6de32a58 --- /dev/null +++ b/extensions/modernization-workflow/lib/renderer.mjs @@ -0,0 +1,190 @@ +function serialize(value) { + return JSON.stringify(value).replaceAll("<", "\\u003c"); +} + +export function renderHtml(initialState, token) { + return ` + + + + +Modernization Workflow + + + +

+
+
+
+
GitHub Copilot modernization
+

Modernization Workflow

+

Move from evidence to an approved plan and validated code changes with the Modernize CLI.

+
+
0%
+
+
+
+
+
+
+

Assess → Plan → Execute

+
+
+
+

Upgrade fast path

Run the documented end-to-end plan-and-execute workflow when a separate plan review is not required.

+
+
+
+
+
+
+

Workflow setup

+
+
+
+ + + + + + +
+
+
+
+
+
+

Repository signal

+
+
+
+

Detected artifacts

+
    +
    +
    +

    Reference

    + +
    +
    +
    +
    +
    +
    + + +`; +} diff --git a/extensions/modernization-workflow/lib/server.mjs b/extensions/modernization-workflow/lib/server.mjs new file mode 100644 index 000000000..ad3314036 --- /dev/null +++ b/extensions/modernization-workflow/lib/server.mjs @@ -0,0 +1,104 @@ +import { randomBytes } from "node:crypto"; +import { createServer } from "node:http"; +import { getWorkflowState } from "./state.mjs"; +import { renderHtml } from "./renderer.mjs"; + +function sendJson(res, status, value) { + res.writeHead(status, { + "Content-Type": "application/json; charset=utf-8", + "Cache-Control": "no-store", + }); + res.end(JSON.stringify(value)); +} + +async function readJson(req) { + const chunks = []; + let size = 0; + for await (const chunk of req) { + size += chunk.length; + if (size > 64 * 1024) throw new Error("Request body is too large."); + chunks.push(chunk); + } + return chunks.length ? JSON.parse(Buffer.concat(chunks).toString("utf8")) : {}; +} + +export async function pushState(rec, state) { + const payload = `event: state\ndata: ${JSON.stringify(state)}\n\n`; + for (const client of rec.clients) client.write(payload); +} + +export async function createInstanceServer(options) { + const token = randomBytes(24).toString("hex"); + const clients = new Set(); + let rec; + + const server = createServer(async (req, res) => { + const url = new URL(req.url, "http://127.0.0.1"); + try { + if (req.method === "GET" && url.pathname === "/") { + const state = await getWorkflowState(options.workspace, options.stateId); + res.writeHead(200, { + "Content-Type": "text/html; charset=utf-8", + "Cache-Control": "no-store", + "Content-Security-Policy": "default-src 'self'; style-src 'unsafe-inline'; script-src 'unsafe-inline'; connect-src 'self'; img-src 'self' data:", + "X-Content-Type-Options": "nosniff", + "Referrer-Policy": "no-referrer", + }); + res.end(renderHtml(state, token)); + return; + } + + if (req.method === "GET" && url.pathname === "/events") { + res.writeHead(200, { + "Content-Type": "text/event-stream", + "Cache-Control": "no-cache", + Connection: "keep-alive", + }); + clients.add(res); + req.on("close", () => clients.delete(res)); + return; + } + + if (req.method !== "POST" || req.headers["x-canvas-token"] !== token) { + sendJson(res, 403, { error: "Request rejected." }); + return; + } + + const input = await readJson(req); + let state; + if (url.pathname === "/api/configure") { + state = await options.onConfigure(input); + } else if (url.pathname === "/api/step") { + state = await options.onSetStep(input.step, input.status); + } else if (url.pathname === "/api/refresh") { + state = await options.onRefresh(); + } else { + sendJson(res, 404, { error: "Not found." }); + return; + } + + await pushState(rec, state); + sendJson(res, 200, state); + } catch (error) { + sendJson(res, 400, { error: error instanceof Error ? error.message : String(error) }); + } + }); + + await new Promise((resolve, reject) => { + server.once("error", reject); + server.listen(0, "127.0.0.1", resolve); + }); + const address = server.address(); + rec = { + ...options, + server, + clients, + url: `http://127.0.0.1:${address.port}/`, + }; + + if (Object.keys(options.initialConfig).some((key) => + ["language", "source", "goal", "planName"].includes(key))) { + await options.onConfigure(options.initialConfig); + } + return rec; +} diff --git a/extensions/modernization-workflow/lib/state.mjs b/extensions/modernization-workflow/lib/state.mjs new file mode 100644 index 000000000..c89ef2b77 --- /dev/null +++ b/extensions/modernization-workflow/lib/state.mjs @@ -0,0 +1,227 @@ +import { access, mkdir, readFile, readdir, writeFile } from "node:fs/promises"; +import { join, resolve } from "node:path"; + +const DEFAULT_STATE = { + version: 1, + language: "auto", + source: ".", + goal: "modernize this application for Azure", + upgradeTarget: "", + planName: "modernization-plan", + delegate: "local", + steps: { + assess: { status: "pending", updatedAt: null }, + plan: { status: "pending", updatedAt: null }, + execute: { status: "pending", updatedAt: null }, + }, +}; + +function statePath(workspace, stateId) { + return join(workspace, ".github", "modernize", `canvas-${stateId}.json`); +} + +function cleanStateId(value) { + if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/.test(value)) { + throw new Error("Invalid workflow state identifier."); + } + return value; +} + +export function resolveWorkspace(input, fallback) { + const candidate = input || fallback || process.cwd(); + return resolve(candidate); +} + +async function exists(path) { + try { + await access(path); + return true; + } catch { + return false; + } +} + +async function loadState(workspace, stateId) { + const path = statePath(workspace, cleanStateId(stateId)); + try { + const saved = JSON.parse(await readFile(path, "utf8")); + return { + ...DEFAULT_STATE, + ...saved, + steps: { + ...DEFAULT_STATE.steps, + ...(saved.steps ?? {}), + }, + }; + } catch (error) { + if (error.code === "ENOENT") return structuredClone(DEFAULT_STATE); + throw error; + } +} + +async function saveState(workspace, stateId, state) { + const path = statePath(workspace, cleanStateId(stateId)); + await mkdir(join(workspace, ".github", "modernize"), { recursive: true }); + const next = { ...state, updatedAt: new Date().toISOString() }; + await writeFile(path, `${JSON.stringify(next, null, 2)}\n`, "utf8"); + return next; +} + +async function walkNames(root, maxDepth = 3, depth = 0) { + if (depth > maxDepth || !(await exists(root))) return []; + const output = []; + for (const entry of await readdir(root, { withFileTypes: true })) { + if ([".git", "node_modules", "bin", "obj", "target", "build"].includes(entry.name)) continue; + const path = join(root, entry.name); + output.push(path); + if (entry.isDirectory()) output.push(...await walkNames(path, maxDepth, depth + 1)); + } + return output; +} + +function detectLanguage(paths) { + const names = paths.map((path) => path.toLowerCase()); + if (names.some((path) => /\.(sln|csproj|fsproj|vbproj)$/.test(path))) return "dotnet"; + if (names.some((path) => /\/(pom\.xml|build\.gradle|build\.gradle\.kts)$/.test(path.replaceAll("\\", "/")))) return "java"; + if (names.some((path) => /\/(cmakelists\.txt|makefile)$/.test(path.replaceAll("\\", "/")) || /\.(cpp|cc|cxx|vcxproj)$/.test(path))) return "cpp"; + return "unknown"; +} + +async function scanArtifacts(workspace, planName) { + const modernizeRoot = join(workspace, ".github", "modernize"); + const assessmentRoot = join(modernizeRoot, "assessment"); + const planRoot = join(modernizeRoot, planName); + const assessmentFiles = (await walkNames(assessmentRoot, 3)) + .filter((path) => /\.(json|md|html|ya?ml)$/i.test(path)); + const planFiles = (await walkNames(planRoot, 2)) + .filter((path) => /\.(json|md|html)$/i.test(path)); + const assessmentOutputs = assessmentFiles.filter((path) => + !/config|canvas-/i.test(path) && /\.(json|md|html)$/i.test(path)); + const summaryFiles = planFiles.filter((path) => /summary|progress|result/i.test(path)); + + return { + assessment: assessmentFiles.map((path) => path.slice(workspace.length + 1)), + plan: planFiles.map((path) => path.slice(workspace.length + 1)), + execution: summaryFiles.map((path) => path.slice(workspace.length + 1)), + hasAssessment: assessmentOutputs.length > 0, + hasPlan: planFiles.some((path) => /plan\.md$/i.test(path)) + && planFiles.some((path) => /tasks\.json$/i.test(path)), + hasExecution: summaryFiles.length > 0, + }; +} + +function quote(value) { + const text = String(value).trim(); + if (/^[A-Za-z0-9_./:\\-]+$/.test(text)) return text; + return `"${text.replaceAll('"', '\\"')}"`; +} + +function languageFlag(language) { + if (language === "java" || language === "dotnet") return ` --language ${language}`; + return ""; +} + +function delegateFlag(delegate) { + return delegate === "cloud" ? " --delegate cloud" : ""; +} + +function commands(state, artifacts) { + const source = quote(state.source); + const name = quote(state.planName); + const goal = quote(state.goal); + const upgradeTarget = state.upgradeTarget ? ` ${quote(state.upgradeTarget)}` : ""; + const language = state.language === "auto" ? state.detectedLanguage : state.language; + const assessment = artifacts.assessment.find((path) => /assessment.*\.json$/i.test(path)) + ?? artifacts.assessment.find((path) => /\.json$/i.test(path)); + const assessmentFlag = assessment ? ` --assess-file-path ${quote(assessment)}` : ""; + + return { + assess: `modernize assess --source ${source}${delegateFlag(state.delegate)}${state.delegate === "cloud" ? " --wait" : ""}`, + plan: `modernize plan create ${goal} --source ${source} --plan-name ${name}${languageFlag(language)}${assessmentFlag}`, + execute: `modernize plan execute --source ${source} --plan-name ${name}${languageFlag(language)}${delegateFlag(state.delegate)}`, + upgrade: `modernize upgrade${upgradeTarget} --source ${source}${delegateFlag(state.delegate)}`, + }; +} + +function deriveSteps(state, artifacts) { + const steps = structuredClone(state.steps); + if (artifacts.hasAssessment) steps.assess.status = "complete"; + if (artifacts.hasPlan) { + steps.assess.status = "complete"; + steps.plan.status = "complete"; + } + if (artifacts.hasExecution) { + steps.assess.status = "complete"; + steps.plan.status = "complete"; + steps.execute.status = "complete"; + } + return steps; +} + +export async function getWorkflowState(workspace, stateId = "default") { + const saved = await loadState(workspace, stateId); + const paths = await walkNames(workspace, 3); + const detectedLanguage = detectLanguage(paths); + const artifacts = await scanArtifacts(workspace, saved.planName); + const state = { + ...saved, + stateId, + workspace, + detectedLanguage, + effectiveLanguage: saved.language === "auto" ? detectedLanguage : saved.language, + artifacts, + steps: deriveSteps(saved, artifacts), + }; + const notices = []; + if (state.effectiveLanguage === "cpp") { + notices.push("The current CLI reference documents explicit --language values for Java and .NET only. C++ commands use CLI auto-detection; verify support with your installed Modernize CLI version."); + } + if (state.delegate === "cloud" && !/^https:\/\/github\.com\//i.test(state.source)) { + notices.push("Cloud delegation requires a github.com repository URL as the source. Local paths and other Git providers are not supported."); + } + return { + ...state, + commands: commands(state, artifacts), + compatibilityNotice: notices.length ? notices.join(" ") : null, + }; +} + +export async function configureWorkflow(workspace, stateId, input) { + const current = await loadState(workspace, stateId); + const allowed = ["language", "source", "goal", "upgradeTarget", "planName", "delegate"]; + const next = { ...current }; + for (const key of allowed) { + if (input[key] !== undefined) next[key] = String(input[key]).trim(); + } + if (!["auto", "dotnet", "java", "cpp"].includes(next.language)) { + throw new Error("Language must be auto, dotnet, java, or cpp."); + } + if (!["local", "cloud"].includes(next.delegate)) { + throw new Error("Execution must be local or cloud."); + } + if (!next.source || !next.goal) { + throw new Error("Source and modernization goal are required."); + } + if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/.test(next.planName)) { + throw new Error("Plan name must contain only letters, numbers, dots, underscores, and hyphens."); + } + await saveState(workspace, stateId, next); + return getWorkflowState(workspace, stateId); +} + +export async function setStepStatus(workspace, stateId, step, status) { + if (!["assess", "plan", "execute"].includes(step)) throw new Error("Unknown workflow step."); + if (!["pending", "active", "complete", "blocked"].includes(status)) throw new Error("Unknown step status."); + const current = await loadState(workspace, stateId); + current.steps[step] = { status, updatedAt: new Date().toISOString() }; + await saveState(workspace, stateId, current); + return getWorkflowState(workspace, stateId); +} + +export async function refreshWorkflow(workspace, stateId = "default") { + const current = await loadState(workspace, stateId); + const refreshed = await getWorkflowState(workspace, stateId); + current.steps = refreshed.steps; + await saveState(workspace, stateId, current); + return getWorkflowState(workspace, stateId); +} diff --git a/plugins/modernization-workflow/README.md b/plugins/modernization-workflow/README.md new file mode 100644 index 000000000..f7f67f8d1 --- /dev/null +++ b/plugins/modernization-workflow/README.md @@ -0,0 +1,20 @@ +# Modernization Workflow Plugin + +Interactive canvas for visualizing and guiding the GitHub Copilot Modernize CLI +Assess, Plan, and Execute workflow for .NET, Java, and C++ application +repositories. + +## Installation + +```bash +copilot plugin install modernization-workflow@awesome-copilot +``` + +## Source + +This plugin is part of +[Awesome Copilot](https://github.com/github/awesome-copilot). + +## License + +MIT diff --git a/plugins/modernization-workflow/plugin.json b/plugins/modernization-workflow/plugin.json new file mode 100644 index 000000000..dea6a8f37 --- /dev/null +++ b/plugins/modernization-workflow/plugin.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", + "name": "modernization-workflow", + "description": "Visualize and guide the GitHub Copilot Modernize CLI Assess, Plan, and Execute workflow for .NET, Java, and C++ application repositories.", + "version": "1.0.0", + "author": { + "name": "EMEA App GBB", + "url": "https://github.com/EmeaAppGbb" + }, + "homepage": "https://github.com/EmeaAppGbb/modernization-canvas", + "repository": "https://github.com/EmeaAppGbb/modernization-canvas", + "license": "MIT", + "keywords": [ + "app-modernization", + "assessment-dashboard", + "azure-migration", + "cpp-modernization", + "dotnet-modernization", + "java-modernization", + "modernization-canvas", + "modernize-cli" + ], + "extensions": { + "com.github.copilot": { + "logo": "assets/preview.png" + }, + "com.github.awesome-copilot": { + "extensions": [ + "./extensions/modernization-workflow" + ] + } + } +}