mainproject
という名前のプロジェクトがある私のビットバケットアカウントのチームmyteam
があります。私がリポジトリを作成したいときは、次のコマンドラインを実行するだけです:Bitbucket API 2 - チームプロジェクトでリポジトリを作成する
$ 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
という2番目のプロジェクトを作成するときに問題が発生します。リポジトリが属するプロジェクトを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が作成されました。
私は、リンクでプロジェクト名を入れてみました:
$ 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ソリューションを探しているわけではありません。この方法でリポジトリの作成を自動化する必要があるため、コマンドラインに固執したいと思います。
パスワードを書く/書くことなくこれをスクリプト化する方法はありますか?例えばSSHを使う? – Wingjam
URLのTEAMは大文字と小文字を区別します。この場合は「myteam」です。私の場合、その名前に大文字の文字がいくつかありましたが、失敗したときはフレンドリーなエラーにはなりませんでした。 –