Lint commit history
Problem to solve
The chagelog for a release (#1014 (closed)) is generated from commit history. Currently, the commit message can be arbitrary and we don't have any automated checking.
This can result in a history like this:
* f114f6f (origin/main, main) Merge branch 'approvers-view' into 'main'
|\
| * b9a6920 Revert changes to mr_view_test.go
| * 25d3ac2 Apply 1 suggestion(s) to 1 file(s)
| * 9427893 revert some of the vim-go gopls changes
| * 0eeb9a5 Merge remote-tracking branch 'origin/approvers-view' into approvers-view
| |\
| | * 3f0e1d3 Apply 1 suggestion(s) to 1 file(s)
| * | be6df04 add test coverage and address merge request feedback
| |/
| * 060dfec feat(mr): show approval/approver status in mr view
* | f6592eb (mine/main) Merge branch 'test-ci-task' into 'main'
|\ \
With messages like Apply 1 suggestion(s) to 1 file(s) making it into changelog.
Suggested solution
I started by suggesting squashing commit messages in the MR. That way we'll have one commit with MR title as a message.
In the future, it would be nice to adopt something like angular conventional commits and enforce them with a CI task.
/cc @kerrizor
