在Azure YAML管道内设置GIT凭据 [英] Set git credentials inside a Azure yaml pipeline

查看:18
本文介绍了在Azure YAML管道内设置GIT凭据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个Azure YAML管道,它必须执行"git推送"才能执行repo,所以,我已经在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)
显然,此代码不起作用,因为没有在任何地方设置git凭据。如何指定命令?

我的想法是从类似于$(GitUserName)的参数或从GIT机密中读取它们。

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

推荐答案

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

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

- checkout: self
  persistCredentials: true

persistCredentials将在初始获取后将OAuth内标识保留在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'

有关更多详细信息,请参阅this doc

更新E2:

要解决此权限问题,您需要将参与者权限授予Project Settings -> Repositories -> Target Repo -> Permission中的服务帐户:Projectname Build Service(OrganizationName)

更新3:

这篇关于在Azure YAML管道内设置GIT凭据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