diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml
index d4d418e774088a243d185ba7f3cda5a75cc0527c..3ff0f17d73330dd78a36a104ea890fac5dca4893 100644
--- a/.github/workflows/pre-commit.yaml
+++ b/.github/workflows/pre-commit.yaml
@@ -9,5 +9,5 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - uses: actions/setup-python@v3
+      - uses: actions/setup-python@v4
       - uses: pre-commit/action@v3.0.0
diff --git a/.github/workflows/release-on-push.yml b/.github/workflows/release-on-push.yml
index 68fe9dcd42dcafc80424956e0f79524eb80e27e9..46f80c95e00566a94173b0f93c68bf8331ca54ed 100644
--- a/.github/workflows/release-on-push.yml
+++ b/.github/workflows/release-on-push.yml
@@ -35,7 +35,7 @@ jobs:
         run: |
           mkdir -p ./version
           echo "${{ needs.release-on-push.outputs.version }}" > ./version/version_number
-      - uses: actions/upload-artifact@v2
+      - uses: actions/upload-artifact@v3
         with:
           name: version_number
           path: ./version
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 62de0da1ab2b7bd98b10bc5ec057a8e60d9f590f..0b173e9b93cc706a2748f74081a6a718901d8d53 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -24,17 +24,8 @@
   "python.analysis.inlayHints.callArgumentNames": true,
   "python.analysis.inlayHints.variableTypes": true,
   "python.analysis.inlayHints.functionReturnTypes": true,
-  "python.autoComplete.extraPaths": [
-    "./src"
-  ],
   "editor.formatOnSave": true,
-  "python.formatting.provider": "black",
-  "python.linting.enabled": true,
-  "python.linting.flake8Enabled": true,
-  "python.linting.mypyEnabled": true,
-  "python.linting.pylintEnabled": true,
-  "python.linting.pylintPath": ".venv/bin/pylint",
-  "python.linting.pylintArgs": [
+  "pylint.args": [
     "--load-plugins",
     "pylint_pydantic"
   ],
@@ -44,11 +35,19 @@
     "black"
   ],
   "python.testing.pytestEnabled": true,
+  "python.testing.pytestArgs": [
+    "tests",
+    "-vv",
+    "--cov=app",
+    "--cov-report=term-missing",
+    "--cov-report=html"
+  ],
   "[python]": {
     "editor.codeActionsOnSave": {
       "source.organizeImports": true
     },
-    "editor.defaultFormatter": "ms-python.black-formatter"
+    "editor.defaultFormatter": "ms-python.black-formatter",
+    "editor.codeLens": true
   },
   "search.exclude": {
     "**/dist": true,
@@ -56,8 +55,13 @@
   },
   "files.exclude": {
     "**/__pycache__": true,
-    ".pytest_cache": true,
-    ".mypy*": true,
-    ".coverage": true,
+    "**/.pytest_cache": true,
+    "**/.mypy*": true,
+    "**/.coverage": true,
+    "**/.coverage.*": true,
+    "**/node_modules/": true,
   },
+  "python.analysis.extraPaths": [
+    "./src"
+  ],
 }
\ No newline at end of file
diff --git a/README.md b/README.md
index 0c88162da2fd74e3bb8f2ec52776a3ceccabd823..24d743e18a254eed48ddc84daeadd71409ef57fa 100644
--- a/README.md
+++ b/README.md
@@ -2,13 +2,12 @@
 
 [![Python tests](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/python-tests.yml/badge.svg)](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/python-tests.yml)
 [![pre-commit](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/pre-commit.yaml)
-[![CodeQL](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/codeql-analysis.yml)
 [![codecov](https://codecov.io/gh/SamuelGuillemet/zoom-python-webhook/branch/main/graph/badge.svg)](https://codecov.io/gh/SamuelGuillemet/zoom-python-webhook)
 [![Deploy](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/build.yml/badge.svg)](https://github.com/SamuelGuillemet/zoom-python-webhook/actions/workflows/build.yml)
 
 This is a simple FastAPI app that handles Zoom Webhooks.
 
-The goal of this app is to provide a simple way to handle Zoom Webhooks and to provide a simple way to extend the app with custom handlers.
+The goal of this app is to handle Zoom Webhooks and to provide a simple way to extend the app with custom handlers.
 
 ---