Я пытаюсь клонировать все репозитории в проекте моей команды в BitBucket.
Я хочу извлечь URL и имя из JSON, возвращенного из вызова REST, и использовать эти значения для клонирования
Ниже приведено то, что у меня есть
curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?per_page=20 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r ".values[] | .links.clone[] | select(.name==\"http\") | .href" ^
H:\Utilities\Git\usr\bin\xargs.exe -L1 git clone -b release/development
Этоработает для URL, но я хочу также изменить имя каталога на атрибут Name, например, GitRepository1, GitRepository2 и т. д. вместо gitrepo1, gitrepo2, который используется автоматически, когда этот параметр не передается
Итак, что-то похожее на
curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?per_page=20 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r ".values[] | .links.clone[] | select(.name==\"http\") | .href" ^
H:\Utilities\Git\usr\bin\xargs.exe -L1 git clone -b release/development git_url dir_name
Мне нужна помощь с командой jq, чтобы выбрать два атрибута и передать команде xargs
И это структура json
{
"size": 25,
"limit": 25,
"isLastPage": false,
"values": [
{
"slug": "gitrepo1",
"id": 2216,
"name": "GitRepository1",
"scmId": "git",
"state": "AVAILABLE",
"statusMessage": "Available",
"forkable": true,
"project": {
"key": "PROJECT_NAME",
"id": 1369,
"name": "PROJECT_NAME",
"description": "ABC Team",
"public": false,
"type": "NORMAL",
"links": {
"self": [
{
"href": "http://bitbucketlocalserver:7990/projects/PROJECT_NAME"
}
]
}
},
"public": false,
"links": {
"clone": [
{
"href": "ssh://git@bitbucketlocalserver:7999/PROJECT_NAME/gitrepo1.git",
"name": "ssh"
},
{
"href": "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git",
"name": "http"
}
],
"self": [
{
"href": "http://bitbucketlocalserver:7990/projects/PROJECT_NAME/repos/gitrepo1/browse"
}
]
}
},
{
"slug": "gitrepo2",
"id": 2214,
"name": "GitRepository2",
"scmId": "git",
"state": "AVAILABLE",
"statusMessage": "Available",
"forkable": true,
"project": {
"key": "PROJECT_NAME",
"id": 1369,
"name": "PROJECT_NAME",
"description": "ABC Team",
"public": false,
"type": "NORMAL",
"links": {
"self": [
{
"href": "http://bitbucketlocalserver:7990/projects/PROJECT_NAME"
}
]
}
},
"public": false,
"links": {
"clone": [
{
"href": "ssh://git@bitbucketlocalserver:7999/PROJECT_NAME/gitrepo2.git",
"name": "ssh"
},
{
"href": "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo2.git",
"name": "http"
}
],
"self": [
{
"href": "http://bitbucketlocalserver:7990/projects/PROJECT_NAME/repos/gitrepo2/browse"
}
]
}
}
],
"start": 0,
"nextPageStart": 25
}
Возможно ли это? Как я могу это сделать?
Спасибо