Skip to content

Commit c0ad9b8

Browse files
Merge pull request #8892 from MicrosoftDocs/main
Auto Publish – main to live - 2026-04-17 17:00 UTC
2 parents cb4a4ce + 88e42d9 commit c0ad9b8

23 files changed

Lines changed: 680 additions & 262 deletions

articles/github-copilot-app-modernization/index.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ landingContent:
2727
- text: Java FAQ
2828
url: ../java/migration/migrate-github-copilot-app-modernization-for-java-faq.yml?toc=/azure/developer/github-copilot-app-modernization/toc.json&bc=/azure/developer/github-copilot-app-modernization/breadcrumb/toc.json
2929
- text: .NET overview
30-
url: /dotnet/core/porting/github-copilot-app-modernization-overview?toc=/azure/developer/github-copilot-app-modernization/toc.json&bc=/azure/developer/github-copilot-app-modernization/breadcrumb/toc.json
30+
url: /dotnet/core/porting/github-copilot-app-modernization/overview?toc=/azure/developer/github-copilot-app-modernization/toc.json&bc=/azure/developer/github-copilot-app-modernization/breadcrumb/toc.json
3131
- text: .NET FAQ
32-
url: /dotnet/core/porting/github-copilot-app-modernization-faq?toc=/azure/developer/github-copilot-app-modernization/toc.json&bc=/azure/developer/github-copilot-app-modernization/breadcrumb/toc.json
32+
url: /dotnet/core/porting/github-copilot-app-modernization/faq?toc=/azure/developer/github-copilot-app-modernization/toc.json&bc=/azure/developer/github-copilot-app-modernization/breadcrumb/toc.json
3333
- title: "CLI: Modernization agent"
3434
linkLists:
3535
- linkListType: overview
@@ -49,7 +49,7 @@ landingContent:
4949
- text: Batch assessment
5050
url: modernization-agent/batch-assess.md
5151
- text: Batch upgrade
52-
url: modernization-agent/batch-upgrade.md
52+
url: modernization-agent/batch-upgrade.md
5353
- text: Customization
5454
url: modernization-agent/customization.md
5555
- text: CI/CD integration
135 KB
Loading
10.4 KB
Loading
-6.05 KB
Loading
-99.5 KB
Loading
12.1 KB
Loading
-54.1 KB
Loading

articles/github-copilot-app-modernization/modernization-agent/batch-assess.md

Lines changed: 154 additions & 37 deletions
Large diffs are not rendered by default.

articles/github-copilot-app-modernization/modernization-agent/batch-upgrade.md

Lines changed: 84 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: karler
66
ms.reviewer: jessiehuang
77
ms.topic: how-to
88
ai-usage: ai-assisted
9-
ms.date: 03/11/2026
9+
ms.date: 04/17/2026
1010
---
1111

1212
# Batch upgrade with the GitHub Copilot modernization agent
@@ -46,11 +46,21 @@ Batch upgrade provides the following benefits:
4646
4747
## Configure repositories
4848

49-
To enable batch upgrade, create a `.github/modernize/repos.json` file in your working directory that lists all repositories you want to upgrade.
49+
The modernization agent supports multiple ways to specify the repositories you want to upgrade:
50+
51+
- **Current folder**: Upgrade the project in your current working directory.
52+
- **Manual input**: Enter local directory paths or remote Git URLs directly.
53+
- **Repository config file**: Use a JSON config file that lists all repositories.
54+
55+
### Repository config file
56+
57+
For batch operations across many repositories, create a JSON config file to list all repositories. For example, create it at `.github/modernize/repos.json` in your working directory, or provide a custom path.
5058

5159
> [!TIP]
5260
> For sample repositories, fork them first and make sure you have admin permission to delegate the job to Cloud Coding Agents.
5361
62+
**Simple format** (array of repositories):
63+
5464
```json
5565
[
5666
{
@@ -64,21 +74,38 @@ To enable batch upgrade, create a `.github/modernize/repos.json` file in your wo
6474
]
6575
```
6676

67-
### Repository configuration
77+
**Full format** (with branch and local paths):
6878

69-
Each entry requires:
79+
```json
80+
{
81+
"repos": [
82+
{
83+
"name": "PhotoAlbum-Java",
84+
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git",
85+
"branch": "main"
86+
},
87+
{
88+
"name": "local-project",
89+
"path": "/absolute/path/to/project"
90+
}
91+
]
92+
}
93+
```
94+
95+
Each repo entry supports the following fields:
7096

71-
- **name**: A friendly name for the repository (used in reports and dashboards).
72-
- **url**: The Git clone URL (HTTPS format).
97+
| Field | Description | Required |
98+
|---------------|----------------------------------------------------------------------|------------------------|
99+
| `name` | A friendly name for the repository (used in reports and dashboards). | Yes |
100+
| `url` | Git clone URL in HTTPS or SSH format. | One of `url` or `path` |
101+
| `path` | Absolute local directory path. | One of `url` or `path` |
102+
| `branch` | Branch to check out after cloning. | No |
103+
| `description` | Human-readable description. | No |
73104

