自动将字符串传递给 powershell 用户输入

Automatically pass string to powershell user input

在我的 powershell 脚本中,我调用了以下 azure 函数:

az repos import create --git-source-url https://incommunities@dev.azure.com/my-organisation/Templates/_git/$($Framework) --detect true --project $ProjectAlias --repository $ProjectAlias --requires-authorization

当 运行 时,它会提示用户输入 Password/PAT 令牌,例如:

Git Password / PAT:

有没有一种方法可以自动将 password/token 传递给用户输入而无需手动输入?

我试图通过管道传递值,但这似乎不起作用,例如

my-pat-token | az repos import create --git-source-url https://incommunities@dev.azure.com/my-organisation/Templates/_git/$($Framework) --detect true --project $ProjectAlias --repository $ProjectAlias --requires-authorization

这是否 a) 可能,然后 b) 我该怎么做?

您可以使用两种方法,都来自 courtesy from this nice blog post which you'll probably want to read,因为它谈到了一堆 Azure Devops 任务。

  1. 使用环境变量

这些命令将检查是否存在环境变量并将使用它而不是提示。

为此,将名为 AZURE_DEVOPS_EXT_PAT 的环境变量设置为 PAT 的值。 (有关这些令牌如何工作的更多信息 here from the Microsoft Docs

# set environment variable for current process
$env:AZURE_DEVOPS_EXT_PAT = 'xxxxxxxxxx'

当您进行自动化操作时,只需在 运行 Azure 命令之前设置此变量。

  1. 管道
  2. 中的值

我不太喜欢这种方法,但您可以“回显”PAT 值并将其通过管道传输到命令中,这可能会奏效。恕我直言,这更脆弱而且 frunky 我不建议这样做。

$pat | az devops login