如何克隆Azure项目的所有存储库?

问题描述 投票:0回答:1

我需要克隆 Azure 项目中的所有现有存储库来执行一些搜索。然后尝试以下代码:

#!/bin/bash

ORGANIZATION="abc"
PROJECT="cdf"
PAT="fgh"

az devops login --organization "https://dev.azure.com/$ORGANIZATION"

REPOS=$(curl -s -H "Authorization: Basic $(echo -n :$PAT | base64)" \
  "https://dev.azure.com/$ORGANIZATION/$PROJECT/_apis/git/repositories?api-version=6.0" \
  | jq -r '.value[].sshUrl')


for REPO in $REPOS; do
  git clone $REPO
done

但是我在所有尝试中都收到以下错误:

Please make sure you have the correct access rights
and the repository exists.
Cloning into 'some-repo'...
remote: Public key authentication failed.
fatal: Could not read from remote repository.

我使用的令牌是正确的,我今天实际上用它来克隆存储库、发送提交等。 我究竟做错了什么?或者我可以使用什么其他方法。

bash git azure-devops repository
1个回答
0
投票

更改您的 Bash 脚本,如下所示:

#!/bin/bash

org="{organization}"
proj="{project}"
pat="{PAT}"
uri="https://dev.azure.com/$org/$proj/_apis/git/repositories?api-version=7.0"

az devops login --org https://dev.azure.com/$org <<EOF
$pat
EOF

repos=$(curl -X GET -u :$pat $uri -H 'Accept: application/json' | jq -r '.value[].remoteUrl')

for repo in $repos; do
  echo "Clone repository: $repo"
  git clone "$repo"
done
© www.soinside.com 2019 - 2024. All rights reserved.