az devops登录挂起

时间:2020-09-25 13:31:03

标签: azure-devops azure-devops-extensions

我正在使用Windows 10,Azure PowerShell Az模块,DevOps扩展0.18.0

我已登录DevOps实例,并能够运行所有相关命令。现在,我需要登录到其他组织/项目。每次执行login子命令时,窗口都会挂起并锁定,我必须重新启动PowerShell ISE才能重试。

我正在使用的命令(我已经尝试了几种变体)是:

> az login 
> $env:AZURE_DEVOPS_EXT_PAT ='{PAT}' 
> az devops login --organization https://dev.azure.com/{org} --debug

在这里挂!!

下面的调试日志

az devops登录--organization https://dev.azure.com/{org} --debug

CategoryInfo          : NotSpecified: (Command argumen...nn', '--debug']:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError   Event: Cli.PreExecute [] Event: CommandParser.OnGlobalArgumentsCreate
[<function CLILogging.on_global_arguments at 0x03A171E0>, <function 
OutputProducer.on_global_arguments at 0x03B3AA98>, <function
CLIQuery.on_global_arguments at 0x03B5CCD8>] Event:
CommandInvoker.OnPreCommandTableCreate [] Modules found from index for
'devops': ['azext_devops'] Loading command modules: Name              
Load Time    Groups  Commands Total (0)                 0.000        
0         0 These extensions are not installed and will be skipped:
['azext_ai_examples', 'azext_ai_did_you_mean_this'] Loading
extensions: Name                  Load Time    Groups  Commands 
Directory azure-devops              0.110        60       191 
C:\Users\{username}\.azure\cliextensions\azure-devops Total (1)          
0.110        60       191   Loaded 60 groups, 191 commands. Found a match in the command table for 'devops login' Event:
CommandInvoker.OnPreCommandTableTruncate [<function
AzCliLogging.init_command_file_logging at 0x03C2B978>]
az_command_data_logger : command args: devops login --organization {}
--debug metadata file logging enabled - writing logs to 'C:\Users\{username}\.azure\commands'. Event:
CommandInvoker.OnPreArgumentLoad [<function
register_global_subscription_argument.<locals>.add_subscription_parameter
at 0x03D69660>] Event: CommandInvoker.OnPostArgumentLoad [] Event:
CommandInvoker.OnPostCommandTableCreate [<function
register_ids_argument.<locals>.add_ids_arguments at 0x03D69618>,
<function  register_cache_arguments.<locals>.add_cache_arguments at
0x03D69E40>] Event: CommandInvoker.OnCommandTableLoaded [] Event:
CommandInvoker.OnPreParseArgs [] Event: CommandInvoker.OnPostParseArgs
[<function OutputProducer.handle_output_argument at 0x03B3AAE0>,
<function CLIQuery.handle_query_parameter  at 0x03B5CD20>, <function
register_ids_argument.<locals>.parse_ids_arguments at 0x03D69DF8>,
<function DevCommandsLoader.post_parse_args at  0x03CF6150>]
az_command_data_logger : extension name: azure-devops
az_command_data_logger : extension version: 0.18.0
  • 我已经重新启动Windows 10
  • 我已退出az(az注销)
  • 我已经退出devops(az devops注销)
  • 我总是在提升的权限下运行PowerShell ISE (管理员)

我已确认所有这些,我仍然可以从我开始的组织/项目中访问DevOps(管道,发行版等)。因此注销也失败。

这是怎么回事?任何想法为什么会这样?

2 个答案:

答案 0 :(得分:0)

现在,我需要登录到其他组织/项目。

场景1:目标组织/项目仍在同一用户帐户下

如果您要使用的目标组织/项目仍然在同一用户帐户下,那么此时,您无需注销并重新登录。

只需运行以下命令即可使用以下命令更改默认组织/项目:

az devops configure --defaults organization=https://dev.azure.com/{org name}

然后,您无需重新登录即可与另一个组织/项目一起工作。

方案2:目标组织/项目在另一个用户帐户下

如果实际情况是您必须更改为使用另一个帐户登录才能使用该组织/项目,请运行以下命令首先注销:

az logout --username "{another account}"

然后重新运行az login以使用另一个帐户地址登录。您现在应该成功了。

enter image description here

答案 1 :(得分:0)

如果您设置了 $env:AZURE_DEVOPS_EXT_PAT='{PAT}',则无需运行 az devops login。您可以开始使用所需的命令。例如:az repos list --org https://dev.azure.com/{ORG} --project {PROJECT}.

而且它似乎挂起是因为它无法安装 keyring~=17.1.1 包(及其 deps)。您可以像这样手动添加该包:py -m pip install --target ~\.azure\cliextensions\azure-devops keyring~=17.1.1

GitHub 上的问题:[Bug] az devops login fails the first time unless run as admin · Issue #438 · Azure/azure-devops-cli-extension

指定keyring包版本的文件:azure-devops/azext_devops/dev/common/pip_helper.py