使用服务连接检查 Azure 管道作业中的私有 github
Checkout a private github in Azure pipeline job using service connection
我想在 Azure 管道阶段之一中检查位于同一 GitHub 组织中的私有存储库之一,基于 Azure 文档,这是我尝试过的:
https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops
resources:
repositories:
- repository: pipelinetemplates
type: github
name: myorg/myrepotemplate
endpoint: mygithub-serviceconnection
- repository: myrepo
type: github
name: myorg/myrepo
endpoint: mygithub-serviceconnection
stages:
- stage:
jobs:
- job: Build
steps:
- template: Template/build.yaml@pipelinetemplates ##It works fine
pool:
vmImage: 'ubuntu-latest'
- stage:
jobs:
- job: A
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: myrepo ##Error-not found repo
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Fetching files"
ls
我在结帐部分收到此错误消息:
Syncing repository: myorg/myrepo (github)
git version
git version 2.24.0
git lfs version
git-lfs/2.9.1 (GitHub; linux amd64; go 1.13.1)
git init "/home/vsts/work/1/s"
Initialized empty Git repository in /home/vsts/work/1/s/.git/
git remote add origin https://github.com/myorg/myrepo
git config gc.auto 0
git config --get-all http.https://github.com/myorg/myrepo.extraheader
git config --get-all http.proxy
git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules origin
remote: Repository not found.
fatal: repository 'https://github.com/myorg/myrepo/' not found
##[warning]Git fetch failed with exit code 128, back off 5.284 seconds before retry.
有谁知道问题出在哪里以及如何解决?
已更新:
我可以看到服务连接正在使用 GitHub-InstallationToken(使用 azure 管道应用程序)。根据我上次使用 GitHub 令牌时的搜索,我们不能多次使用它在一个管道下获取回购协议,但是在这个管道中我们调用 GitHub 服务连接两次.看起来令牌只能使用一次。有什么办法可以解决这个问题吗?
使用 oauth 而不是 oauth2 重新设置 GitHub 服务连接解决了问题。
我想在 Azure 管道阶段之一中检查位于同一 GitHub 组织中的私有存储库之一,基于 Azure 文档,这是我尝试过的:
https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops
resources:
repositories:
- repository: pipelinetemplates
type: github
name: myorg/myrepotemplate
endpoint: mygithub-serviceconnection
- repository: myrepo
type: github
name: myorg/myrepo
endpoint: mygithub-serviceconnection
stages:
- stage:
jobs:
- job: Build
steps:
- template: Template/build.yaml@pipelinetemplates ##It works fine
pool:
vmImage: 'ubuntu-latest'
- stage:
jobs:
- job: A
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: myrepo ##Error-not found repo
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "Fetching files"
ls
我在结帐部分收到此错误消息:
Syncing repository: myorg/myrepo (github)
git version
git version 2.24.0
git lfs version
git-lfs/2.9.1 (GitHub; linux amd64; go 1.13.1)
git init "/home/vsts/work/1/s"
Initialized empty Git repository in /home/vsts/work/1/s/.git/
git remote add origin https://github.com/myorg/myrepo
git config gc.auto 0
git config --get-all http.https://github.com/myorg/myrepo.extraheader
git config --get-all http.proxy
git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules origin
remote: Repository not found.
fatal: repository 'https://github.com/myorg/myrepo/' not found
##[warning]Git fetch failed with exit code 128, back off 5.284 seconds before retry.
有谁知道问题出在哪里以及如何解决?
已更新:
我可以看到服务连接正在使用 GitHub-InstallationToken(使用 azure 管道应用程序)。根据我上次使用 GitHub 令牌时的搜索,我们不能多次使用它在一个管道下获取回购协议,但是在这个管道中我们调用 GitHub 服务连接两次.看起来令牌只能使用一次。有什么办法可以解决这个问题吗?
使用 oauth 而不是 oauth2 重新设置 GitHub 服务连接解决了问题。