Azure DevOps 推送到 GitLab

问题描述

在 Azure DevOps 中,我尝试创建一个命令行脚本,该脚本将实际的 DevOps 存储库推送到 GitLab。

git clone https://xxxx@dev.azure.com/xxxx/DBS/_git/xxx
git remote add --mirror=fetch secondary https://oauth2:%pat%@gitlab.com/username/gitlabrepo.git
git fetch origin
git push secondary --all

在 env 参数 %pat% 中,我引用了来自 GitLab 的个人访问令牌。 使用命令行脚本运行管道时,出现以下错误

start to push repo to gitlab
cloning into 'gitlabrepo'...
remote: HTTP Basic: Access denied
fatal: Authentication Failed for 'https://gitlab.com/***/gitlabrepo.git/'
##[debug]Exit code: 128
##[debug]Leaving Invoke-VstsTool.
##[error]Cmd.exe exited with code '128'.

这是如何实现的?

解决方法

  1. 确保命令在 git bash 中本地工作。
  2. 运行 git config --global--unset credential.helper 命令 git add 命令
  3. 如果问题仍然存在,请尝试运行 git remote set-url origin https://usernameHere:personalAccessTokenHere@gitlab.com/usernameHere/projectNameHere
  4. 如果您使用自托管代理,请转到 agene 机器,并在凭据管理器中删除凭据。
,

Avure DevOps 代理正在 ubuntu-18.04 机器上运行它。似乎使用 PAT 连接到 gitlab 失败,因为这是一个公司 gitlab 帐户并且有一些防火墙限制。因为从我的本地机器通过 VPN 连接到公司网络,它正在工作。 Git bash 本地工作正常。错误是因为管道代理启动的这台机器没有进入公司的VPN。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...