Add Azure Package Registry preview extension (apr) - #10317
Kai Daniels (kaidaniels13) wants to merge 14 commits into
Conversation
|
Hi Kai Daniels (@kaidaniels13), |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Thank you for your contribution Kai Daniels (@kaidaniels13)! We will review the pull request and get back to you soon. |
|
alrs |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 08bed320-d21b-400f-a944-11d6d6129c22
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 08bed320-d21b-400f-a944-11d6d6129c22
…package-registry-preview-extension
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
Our naming has since been finalized to be APR (Azure Package Registry), just in-case its needed for naming tracking. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
|
Ethan Yang (@necusjz) This is ready for an early pass. Could you review the command surface and whether the split between generated AAZ registry commands and custom data-plane commands makes sense for the initial preview? Live PPE validation will follow once the endpoint and authentication contracts are finalized |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
…package-registry-preview-extension
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
There was a problem hiding this comment.
🟡 Changes recommended
A critical data-plane authentication issue remains, alongside the sync flag mismatch and missing registry wait scenario coverage.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds the initial Azure Package Registry preview CLI extension under the apr identity.
Changes:
- Registers packaging metadata and the
az aprcommand. - Adds generated registry and custom data-plane commands.
- Adds authentication, paging, polling, resolution utilities, and tests.
File summaries
| File | Summary |
|---|---|
src/service_name.json |
Registers the az apr service. |
src/apr/setup.py |
Defines the package entry point. |
src/apr/README.md |
Documents installation and usage. |
src/apr/pyproject.toml |
Defines package and tooling metadata. |
src/apr/linter_exclusions.yml |
Configures linter exclusions. |
src/apr/LICENSE |
Adds the MIT license. |
src/apr/HISTORY.rst |
Records preview release history. |
src/apr/azext_apr/tests/test_task.py |
Tests task commands. |
src/apr/azext_apr/tests/test_resolve.py |
Tests resource resolution. |
src/apr/azext_apr/tests/test_repository.py |
Tests repository commands. |
src/apr/azext_apr/tests/test_repository_release.py |
Tests release operations. |
src/apr/azext_apr/tests/test_repository_package.py |
Tests repository package operations. |
src/apr/azext_apr/tests/test_remote.py |
Tests remote commands. |
src/apr/azext_apr/tests/test_registry.py |
Tests generated registry commands. |
src/apr/azext_apr/tests/test_publication.py |
Tests publication commands. |
src/apr/azext_apr/tests/test_polling.py |
Tests task polling. |
src/apr/azext_apr/tests/test_paging.py |
Tests pagination. |
src/apr/azext_apr/tests/test_package.py |
Tests package commands. |
src/apr/azext_apr/tests/test_extension.py |
Tests extension loading and registration. |
src/apr/azext_apr/tests/test_distro.py |
Tests distribution commands. |
src/apr/azext_apr/tests/test_data_plane_composition.py |
Tests data-plane command composition. |
src/apr/azext_apr/tests/latest/test_apr_scenario.py |
Covers command help and argument validation. |
src/apr/azext_apr/tests/latest/__init__.py |
Initializes scenario tests. |
src/apr/azext_apr/tests/__init__.py |
Initializes the test package. |
src/apr/azext_apr/server/_resolve.py |
Resolves resource names and IDs. |
src/apr/azext_apr/server/_polling.py |
Implements task polling. |
src/apr/azext_apr/server/_paging.py |
Implements offset pagination. |
src/apr/azext_apr/server/__init__.py |
Exports server utilities. |
src/apr/azext_apr/commands/task.py |
Implements task commands. |
src/apr/azext_apr/commands/repository.py |
Implements repository commands. |
src/apr/azext_apr/commands/repository_release.py |
Implements release commands. |
src/apr/azext_apr/commands/repository_package.py |
Implements repository package commands. |
src/apr/azext_apr/commands/remote.py |
Implements remote commands. |
src/apr/azext_apr/commands/publication.py |
Implements publication commands. |
src/apr/azext_apr/commands/package.py |
Implements package commands. |
src/apr/azext_apr/commands/distro.py |
Implements distribution commands. |
src/apr/azext_apr/commands/__init__.py |
Registers custom commands. |
src/apr/azext_apr/azext_metadata.json |
Declares preview metadata. |
src/apr/azext_apr/aaz/latest/apr/registry/_wait.py |
Implements generated registry wait. |
src/apr/azext_apr/aaz/latest/apr/registry/_update.py |
Implements generated registry update. |
src/apr/azext_apr/aaz/latest/apr/registry/_show.py |
Implements generated registry show. |
src/apr/azext_apr/aaz/latest/apr/registry/_list.py |
Implements generated registry list. |
src/apr/azext_apr/aaz/latest/apr/registry/_delete.py |
Implements generated registry delete. |
src/apr/azext_apr/aaz/latest/apr/registry/_create.py |
Implements generated registry create. |
src/apr/azext_apr/aaz/latest/apr/registry/__init__.py |
Exports registry commands. |
src/apr/azext_apr/aaz/latest/apr/registry/__cmd_group.py |
Defines the registry command group. |
src/apr/azext_apr/aaz/latest/apr/__init__.py |
Exports generated APR commands. |
src/apr/azext_apr/aaz/latest/apr/__cmd_group.py |
Defines the APR command group. |
src/apr/azext_apr/aaz/latest/__init__.py |
Initializes the generated API package. |
src/apr/azext_apr/aaz/__init__.py |
Initializes the generated command package. |
src/apr/azext_apr/_client_factory.py |
Provides management client support. |
src/apr/azext_apr/__init__.py |
Defines the extension loader. |
src/apr/.gitignore |
Excludes build and test artifacts. |
Review details
- Files reviewed: 55/55 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| # every request is authenticated (AGENTS.md), so skip auth for localhost. | ||
| if not self._local: | ||
| token = _acquire_token(self._cli_ctx, self._resource) | ||
| headers["authorization"] = f"Bearer {token}" |
There was a problem hiding this comment.
I think the value shown here is being redacted by GitHub. The code already uses the token we acquire in the Authorization header as Bearer {token , and test_data_plane.py verifies the installed path with 1Bearer tok1231, so I dont think a code change is needed for this one.
| "Mirror sync removes repository packages that are not present upstream. Continue?" | ||
| ) | ||
| except NoTTYException: | ||
| logger.warning("Unable to prompt for confirmation as no tty available. Use --yes.") |
There was a problem hiding this comment.
Oki I updated the message to point to --confirm in 72e11b411.
| ("apr", "registry", "delete"), | ||
| ("apr", "registry", "list"), | ||
| ("apr", "registry", "show"), | ||
| ("apr", "registry", "update"), |
There was a problem hiding this comment.
Okii I added apr registry wait to the help coverage in 72e11b411.
|
Kai Daniels (@kaidaniels13) we need the pull request under Azure/aaz. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 99135581-9cf9-4a99-a7b3-63692da88967
Thanks, I opened Azure/aaz#1091 for the persisted |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
Adds the initial Azure Package Registry preview extension under the final
apridentity.Related command
az aprImplementation
az apr registry.Validation
azdev style aprazdev linter aprpython scripts/ci/test_index.py -q1.0.0b1apr, importsazext_apr, and contains no retired package identityReview questions
Remaining release dependencies
Live PPE validation still requires the final ARM endpoint shape, MISE audience, RP API version, deployed resources, and persisted AAZ model.