Henrydai/implement changesafety crud for 2026-01-01-preview after changeRecord renaming#9357
Henrydai/implement changesafety crud for 2026-01-01-preview after changeRecord renaming#9357henryzdai wants to merge 29 commits intoAzure:mainfrom
Conversation
|
Validation for Breaking Change Starting...
Thanks for your contribution! |
|
Thank you for your contribution! We will review the pull request and get back to you soon. |
|
The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR. Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions). pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>
|
CodeGen Tools Feedback CollectionThank you for using our CodeGen tool. We value your feedback, and we would like to know how we can improve our product. Please take a few minutes to fill our codegen survey |
|
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new Azure CLI extension for managing ChangeState resources through the ChangeSafety service. The extension provides CRUD operations (create, update, show, delete) for ChangeState resources at both subscription and resource group levels.
- Adds Azure CLI extension structure with generated AAZ commands and custom implementations
- Implements target parsing with key=value format and supports aliases (e.g.,
rgforresourceGroupName,operationforhttpMethod) - Includes comprehensive unit tests for target parsing and change definition handling
Reviewed Changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| setup.py | Package setup configuration for the change-state extension |
| azext_change_state/custom.py | Custom command implementations with target parsing and change definition injection logic |
| azext_change_state/commands.py | Command registration logic |
| azext_change_state/tests/latest/test_change_state.py | Unit tests for custom command functionality |
| azext_change_state/aaz/latest/change_safety/change_state/*.py | Generated AAZ command implementations for CRUD operations |
| azext_change_state/init.py | Extension loader implementation |
| HISTORY.rst | Release history for version 1.0.0b1 |
| README.md | Extension documentation |
|
/azp run |
|
Azure Pipelines successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command. |
|
/azp run |
|
Azure Pipelines successfully started running 2 pipeline(s). |
|
/azp run |
|
Commenter does not have sufficient privileges for PR 9357 in repo Azure/azure-cli-extensions |
|
/azp run |
|
Azure Pipelines successfully started running 2 pipeline(s). |
- Add missing help entry for 'changerecord list' command - Update Python classifiers to 3.9-3.12 (drop EOL 3.7/3.8) - Expand HISTORY.rst with feature details and ChangeState->ChangeRecord rename - Update test recording to use eastus2euap ARM endpoint Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…mple, sanitize email in recording - Add help entries for stageprogression group/create/update/show/delete/list - Add stagevariables example to stagemap create help - Replace henrydai@microsoft.com with johndoe@example.com in test recording Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Test recordings were captured against eastus2euap.management.azure.com (canary) but CI runs against management.azure.com (prod). VCR host matcher fails. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tion - Fix _append_or_set_element to concatenate values with comma instead of overwriting existing key-value pairs (fixes test_normalize_targets) - Add _safe_subscription_id helper to handle CI environment where cmd.ctx.subscription_id throws CLIError (no az login session) - Change ChangeSafetyLiveScenario base class to LiveScenarioTest so live-only tests are properly skipped in CI (fixes acquire_token error) All 3 CI failures from build 309298 are resolved: - test_normalize_targets_from_operations: PASSED (was assertion error) - test_change_record_crud_scenario: PASSED (was CLIError: az login) - test_default_schedule_times_applied_on_create: PASSED (was CLIError) - test_changesafety_full_scenario: SKIPPED (correctly, via @live_only) Local verification: azdev test/style/linter all passed (19 passed, 1 skipped) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
c24579e to
3b93a8e
Compare
Support for managing Microsoft.ChangeSafety/ChangeRecrods, Microsoft.ChangeSafety/StageMaps and Microsoft.ChangeSafety/changeRecords/StageProgressions, including creating, updating, showing, and deleting resources.
This checklist is used to make sure that common guidelines for a pull request are followed.
Related command
General Guidelines
azdev style <YOUR_EXT>locally? (pip install azdevrequired)python scripts/ci/test_index.py -qlocally? (pip install wheel==0.30.0required)For new extensions:
About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update
src/index.jsonautomatically.You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify
src/index.json.