ずっとできないものだとばかり思っていたのですが、BitBucketのドキュメントにやり方が書いてありました。
まずはコミットログをIssueに転送するための設定を行います。リポジトリの「Admin」タブの「Service」メニューから連携するサービスにIssueを追加します。Issue以外にもいろんなサービスに連携できるようです。
あとは普通にコミットするのですが、コミットログには書き方にコツがあり、コミットログ中に以下のフォーマットでコマンドとIssueのIDを記述します。
<command> <issue id>
IssueのIDは以下のようにいろんな書き方ができるようです。まあでも「#番号」って書いておけばいい気がする。
#4711 issue 4711 bug 4711 ticket 4711
コマンドには以下のようなものがあります。
close/closed/closes/closing/fix/fixed/fixes # Issueをクローズ reopen/reopens/reopening # クローズされているIssueを再開 addresses/re/references/ref/refs/see # Issueにコメントを追加するだけ
IssueのIDは以下のような感じで複数書いたりすることもできるみたいです。
"... refs bug #4711 and #4712..."
英語の文章に混ぜて書きやすいよう工夫されているようですが、なんだか逆にわかりにくいような気がします…。複数のIssueのIDを書くときにカンマ区切りでもいいのかとか。あと、冒頭でリンクしているBitBucketのドキュメントのコメントにも要望が上がっていますが、コミットログとIssueの連携はデフォルトで有効になってて欲しいですね。