git post
で pull request が投げられ(以下略 : 前の post を参照)
以下のページを参考に作業
OAuth on Bitbucket Cloud - Atlassian Documentation
github と違って、ちゃんと oauth しないといけなかった
bitbucket の設定の OAuth から OAuth コンシューマーを追加
リダイレクト URL は https://github.com/perfect-freeze/git-post にした
許可するのは pull request の作成
ここはクエリを受け取れるようなページじゃないけどブラウザで code がコピーできれば良いかな、という感じ
https://bitbucket.org/site/oauth2/authorize?client_id={client_id}&response_type=code
ここにブラウザでアクセス
client_id は、コンシューマーの「鍵」
表示されたページで「許可」すると、リダイレクト URL に ?code={code} でリダイレクトするのでその code をコピーしておく
curl -X POST -u "client_id:secret" \ https://bitbucket.org/site/oauth2/access_token \ -d grant_type=authorization_code -d code={code}
そのあとこのリクエストを投げると access_token が手に入る
そして
curl -H "Authorization: Bearer $token" ¥ -H "Content-Type: application/json" ¥ -X POST ¥ https://api.bitbucket.org/2.0/repositories/USER/REPO/pullrequests/ ¥ -d '{"title": "TITLE", "source": {"branch": {"name": "BRANCH"}, "repository": {"full_name": "USER/REPO"}}}'
で pull request できた!
ちなみに、このアクセストークン、1時間で無効になる
curl -X POST -u "client_id:secret" https://bitbucket.org/site/oauth2/access_token \ -d grant_type=refresh_token -d refresh_token={refresh_token}
これで新しいトークンが取得できる
refresh_token はトークンを取得した時に同時に取得できる