Just a few comments since I've been looking into these things as part of my Software Project Management tools research.
Todos: TODOs are very useful. Not just for future thought, but for thought process. I think people and companies who eschew TODOs in commits are just fucking weird and short sighted. It is understandable that if you used to TODO everywhere and never get it done that you don't want to see it because it reminds you of how you never get things done. To force that on projects where you collab with people is just retarded. No technical or style justification, just personal pleasure. Give it a rest and add the fucking TODO comment.
Changelogs: Changelogs are useful and need to be human readable. The use of CHANGELOG is hampered by people wanting to force their style through tools down others throats. I'm not a fan of creating change logs or release logs from solely git commit messages. If you don't review your CHANGELOG why keep the quality bar low via automation? Github has a commits page for that.
Git commit messages... I don't expect a consistent format here ever. I do expect a consistent format in a CHANGELOG. If you want to add logs from git commits via cherry-picking then a tool that can auto add based on filtering at the time of release makes more sense to me.
Keep a Changelog (http://www.keepachangelog.com) has a very good format that a developer could manage without tooling. There's a python CLI (https://pypi.org/project/changelog-cli/) to help. It'll even suggest next version based on entries. It would be more than useful to remind/prompt a developer before releasing about the CHANGELOG in case it is forgotten.
chg (https://www.npmjs.com/package/chg), changelog-version (https://email@example.com/changelog-version) are good tools for easy changelog management.
Not every project needs a CHANGELOG, so some estimates about 5-10% of Github projects using it seems fine to me. Most projects are small. No need to force it if there is no clamor for it. Commit logs are useful automated alternative.