7

私は自分の 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"}'

これは機能します。ただし、という名前の 2 番目のプロジェクトを作成すると、問題が発生します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"} }'

これにより、プロジェクトにリポジトリ repo2 が作成されますmainproject

uuid を使用してみましたが、同じことが起こり、メインプロジェクトにリポジトリが作成されます。

リンクにプロジェクト名を入れてみました:

$ 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"}}

作成するリポジトリが属するプロジェクトを指定するにはどうすればよいですか? この方法でリポジトリの作成を自動化する必要があるため、コマンドラインに固執したいと思います。

4

1 に答える 1

19

コンテンツ タイプは、次の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"}}'
于 2016-07-13T09:45:49.370 に答える