Skip to content

[ACR] BREAKING CHANGE: az acr export-pipeline create: Add --storage-access-mode argument#9762

Open
nguyenm2151 wants to merge 31 commits intoAzure:mainfrom
nguyenm2151:main
Open

[ACR] BREAKING CHANGE: az acr export-pipeline create: Add --storage-access-mode argument#9762
nguyenm2151 wants to merge 31 commits intoAzure:mainfrom
nguyenm2151:main

Conversation

@nguyenm2151
Copy link
Copy Markdown
Contributor


This checklist is used to make sure that common guidelines for a pull request are followed.

Related command

General Guidelines

  • Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
  • Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
  • My extension version conforms to the Extension version schema

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.json automatically.
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.

@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd bot commented Apr 7, 2026

❌Azure CLI Extensions Breaking Change Test
❌acrtransfer
rule cmd_name rule_message suggest_message
1006 - ParaAdd acr export-pipeline create cmd acr export-pipeline create added parameter storage_access_mode please remove parameter storage_access_mode for cmd acr export-pipeline create
1006 - ParaAdd acr import-pipeline create cmd acr import-pipeline create added parameter storage_access_mode please remove parameter storage_access_mode for cmd acr import-pipeline create
⚠️ 1004 - CmdPropRemove acr export-pipeline create cmd acr export-pipeline create removed property deprecate_info_target
⚠️ 1009 - ParaPropRemove acr export-pipeline create cmd acr export-pipeline create update parameter keyvault_secret_uri: removed property required=True
⚠️ 1004 - CmdPropRemove acr import-pipeline create cmd acr import-pipeline create removed property deprecate_info_target
⚠️ 1009 - ParaPropRemove acr import-pipeline create cmd acr import-pipeline create update parameter keyvault_secret_uri: removed property required=True

@azure-client-tools-bot-prd
Copy link
Copy Markdown

Hi @nguyenm2151,
Please write the description of changes which can be perceived by customers into HISTORY.rst.
If you want to release a new extension version, please update the version in setup.py as well.

@yonzhan
Copy link
Copy Markdown
Collaborator

yonzhan commented Apr 7, 2026

Thank you for your contribution! We will review the pull request and get back to you soon.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

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).
After that please run the following commands to enable git hooks:

pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

Hi @nguyenm2151

⚠️ Release Requirements

Module: acrtransfer

  • ⚠️ Please update VERSION to be 2.0.0b1 in src/acrtransfer/setup.py
  • ⚠️ Set azext.isPreview to true in azext_metadata.json for acrtransfer

Notes

@github-actions github-actions bot added the release-version-block Updates do not qualify release version rules. NOTE: please do not edit it manually. label Apr 7, 2026
@nguyenm2151 nguyenm2151 marked this pull request as ready for review April 7, 2026 20:21
Copilot AI review requested due to automatic review settings April 7, 2026 20:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the acrtransfer Azure CLI extension to support the new required --storage-access-mode parameter for ACR import/export pipeline creation, including moving the extension to a newer vendored Container Registry SDK API version.

Changes:

  • Bumps extension to 2.0.0, updates release notes, and marks the extension as non-preview/stable.
  • Introduces --storage-access-mode parameter with validation and updates pipeline creation logic to send storageAccessMode to the service.
  • Adds scenario tests covering Managed Identity vs SAS token modes and invalid flag combinations; vendors the 2025-06-01-preview SDK surface.

Reviewed changes

