在 Azure yaml 管道内设置 git 凭据

art*_*urn 12 git azure azure-pipelines

我正在编写一个 Azure YAML 管道,它必须执行“git Push”来存储库,因此,我已在 CmdLine@2 任务中编写了 git 命令。像这样的东西:

            git checkout -b foo-branch-$(Build.BuildId)
            
            git add myGeneratedFile

            git commit -m "My commit message"

            git config user.email "$(GitUserName)@foo.com"
            git config user.name "$(GitUserName)"

            git push --set-upstream origin feature/foo-branch-$(Build.BuildId)
Run Code Online (Sandbox Code Playgroud)

显然,这段代码不起作用,因为 git 凭据没有在任何地方设置。如何指定该命令?

我的想法是从像 $(GitUserName) 这样的参数或从 git 秘密中读取它们。

是否有任何参数可以隐藏以避免在日志中以及用户键入该值时显示该值?

Kev*_*SFT 16

根据您最新的通信网络,允许脚本访问 OAuth 令牌选项仅存在于经典编辑器中。

在 Yaml 管道中,您可以使用以下命令:

- checkout: self
  persistCredentials: true
Run Code Online (Sandbox Code Playgroud)

初始获取后,会将persistCredentialsOAuth 令牌保留在 Git 配置中。

这是示例:

steps:
- checkout: self
  persistCredentials: true

- script: |
   git config --global user.email "email"
   git config --global user.name "Kevin Lu"
   
   
   
   git checkout -b master
   
   git add .
   
   git commit -m "My commit message"
   
    git push origin HEAD:master
   
  displayName: 'Command Line Script'
Run Code Online (Sandbox Code Playgroud)

有关更详细的信息,您可以参考此文档

更新2:

要解决此权限问题,您需要向服务帐户授予ContributorProjectname Build Service(OrganizationName)权限: in Project Settings -> Repositories -> Target Repo -> Permission.

在此输入图像描述

更新3:

在此输入图像描述