gpt4 book ai didi

azure-devops - 在 yaml 管道中访问 $(System.AccessToken)

转载 作者:行者123 更新时间:2023-12-05 03:48:26 24 4
gpt4 key购买 nike

我有一个管道和一个驱动我的构建的 azure-pipelines.yml,它需要一个 PAT,以便构建脚本使用 nuget 推送工件,方法是使用“nuget sources add..”这有效!但我的 PAT 在脚本中,这很糟糕,PAT 最终会过期,所以我宁愿使用 $(System.AccessToken),但我无法让它工作,似乎有很多相关问题,但我根本不明白我没有做什么。

这是工作 yaml(带有假 PAT)

name: $(Rev:r)

trigger:
- master

jobs:
- job: Windows
pool:
vmImage: 'windows-2019'
steps:
- task: NuGetToolInstaller@1
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '3.1.201'
- script: dotnet tool restore
displayName: Install FAKE
- script: nuget sources add -name "Kookerella2" -source https://pkgs.dev.azure.com/..../index.json -username anything -password thisismypat
displayName: nuget add source
- script: dotnet fake build
displayName: Run Build

并使用 $(System.AccessToken)

我做这个?用环境变量 %SYSTEM_ACCESSTOKEN% 替换硬编码的 pat(你必须滚动到最右边才能看到)但这失败了!

name: $(Rev:r)

trigger:
- master

jobs:
- job: Windows
pool:
vmImage: 'windows-2019'
steps:
- task: NuGetToolInstaller@1
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '3.1.201'
- script: dotnet tool restore
displayName: Install FAKE
- script: nuget sources add -name "Kookerella2" -source https://pkgs.dev.azure.com/Kookerella2/_packaging/Kookerella2/nuget/v3/index.json -username anything -password %SYSTEM_ACCESSTOKEN%
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
displayName: nuget add source
- script: dotnet fake build
displayName: Run Build

我是不是在做傻事?


基于我尝试使用的反馈

$env:SYSTEM_ACCESSTOKEN

这失败了,(我很确定脚本默认为命令提示符)。

然后我尝试了

  - powershell: nuget sources add -name "Kookerella2" -source https://pkgs.dev.azure.com/Kookerella2/_packaging/Kookerella2/nuget/v3/index.json -username anything -password $env:SYSTEM_ACCESSTOKEN
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)

构建中的 nuget 推送失败

Response status code does not indicate success: 403 (Forbidden - User '123a17e0-1d16-4a98-a124-435fda808ac6' lacks permission to complete this action. You need to have 'AddPackage'. (DevOps Activity ID: 4CCE5D91-5279-4782-BF9F-00279A087C6E)).

我有

“项目集合构建服务 (Kookerella2) -> 贡献者”

在我的工件权限下设置


解决方法如下。总结是......原始 YAML 没有任何问题,%SYSTEM_ACCESSTOKEN% 对命令提示符有效,并且有效......一旦你在工件的权限中“允许项目范围内的构建”(见下文)。为什么?我不知道....但那是一种奢侈。

最佳答案

which failed in the nuget push in the build with Response status code does not indicate success: 403 (Forbidden

要解决此问题,您可以尝试检查您是否拥有Your project Build Services 的权限。默认情况下,当你在你的 AzureDevOps 项目上创建一个 Feed over Artifacts 时,它只有 Project collection Build Service 的权限,但没有 your project Build Services 的权限:

enter image description here

你可以查看 this thread了解更多详情。

关于azure-devops - 在 yaml 管道中访问 $(System.AccessToken),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64378244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com