Azure / azure-devops-cli-extension

Azure DevOps Extension for Azure CLI
https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/?view=azure-cli-latest
MIT License
628 stars 241 forks source link

Errors when working with DevOps permissions #1274

Open jelleholtkamp opened 2 years ago

jelleholtkamp commented 2 years ago

When working with az devops security permissions, multiple commands generate the below error output. This happens with:

az devops security permission list --id $namespaceId --subject $subject az devops security permission reset-all --id $namespaceId --subject $subject --token $token

This happens when using a group descriptor (i'm using the group ID that starts with vssgp.) and a UPN. The token, subject and namespace ID seem to be correct because az devops security permission update does work with the same values.

This is autogenerated. Please review and update as needed.

Describe the bug

Command Name az devops security permission list Extension Name: azure-devops. Version: 0.25.0.

Errors:

The command failed with an unexpected error. Here is the traceback:
'NoneType' object has no attribute 'descriptor'
Traceback (most recent call last):
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\knack/cli.py", line 231, in invoke
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 658, in execute
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 721, in _run_jobs_serially
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 713, in _run_job
  File "C:\Users\jholtkamp\.azure\cliextensions\azure-devops\azext_devops\dev\common\exception_handler.py", line 31, in azure_devops_exception_handler
    reraise(*sys.exc_info())
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\six.py", line 703, in reraise
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 692, in _run_job
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/__init__.py", line 328, in __call__
  File "D:\a\1\s\build_scripts\windows\artifacts\cli\Lib\site-packages\azure/cli/core/commands/command_operation.py", line 121, in handler
  File "C:\Users\jholtkamp\.azure\cliextensions\azure-devops\azext_devops\dev\team\security_permission.py", line 45, in list_tokens
    subject = _resolve_subject_as_identity_descriptor(subject, organization)
  File "C:\Users\jholtkamp\.azure\cliextensions\azure-devops\azext_devops\dev\team\security_permission.py", line 198, in _resolve_subject_as_identity_descriptor
    subject = get_identity_descriptor_from_subject_descriptor(subject_descriptor=subject, organization=organization)
  File "C:\Users\jholtkamp\.azure\cliextensions\azure-devops\azext_devops\dev\common\identities.py", line 136, in get_identity_descriptor_from_subject_descriptor
    return identities[0].descriptor
AttributeError: 'NoneType' object has no attribute 'descriptor'

To Reproduce:

Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Expected Behavior

Environment Summary

Windows-10-10.0.19041-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.34.1 *

Extensions:
account 0.2.2
azure-devops 0.25.0

Dependencies:
msal 1.16.0
azure-mgmt-resource 20.0.0

Additional Context