bash - 通过命令行检查 BitBucket 存储库是否存在

标签 bash git shell curl bitbucket

我知道如何通过这样做在 BitBucket 中创建存储库。

让电子邮件 = <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="167c797e78567963627a79797d3875797b" rel="noreferrer noopener nofollow">[email protected]</a> ,和密码123

curl -k -X POST --user <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="86ece9eee8c6e9f3f2eae9e9eda8e5e9eb" rel="noreferrer noopener nofollow">[email protected]</a>:123 "https://api.bitbucket.org/1.0/repositories" -d "name=test"

但是如何以编程方式检查 BitBucket 中是否存在存储库?

最佳答案

这是我对公共(public)、私有(private)和不存在的存储库进行 curl 调用时得到的结果:

私有(private)(状态代码 403):

> curl -k -X GET https://api.bitbucket.org/1.0/repositories/padawin/some-private-repo
Forbidden

不存在(状态代码 404):

> curl -k -X GET https://api.bitbucket.org/1.0/repositories/padawin/travels1
{"type": "error", "error": {"message": "Repository padawin/travels1 not found"}}

公开(状态代码 200):

> curl -k -X GET https://api.bitbucket.org/1.0/repositories/padawin/travels
{"scm": "git", "has_wiki": false, "last_updated": "2015-08-02T14:09:42.134", "no_forks": false, "forks_count": 0, "created_on": "2014-06-08T23:48:28.483", "owner": "padawin", "logo": "https://bytebucket.org/ravatar/%7Bb56f8d55-4821-4c89-abbc-7c1838fb68a3%7D?ts=default", "email_mailinglist": "", "is_mq": false, "size": 1194864, "read_only": false, "fork_of": null, "mq_of": null, "followers_count": 1, "state": "available", "utc_created_on": "2014-06-08 21:48:28+00:00", "website": "", "description": "", "has_issues": false, "is_fork": false, "slug": "travels", "is_private": false, "name": "travels", "language": "", "utc_last_updated": "2015-08-02 12:09:42+00:00", "no_public_forks": false, "creator": null, "resource_uri": "/api/1.0/repositories/padawin/travels"}

您可以使用状态代码,因为正文并不总是有效的 json(Forbidden 必须是 "Forbidden" 才能成为有效的 JSON)。

关于bash - 通过命令行检查 BitBucket 存储库是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55574706/

相关文章:

git - 什么是 Git 快进?

Git push 什么都不推送

linux - 与作为变量传递到 awk 的正则表达式进行比较

bash - 树莓派的 GPIO 命令无法通过 crontab 工作

python - 令人讨厌的Python语法错误

regex - 如何使用 SED 或 AWK 在行中添加双引号?

shell - UNIX - 格式化另一个 shell 脚本 - 在 sed 中使用 awk

python - 如何将错误消息从 shell 脚本传递到 Python 脚本?

xcode - 创建项目后创建git仓库

python - 使用 glob 通过 subprocess.run() 生成参数