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