Bitbcketのコマンドラインツール「bitbucket-cli」を使えばウェブコンソールを開かなくてもプルリクエストを出したりできる…と聞きましたができませんでした。
zhemao / bitbucket-cli — Bitbucket
このコマンドを紹介している記事がネット上で多く見つかりますが、現状(2020年2月時点)では動かなくなっている事をお伝えするため記事にします。
この記事の内容
bitbucket-cliをインストールする
pipでインストールできます。
python3には対応していないようなので、python2の環境でインストールする必要があります。
# pip2 install bitbucket-cli
pipのインストール方法はこちら。
ちなみにpython3の環境で動かそうとすると以下のような出力になります。
# bb --help
Traceback (most recent call last):
File "/usr/local/bin/bb", line 5, in <module>
from bitbucket.cli import run
File "/usr/local/lib/python3.5/dist-packages/bitbucket/__init__.py", line 1, in <module>
from .repositories import *
File "/usr/local/lib/python3.5/dist-packages/bitbucket/repositories.py", line 25
print r.content
^
SyntaxError: Missing parentheses in call to 'print'
bitbucket-cliの使い方
コマンドは以下のフォーマットで使います。
bitbucket [options]
または
bb [options]
APIバージョンが古くなっていて動かない
動かそうとすると以下のようなエラーになります。
# bb clone --username ユーザー名 --protocol ssh zhemao bitbucket-cli
password:
Request Error 410: gone
{"type": "error", "error": {"message": "Resource removed", "detail": "This API is no longer supported.\n\nFor information about its removal, please refer to the deprecation notice at: https://developer.atlassian.com/cloud/bitbucket/deprecation-notice-v1-apis/"}}
エラーメッセージの内容としては以下です。
このAPIはサポートされなくなりました。削除については、https://developer.atlassian.com/cloud/bitbucket/deprecation-notice-v1-apis/の廃止通知を参照してください。
ということで、内部で使っているAPIが使えなくなっているようです。
下記サイトでAPI version1が廃止された旨が書かれています。
Deprecation notice – Bitbucket Cloud REST API version 1 is deprecated effective 30 June 2018
プルリクエストは401エラーになり送れない
pullrequest comments APIについてはAPIバージョン2でも引き継がれているようなので、プルリクエストを送るだけなら可能ではないかと思い試してみました。
# bb pull_request --owner xxxx test master
Request Error 401: unauthorized
401エラーになってしまいました。
そもそもssh接続に対応してないのかもしれません。
2020年2月時点の課題
BItbucketのリポジトリでAPIバージョン1が削除されたため動かなくなったという課題が上がっていますが、2020年2月時点で修正はされていないようです。
zhemao / bitbucket-cli / 課題 / #34 – API no longer supported — Bitbucket
Bitbucketをコマンドラインで操作したければ自分でAPIバージョン2に対応したツールを開発するしかなさそうです。
あるいは他に対応しているツールがあるのかも。
以上です。
コメント/ピンバック