Customize Copilot Modernization Tasks

Microsoft Developer · Beginner ·🛠️ AI Tools & Apps ·1mo ago

Key Takeaways

Customizes GitHub Copilot's modernization tasks for team constraints using exclusion, step breakdown, and validation

Full Transcript

In this episode, I show how you can customize GitHub Copilot modernization tasks in IntelliJ. So, Copilot works with your constraints, not against them. When Copilot modernizes a Java application, it doesn't just change code. It creates explicit modernization tasks, and those tasks are fully editable. That's the difference between automation and developer-controlled modernization. Copilot analyzes the project and proposes a set of modernization tasks. Think of these as a first draft, not a final decision. Now, we have something tangible, a task list that describes what will change, why, and in which order. Real teams always have constraints. Here, I'm explicitly telling Copilot what not to do. Instead of one risky step, I break this into smaller, reviewable tasks. You can also add your own requirements, just like you would in a real backlog. This task list now reflects our reality, not a generic upgrade path. Copilot adapts to the constraints instead of ignoring them. Tasks are applied one at a time. Nothing happens without review. When teams modernize Java applications, the real risk isn't the tooling. The risk is making changes you didn't intend to make. That's why GitHub Copilot modernization is built around explicit tasks, not automatic rewrites. In this screencast you just saw, I generated a modernization task list, customized it, and deliberately excluded the Java and Spring upgrades. Instead, I ran a regression and deployment safeguard task to validate the current state of the application. And the most important result is no files were changed, and that's the correct outcome. Project built successfully, deployment scripts are untouched, nothing about the runtime or infrastructure was modified. Copilot also surfaced two important facts. First, there's a failing test, but it's a pre-existing issue, unrelated to modernization. Mockito cannot mock a final class from the AWS SDK. Copilot correctly identifies the cause and explains the proper fix without trying to guess or to patch it automatically. That's exactly what you want from a modernization tool. Second, Copilot identifies known CVEs in the here you Spring versions. But because we explicitly excluded the Java and Spring upgrade, Copilot also explains that these vulnerabilities cannot be fixed within the current constraints. Again, no silent changes, no unsafe assumptions. This is what customizing modernization tasks really means. You tell Copilot what is allowed, what is blocked, and what must be verified, and Copilot operates entirely within those boundaries. Modernization isn't always about making changes. Sometimes it's about proving that now's not the right moment, and having the confidence to move forward with that knowledge. In the next episode, we'll take the next step and look at how to unlock a sequence higher impact modernization tasks once the prerequisites are met. But it always starts here, with clarity, constraints, and developer control. Like and subscribe to not miss the next episodes, and check out GitHub Copilot modernization in your IDE of choice.

Original Description

Not every modernization step should happen at once — and sometimes the right move is proving that now isn't the time. In this episode, learn how to customize GitHub Copilot's modernization tasks to match your team's real constraints: excluding risky upgrades, breaking work into smaller reviewable steps, and validating the current state before changing anything. In this episode, you'll learn: → How GitHub Copilot generates editable modernization task lists — a first draft, not a final decision → How to set explicit constraints — telling Copilot what NOT to do (e.g., exclude Java and Spring upgrades) → How to break large upgrades into smaller, reviewable tasks that match your team's risk tolerance → How to add custom requirements to the task list, just like a real engineering backlog → How Copilot handles pre-existing issues (like a failing Mockito test) without silently patching them → How Copilot surfaces CVEs while respecting your constraints — no silent changes, no unsafe assumptions 📺 This is Episode 5 of the Modernize Java Apps with AI series — a 9-part, hands-on guide to upgrading legacy Java applications using GitHub Copilot. 🔗 Series playlist: https://www.youtube.com/playlist?list=PLlrxD0HtieHhaBJWlcxGd-kTDikSD4xyD 🔗 GitHub Copilot Modernization extension: https://aka.ms/GHCPMod-Java 👤 Presented by Sandra Ahlgrimm, Java & AI Advocate, Microsoft Java #GitHubCopilot #JavaModernization #CustomTasks #CVE #DeveloperWorkflow #AI #EnterpriseJava #LegacyCode #ModernizationStrategy
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Related Reads

📰
AI Server Cooling Evolution: From Air Cooling to System-Level Thermal Engineering
Learn about the evolution of AI server cooling from air cooling to system-level thermal engineering and its significance in computing infrastructure
Medium · AI
📰
I Would Not Mind Being Stuck on Opus 4.8 Forever
Learn how AI can significantly reduce costs with efficient token utilization, a crucial aspect of AI project management
Medium · AI
📰
How I Built a Free Online Image & PDF Processing Platform with Vue 3 + FastAPI
Learn how to build a free online image and PDF processing platform using Vue 3 and FastAPI, and discover the benefits of combining these technologies for efficient file processing
Dev.to · IAMUU
📰
I Built a Free AI-Powered YouTube SEO Toolkit With Zero Budget. Here’s What Actually Happened.
Learn how a solo dev built a free AI-powered YouTube SEO toolkit with zero budget and the lessons they learned from the experience
Medium · Startup
Up next
How to Build Trusted Knowledge Platforms in the AI Era | Charles (Zapnito)
AI InterConnect
Watch →