【问题标题】:How do I authenticate with TFVC from a release-pipeline task?如何从发布管道任务向 TFVC 进行身份验证?
【发布时间】:2019-02-04 15:29:24
【问题描述】:

我有一个发布管道,并希望添加一个包含任务的阶段,该任务会将版本号写入存储在 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 进行身份验证?或者有没有更好的方法来下载和签入文件。

【问题讨论】:

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


    【解决方案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 中还有 Check-in changes 任务,您可以使用它毫无问题地签入更改。

    【讨论】:

    • 我想我尝试了 /loginType:OAuth 但如果我记得,关于 /loginType 不是可接受的命令行参数的错误。当我在谷歌上搜索解决方案是获取最新版本的 tf.exe 时,但我确定我使用的是最新版本。
    • 我想要让 TFVC 任务正常工作,我需要先有一个工作区?在为您创建一个的构建管道中,我想这可能会起作用,但我处于发布管道中。此外,似乎没有 TFVC 任务来挂起对现有文件的编辑,仅用于添加新文件或删除文件。
    • @ScottLangham 我没有使用发布管道中的任务,但值得一试......“添加”任务不仅是添加新文件,还适用于现有文件,任务只需将更改添加到“待定更改”即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多