From 0c9b23c51b105e074a89139c77dcebf4ef819712 Mon Sep 17 00:00:00 2001 From: Yury Shkoda Date: Thu, 20 May 2021 08:54:36 +0300 Subject: [PATCH 1/2] feat(git): enabled git hook enforcing conventional commits --- .git-hooks/commit-msg | 18 ++++++++++++++++++ package.json | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100755 .git-hooks/commit-msg diff --git a/.git-hooks/commit-msg b/.git-hooks/commit-msg new file mode 100755 index 0000000..e0297de --- /dev/null +++ b/.git-hooks/commit-msg @@ -0,0 +1,18 @@ +#!/bin/sh +RED="\033[1;31m" +GREEN="\033[1;32m" + +# Get the commit message (the parameter we're given is just the path to the +# temporary file which holds the message). +commit_message=$(cat "$1") + +if (echo "$commit_message" | grep -Eq "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([a-z \-]+\))?!?: .+$") then + echo "${GREEN} ✔ Commit message meets Conventional Commit standards" + exit 0 +fi + +echo "${RED}❌ Commit message does not meet the Conventional Commit standard!" +echo "An example of a valid message is:" +echo " feat(login): add the 'remember me' button" +echo "ℹ More details at: https://www.conventionalcommits.org/en/v1.0.0/#summary" +exit 1 \ No newline at end of file diff --git a/package.json b/package.json index aefccae..3749aa9 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "postpublish": "git clean -fd", "package:lib": "npm run build && cp ./package.json build && cp README.md build && cd build && npm version \"5.0.0\" && npm pack", "lint:fix": "npx prettier --write '{src,test}/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}'", - "lint": "npx prettier --check '{src,test}/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}'" + "lint": "npx prettier --check '{src,test}/**/*.{ts,tsx,js,jsx,html,css,sass,less,json,yml,md,graphql}'", + "postinstall": "[ -d .git ] && git config core.hooksPath ./.git-hooks || true" }, "publishConfig": { "access": "public" From fa9e4136bcb7007a6feff321c511ab98a5d538d4 Mon Sep 17 00:00:00 2001 From: Yury Shkoda Date: Thu, 20 May 2021 08:58:25 +0300 Subject: [PATCH 2/2] chore(lint): fixed linting --- src/rules/file/hasDoxygenHeader.spec.ts | 2 +- src/rules/file/hasMacroNameInMend.spec.ts | 2 +- src/rules/file/hasMacroParentheses.spec.ts | 2 +- src/rules/file/noNestedMacros.spec.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rules/file/hasDoxygenHeader.spec.ts b/src/rules/file/hasDoxygenHeader.spec.ts index 02d0ca4..e29c59c 100644 --- a/src/rules/file/hasDoxygenHeader.spec.ts +++ b/src/rules/file/hasDoxygenHeader.spec.ts @@ -59,7 +59,7 @@ describe('hasDoxygenHeader - test', () => { it('should return an array with a single diagnostic when the file is undefined', () => { const content = undefined - expect(hasDoxygenHeader.test((content as unknown) as string)).toEqual([ + expect(hasDoxygenHeader.test(content as unknown as string)).toEqual([ { message: 'File missing Doxygen header', lineNumber: 1, diff --git a/src/rules/file/hasMacroNameInMend.spec.ts b/src/rules/file/hasMacroNameInMend.spec.ts index 6daf1bf..5693a2e 100644 --- a/src/rules/file/hasMacroNameInMend.spec.ts +++ b/src/rules/file/hasMacroNameInMend.spec.ts @@ -114,7 +114,7 @@ describe('hasMacroNameInMend - test', () => { it('should return an empty array when the file is undefined', () => { const content = undefined - expect(hasMacroNameInMend.test((content as unknown) as string)).toEqual([]) + expect(hasMacroNameInMend.test(content as unknown as string)).toEqual([]) }) describe('nestedMacros', () => { diff --git a/src/rules/file/hasMacroParentheses.spec.ts b/src/rules/file/hasMacroParentheses.spec.ts index cc2d706..1fa58bc 100644 --- a/src/rules/file/hasMacroParentheses.spec.ts +++ b/src/rules/file/hasMacroParentheses.spec.ts @@ -79,7 +79,7 @@ describe('hasMacroParentheses', () => { it('should return an empty array when the file is undefined', () => { const content = undefined - expect(hasMacroParentheses.test((content as unknown) as string)).toEqual([]) + expect(hasMacroParentheses.test(content as unknown as string)).toEqual([]) }) describe('with extra spaces and comments', () => { diff --git a/src/rules/file/noNestedMacros.spec.ts b/src/rules/file/noNestedMacros.spec.ts index 1daccc4..937a86e 100644 --- a/src/rules/file/noNestedMacros.spec.ts +++ b/src/rules/file/noNestedMacros.spec.ts @@ -72,7 +72,7 @@ describe('noNestedMacros', () => { it('should return an empty array when the file is undefined', () => { const content = undefined - expect(noNestedMacros.test((content as unknown) as string)).toEqual([]) + expect(noNestedMacros.test(content as unknown as string)).toEqual([]) }) it('should use the configured line ending while testing content', () => {