From 7c37cf4420b1bbcbf1183d11b960a17829a1c660 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Thu, 14 Jul 2022 11:49:06 +0300 Subject: [PATCH] DROID-162 Editor | Tech | Add commit message checker (#2405) --- .githooks/commit-msg | 28 ++++++++++++++++++++++++++++ .gitignore | 1 + .idea/vcs.xml | 16 ++++++++++++++++ build.gradle | 12 ++++++++++++ 4 files changed, 57 insertions(+) create mode 100755 .githooks/commit-msg create mode 100644 .idea/vcs.xml diff --git a/.githooks/commit-msg b/.githooks/commit-msg new file mode 100755 index 0000000000..9882e18d32 --- /dev/null +++ b/.githooks/commit-msg @@ -0,0 +1,28 @@ +#!/bin/bash +# The script below adds the branch name automatically to +# every one of your commit messages. The regular expression +# below searches for JIRA issue key's. The issue key will +# be extracted out of your branch name + +REGEX_ISSUE_ID="[a-zA-Z0-9,\.\_\-]+-[0-9]+" + +# Find current branch name +BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD) +COMMIT_MSG_FILE=$1 +COMMIT_TEXT=$(cat "$COMMIT_MSG_FILE") + +if [[ -z "$BRANCH_NAME" ]]; then + echo "Commit message validation failed: no branch name!"; exit 1 +fi + +# Extract issue id from branch name +ISSUE_ID=$(echo "$BRANCH_NAME" | grep -o -E "$REGEX_ISSUE_ID" | awk '{print toupper($0)}') + +if [[ "$ISSUE_ID" != "DROID-"* ]]; then + echo "Commit message validation failed: branch name should contain issue name!"; exit 1 +fi + +if [[ "$COMMIT_TEXT" != "DROID-"* ]]; then + echo "$ISSUE_ID " > "$COMMIT_MSG_FILE" + echo "$COMMIT_TEXT" >> "$COMMIT_MSG_FILE" +fi \ No newline at end of file diff --git a/.gitignore b/.gitignore index cf89c53cea..7a24a40744 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .idea/* !.idea/codeStyles +!.idea/vcs.xml !.idea/copyright *.iml .gradle diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000..eb138b441a --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index a2e9bc9cdd..adcfe4281b 100644 --- a/build.gradle +++ b/build.gradle @@ -56,3 +56,15 @@ subprojects { task clean(type: Delete) { delete rootProject.buildDir } + +tasks.register("installGitHooks") { + setGroup("Build Setup") + setDescription("Install local repository git hooks") + exec { + commandLine 'sh', '-c', 'git config core.hooksPath .githooks' + } +} + +var initialTaskNames = getProject().getGradle().getStartParameter().getTaskNames() +getProject().getGradle().getStartParameter().setTaskNames( + initialTaskNames + Collections.singletonList("installGitHooks")) \ No newline at end of file