我不明白 Git 身份验证如何在 Azure Devops Yaml 管道中工作。
我所做的
我运行这个管道:
resources: repositories:
- repository: TutoDeployin Tuto-DeployBuild repository
ref: main
type: git
name: Tuto-Deploy
jobs:
- job: Build
steps:
- checkout: self
clean: true
persistCredentials: true
- checkout: TutoDeploy
clean: true
persistCredentials: true
- task: Powershell@2
inputs:
pwsh: true
filePath: '.\tuto-deploybuild\CI\build.ps1'
arguments: "-repositoryName tuto-deploy"
它本质上运行位于 Tuto-Deploy 中的这个 PowerShell 脚本:
Param(
$repositoryName
)
cd "$($env:Build_SourcesDirectory)/$repositoryName"
$version = @{
numero = 0
date = Get-Date
}
$path = "$env:Build_SourcesDirectory" + "/$repositoryName/version"
$versionFile = "$path/version.json"
New-Item -Path $path -ItemType Directory -force
If ((Test-Path $versionFile) -eq $True) {
$version = ConvertFrom-Json $versionFile -asHashtable
}
$version.numero++
If(!(test-path $path))
{
New-Item -ItemType Directory -Force -Path $path
}
ConvertTo-Json $version > $versionFile
git tag $version.numero --force
git push --tags --force
git add *
git commit -m 'New version'
我有的
git push 标签工作正常。但是 git push 引发了一些与身份验证问题相关的错误消息:
作者身份不明
*** 请告诉我你是谁。
跑
git config --global user.email "you@example.com"
git config --global user.name "你的名字"设置您帐户的默认身份。省略 --global 以仅在此存储库中设置身份。
致命:无法自动检测电子邮件地址(得到'VssAdministrator@WIN-QB09EGE8K8T.(无)')致命:您当前不在分支上。要将历史推送到当前(分离的 HEAD)状态,请使用
git push origin 头:
其他信息
我为我的构建代理授予了Create tag和Contributor权限。
我想知道的
为什么添加、提交和推送有身份验证问题但没有推送标签?为什么persistCredential是推送标签所必需的,但对提交和推送没有影响?
谢谢