[AutoPR azure-mgmt-containerregistrytasks]-generated-from-SDK Generation - Python-5780621#44786
Conversation
…rosoft.ContainerRegistry/RegistryTasks/tspconfig.yaml', API Version: 2025-03-01-preview, SDK Release Type: beta, and CommitSHA: '3f223d61b02c0496581dfb71c78104761b448d5e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5780621 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
…rosoft.ContainerRegistry/RegistryTasks/tspconfig.yaml', API Version: 2025-03-01-preview, SDK Release Type: beta, and CommitSHA: '92a141a5124dc3776424f311fede0a70ac789097' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5782944 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
There was a problem hiding this comment.
Pull request overview
This PR introduces a new management plane package, azure-mgmt-containerregistrytasks, generated from the Microsoft.ContainerRegistry/RegistryTasks 2025-03-01-preview API, and wires it into the containerregistry SDK CI.
Changes:
- Adds the
azure-mgmt-containerregistrytaskspackage (clients, models, operations, configuration, metadata, and packaging files) for the 2025-03-01-preview Container Registry Tasks management API. - Generates corresponding async/sync tests and recorded-test sanitization configuration under
generated_tests/for the new client. - Generates end‑to‑end usage samples under
generated_samples/and registers the new package insdk/containerregistry/ci.yml.
Notable review comments
-
Bug –
Model.copy()produces incorrect copies- File:
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_utils/model_base.py, around lines 667–668 - Issue:
Model.copyis implemented asreturn Model(self.__dict__).self.__dict__contains the internal_datamapping rather than the public REST-field mapping, so the resulting instance’s underlying data includes an extra_datakey and does not represent a clean shallow copy of the model’s logical fields. This can lead to incorrect serialized output (e.g., an unexpected_dataproperty) and violates typicalMapping.copy()semantics. - Suggested fix: Implement
copybased on the underlying mapping (e.g., using the existing mapping interface /self._data), so that the new model instance has the same REST-field keys and values as the original, without injecting implementation details like_dataitself.
- File:
-
Codebase convention – missing
blackflag inazure-sdk-buildconfig- File:
sdk/containerregistry/azure-mgmt-containerregistrytasks/pyproject.toml, lines 70–74 - Issue:
[tool.azure-sdk-build]only setsbreaking = false,pyright = false, andmypy = false, but omitsblack = true,type_check_samples, andverifytypes, whereas the siblingazure-mgmt-containerregistrypackage enablesblack(seesdk/containerregistry/azure-mgmt-containerregistry/pyproject.toml:70–76). This means the new package will not participate in the same formatting pipeline as the existing containerregistry mgmt package. - Suggested fix: Align the
azure-sdk-buildsection withazure-mgmt-containerregistryby at least addingblack = true, and consider also adding the other flags as appropriate for consistency.
- File:
-
Spelling / naming nit in README
- File:
sdk/containerregistry/azure-mgmt-containerregistrytasks/README.md, line 3 and line 49 - Issue: The description uses “Containerregistrytasks” as a single word (“Microsoft Azure Containerregistrytasks Management Client Library” and “Search Containerregistrytasks Management”), which is inconsistent with how the related package describes “Container Registry” in
azure-mgmt-containerregistry/README.mdand is hard to read. - Suggested fix: Update the wording to something like “Microsoft Azure Container Registry Tasks Management Client Library” and “Search Container Registry Tasks Management” to match the naming style used by the sibling package.
- File:
Reviewed changes
Copilot reviewed 84 out of 87 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
sdk/containerregistry/ci.yml |
Adds azure-mgmt-containerregistrytasks to the containerregistry SDK CI matrix so the new package is built and tested. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/tsp-location.yaml |
Points code generation to the RegistryTasks TypeSpec location and specific REST API commit. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/pyproject.toml |
Defines build system, project metadata, dependencies, azure-sdk-build flags, and packaging metadata for azure-mgmt-containerregistrytasks. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_tasks_operations_async.py |
Auto-generated async tests for TasksOperations (get/create/update/delete/list/get_details), currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_tasks_operations.py |
Auto-generated sync tests for TasksOperations, currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_task_runs_operations_async.py |
Auto-generated async tests for TaskRunsOperations including LRO begin_create/begin_update paths, currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_task_runs_operations.py |
Auto-generated sync tests for TaskRunsOperations, currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_runs_operations_async.py |
Auto-generated async tests for RunsOperations (get/update/list/get_log_sas_url/cancel), currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_runs_operations.py |
Auto-generated sync tests for RunsOperations, currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_registries_operations_async.py |
Auto-generated async tests for RegistriesOperations (schedule_run/get_build_source_upload_url), currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_registries_operations.py |
Auto-generated sync tests for RegistriesOperations, currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_agent_pools_operations_async.py |
Auto-generated async tests for AgentPoolsOperations (get/create/update/delete/list/get_queue_status), currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/test_container_registry_tasks_mgmt_agent_pools_operations.py |
Auto-generated sync tests for AgentPoolsOperations, currently skipped. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_tests/conftest.py |
Test fixtures configuring recording sanitizers for subscription, tenant, client ID/secret, and cookies for this mgmt package. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_update_with_opaque_custom_credentials.py |
Sample showing task update using opaque custom registry credentials. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_update_with_msi_custom_credentials.py |
Sample showing task update using managed identity-based custom registry credentials. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_update_with_login_identity.py |
Sample showing task update using source registry login identity [system]. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_update_with_key_vault_custom_credentials.py |
Sample showing task update using Key Vault-backed custom credentials. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_update_quick_task.py |
Sample updating a “quicktask” with a log template and tags. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_update.py |
General task update sample demonstrating agent config, credentials, logging, and triggers. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_list.py |
Sample listing tasks in a registry. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_get_details.py |
Sample fetching detailed information about a specific task. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_get.py |
Sample fetching a task by name. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_delete.py |
Sample deleting a task. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_create_with_user_identities.py |
Sample creating a task that uses user-assigned managed identities. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_create_with_system_identity.py |
Sample creating a task with a system-assigned managed identity. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_create_with_system_and_user_identities.py |
Sample creating a task with both system-assigned and user-assigned identities. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_create_with_login_identity.py |
Sample creating a task where the source registry uses a login identity. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_create_quick_task.py |
Sample creating a simple “quicktask” with minimal properties. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/tasks_create.py |
Full task creation sample, including base image and source triggers. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/task_runs_update.py |
Sample updating a task run with an encoded task run request. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/task_runs_list.py |
Sample listing task runs in a registry. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/task_runs_get_details.py |
Sample fetching details for a specific task run. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/task_runs_get.py |
Sample getting a task run by name. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/task_runs_delete.py |
Sample deleting a task run. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/task_runs_create.py |
Sample creating a task run with an encoded task. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/runs_update.py |
Sample updating a run (non-task-specific) to toggle archiving. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/runs_list.py |
Sample listing runs in a registry. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/runs_get_log_sas_url.py |
Sample retrieving a SAS URL for run logs. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/runs_get.py |
Sample getting a run by ID. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/runs_cancel.py |
Sample canceling a running build/task. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run_with_log_template.py |
Sample scheduling a Docker build run with a custom log template. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run_with_custom_credentials.py |
Sample scheduling a Docker build run with opaque custom registry credentials. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run_task.py |
Sample scheduling a run for an existing task with override step properties. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run_file_task_with_custom_credentials.py |
Sample scheduling a file-based task run with custom credentials. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run_file_task_run.py |
Sample scheduling a file-based task run with values and source location. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run_encoded_task_run.py |
Sample scheduling an encoded task run. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_schedule_run.py |
Sample scheduling a standard Docker build run. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/registries_get_build_source_upload_url.py |
Sample obtaining a SAS URL for uploading build source content. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/agent_pools_update.py |
Sample updating an agent pool’s count. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/agent_pools_list.py |
Sample listing agent pools in a registry. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/agent_pools_get_queue_status.py |
Sample retrieving the queue status of an agent pool. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/agent_pools_get.py |
Sample fetching an agent pool. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/agent_pools_delete.py |
Sample deleting an agent pool. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/generated_samples/agent_pools_create.py |
Sample creating a new agent pool. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/dev_requirements.txt |
Development-time dependencies for the new package (azure-sdk-tools, core/mgmt-core, identity, aiohttp). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/py.typed |
PEP 561 marker declaring the package as typed. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/operations/_patch.py |
Customization hook for sync operations package (currently empty). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/operations/__init__.py |
Public sync operations surface importing generated *_Operations and applying _patch. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/models/_patch.py |
Customization hook for models package (currently empty). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/models/_enums.py |
Enum definitions for architectures, OS, statuses, trigger types, etc., for the tasks API. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/models/__init__.py |
Public models surface aggregating all model and enum types plus _patch. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/aio/operations/_patch.py |
Customization hook for async operations package (currently empty). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/aio/operations/__init__.py |
Public async operations surface importing generated *_Operations and applying _patch. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/aio/_patch.py |
Customization hook for async client package (currently empty). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/aio/_configuration.py |
Async client configuration (pipeline policies, auth, API version, etc.) for ContainerRegistryTasksMgmtClient. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/aio/_client.py |
Async ContainerRegistryTasksMgmtClient implementation and send_request helper. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/aio/__init__.py |
Async package entry point exporting ContainerRegistryTasksMgmtClient and applying async _patch. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_version.py |
Version constant (1.0.0b1) for the new package. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_utils/model_base.py |
Shared model base implementation (mapping behavior, JSON/XML serialization/deserialization, Model class). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_utils/__init__.py |
Module marker for the _utils namespace. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_patch.py |
Customization hook for the main sync client package (currently empty). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_configuration.py |
Sync client configuration (pipeline policies, auth, API version, etc.). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/_client.py |
Sync ContainerRegistryTasksMgmtClient implementation and send_request helper. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/containerregistrytasks/__init__.py |
Package entry point exporting ContainerRegistryTasksMgmtClient, version metadata, and applying _patch. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/mgmt/__init__.py |
Namespace-package initializer for azure.mgmt within this distribution. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/azure/__init__.py |
Namespace-package initializer for azure within this distribution. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/apiview-properties.json |
APIView cross-language mapping metadata for types/operations in this package. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/_metadata.json |
Generation metadata (API version, spec repo commit, emitter version, TypeSpec source path). |
sdk/containerregistry/azure-mgmt-containerregistrytasks/README.md |
Package-level README describing purpose, install/auth instructions, and links to samples. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/MANIFEST.in |
Source distribution manifest including docs, license, py.typed, samples, tests, and namespace __init__.py files. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/LICENSE |
MIT license file for the new package. |
sdk/containerregistry/azure-mgmt-containerregistrytasks/CHANGELOG.md |
Initial changelog for version 1.0.0b1 of azure-mgmt-containerregistrytasks. |
|
This package is split from azure-mgmt-containerregistry so we may need more detailed changelog to help legacy SDK users realize the difference between typespec-generated sdk and swagger-generated sdk. Here is the changelog when we validated from this package and you could refer to: msyyc@a5b2c98#diff-b1e89e51f7c93e34d5f7acd7cdcb4c5cf912125140cd3888ee1c4761a019887a |
got it |
Configurations: 'specification/containerregistry/resource-manager/Microsoft.ContainerRegistry/RegistryTasks/tspconfig.yaml', API Version: 2025-03-01-preview, SDK Release Type: beta, and CommitSHA: '3f223d61b02c0496581dfb71c78104761b448d5e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5780621 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. Release plan link: https://web.powerapps.com/apps/821ab569-ae60-420d-8264-d7b5d5ef734c?release-plan-id=2a608315-60f6-f011-8406-000d3a376cbb Submitted by: clarkporter@microsoft.com
Release Plan Details
Spec pull request: [Typespec Migration] migrate control plane containerregistry to typespec azure-rest-api-specs#37169
Spec API version: 2025-03-01-preview