Skip to content

Add ELM migrations commands#1481

Merged
v-soujanya merged 32 commits intoAzure:masterfrom
bhuvanshahMSFT:feature/elm-cli
Apr 16, 2026
Merged

Add ELM migrations commands#1481
v-soujanya merged 32 commits intoAzure:masterfrom
bhuvanshahMSFT:feature/elm-cli

Conversation

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor

@bhuvanshahMSFT bhuvanshahMSFT commented Mar 3, 2026

What

  • Add az devops migrations command group for ELM (ADO -> GitHub Proxima) migrations.
  • Include create/status/list/pause/resume/migrate/cutover/abandon flows.
  • Add validations and formatting.
  • Add --agent-pool-name and --skip-validation to create.
  • Normalize optional create fields (trim, omit empty values).
  • Update help and unit tests for optional fields.

Why

  • Enable scripted live migration workflows via Azure DevOps CLI extension.

Testing

  • pytest azext_devops/tests/latest/migration/test_migration.py

Notes

  • Uses devfabric endpoint; --org is used for auth resolution.
  • Target repo URL must be https://microsoft.ghe.com/OrgName/RepoName.
  • Full pytest currently has unrelated failures in boards/repos auth validation tests.

@GeoffCoxMSFT
Copy link
Copy Markdown

@v-anvashist @V-hmusukula @v-soujanya I had trouble finding your MSFT aliases, so please let me (gcox) know you've received this. This PR is related to a new REST API endpoint the 1ES team is adding to ADO. Could you kindly review/approve it as soon as possible as we are expecting to ship this quarter. We also need to understand how and when this repository releases. Thanks!

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

bhuvanshahMSFT commented Mar 4, 2026

@microsoft-github-policy-service agree company="Microsoft"

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

Summary:

  • Add optional create args agentPoolName and skipValidation with trimming/omission of empty values.
  • Update help for the new flags.
  • Add unit tests covering optional fields and trimming.

Tests:

  • pytest azext_devops/tests/latest/migration/test_migration.py

Notes:

  • Full pytest currently has existing failures in boards/repos auth validation tests (unrelated).

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

Style check fix:

  • Resolve flake8 E129 by simplifying the command check in azext_devops/init.py.
  • Suppress pylint W0212 for ServiceClient creds access in migration client.
  • Exclude local env/venv folders in .flake8 to avoid scanning local environments.

Local: scripts/runStyleCheck.ps1 (pylint OK, flake8 OK).

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

Updates in this push:

  • Merge latest master (includes macOS CI fixes).
  • Migrations now accept target repositories on github.com and any *.ghe.com host.
  • Help YAML fixed (quoted long-summary) to avoid YAML parsing error in �z devops migrations -h.
  • Added ELM migrations TSG: doc/elm_migrations_tsg.md.
  • Migration tests updated; local run: azext_devops/tests/latest/migration/test_migration.py (12 passed).

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

Added a command reference section to doc/migrations.md to cover the updated migration commands. Commit: 95688f4.

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

Updated BuildWheel task in .vscode/tasks.json to run on Windows by using python from the repo env PATH (fixes path-with-spaces issues). Commit: b51113c.

@bhuvanshahMSFT
Copy link
Copy Markdown
Contributor Author

Fixed markdownlint failures by adding blank lines around lists/code blocks in doc/elm_migrations_tsg.md and correcting nested list indentation in doc/migrations.md. Commit: 9d7a0ff.

@v-soujanya
Copy link
Copy Markdown
Collaborator

Hi @bhuvanshahMSFT Can you fix the entire set of lint errors and make sure checks are green?

@v-soujanya
Copy link
Copy Markdown
Collaborator

Hi @bhuvanshahMSFT still there is a failure on lint checks. Could you please take look on this on recent run
image

Copy link
Copy Markdown

@bhaveshbhati bhaveshbhati left a comment

Choose a reason for hiding this comment

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

Code review comments.

d = d.replace(tzinfo=tzlocal())
d = d.isoformat()
return d
return d.isoformat()
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Do we need this change ?

@v-soujanya v-soujanya merged commit 75ab14d into Azure:master Apr 16, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants