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

时间:2019-02-04 15:29:25

标签: azure-devops azure-pipelines tfvc tf-cli

我有一个发布管道,希望添加一个阶段,该阶段的任务会将版本号写入到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: You are not authorized to access https://mycorp.visualstudio.com/

当您拥有系统访问令牌时,如何通过tf.exe进行身份验证?还是有更好的下载和签入文件的方法。

1 个答案:

答案 0 :(得分:1)

要从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中有一个“签入更改”任务,您可以使用它来签入更改而不会出现问题。

enter image description here