Skip to content

Commit

Permalink
CI: Add pre-commit bits
Browse files Browse the repository at this point in the history
Change-Id: Ie207583b16bda0f1851dcf31e6dfae386a59945c
Signed-off-by: Andrew Grimberg <agrimberg@linuxfoundation.org>
  • Loading branch information
tykeal committed Jun 29, 2023
1 parent 30619fc commit 2ce88a0
Show file tree
Hide file tree
Showing 4 changed files with 165 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space

[*.json]
indent_size = 2

[*.rst]
indent_size = 4

[*.markdown]
indent_size = 4
max_line_length = 80

[*.sh]
indent_size = 4
max_line_length = 80

[*.yaml]
indent_size = 2
max_line_length = 120
97 changes: 97 additions & 0 deletions .gitlint
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# All these sections are optional, edit this file as you like.
[general]
# Ignore certain rules, you can reference them by their id or by their full
# name
# ignore=title-trailing-punctuation, T3

# verbosity should be a value between 1 and 3, the command line -v flags take
# precedence over this
# verbosity = 2

# By default gitlint will ignore merge commits. Set to 'false' to disable.
# ignore-merge-commits=true

# By default gitlint will ignore fixup commits. Set to 'false' to disable.
# ignore-fixup-commits=true

# By default gitlint will ignore squash commits. Set to 'false' to disable.
# ignore-squash-commits=true

# Enable debug mode (prints more output). Disabled by default.
# debug=true

# Set the extra-path where gitlint will search for user defined rules
# See http://jorisroovers.github.io/gitlint/user_defined_rules for details
# extra-path=examples/

# contrib=contrib-title-conventional-commits,contrib-body-requires-signed-off-by
contrib=contrib-body-requires-signed-off-by

# [title-max-length]
# line-length=80

# [title-must-not-contain-word]
# Comma-separated list of words that should not occur in the title. Matching is
# case insensitive. It's fine if the keyword occurs as part of a larger word
# (so "WIPING" will not cause a violation, but "WIP: my title" will.
# words=wip

# [title-match-regex]
# python like regex (https://docs.python.org/2/library/re.html) that the
# commit-msg title must be matched to.
# Note that the regex can contradict with other rules if not used correctly
# (e.g. title-must-not-contain-word).
# regex=^US[0-9]*

# [B1]
# B1 = body-max-line-length
# line-length=120

# [body-min-length]
# min-length=5

# [body-is-missing]
# Whether to ignore this rule on merge commits (which typically only have a title)
# default = True
# ignore-merge-commits=false

# [body-changed-file-mention]
# List of files that need to be explicitly mentioned in the body when they are
# changed This is useful for when developers often erroneously edit certain
# files or git submodules. By specifying this rule, developers can only change
# the file when they explicitly reference it in the commit message.
# files=gitlint/rules.py,README.md

# [author-valid-email]
# python like regex (https://docs.python.org/2/library/re.html) that the
# commit author email address should be matched to
# For example, use the following regex if you only want to allow email
# addresses from foo.com
# regex=[^@]+@foo.com

# [ignore-by-title]
# Ignore certain rules for commits of which the title matches a regex
# E.g. Match commit titles that start with "Release"
# regex=^Release(.*)
#
# Ignore certain rules, you can reference them by their id or by their full name
# Use 'all' to ignore all rules
# ignore=T1,body-min-length

# [ignore-by-body]
# Ignore certain rules for commits of which the body has a line that matches a
# regex
# E.g. Match bodies that have a line that contain "release"
# regex=(.*)release(.*)
#
# Ignore certain rules, you can reference them by their id or by their full name
# Use 'all' to ignore all rules
# ignore=T1,body-min-length

# Enable Conventional Commit subject line enforcement
# https://www.conventionalcommits.org/en/v1.0.0/
#
# Since we want all subjects to be well formed, enforce the topics
# to the following (fairly standard) topics and require them to be Mixed Case
# [contrib-title-conventional-commits]
# types=Fix,Feat,Chore,Docs,Style,Refactor,Perf,Test,Revert,CI,Build
32 changes: 32 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: check-executables-have-shebangs
stages: [manual]
- id: check-json
exclude: (.vscode|.devcontainer)
- id: no-commit-to-branch
args:
- --branch=dev
- --branch=master
- --branch=main
- --branch=rc

- repo: https://github.com/jorisroovers/gitlint
rev: v0.19.1
hooks:
- id: gitlint

# - repo: https://github.com/adrienverge/yamllint.git
# rev: v1.32.0
# hooks:
# - id: yamllint

# - repo: https://github.com/pre-commit/mirrors-prettier
# rev: v3.0.0-alpha.9-for-vscode
# hooks:
# - id: prettier
# stages: [commit]
11 changes: 11 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
extends: default

rules:
empty-lines:
max-end: 1
line-length:
max: 120
comments:
# prettier forces 1 space comment separator
min-spaces-from-content: 1

0 comments on commit 2ce88a0

Please sign in to comment.