74105
> [!TIP]
75106
> You can include repositories from different organizations and use different authentication methods as long as you have access.
76107
77-
### File location
78-
79-
You must place the `repos.json` file at `.github/modernize/repos.json`.
80-
81-
The modernization agent automatically detects this file when running batch operations.
108+
The modernization agent automatically detects the `repos.json` file at `.github/modernize/repos.json` when you select **From a config file** in interactive mode. You can also provide a custom path.
82109

83110
## Choose your execution mode
84111

@@ -91,12 +118,17 @@ Batch upgrade supports two execution modes and two interaction methods:
91118
- **Best for**: Testing, smaller sets of repositories (1-5 repos), or when you prefer local control.
92119
- **How it works**: Processes repositories sequentially on your local machine.
93120
- **Setup required**: None beyond the basic prerequisites.
121+
- **Supports**: Both Git URL and local path repositories.
94122

95123
**Cloud Coding Agent delegation**
96124

97125
- **Best for**: Enterprise-scale operations, large portfolios (5+ repos), or parallel processing.
98126
- **How it works**: Submits tasks to GitHub Cloud Coding Agents for parallel execution in the cloud.
99127
- **Setup required**: MCP server configuration in each repository (configured during setup).
128+
- **Supports**: Only repositories with GitHub (github.com) URLs. Local paths and non-GitHub providers aren't supported.
129+
130+
> [!IMPORTANT]
131+
> Cloud Coding Agent delegation requires repositories to have **GitHub (github.com) repository URLs**. Repositories specified with local paths or hosted on non-GitHub providers (GitLab, Azure DevOps) are skipped during cloud delegation. Use local execution for those repositories.
100132
101133
> [!TIP]
102134
> By processing repositories in parallel, Cloud Coding Agent delegation can reduce total modernization time from hours to minutes.
@@ -118,10 +150,10 @@ Batch upgrade supports two execution modes and two interaction methods:
118150
> [!NOTE]
119151
> You can combine any execution mode with any interaction method. For example:
120152
>
121-
> - `modernize` (interactive, local)
122-
> - `modernize` → select Cloud Coding Agents (interactive, cloud)
123-
> - `modernize upgrade "Java 21"` (non-interactive, local)
124-
> - `modernize upgrade "Java 21" --delegate cloud` (non-interactive, cloud)
153+
> - `modernize` → select Upgrade (interactive, local)
154+
> - `modernize` → select Upgrade → Delegate to Cloud Agents (interactive, cloud)
155+
> - `modernize upgrade "Java 21" --source ./repos.json` (non-interactive, local)
156+
> - `modernize upgrade "Java 21" --source ./repos.json --delegate cloud` (non-interactive, cloud)
125157
126158
## How batch upgrade works
127159

@@ -144,23 +176,31 @@ After you configure your repositories and choose an execution mode, start the ba
144176
modernize
145177
```
146178

147-
1. The agent detects the `repos.json` file and displays the repository list:
179+
1. Select **Upgrade** from the main menu.
148180

149-
:::image type="content" source="../media/modernization-agent/upgrade-repo-list.png" alt-text="Screenshot of Modernize CLI that shows the Choose repositories list in the terminal." lightbox="../media/modernization-agent/upgrade-repo-list.png":::
181+
:::image type="content" source="../media/modernization-agent/upgrade-menu.png" alt-text="Screenshot of Modernize CLI that shows the main menu with the Upgrade option in the terminal." lightbox="../media/modernization-agent/upgrade-menu.png":::
150182

151-
1. Select repositories to upgrade, and press `Enter` to confirm your selection.
183+
1. Choose how to specify your target repositories. Select **From a config file** to use a `repos.json` file.
152184

153-
- **Press `Ctrl+A`** to select all repositories.
154-
- **Or use arrow keys** to navigate and press `Enter` to select individual repositories.
185+
:::image type="content" source="../media/modernization-agent/source-type-selection.png" alt-text="Screenshot of Modernize CLI that shows the source type selection in the terminal." lightbox="../media/modernization-agent/source-type-selection.png":::
155186

156-
1. Select **2. Upgrade** from the main menu.
187+
> [!TIP]
188+
> You can also select **Manual input** to enter local paths or remote Git URLs directly, or **Current folder** to upgrade the project in your current directory.
157189
158-
:::image type="content" source="../media/modernization-agent/upgrade-menu.png" alt-text="Screenshot of Modernize CLI that shows the Upgrade Runtime & Framework menu option in the terminal." lightbox="../media/modernization-agent/upgrade-menu.png":::
190+
1. If the `repos.json` file is detected at the default location, the agent automatically fills it in. Otherwise, enter the path to your config file and press <kbd>Enter</kbd>.
159191

160-
1. To run the upgrade, select **1. Upgrade locally**.
192+
1. All repositories are selected by default. Deselect any repositories you want to skip, and then press <kbd>Enter</kbd> to confirm your selection.
193+
194+
- **Use arrow keys** to navigate and press <kbd>Space</kbd> to toggle individual repositories.
195+
196+
:::image type="content" source="../media/modernization-agent/upgrade-repo-list.png" alt-text="Screenshot of Modernize CLI that shows the Choose repositories list in the terminal." lightbox="../media/modernization-agent/upgrade-repo-list.png":::
197+
198+
1. Choose the execution mode. Select **Upgrade locally**.
161199

162200
:::image type="content" source="../media/modernization-agent/upgrade-local-option.png" alt-text="Screenshot of Modernize CLI that shows the Upgrade locally menu option in the terminal." lightbox="../media/modernization-agent/upgrade-local-option.png":::
163201

202+
1. Enter the upgrade target prompt (for example, `Java 21` or `.NET 10`) or press <kbd>Enter</kbd> to accept the default (latest LTS version).
203+
164204
1. The agent automatically:
165205

166206
- Creates an upgrade plan based on your request.
@@ -206,21 +246,26 @@ Before running the upgrade, configure the GitHub Copilot Modernization MCP Serve
206246
modernize
207247
```
208248

