From 0e55204653d72ed760f0610d4cf059357461c67c Mon Sep 17 00:00:00 2001
From: Simonas <20096648+simjak@users.noreply.github.com>
Date: Tue, 2 Jan 2024 11:07:43 +0200
Subject: [PATCH] enforcing conventional commits

---
 .github/workflows/conventional_commits.yml | 16 ++++++++++++++++
 .github/workflows/lint.yml                 |  2 +-
 .pre-commit-config.yaml                    |  6 ++++++
 semantic_router/__init__.py                |  2 +-
 semantic_router/hybrid_layer.py            |  3 +--
 semantic_router/layer.py                   |  3 +--
 semantic_router/route.py                   |  2 +-
 semantic_router/schema.py                  |  2 +-
 tests/unit/test_layer.py                   |  3 ++-
 tests/unit/test_route.py                   |  1 -
 10 files changed, 30 insertions(+), 10 deletions(-)
 create mode 100644 .github/workflows/conventional_commits.yml

diff --git a/.github/workflows/conventional_commits.yml b/.github/workflows/conventional_commits.yml
new file mode 100644
index 00000000..6f0e37fa
--- /dev/null
+++ b/.github/workflows/conventional_commits.yml
@@ -0,0 +1,16 @@
+name: Conventional Commits
+
+on:
+  pull_request:
+    branches: [main]
+
+jobs:
+  build:
+    name: Conventional Commits
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: webiny/action-conventional-commits@v1.1.0
+        with:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          allowed-commit-types: "feat,fix"
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index b7c6e679..dcd301e5 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -37,4 +37,4 @@ jobs:
           poetry install
       - name: Analyzing the code with our lint
         run: |
-          make lint
\ No newline at end of file
+          make lint
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 43af57e5..98516d19 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -28,3 +28,9 @@ repos:
       - id: trailing-whitespace
       - id: end-of-file-fixer
       - id: check-yaml
+
+  - repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
+    rev: v9.10.0
+    hooks:
+        - id: commitlint
+          stages: [commit-msg]
diff --git a/semantic_router/__init__.py b/semantic_router/__init__.py
index 07735312..1c604af8 100644
--- a/semantic_router/__init__.py
+++ b/semantic_router/__init__.py
@@ -1,5 +1,5 @@
 from semantic_router.hybrid_layer import HybridRouteLayer
-from semantic_router.layer import RouteLayer, LayerConfig
+from semantic_router.layer import LayerConfig, RouteLayer
 from semantic_router.route import Route
 
 __all__ = ["RouteLayer", "HybridRouteLayer", "Route", "LayerConfig"]
diff --git a/semantic_router/hybrid_layer.py b/semantic_router/hybrid_layer.py
index 22f6573c..fc63cfa6 100644
--- a/semantic_router/hybrid_layer.py
+++ b/semantic_router/hybrid_layer.py
@@ -7,9 +7,8 @@ from semantic_router.encoders import (
     CohereEncoder,
     OpenAIEncoder,
 )
-from semantic_router.utils.logger import logger
-
 from semantic_router.route import Route
+from semantic_router.utils.logger import logger
 
 
 class HybridRouteLayer:
diff --git a/semantic_router/layer.py b/semantic_router/layer.py
index dae040a5..5b2aad84 100644
--- a/semantic_router/layer.py
+++ b/semantic_router/layer.py
@@ -10,10 +10,9 @@ from semantic_router.encoders import (
     OpenAIEncoder,
 )
 from semantic_router.linear import similarity_matrix, top_scores
-from semantic_router.utils.logger import logger
-
 from semantic_router.route import Route
 from semantic_router.schema import Encoder, EncoderType, RouteChoice
+from semantic_router.utils.logger import logger
 
 
 def is_valid(layer_config: str) -> bool:
diff --git a/semantic_router/route.py b/semantic_router/route.py
index 30c20887..12afa7fe 100644
--- a/semantic_router/route.py
+++ b/semantic_router/route.py
@@ -4,10 +4,10 @@ from typing import Any, Callable, Union
 
 from pydantic import BaseModel
 
+from semantic_router.schema import RouteChoice
 from semantic_router.utils import function_call
 from semantic_router.utils.llm import llm
 from semantic_router.utils.logger import logger
-from semantic_router.schema import RouteChoice
 
 
 def is_valid(route_config: str) -> bool:
diff --git a/semantic_router/schema.py b/semantic_router/schema.py
index be486888..b7a3c9fa 100644
--- a/semantic_router/schema.py
+++ b/semantic_router/schema.py
@@ -1,7 +1,7 @@
 from enum import Enum
 
-from pydantic.dataclasses import dataclass
 from pydantic import BaseModel
+from pydantic.dataclasses import dataclass
 
 from semantic_router.encoders import (
     BaseEncoder,
diff --git a/tests/unit/test_layer.py b/tests/unit/test_layer.py
index b8f31793..45b57472 100644
--- a/tests/unit/test_layer.py
+++ b/tests/unit/test_layer.py
@@ -1,7 +1,8 @@
 import os
-import pytest
 from unittest.mock import mock_open, patch
 
+import pytest
+
 from semantic_router.encoders import BaseEncoder, CohereEncoder, OpenAIEncoder
 from semantic_router.layer import LayerConfig, RouteLayer
 from semantic_router.route import Route
diff --git a/tests/unit/test_route.py b/tests/unit/test_route.py
index 44cf2276..09a5d235 100644
--- a/tests/unit/test_route.py
+++ b/tests/unit/test_route.py
@@ -1,7 +1,6 @@
 from unittest.mock import Mock, patch  # , AsyncMock
 
 # import pytest
-
 from semantic_router.route import Route, is_valid
 
 
-- 
GitLab