Skip to content

commit-check/commit-check-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Commit-Check GitHub Action

Main Commit Check GitHub release (latest SemVer) Used by GitHub marketplace

A Github Action for checking commit message formatting, branch naming, committer name, email, commit signoff and more.

Table of Contents

Usage

Create a new GitHub Actions workflow in your project, e.g. at .github/workflows/commit-check.yml

name: Commit Check

on:
  push:
  pull_request:
    branches: 'main'

jobs:
  commit-check:
    runs-on: ubuntu-latest
    permissions:  # use permissions because of use pr-comments
      contents: read
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}  # checkout PR HEAD commit
          fetch-depth: 0  # required for merge-base check
      - uses: commit-check/commit-check-action@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # use GITHUB_TOKEN because of use pr-comments
        with:
          message: true
          branch: true
          author-name: true
          author-email: true
          commit-signoff: true
          merge-base: false
          job-summary: true
          pr-comments: ${{ github.event_name == 'pull_request' }}

Optional Inputs

message

  • Description: check commit message formatting convention.
  • Default: true

branch

  • Description: check git branch naming convention.
  • Default: true

author-name

  • Description: check committer author name.
  • Default: true

author-email

  • Description: check committer author email.
  • Default: true

commit-signoff

  • Description: check committer commit signature.
  • Default: true

merge-base

  • Description: check current branch is rebased onto target branch.
  • Default: false

Important

merge-base is an experimental feature. by default it's disable.

To use this feature, you need fetch all history for all branches by setting fetch-depth: 0 in actions/checkout.

dry-run

  • Description: run checks without failing. exit code is 0 otherwise is 1.
  • Default: false

job-summary

  • Description: display job summary to the workflow run.
  • Default: true

pr-comments

  • Description: post results to the pull request comments.
  • Default: false

Important

pr-comments is an experimental feature. by default it's disable. To use it you need to set GITHUB_TOKEN in the GitHub Action.

This feature currently doesn’t work with forked repositories. For more details, refer to issue #77.

Note: the default rule of above inputs is following this configuration, if you want to customize just add your .commit-check.yml config file under your repository root directory.

GitHub Action Job Summary

By default, commit-check-action results are shown on the job summary page of the workflow.

Success Job Summary

Success job summary

Failure Job Summary

Failure job summary

GitHub Pull Request Comments

Success Pull Request Comment

Success pull request comment

Failure Pull Request Comment

Failure pull request comment

Badging Your Repository

You can add a badge to your repository to show your contributors/users that you use commit-check!

Commit Check

Markdown

[![Commit Check](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml/badge.svg)](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml)

reStructuredText

.. image:: https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml/badge.svg
    :target: https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml
    :alt: Commit Check

Versioning

Versioning follows Semantic Versioning.

Have questions or feedback?

To provide feedback (requesting a feature or reporting a bug) please post to issues.