如何将 Github 修复到 Azure DevOps Sync?
Posted
技术标签:
【中文标题】如何将 Github 修复到 Azure DevOps Sync?【英文标题】:How to fix Github to Azure DevOps Sync? 【发布时间】:2020-04-24 09:40:01 【问题描述】:我在 Azure DevOps 和 Github 之间进行了同步,以将 Github 存储库与 Azure Devops 中的存储库同步。
去年年底一切正常。
今年同步不再起作用。
失败消息是fatal: could not read Password for 'https://$(XXXXXXXXXToken)@yyyyyy.visualstudio.com': terminal prompts disabled
'
我忘记了,PAT 将于 2019 年 12 月 31 日到期。 所以我重新创建了管道,而不是仅仅更改 PAT 的到期日期。 掌心。 我的想法是创建一个新的管道来解决问题导致的问题。 但我想我把一切都搞砸了。
现在我将脚本更改为:
git push https://$(XXXXXXXToken)@yyyyyy.visualstudio.com/nnnnn/_git/kkkkkkkk -u --all
到:
git push https://$(System.AccessToken)@yyyyyy.visualstudio.com/nnnnn/_git/kkkkkkkk -u --all
我将令牌更改为“System.AccessToken”,因为“允许脚本访问 OAuth 令牌”中的信息显示:
我撤销了列表中的所有 PAT。 在我重新创建管道并将访问权限更改为“System.AccessToken”后,DevOps 会自动创建一个 PAT,如下所示:
Pipeline 运行绿色,但 Azure DevOps git repo 仍未更新。 看来,与 Azure DevOps git repo 仍然没有任何联系。 管道的日志向我显示,从 github repo 签出工作正常。没有失败。
管道 YAML 代码(我创建了带有 UI 而不是直接使用 YAML 编辑器的管道)是:
在 Github 站点上,我安装了 Azure Pipelines 和 Azure Boards 应用程序。 我还授权了这两个应用程序,并将这两个应用程序授权给 OAuth。 我在 GitHub 和 Azure DevOps 存储库之间也有一个 Webhok。 Webhook 配置用于拉取请求、推送和发布 在 Azure DevOps 中,有一个 GitHub 连接到我在 GitHub 中的所有存储库。有人可以帮我让同步正常工作吗?
【问题讨论】:
【参考方案1】:我们必须在 YAML 中声明一个变量才能访问$(System.AccessToken)
。见Set variables in pipeline
我可以使用以下 YAML 管道将 Github 存储库成功同步到 Azure DevOps 存储库:(只需相应地替换 Azure DevOps git 存储库:https://xxx.visualstudio.com/GithubSync/_git/GithubSync
)
trigger:
branches:
include:
- '*'
variables:
system_accesstoken: $(System.AccessToken)
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: self
persistCredentials: true #Allow scripts to access the system token
clean: true
- task: shellexec@0
inputs:
code: |
git config --global user.email "xx@xx.com"
git config --global user.name "xxx"
git branch -r | grep -v '\->' | while read remote; do git branch --track "$remote#origin/" "$remote"; done
git remote add vsts https://xxx.visualstudio.com/GithubSync/_git/GithubSync
git branch -r | grep -v '\->' | while read remote; do git -c http.extraheader="AUTHORIZATION: bearer $(system_accesstoken)" push -u vsts "$remote#origin/"; done
更多信息请参考此博客:SYNCHRONIZE GITHUB REPOSITORY WITH VSTS
【讨论】:
以上是关于如何将 Github 修复到 Azure DevOps Sync?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Github 操作将多容器应用程序部署到 Azure?
如何为 github 工作流操作归档工件中的文件以修复此警告?
如何修复 azure-devops 构建步骤中的““复制”任务不支持复制目录”?
如何查找 Active Directory OAuth 身份验证的受众字段? (如何从 Azure Logic App 向 DevOps 发送发布请求?)