Writing this up after discussion with @thcipriani and @Aklapper.
**Problem:** GitLab has a concept of commit templates. The default, especially for squashed MRs, is bad.
Docs:
https://gitlab.wikimedia.org/help/user/project/merge_requests/commit_templates
The default message for squashed commits, in its entirety:
```
%{title}
```
This is just the title of the merge request, and it tends to lose nearly all of the information in commit bodies. This is a bad default. It results in a less useful history and discourages [[ https://www.mediawiki.org/wiki/Gerrit/Commit_message_guidelines | good commit message practices ]].
**Proposed hack:** Use gitlab-settings/configure-projects to set a better template.
It's possible to define custom commit message templates on, at least, a per project basis:
> GitLab uses commit templates to create default messages for specific types of commits. These templates encourage commit messages to follow a particular format, or contain specific information. Users can override these templates when merging a merge request.
We could use the `configure-projects` script to set sensible defaults for all projects on the instance.
There's an `%{all_commits}` value available for everything in the merge request (up to 100 commits, anyway).
The [[ https://docs.gitlab.com/ee/api/projects.html | projects API ]] has:
```
"suggestion_commit_message": null,
"merge_commit_template": null,
"squash_commit_template": null,
```
**Upstream alternatives:** It would be ideal to instead get the default fixed upstream. Maybe this has already occurred to someone, but I haven't found anything yet.
I didn't find any existing issues under these searches:
- https://gitlab.com/gitlab-org/gitlab/-/issues/?sort=created_date&state=opened&search=default%20commit%20template%20squash&first_page_size=100
- https://gitlab.com/gitlab-org/gitlab/-/issues/?sort=created_date&state=opened&search=commit%20templates&first_page_size=100
I'll do some more looking or write an issue.