Copilot reviewed 43 out of 66 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/acrtransfer/setup.py Bumps extension version and updates PyPI classifiers to stable.
src/acrtransfer/HISTORY.rst Adds 2.0.0 release notes describing the breaking change.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/py.typed Marks the vendored SDK package as PEP 561 typed.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/operations/_private_endpoint_connections_operations.py Adds generated operations for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/operations/_pipeline_runs_operations.py Adds generated pipeline runs operations for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/operations/_operations.py Adds generated provider operations listing for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/operations/_import_pipelines_operations.py Adds generated import pipeline operations for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/operations/_export_pipelines_operations.py Adds generated export pipeline operations for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/operations/init.py Exposes generated operation groups for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/models/_container_registry_management_client_enums.py Adds generated enums for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/models/init.py Exposes generated models/enums for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/_runs_operations.py Adds generated async runs operations (new API version).
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/_private_endpoint_connections_operations.py Adds generated async private endpoint connection ops.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/_pipeline_runs_operations.py Adds generated async pipeline runs ops.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/_operations.py Adds generated async operations listing.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/_import_pipelines_operations.py Adds generated async import pipeline ops.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/_export_pipelines_operations.py Adds generated async export pipeline ops.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/operations/init.py Exposes generated async operation groups.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/_container_registry_management_client.py Adds generated async management client for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/_configuration.py Adds generated async client configuration.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/aio/init.py Exposes async client entrypoint.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/_metadata.json Adds AutoRest generation metadata for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/_container_registry_management_client.py Adds generated sync management client for the new API version.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/_configuration.py Adds generated sync client configuration.
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2025_06_01_preview/init.py Exposes sync client entrypoint (and optional patch hook).
src/acrtransfer/azext_acrtransfer/vendored_sdks/containerregistry/v2019_12_01_preview/models/_models_py3.py Updates pipeline source/target models to include required storage_access_mode.
src/acrtransfer/azext_acrtransfer/utility_functions.py Switches identity helper to use the new vendored SDK model types.
src/acrtransfer/azext_acrtransfer/tests/latest/test_acrtransfer_pipelines.py Adds scenario tests for ManagedIdentity vs SasToken modes and invalid combinations.
src/acrtransfer/azext_acrtransfer/pipelinerun.py Updates pipelinerun code to new vendored SDK and logs auth mode guidance.
src/acrtransfer/azext_acrtransfer/importpipeline.py Adds storage_access_mode wiring, identity permission guidance, and updated SDK types.
src/acrtransfer/azext_acrtransfer/exportpipeline.py Adds storage_access_mode wiring, identity permission guidance, and updated SDK types.
src/acrtransfer/azext_acrtransfer/commands.py Points command table at the new vendored API version operation groups.
src/acrtransfer/azext_acrtransfer/azext_metadata.json Marks the extension as non-preview.
src/acrtransfer/azext_acrtransfer/_validators.py Adds validation coupling --storage-access-mode with --secret-uri and supports [system].
src/acrtransfer/azext_acrtransfer/_params.py Adds --storage-access-mode parameter and updates help text for related args.
src/acrtransfer/azext_acrtransfer/_help.py Updates command help examples for new --storage-access-mode and identity modes.
src/acrtransfer/azext_acrtransfer/_client_factory.py Switches client factory to the new vendored SDK client.
src/acrtransfer/azext_acrtransfer/_breaking_change.py Updates breaking change notice to reflect new allowed values.
Comments suppressed due to low confidence (1)

src/acrtransfer/azext_acrtransfer/commands.py:44

  • azext_metadata.json now marks the extension as non-preview (azext.isPreview: false), but these command groups are still registered with is_preview=True, which will keep the commands labeled as preview in CLI help/output. Align the command-group preview flags with the extension metadata to avoid confusing UX.
    with self.command_group('acr import-pipeline', importpipeline_sdk, table_transformer=import_pipeline_output_format, is_preview=True) as g:
        g.custom_command('create', 'create_importpipeline')
        g.custom_command('delete', 'delete_importpipeline')
        g.custom_command('list', 'list_importpipeline')
        g.custom_show_command('show', 'get_importpipeline')

    with self.command_group('acr export-pipeline', exportpipeline_sdk, table_transformer=export_pipeline_output_format, is_preview=True) as g:
        g.custom_command('create', 'create_exportpipeline')
        g.custom_command('delete', 'delete_exportpipeline')
        g.custom_command('list', 'list_exportpipeline')
        g.custom_show_command('show', 'get_exportpipeline')

    with self.command_group('acr pipeline-run', pipelinerun_sdk, table_transformer=pipeline_run_output_format, is_preview=True) as g:
        g.custom_command('create', 'create_pipelinerun')

@yanzhudd yanzhudd added the major release extension module with version major upgraded label Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

major release extension module with version major upgraded release-version-block Updates do not qualify release version rules. NOTE: please do not edit it manually.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants