diff --git a/.github/workflows/lint-commit.yml b/.github/workflows/lint-commit.yml
index f17ad1e..72a00a8 100644
--- a/.github/workflows/lint-commit.yml
+++ b/.github/workflows/lint-commit.yml
@@ -18,6 +18,6 @@ jobs:
       - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
         with:
           fetch-depth: 0
-      - uses: wagoid/commitlint-github-action@0d749a1a91d4770e983a7b8f83d4a3f0e7e0874e #v5.4.4
+      - uses: wagoid/commitlint-github-action@0184f5a228ee06430bb9e67d65f73a1a6767496a # v6.2.0
         with:
           firstParent: true
diff --git a/commitlint.config.cjs b/commitlint.config.cjs
new file mode 100644
index 0000000..f83e1c7
--- /dev/null
+++ b/commitlint.config.cjs
@@ -0,0 +1,20 @@
+const Configuration = {
+    extends: ['@commitlint/config-conventional'],
+    plugins: ['commitlint-plugin-function-rules'],
+    rules: {
+      'type-enum': [2, 'always', ['chore', 'ci', 'docs', 'feat', 'test', 'fix', 'sec']],
+      'body-max-line-length': [1, 'always', 500],
+      'subject-case': [2, 'always', ['lower-case', 'sentence-case', 'upper-case']],
+    },
+    /*
+     * Whether commitlint uses the default ignore rules, see the description above.
+     */
+    defaultIgnores: true,
+    /*
+     * Custom URL to show upon failure
+     */
+    helpUrl:
+      'https://github.com/projectcapsule/capsule-addon-fluxcd?tab=readme-ov-file#development',
+  };
+  
+  module.exports = Configuration;