如何从位桶中获取git存储库列表以在bash脚本中用作变量?

时间:2016-05-11 21:12:15

标签: git bash repository bitbucket bitbucket-api

我正在尝试编写一个bash脚本,该脚本包含我在bitbucket上的所有存储库并在本地备份它们。

我试图从bitbucket获取一个repos列表。我已经阅读了一些这样做的api,我甚至测试了它。但它太庞大了,我只是不知道从哪里开始。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

我认为您应该检查"GET a list of repositories for an account" API。将它与curl

一起使用非常简单
curl -u '<user>:<password>' https://api.bitbucket.org/2.0/repositories/<owner>

owner可能与user相同。请注意,如果您只查询公共存储库,则不需要任何授权(-u选项)。响应是分页的,因此您可能需要进行多次调用。

此API返回一个JSON对象,描述owner的所有可见(针对经过身份验证的用户)的回购。在Bash中解析它的方法之一是使用jsawk。但您可以自由使用任何您喜欢的工具,如NodeJS或Python。您只需要从stdin读取并将其解析为JSON。简单的例子,就是从一开始。获取jespern的所有公共回购:

curl https://api.bitbucket.org/2.0/repositories/jespern | jsawk 'return this.values.map(value => value.full_name)'

["jespern/cx","jespern/cx-patches","jespern/ldap2vcard","jespern/pyetsy","jespern/puck","jespern/hgswitch","jespern/smart-oxe","jespern/pygments-anchorlinenos","jespern/emptyrepo","jespern/help"]

此时,您可以使用sedawk从阵列中提取它们。