如何在发布管道任务中通过TFVC进行身份验证?

4

我有一个发布管道,想要添加一个阶段,其中包含一个任务,将版本号写入存储在TFVC中的文件中。

我一直试图使用调用tf.exe与文件交互的powershell任务。我认为我应该从尝试下载文件开始,而不是考虑尝试将其签入。但是我似乎无法授权使用tf.exe下载文件。你能帮忙吗?

    $workspaceName = "temp_123"

    $login = "/login:.,$env:SYSTEM_ACCESSTOKEN"

    & tf vc workspace /new /noprompt $workspaceName /collection:https://mycorp.visualstudio.com $login
    Try
    {
        & tf vc workfold /unmap "$/" /workspace:$workspaceName $login
        & tf vc workfold /map "$/SomePath" $dir /workspace:$workspaceName $login
        & tf vc get $login
    }
    Finally
    {
        & tf vc workspace /delete $workspaceName /collection:https://mycorp.visualstudio.com $login
    }

        # Verify it appeared
    if (-Not (Test-Path "$dir\Version.txt")) { throw "failed to download" }

我遇到了以下错误: TF30063:你未被授权访问https://mycorp.visualstudio.com/。 当你拥有系统访问令牌时,你如何用tf.exe进行身份验证?或者还有更好的方法来下载和检入文件。
1个回答

4

要从tf.exe进行Azure DevOps身份验证,您需要在命令中添加/loginType:OAuth

例如:

tf vc workspace /new /noprompt $workspaceName /collection:https://mycorp.visualstudio.com /loginType:OAuth /login:.,[OAuth token]

此外,TFVC Build Tasks extension 中还有 Check-in changes 任务,您可以使用它轻松提交更改。

enter image description here


我想我尝试了/loginType:OAuth,但是如果我回忆起来,会有一个关于/loginType不是一个被接受的命令行参数的错误。当我谷歌搜索时,解决方案是获取最新版本的tf.exe,但我确定我已经使用最新版本了。 - Scott Langham
我猜为了让TFVC任务正常工作,我需要先创建一个工作区?在创建一个工作区的构建管道中,我猜这可能有效,但我现在是在发布管道中。此外,似乎没有TFVC任务可以将编辑挂起到现有文件中,只能添加新文件或删除文件。 - Scott Langham
@ScottLangham 我在发布流程中没有使用任务,但它值得检查... "Add" 任务不仅可用于添加新文件,也可以用于现有文件,该任务只是将更改添加到“待处理更改”中。 - Shayki Abramczyk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接