Skip to content

Enforce Conventional Commits via GitHub Action to Improve Release Automation #1433

@srizzling

Description

@srizzling

Summary

This issue proposes enforcing Conventional Commits at the pull request level and commit level using a GitHub Action. The aim is to improve consistency in commit messages and support better automation around changelog generation and versioning through GoReleaser.

Why additionally at the pull request level? Github when you select squash merge, will use the pull request title as the commit message title, this would help ensure that it is consistent across the board


Current


Desire

  • Automate changelog generation and versioning via commit messages.
  • Improve the readability and predictability of commit history.
  • Highlight breaking changes and categorize updates more effectively (feat, fix, chore, etc.).
  • Prevent issues where features get merged but not released due to unclear commit histories or manual tagging.
  • Reduce the cognitive load on maintainers during releases.
  • Keep the barrier to entry low for new contributors, while still encouraging best practices.

Proposal

  • Enforce commit format via GitHub Action (e.g., Conventional Pull Request Action to validate PR titles and/or commit messages.
  • Update GoReleaser configuration to use commit messages for changelog generation. This enables automatic generation of structured release notes based on commit type (feat, fix, chore, etc.).
  • Update contribution documentation with guidance and examples to help contributors format their commits correctly. Perhaps we can consider a bot that would approioately suggest a commit message title, with ways to fix commits made to reduce friction?

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueIndicates a good issue for first-time contributorspriority:highImportant issue affecting many usersproject:buildIssues or pull requests related to buildsstatus:ready-for-devIssue is ready for developmenttype:enhancementIndicates new feature requests

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions