kal*_*gne 6 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"}'
Run Code Online (Sandbox Code Playgroud)
这有效.但是,当我创建第二个项目时会出现问题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"} }'
Run Code Online (Sandbox Code Playgroud)
或者使用关键参数:
$ 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"} }'
Run Code Online (Sandbox Code Playgroud)
这将在项目中创建存储库repo2 mainproject.
我尝试使用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"}}
Run Code Online (Sandbox Code Playgroud)
如何指定要创建的存储库属于哪个项目?我不是在寻找GUI解决方案,我想坚持命令行,因为我需要以这种方式自动化创建存储库.
kal*_*gne 14
必须curl使用以下参数指定内容类型:-H "Content-Type: application/json".然后json正常访问数据.所以最终的推荐看起来像这样:
$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo2" -H "Content-Type: application/json" -d '{"has_wiki": true, "is_private": true, "project": {"key": "PRJ_KEY"}}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5676 次 |
| 最近记录: |