close
The Wayback Machine - https://web.archive.org/web/20201229075630/https://github.com/talos-systems/conform
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.
Type
Name
Latest commit message
Commit time
cmd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.