Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions docs/azure/migration/appmod/copilot-cli-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: Migrate .NET Apps to Azure Using GitHub Copilot App Modernization in Copilot CLI
description: Provides an overview of how .NET developers can migrate applications to Azure using GitHub Copilot App Modernization in the Copilot CLI.
ms.topic: concept-article
ms.custom: devx-track-dotnet
ms.date: 11/11/2025
author: alexwolfmsft
ms.author: alexwolf
ms.reviewer: jessiehuang
---

# Migrate .NET Apps to Azure Using GitHub Copilot App Modernization in Copilot CLI

## Overview

This article provides an overview of how .NET developers can migrate their applications to Azure using **GitHub Copilot App Modernization** within the [**Copilot CLI**](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli), enabling them to modernize applications wherever they code. It’s currently in public preview — give it a try and let us know if any [feedback](https://aka.ms/ghcp-appmod/feedback).
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "give it a try and let us know if any [feedback]" uses passive construction. Per the Markdown style guidelines, use active voice and imperative mood. Rephrase to "Try it out and share your [feedback]" or "Try it and let us know your [feedback]".

Copilot generated this review using guidance from repository custom instructions.
:::image type="content" source="./media/copilot-cli-entrance.png" lightbox="./media/copilot-cli-entrance.png" alt-text="Screenshot of app mod entrance in Copilot CLI":::

>[!NOTE]
>GitHub Copilot CLI is available with the GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business and GitHub Copilot Enterprise plans.
>If you receive Copilot from an organization, the Copilot CLI policy must be enabled in the organization's settings.

## Why Use Copilot CLI with App Modernization
- Run modernization tasks directly from the terminal — no need to switch to an IDE
- Supports both interactive (human-in-the-loop) and batch workflows
Comment on lines +23 to +25
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list items lack periods. Per the Markdown style guidelines, list items with more than three words must end with periods. Add periods to both list items.

Copilot generated this review using guidance from repository custom instructions.

## Prerequisites
- [Install Copilot CLI](https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli)
- A GitHub Copilot subscription, See [Copilot plans](https://github.com/features/copilot/plans?ref_product=copilot)
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incorrect capitalization after comma. Change "See" to "see" (lowercase).

Copilot generated this review using guidance from repository custom instructions.
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at end of list item. Per the Markdown style guidelines, list items with more than three words must end with periods.

Copilot generated this review using guidance from repository custom instructions.
- Node.js version 22 or later
- npm version 10 or later

## Getting Started
1. In your terminal, navigate to the .NET project folder containing the code you want to work on.
2. Enter `copilot` to start Copilot CLI.
```
copilot
```
Copilot will ask you to confirm that you trust the files in this folder. Refer to [Using Copilot CLI](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli#trusted-directories)
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at end of the sentence after the link. Add a period after the closing parenthesis of the link.

Copilot generated this review using guidance from repository custom instructions.
Choose one of the options:
Comment on lines +38 to +39
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing blank line between the paragraph and the list that follows. Per the Markdown style guidelines, add blank lines around Markdown elements. Add a blank line after line 40 before the list begins.

Copilot generated this review using guidance from repository custom instructions.
- Yes, proceed: Copilot can work with the files in this location for this session only.
- Yes, and remember this folder for future sessions: You trust the files in this folder for this and future sessions. You won't be asked again when you start Copilot CLI from this folder. Only choose this option if you are sure that it will always be safe for Copilot to work with files in this location.
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The contraction "won't" should be "won't" (the documentation uses "will not" concepts). However, per the Markdown style guidelines, use common contractions. The issue here is using "You won't" instead of imperative. Consider rephrasing to maintain imperative mood.

Copilot generated this review using guidance from repository custom instructions.
- No, exit (Esc): End your Copilot CLI session.
Comment on lines +40 to +42
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list item text uses "you" as the subject rather than imperative mood. Per the Markdown style guidelines, use imperative mood for instructions. Change "You trust" to "Trust" and "You won't" to "You'll not" or rephrase to maintain imperative voice where possible.

Copilot generated this review using guidance from repository custom instructions.
3. You can add MCP servers by running `/mcp add` in Copilot CLI according to the configuration below, here is an example of adding .NET migration MCP:
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "You can add" is weak and should be imperative. Per the Markdown style guidelines, use imperative mood for instructions. Change to "Add MCP servers by running..." Additionally, "here is" is a weak phrase that should be avoided. Rephrase to "Add MCP servers by running /mcp add in Copilot CLI according to the configuration below. The following example adds the .NET migration MCP:"

Copilot generated this review using guidance from repository custom instructions.
```
/mcp add net-migrate
```
Or by manually updating the `~/.config/mcp-config.json` file with the following info. Refer to [Add an MCP server](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli#add-an-mcp-server)
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The word "info" is informal. Use the full word "information" instead.

Copilot generated this review using guidance from repository custom instructions.
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at end of the sentence after the link. Add a period after the closing parenthesis of the link.

Copilot generated this review using guidance from repository custom instructions.
```
{
"mcpServers": {
"dotnet-migrate": {
"type": "local",
"tools": [
"*"
],
"command": "npx",
"args": [
"-y",
"net-migrate" // TODO: update to actual package name
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TODO comment indicates incomplete documentation. The actual package name should be confirmed and updated before merging.

Suggested change
"net-migrate" // TODO: update to actual package name
"net-migrate"

Copilot uses AI. Check for mistakes.
]
}
}
}
```
You can run `/mcp show` to verify the MCP servers are correctly configured.
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "You can run" is weak. Per the Markdown style guidelines, use imperative mood for instructions. Change to "Run /mcp show to verify the MCP servers are correctly configured."

Copilot generated this review using guidance from repository custom instructions.
```
/mcp show
```
4. Execute the migration task in Copilot CLI
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at end of the numbered list item heading. Per the Markdown style guidelines, list items with more than three words must end with periods.

Copilot generated this review using guidance from repository custom instructions.
To migrate your .NET application to Azure, describe your migration scenario in Copilot CLI.
For details on predefined migration tasks, see [migration tasks](predefined-tasks.md)
Comment on lines 79 to 81
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at end of sentence after the link. Add a period after the closing parenthesis.

Copilot generated this review using guidance from repository custom instructions.
For example:
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing blank line between the paragraph and the code block that follows. Per the Markdown style guidelines, add blank lines around Markdown elements.

Copilot generated this review using guidance from repository custom instructions.
```
Migrate this app from local file IO to Azure Blob Storage
```

Then the migration task will be executed and showing progress in Copilot CLI
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammatical error. The phrase "will be executed and showing" mixes future tense with present participle incorrectly. Change to "Then the migration task is executed and shows progress in Copilot CLI" or "The migration task executes and shows progress in Copilot CLI."

Copilot generated this review using guidance from repository custom instructions.
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing period at end of the sentence. Per the Markdown style guidelines, add a period at the end.

Copilot generated this review using guidance from repository custom instructions.
:::image type="content" source="./media/migrate-details.png" lightbox="./media/migrate-details.png" alt-text="Screenshot of migrating .NET in Copilot CLI":::

The project has been successfully migrated to Azure, with below summary:
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awkward phrasing. Change "with below summary" to "with the following summary" for clarity and proper grammar.

Copilot generated this review using guidance from repository custom instructions.
:::image type="content" source="./media/migrate-summary.png" lightbox="./media/migrate-summary.png" alt-text="Screenshot of migrating .NET summary in Copilot CLI":::

## Provide Feedback
If you have any feedback about GitHub Copilot CLI, please let us know your [feedback](https://aka.ms/AM4DFeedback).

## Reference
- [Using GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli#using-copilot-cli).
Copy link

Copilot AI Nov 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

List items should not end with periods when they are single links or fewer than three words. However, this contains more than three words as the link text, so the period is appropriate. The issue is the period should be outside the link, not as part of the markdown. Move the period outside the closing parenthesis to after it (already correct in the code). Actually reviewing more carefully, the period is already correctly placed outside. No change needed. However, for list items that are just links, the guideline is that list items with more than three words need periods. Since this is a single reference link, consider if this should have a period - reviewing the guidelines, yes it should since it's more than three words.

Copilot generated this review using guidance from repository custom instructions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.