Bitbucket API 2 - 在团队项目中创建存储库

时间:2016-07-13 09:17:01

标签: api rest curl repository bitbucket-api

我的bitbucket帐户myteam上有一个团队,其中包含一个名为mainproject的项目。每当我想在里面创建一个存储库时,我只需要执行这个命令行:

$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo1" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks"}'

这很有效。但是,当我创建名为secondproject的第二个项目时,会出现问题。我该如何告诉API存储库应该属于哪个项目?

我尝试在数据中指定项目信息(-d):

$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo2" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks", "project": {"name": "secondproject"} }'

或使用关键参数:

$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo2" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks", "project": {"key": "SEC"} }'

这将在项目mainproject中创建存储库repo2。

我尝试使用uuid,但同样的情况发生,repo在mainproject中创建。

我尝试将项目名称放在链接中:

$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/secondproject/repo1" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks"

...
{"error": {"message": "Resource not found", "detail": "There is no API hosted at this URL.\n\nFor information about our API's, please refer to the documentation at: https://confluence.atlassian.com/x/IYBGDQ"}}

如何指定我想要创建的存储库属于哪个项目? 我不是在寻找GUI解决方案,我想坚持命令行,因为我需要以这种方式自动化创建存储库。

1 个答案:

答案 0 :(得分:12)

必须使用以下参数将内容类型指定为DbDongle::convertTimestamps('users', ['created_at', 'updated_at', 'last_login']);curl。然后正常访问-H "Content-Type: application/json"数据。所以最终的推荐看起来像这样:

json