Azure / Azure/azure-devops-cli-extension

[Bug report] az devops invoke should support --url parameter

Open
#1,315 0 comments 1 reaction 0 assignees View on GitHub
Feature
Dominant language
Python
Stars
682
Forks
278
Avg merge
3d 23h
Merged PRs (30d)
3

Description

**Is your feature request related to a problem? Please describe.**
Current implementation of `az devops invoke` fetches information from`GET /{organisation}/_apis/ResourceAreas`. Some resource areas are missing from the endpoint and they cannot be used with `az devops` invoke command. Missing e.g.
* /{organization}/_apis/securityroles/scopes/{scopeId}/roleassignments/resources/{resourceId} that is required to set role assignments for objects

**Describe the solution you'd like**
Allow passing full URL to CLI without using information fetched from `GET /{organisation}/_apis/ResourceAreas` and `OPTIONS /{organisation}/_apis?allHostTypes=True` at all

Alternative solution is to work with ADO API owners and add all missing resource area definitions

**Additional context**
Running `az devops invoke --debug --org https://dev.azure.com/xxxx/ --area securityroles --resource scopes --http-method GET` fails with
```
cli.azext_devops.dev.common.exception_handler: handling generic error
cli.azure.cli.core.util: azure.cli.core.util.handle_exception is called with an exception:
cli.azure.cli.core.util: Traceback (most recent call last):
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/knack/cli.py", line 233, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 663, in execute
raise ex
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 726, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 718, in _run_job
return cmd_copy.exception_handler(ex)
File "/Users/janne.kujanpaa/.azure/cliextensions/azure-devops/azext_devops/dev/common/exception_handler.py", line 31, in azure_devops_exception_handler
reraise(*sys.exc_info())
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/six.py", line 703, in reraise
raise value
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 697, in _run_job
result = cmd_copy(params)
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 333, in __call__
return self.handler(*args, **kwargs)
File "/usr/local/Cellar/azure-cli/2.42.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
return op(**command_args)
File "/Users/janne.kujanpaa/.azure/cliextensions/azure-devops/azext_devops/dev/team/invoke.py", line 79, in invoke
raise CLIError('--area is not present in current organization')
knack.util.CLIError: --area is not present in current organization

cli.azure.cli.core.azclierror: --area is not present in current organization
az_command_data_logger: --area is not present in current organization
cli.knack.cli: Event: Cli.PostExecute []
az_command_data_logger: exit code: 1
```
instead of complaining missing route-parameters or instead of returning error code by `GET dev.azure.com/xxx/apis_/securityroles/scopes/...`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.