Sur*_*tap 2 git oauth-2.0 azure-devops
我正在尝试在 Azure DevOps 构建管道中运行 git push 命令,但出现以下错误 -
致命:无法读取“https://dev.azure.com”的密码:终端提示已禁用。
然后我尝试使用我的个人访问令牌(PAT)执行相同的命令,例如
MY_PAT= 'MY_PAT'
B64_PAT=$(printf ":$MY_PAT" | base64)
git -c http.extraHeader="Authorization: Basic ${B64_PAT}" push
Run Code Online (Sandbox Code Playgroud)
它起作用了。但由于安全合规性,我无法在管道中使用我的 PAT 有没有办法在不暴露我的 PAT 的情况下使用 git push 命令。请逐步解释 oauth2 身份验证是否有效。
您不需要使用 PAT。您可以直接使用预定义变量System.Accesstoken。看这里。
System.AccessToken 是一个特殊变量,它携带正在运行的构建所使用的安全令牌。
将命令更改为以下内容:
B64_PAT=$(printf ":$(System.AccessToken)" | base64)
git -c http.extraHeader="Authorization: Basic ${B64_PAT}" push
Run Code Online (Sandbox Code Playgroud)
您还可以直接使用 AccessToken,如下所示:
git push https://$(System.AccessToken)@dev.azure.com/org/proj/_git/repo -q
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5710 次 |
| 最近记录: |