commitlintbot

Runs commitlint against your projects PRs

MIT License

Downloads
10
Stars
54
Committers
1

The problem

You use conventional-changelog, but you squash pull requests (PRs). So you want PR titles to match the same semantics as your conventional changelog requirements. (If you want a bot to lint against your commit messages instead of the PR title, then check out ahmed-taj/commitlint-bot!)

This solution

commitlintbot is a bot that will update your pull request's commit status based on your PR's title satisfying the requirements of your conventional-changelog configuration. It runs on now.sh, and receives github webhooks and updates a commit status via the Github API.

Configuration

  • A default commitlint config will be applied.
    • However if you have a commitlint.config.js in the root of the repo, that will be used instead. The other config formats (.commitlintrc.js, .commitlintrc.json, .commitlintrc.yml) are not supported.
  • Additionally, if you have a .cz-config.js in the root of your repo, that will be used to enforce your custom scopes & types.

Installation

  • Setup webhook.
    • https://commitlintbot2.vercel.app/api/lint-title
    • application/json
    • Secret... not implemented. :|
    • Choose individual events: Pull request
    • Add.
  • If you want to use this in an organization and the org has fairly locked down permissions, org owners will need to approve the use of the app (via OAuth client_id): https://github.com/settings/connections/applications/e3737bbd21bc66fb0a18

Now, things should be pretty automatic.

Troubleshooting

The responses of the webhook should be minimally helpful:

Dev

getting a magical oauth token to use so the icon is the app not me

  1. https://github.com/login/oauth/authorize?client_id=e3737bbd21bc66fb0a18&login=GoogleChrome&scope=repo:status%20public_repo
  2. grab the code that's in the URL afterwards.
  3. https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#2-users-are-redirected-back-to-your-site-by-github
    • use postman or whatever to post those in the body

LICENSE

MIT