-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Henrydai/implement change state crud0901 #9357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Henrydai/implement change state crud0901 #9357
Conversation
…ngeState' into henrydai/implementChangeStateCRUD0901
…ngeState' into henrydai/implementChangeStateCRUD0901
|
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 |
|
…ngeState' into henrydai/implementChangeStateCRUD0901
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
| =============== | ||
|
|
||
| 1.0.0b1 | ||
| ++++++ |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The separator line should use + symbols matching the length of the version string. '1.0.0b1' is 7 characters but only 7 + symbols are shown (correct). However, there's a formatting issue - line 7 shows '0' instead of continuing the separator.
| ++++++ | |
| +++++++ |
| key_mapping = { | ||
| 'resourceid': 'resourceId', | ||
| 'subscriptionid': 'subscriptionId', | ||
| 'resourcegroupname': 'resourceGroupName', | ||
| 'resourcegroup': 'resourceGroupName', | ||
| 'rg': 'resourceGroupName', |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pre_instance_create method contains only a comment and pass statement. If this method serves no functional purpose, it should be removed. If it's a placeholder for future functionality, add a TODO comment explaining what needs to be implemented.
| error_message = ( | ||
| "Each --targets entry must be in key=value format. " | ||
| f"Invalid: '{segment}'" | ||
| ) | ||
| raise InvalidArgumentValueError(error_message) | ||
|
|
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pre_instance_update method contains only a comment and pass statement. If this method serves no functional purpose, it should be removed. If it's a placeholder for future functionality, add a TODO comment explaining what needs to be implemented.
| 'resourcetype': 'resourceType', | ||
| 'resourcename': 'resourceName', | ||
| 'httpmethod': 'httpMethod', | ||
| 'method': 'httpMethod', # Allow shorter alias |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment 'Optionally inject targets schema into result if needed' suggests incomplete implementation. Either implement the functionality or remove the misleading comment if the targets injection is intentionally not needed for the Show command.
|
/azp run |
|
Azure Pipelines successfully started running 2 pipeline(s). |
| class ChangeStateScenario(ScenarioTest): | ||
| # TODO: add tests here | ||
| pass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CodeGen tool just generated all the test steps, you need to call those scenarios here to make test effective. By then, you will need to record test and commit the recording yaml file.
Support for managing Microsoft.ChangeSafety/ChangeState, including creating, updating, showing, and deleting changeState 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.