Skip to content
Use this GitHub Action with your project

Add this Action to an existing workflow or create a new one.

View on Marketplace
master
Go to file
Code

Latest commit

This change fixes an issue that would allow JIRA-0 to be a valid Jira issue key. Id within Jira always start at 1, and cannot be prefixed by a any amount of leading 0's.

Fixes #191

Signed-off-by: André Valentin <4482448+andrevalentin@users.noreply.github.com>
73f334a

Git stats

Files

Permalink
Failed to load latest commit information.

README.md

Conform

Policy enforcement for your pipelines.

Conventional Commits GoDoc Travis Codecov Go Report Card Release GitHub (pre-)release


Conform is a tool for enforcing policies on your build pipelines.

Some of the policies included are:

  • Commits: Enforce commit policies including:
    • Commit message header length
    • Developer Certificate of Origin
    • GPG signature
    • Conventional Commits
    • Imperative mood
    • Spell check
    • Maximum of one commit ahead of master
    • Require a commit body
    • Jira issue check
  • License Headers: Enforce license headers on source code files.

Getting Started

To install conform you can download a release, or build it locally (go must be installed):

go get github.com/talos-systems/conform

Now, create a file named .conform.yaml with the following contents:

policies:
  - type: commit
    spec:
      header:
        length: 89
        imperative: true
        case: lower
        invalidLastCharacters: .
        jira:
          keys:
          - PROJ
          - JIRA
      body:
        required: true
      dco: true
      gpg: false
      spellcheck:
        locale: US
      maximumOfOneCommit: true
      conventional:
        types:
          - "type"
        scopes:
          - "scope"
        descriptionLength: 72
  - type: license
    spec:
      skipPaths:
        - .git/
        - .build*/
      includeSuffixes:
        - .ext
      excludeSuffixes:
        - .exclude-ext-prefix.ext
      header: |
        This is the contents of a license header.

In the same directory, run:

$ conform enforce
POLICY         CHECK                        STATUS        MESSAGE
commit         Header Length                PASS          <none>
commit         Imperative Mood              PASS          <none>
commit         Header Case                  PASS          <none>
commit         Header Last Character        PASS          <none>
commit         DCO                          PASS          <none>
commit         Conventional Commit          PASS          <none>
commit         Number of Commits            PASS          <none>
commit         Commit Body                  PASS          <none>
license        File Header                  PASS          <none>

To setup a commit-msg hook:

cat <<EOF | tee .git/hooks/commit-msg
#!/bin/sh

conform enforce --commit-msg-file \$1
EOF
chmod +x .git/hooks/commit-msg

We also provide a Pre-Commit hook that you can use as follows:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/talos-systems/conform
    rev: master
    hooks:
      - id: conform
        stages:
          - commit-msg

License

license

You can’t perform that action at this time.