我正在尝试编写一个 bash 脚本,该脚本获取我在 bitbucket 上的所有存储库并在本地备份它们。
我一直试图从 bitbucket 获取 repos 列表。我已经阅读了一些执行此操作的 api,我什至对其进行了测试。但它是如此巨大,我只是不知道从哪里开始。
任何帮助将不胜感激
我正在尝试编写一个 bash 脚本,该脚本获取我在 bitbucket 上的所有存储库并在本地备份它们。
我一直试图从 bitbucket 获取 repos 列表。我已经阅读了一些执行此操作的 api,我什至对其进行了测试。但它是如此巨大,我只是不知道从哪里开始。
任何帮助将不胜感激
我认为您应该检查“获取帐户的存储库列表” 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"]
此时您可以使用sed
或awk
从数组中提取它们。