使用jq从项目克隆所有BitBucket存储库

adbdkb

我试图在我的团队的BitBucket项目中克隆所有存储库。

我想从REST调用返回的JSON中提取URL和名称,并使用这些值进行克隆

以下是我所拥有的

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
}

可能吗?我该怎么做?

谢谢

adbdkb

以下命令提供所需的输出

curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?limit=100 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r "[.values[] | ((.links.clone[] | select(.name==\"http\") |  .href)  + \" \" +  .name)]"

该命令的输出是

[
   "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository1",
   "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository2"
]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Gerrit安装后无法克隆所有项目存储库

来自分类Dev

有文件时如何克隆Bitbucket存储库?

来自分类Dev

无法使用Bitbucket和Github克隆存储库... Java

来自分类Dev

Bitbucket克隆私人git存储库

来自分类Dev

通过ssh克隆Bitbucket存储库

来自分类Dev

无法在本地克隆Bitbucket存储库

来自分类Dev

在个人帐户上克隆所有github存储库

来自分类Dev

如何提取Stash或Bitbucket中所有存储库的列表?

来自分类Dev

如何在GitHub桌面应用程序中克隆私有BitBucket存储库

来自分类Dev

从cgit克隆所有项目

来自分类Dev

GIT 并行克隆所有存储库,即克隆所有存储库所需的总时间接近最大存储库所需的时间:fatal: index-pack failed

来自分类Dev

使用脚本克隆私有Github存储库

来自分类Dev

使用现有Bitbucket存储库进行持续部署Bluemix

来自分类Dev

使用现有Bitbucket存储库进行持续部署Bluemix

来自分类Dev

如何克隆一个Bitbucket存储库?

来自分类Dev

我可以从BitBucket克隆git存储库吗?

来自分类Dev

不启动ssh-agent克隆Bitbucket存储库

来自分类Dev

团队成员无法从BitBucket克隆存储库吗?

来自分类Dev

Bitbucket git push提交无需克隆存储库

来自分类Dev

如何知道远程存储库中的所有项目?

来自分类Dev

Subversion:如何导出存储库中的所有项目?

来自分类Dev

提取GITHUB存储库下的所有项目

来自分类Dev

如何知道远程存储库中的所有项目?

来自分类Dev

来自克隆的GitHub Java(带有jni和C)存储库的Netbeans Maven项目

来自分类Dev

从命令行检索git存储库的所有克隆URL

来自分类Dev

列出在文件夹下克隆的所有Mercurial存储库

来自分类Dev

从命令行检索git存储库的所有克隆URL

来自分类Dev

在不克隆的情况下对 git 存储库中的所有文件进行分类

来自分类Dev

我应该从 git 存储库中克隆所有数据吗?

Related 相关文章

  1. 1

    Gerrit安装后无法克隆所有项目存储库

  2. 2

    有文件时如何克隆Bitbucket存储库?

  3. 3

    无法使用Bitbucket和Github克隆存储库... Java

  4. 4

    Bitbucket克隆私人git存储库

  5. 5

    通过ssh克隆Bitbucket存储库

  6. 6

    无法在本地克隆Bitbucket存储库

  7. 7

    在个人帐户上克隆所有github存储库

  8. 8

    如何提取Stash或Bitbucket中所有存储库的列表?

  9. 9

    如何在GitHub桌面应用程序中克隆私有BitBucket存储库

  10. 10

    从cgit克隆所有项目

  11. 11

    GIT 并行克隆所有存储库,即克隆所有存储库所需的总时间接近最大存储库所需的时间:fatal: index-pack failed

  12. 12

    使用脚本克隆私有Github存储库

  13. 13

    使用现有Bitbucket存储库进行持续部署Bluemix

  14. 14

    使用现有Bitbucket存储库进行持续部署Bluemix

  15. 15

    如何克隆一个Bitbucket存储库?

  16. 16

    我可以从BitBucket克隆git存储库吗?

  17. 17

    不启动ssh-agent克隆Bitbucket存储库

  18. 18

    团队成员无法从BitBucket克隆存储库吗?

  19. 19

    Bitbucket git push提交无需克隆存储库

  20. 20

    如何知道远程存储库中的所有项目?

  21. 21

    Subversion:如何导出存储库中的所有项目?

  22. 22

    提取GITHUB存储库下的所有项目

  23. 23

    如何知道远程存储库中的所有项目?

  24. 24

    来自克隆的GitHub Java(带有jni和C)存储库的Netbeans Maven项目

  25. 25

    从命令行检索git存储库的所有克隆URL

  26. 26

    列出在文件夹下克隆的所有Mercurial存储库

  27. 27

    从命令行检索git存储库的所有克隆URL

  28. 28

    在不克隆的情况下对 git 存储库中的所有文件进行分类

  29. 29

    我应该从 git 存储库中克隆所有数据吗?

热门标签

归档