209-
1. The agent detects the `repos.json` file and displays the repository list:
249+
1. Select **Upgrade** from the main menu.
210250

211-
:::image type="content" source="../media/modernization-agent/upgrade-repo-list.png" alt-text="Screenshot of Modernize CLI that shows the repository list in terminal." lightbox="../media/modernization-agent/upgrade-repo-list.png":::
251+
:::image type="content" source="../media/modernization-agent/upgrade-menu.png" alt-text="Screenshot of Modernize CLI that shows the main menu with the Upgrade option in the terminal." lightbox="../media/modernization-agent/upgrade-menu.png":::
212252

213-
1. Select repositories to upgrade, and press `Enter` to confirm your selection.
253+
1. Choose how to specify your target repositories. Select **From a config file**.
214254

215-
- **Press `Ctrl+A`** to select all repositories.
216-
- **Or use arrow keys** to navigate and press `Enter` to select individual repositories.
255+
:::image type="content" source="../media/modernization-agent/source-type-selection.png" alt-text="Screenshot of Modernize CLI that shows the source type selection in the terminal." lightbox="../media/modernization-agent/source-type-selection.png":::
217256

218-
1. Select **2. Upgrade** from the main menu.
257+
1. If the `repos.json` file is detected at the default location, the agent automatically fills it in. Otherwise, enter the path to your config file and press <kbd>Enter</kbd>.
219258

220-
1. To run the upgrade, select **2. Delegate to Cloud Coding Agents**.
259+
1. All repositories are selected by default. Deselect any repositories you want to skip, and then press <kbd>Enter</kbd> to confirm your selection. Use arrow keys to navigate and press <kbd>Space</kbd> to toggle individual repositories.
260+
261+
:::image type="content" source="../media/modernization-agent/upgrade-repo-list.png" alt-text="Screenshot of Modernize CLI that shows the repository list in terminal." lightbox="../media/modernization-agent/upgrade-repo-list.png":::
262+
263+
1. Choose the execution mode. Select **Delegate to Cloud Agents**.
221264

222265
:::image type="content" source="../media/modernization-agent/upgrade-delegate-option.png" alt-text="Screenshot of Modernize CLI that shows the Delegate to Cloud Coding Agents menu option in the terminal." lightbox="../media/modernization-agent/upgrade-delegate-option.png":::
223266

267+
1. Enter the upgrade target prompt (for example, `Java 21`) or press <kbd>Enter</kbd> to accept the default.
268+
224269
1. The agent automatically:
225270

226271
- Creates upgrade plans for each repository.
@@ -246,19 +291,23 @@ Before running the upgrade, configure the GitHub Copilot Modernization MCP Serve
246291

247292
For automation and CI/CD integration, use the `modernize upgrade` command:
248293

249-
**Upgrade locally:**
294+
**Upgrade locally using a repository config file:**
250295

251296
```bash
252-
modernize upgrade "Java 21"
297+
modernize upgrade "Java 21" --source .github/modernize/repos.json
253298
```
254299

255-
**Upgrade using Cloud Coding Agents:**
300+
**Upgrade multiple repositories by specifying sources directly:**
256301

257302
```bash
258-
modernize upgrade "Java 21" --delegate cloud
303+
modernize upgrade "Java 21" --source https://github.com/org/repo1 --source https://github.com/org/repo2
259304
```
260305

261-
The command automatically detects the `repos.json` file and processes all repositories.
306+
**Upgrade using Cloud Coding Agents:**
307+
308+
```bash
309+
modernize upgrade "Java 21" --source .github/modernize/repos.json --delegate cloud
310+
```
262311

263312
> [!NOTE]
264313
> For batch headless execution and more CLI options, see the [Multi-repository configuration](cli-commands.md#multi-repository-configuration) section in the CLI commands reference.

0 commit comments

Comments
 (0)