Closes #N in a merge request body did nothing: only commit messages
were scanned. The keyword had to be written in a commit to take effect,
which is easy to get wrong and silent when you do — it bit me twice this
week, leaving krz/gitbay#50 and krz/gitbay-ios#6 open after their merges.
ProcessMRDescription scans the merged MR's title and body with the same
pattern, and runs after ProcessCommitMessages sharing its (issue, sha)
dedup key. An issue named in both a commit and the description is closed
once and attributed to the commit; the description only acts on issues
still open.
Bare #N in a description stays display-only. It already autolinks, and
a reference comment for every issue mentioned in passing would be noise.
closingRefs is now the one scanner both paths use. Its tests pin the
keyword set, repeats collapsing, cross-repo staying display-only, and the
word boundary — I had that last case backwards and the test corrected me.