尝试将管道秘密变量传递到Powershell脚本时出错

mdailey77

我正在尝试将一个机密变量作为Azure管道的一部分传递到Powershell脚本中。我通过转到“编辑管道”来添加变量,然后单击“变量”按钮,添加变量并选择“保持此值秘密”复选框。变量名称是PAT。

我在Powershell脚本中引用了变量,该脚本是一个单独的文件,如下所示:

$url = '[Azure DevOps url]'
<# pass PAT as pipeline variable #>
$Token = "$env:PATSECRET"

if ($PAT -eq "") {
    exit 1
}
$AzureAuthHeader = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $Token)))

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", ("Basic {0}" -f $AzureAuthHeader))
$headers.Add("Content-Type", "application/json")

$response = Invoke-RestMethod -Uri $url -Method GET -Headers $headers

$lastcommit = $response.value[1].commitId

$packageFolder = git diff HEAD $lastcommit --name-only

这是管道中的Powershell脚本构建步骤:

steps:
  - task: PowerShell@2
    displayName: 'Detect Subfolder Changes'
    name: setvarStep
    env:
      Pat: $(PAT)
    inputs:
      targetType: 'filePath'
      filePath: $(System.DefaultWorkingDirectory)\detectchanges.ps1
      failOnStderr: true

当管道运行时,出现以下错误: ##[error]env:PAT : The term 'env:PAT' is not recognized as the name of a cmdlet, function, script file, or operable program ...

更新:我使用环境变量映射更新了Powershell构建步骤。我仍然遇到相同的错误。我也删除了括号$(env:PAT),没有任何变化。

钱华德

您可以使用脚本的环境或在变量块中映射变量,以将机密传递给管道。这是我的样本:

1.脚本环境(推荐方式):

steps:
- task: PowerShell@2
  displayName: 'Detect Subfolder Changes'
  name: setvarStep
  env:
    MY_PAT: $(PAT)
  inputs:
    filePath: '$(System.DefaultWorkingDirectory)/test.ps1'
    failOnStderr: true

test.ps1:

$token= "$env:MY_PAT"
if ($token -eq "") {
    exit 1
}
 
$url= "https://dev.azure.com/{Organization}/_apis/wit/wiql?api-version=6.1-preview.2"

$AzureAuthHeader = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $Token)))

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", ("Basic {0}" -f $AzureAuthHeader))
$headers.Add("Content-Type", "application/json")
 
$JSON = @'
{
  "query": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = 'Task' AND [State] <> 'Closed' AND [State] <> 'Removed' order by [Microsoft.VSTS.Common.Priority] asc, [System.CreatedDate] desc"
}
'@
 
$response = Invoke-RestMethod -Uri $url -Headers $headers -Method Post -Body $JSON -ContentType application/json
Write-Host "result = $($response | ConvertTo-Json -Depth 100)" 

2.变量定义

variables:
  MY_PAT: $(PAT)
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Host "PAT: $(MY_PAT)"

您可以在本文档中找到有关设置机密变量的更多详细信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

postgresql-尝试将变量从命令行传递到sql脚本时出错

来自分类Dev

将jenkins管道中设置的变量传递到shell脚本

来自分类Dev

将变量从bash传递到php时出错

来自分类Dev

无法将Powershell中的变量从函数传递到脚本

来自分类Dev

使用 Jenkins 管道脚本将工件发布到 Artifactory 时出错

来自分类Dev

无法将变量从Jenkins管道的脚本部分传递到Ansible剧本

来自分类Dev

尝试将变量传递到[adsisearcher]的问题

来自分类Dev

尝试将变量从熊猫传递到SQL

来自分类Dev

调用MSI文件时尝试传递变量时出错

来自分类Dev

将参数传递到Powershell脚本

来自分类Dev

将参数传递到Powershell脚本

来自分类Dev

将Datetime传递到Powershell脚本

来自分类Dev

将变量从bash脚本传递到makefile

来自分类Dev

将变量从Java传递到Shell脚本

来自分类Dev

通过表单数据将php变量传递到另一页时出错

来自分类Dev

将环境变量传递给jenkins管道bash脚本

来自分类Dev

将变量从批处理传递到Powershell

来自分类Dev

VSTS:将构建/发布变量传递到Powershell脚本任务中

来自分类Dev

如何将变量从批处理文件传递到Powershell脚本

来自分类Dev

尝试强制转换变量并传递给新活动时出错

来自分类Dev

在Shell脚本中将变量传递给date命令时出错

来自分类Dev

如何通过管道将变量传递到Write-Host

来自分类Dev

Azure管道:将变量传递到多个阶段

来自分类Dev

将参数从Windows批处理脚本传递到Powershell脚本

来自分类Dev

如何将变量从Shell脚本传递到mysql脚本

来自分类Dev

Azure 管道:将变量从构建管道传递到发布管道

来自分类Dev

将变量作为变量传递给url时出错

来自分类Dev

将变量作为变量传递给url时出错

来自分类Dev

将主体管道到php脚本时出现Procmail错误

Related 相关文章

  1. 1

    postgresql-尝试将变量从命令行传递到sql脚本时出错

  2. 2

    将jenkins管道中设置的变量传递到shell脚本

  3. 3

    将变量从bash传递到php时出错

  4. 4

    无法将Powershell中的变量从函数传递到脚本

  5. 5

    使用 Jenkins 管道脚本将工件发布到 Artifactory 时出错

  6. 6

    无法将变量从Jenkins管道的脚本部分传递到Ansible剧本

  7. 7

    尝试将变量传递到[adsisearcher]的问题

  8. 8

    尝试将变量从熊猫传递到SQL

  9. 9

    调用MSI文件时尝试传递变量时出错

  10. 10

    将参数传递到Powershell脚本

  11. 11

    将参数传递到Powershell脚本

  12. 12

    将Datetime传递到Powershell脚本

  13. 13

    将变量从bash脚本传递到makefile

  14. 14

    将变量从Java传递到Shell脚本

  15. 15

    通过表单数据将php变量传递到另一页时出错

  16. 16

    将环境变量传递给jenkins管道bash脚本

  17. 17

    将变量从批处理传递到Powershell

  18. 18

    VSTS:将构建/发布变量传递到Powershell脚本任务中

  19. 19

    如何将变量从批处理文件传递到Powershell脚本

  20. 20

    尝试强制转换变量并传递给新活动时出错

  21. 21

    在Shell脚本中将变量传递给date命令时出错

  22. 22

    如何通过管道将变量传递到Write-Host

  23. 23

    Azure管道:将变量传递到多个阶段

  24. 24

    将参数从Windows批处理脚本传递到Powershell脚本

  25. 25

    如何将变量从Shell脚本传递到mysql脚本

  26. 26

    Azure 管道:将变量从构建管道传递到发布管道

  27. 27

    将变量作为变量传递给url时出错

  28. 28

    将变量作为变量传递给url时出错

  29. 29

    将主体管道到php脚本时出现Procmail错误

热门标签

归档