Azure DevOps 推送到 GitLab

Azure DevOps push to GitLab

在 Azure DevOps 中,我正在尝试创建一个命令行脚本,它将实际的 DevOps Repo 推送到 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 帐户,并且有一些防火墙 restriction.Because 从我的本地计算机通过 VPN 连接到它正在工作的公司网络。 Git bash 在本地工作正常。错误是因为pipeline agent启动的这台机器没有进入公司的VPN