diff options
Diffstat (limited to 'gitlint/files')
-rw-r--r-- | gitlint/files/commit-msg | 81 | ||||
-rw-r--r-- | gitlint/files/gitlint | 106 |
2 files changed, 0 insertions, 187 deletions
diff --git a/gitlint/files/commit-msg b/gitlint/files/commit-msg deleted file mode 100644 index e468290..0000000 --- a/gitlint/files/commit-msg +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -### gitlint commit-msg hook start ### - -# Determine whether we have a tty available by trying to access it. -# This allows us to deal with UI based gitclient's like Atlassian SourceTree. -# NOTE: "exec < /dev/tty" sets stdin to the keyboard -stdin_available=1 -(exec < /dev/tty) 2> /dev/null || stdin_available=0 - -if [ $stdin_available -eq 1 ]; then - # Set bash color codes in case we have a tty - RED="\033[31m" - YELLOW="\033[33m" - GREEN="\033[32m" - END_COLOR="\033[0m" - - # Now that we know we have a functional tty, set stdin to it so we can ask the user questions :-) - exec < /dev/tty -else - # Unset bash colors if we don't have a tty - RED="" - YELLOW="" - GREEN="" - END_COLOR="" -fi - -run_gitlint(){ - echo "gitlint: checking commit message..." - python -m gitlint.cli --staged --msg-filename "$1" - gitlint_exit_code=$? -} - -# Prompts a given yes/no question. -# Returns 0 if user answers yes, 1 if no -# Reprompts if different answer -ask_yes_no_edit(){ - ask_yes_no_edit_result="no" - # If we don't have a stdin available, then just return "No". - if [ $stdin_available -eq 0 ]; then - ask_yes_no_edit_result="no" - return; - fi - # Otherwise, ask the question until the user answers yes or no - question="$1" - while true; do - read -p "$question" yn - case $yn in - [Yy]* ) ask_yes_no_edit_result="yes"; return;; - [Nn]* ) ask_yes_no_edit_result="no"; return;; - [Ee]* ) ask_yes_no_edit_result="edit"; return;; - esac - done -} - -run_gitlint "$1" - -while [ $gitlint_exit_code -gt 0 ]; do - echo "-----------------------------------------------" - echo "gitlint: ${RED}Your commit message contains the above violations.${END_COLOR}" - ask_yes_no_edit "Continue with commit anyways (this keeps the current commit message)? [y(es)/n(no)/e(dit)] " - if [ $ask_yes_no_edit_result = "yes" ]; then - exit 0 - elif [ $ask_yes_no_edit_result = "edit" ]; then - EDITOR=${EDITOR:-vim} - $EDITOR "$1" - run_gitlint "$1" - else - echo "Commit aborted." - echo "Your commit message: " - echo "-----------------------------------------------" - cat "$1" - echo "-----------------------------------------------" - - exit $gitlint_exit_code - fi -done - -echo "gitlint: ${GREEN}OK${END_COLOR} (no violations in commit message)" -exit 0 - -### gitlint commit-msg hook end ### diff --git a/gitlint/files/gitlint b/gitlint/files/gitlint deleted file mode 100644 index 15a6626..0000000 --- a/gitlint/files/gitlint +++ /dev/null @@ -1,106 +0,0 @@ -# Edit this file as you like. -# -# All these sections are optional. Each section with the exception of [general] represents -# one rule and each key in it is an option for that specific rule. -# -# Rules and sections can be referenced by their full name or by id. For example -# section "[body-max-line-length]" could be written as "[B1]". Full section names are -# used in here for clarity. -# -# [general] -# Ignore certain rules, this example uses both full name and id -# ignore=title-trailing-punctuation, T3 - -# verbosity should be a value between 1 and 3, the commandline -v flags take precedence over this -# verbosity = 2 - -# By default gitlint will ignore merge, revert, fixup and squash commits. -# ignore-merge-commits=true -# ignore-revert-commits=true -# ignore-fixup-commits=true -# ignore-squash-commits=true - -# Ignore any data send to gitlint via stdin -# ignore-stdin=true - -# Fetch additional meta-data from the local repository when manually passing a -# commit message to gitlint via stdin or --commit-msg. Disabled by default. -# staged=true - -# Enable debug mode (prints more output). Disabled by default. -# debug=true - -# Enable community contributed rules -# See http://jorisroovers.github.io/gitlint/contrib_rules for details -# contrib=contrib-title-conventional-commits,CC1 - -# 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/ - -# This is an example of how to configure the "title-max-length" rule and -# set the line-length it enforces to 80 -# [title-max-length] -# line-length=50 - -# [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]* - -# [body-max-line-length] -# line-length=72 - -# [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 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 - -# This is a contrib rule - a community contributed rule. These are disabled by default. -# You need to explicitly enable them one-by-one by adding them to the "contrib" option -# under [general] section above. -# [contrib-title-conventional-commits] -# Specify allowed commit types. For details see: https://www.conventionalcommits.org/ -# types = bugfix,user-story,epic
\ No newline at end of file |