ELM migrations: status compatibility, create-flow enhancements, and device auth UX#1494
Open
bhuvanshahMSFT wants to merge 18 commits intoAzure:masterfrom
Open
ELM migrations: status compatibility, create-flow enhancements, and device auth UX#1494bhuvanshahMSFT wants to merge 18 commits intoAzure:masterfrom
bhuvanshahMSFT wants to merge 18 commits intoAzure:masterfrom
Conversation
- Add --github-token and ELM_GITHUB_TOKEN fallback - Run GitHub device flow when token is not provided - Keep target-owner-user-id optional for FF-off compatibility - Add deviceFlowConfig endpoint fallback support - Expand migration auth edge-case tests - Update ELM docs for token/device-flow create behavior
- Translate generic 409 TF400898 during migration create into a clear active-migration message - Keep non-conflict errors unchanged - Add regression tests for conflict mapping and pass-through behavior
- Add troubleshooting entry in migrations.md - Add pitfall row and dedicated 409 section in elm_migrations_tsg.md
- Show PAT guidance when both device-flow config endpoints return 404 - Validate interval/expires_in as positive integers and fail with explicit invalid response errors - Add regression tests for new fallback and validation behavior
- Map 401/403 to generic app/service-unavailable message - Preserve PAT fallback guidance in message - Add unit test coverage for HTTP 401 handling
- Enforce target repository format as https://host/org/repo client-side - Prefer PreCheckIssueType/validation issue messages from response body for CLI errors - Keep non-TF400898 409 handling unchanged - Add regression tests for new validation and error-detail extraction
Add is_preview for migrations command groups and align help/docs with preview and limited-availability messaging.
Contributor
Author
|
Reviewer context: this change is metadata and docs only. It marks ELM migration command groups as Preview to reflect current limited 1P or allowlisted availability. Existing CLI usage is unchanged for eligible users; non-eligible users continue to be governed by service-side access controls. |
…nal status handling
…resume error messages
…se Server migrations
Contributor
Author
|
Update after branch refresh: This PR branch now includes the merged ELM migration functional updates (not just preview metadata):
If preferred, I can update PR title/description to match this expanded scope for easier review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR now includes the combined ELM migrations updates for preview labeling, status compatibility, create-flow enhancements, and device auth UX.
What Changed
succeededandcompletedas success terminal states.--service-endpoint-idpassthrough asserviceEndpointId(camelCase).--github-tokensupport.ELM_GITHUB_TOKEN, then falls back to GitHub device flow.Validation
azure_devops-1.0.4-py2.py3-none-any.whl.--service-endpoint-id,--github-token).Notes
serviceEndpointIdis sent only when provided.