GitBucket のバージョンは 4.8
コミット→issueへのリンクはできてるけど、
issue→コミットへのリンクができていない。
みたいなことがあって悩んでた。
原因は、 git config
の user.email
に設定しているメールアドレスに該当するユーザーが GitBucket 上に存在しないからだった。
コミットをもとに関連する issue にコメントを登録する実装は次のようになっている。
IssuesService.scala
def createIssueComment(owner: String, repository: String, commit: CommitInfo)(implicit s: Session) = {
StringUtil.extractIssueId(commit.fullMessage).foreach { issueId =>
if(getIssue(owner, repository, issueId).isDefined){
getAccountByMailAddress(commit.committerEmailAddress).foreach { account =>
createComment(owner, repository, account.userName, issueId.toInt, commit.fullMessage + " " + commit.id, "commit")
}
}
}
}
一番内側のループで、コミット時のメールアドレスに該当する Gitbucket 上のアカウントでループしている。
getAccountByMailAddress(commit.committerEmailAddress)
なので、 user.email
に設定しているアドレスに該当するユーザーが GitBucket 上に存在しない場合は、ここのループが空振りして issue にコメントが登録されない。
user.email
を設定しなおした後は、
ちゃんと相互に紐づいてる。