diff --git a/README.md b/README.md
index bb7485a7..e0fa5556 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,18 @@
---
-[](https://github.com/stacklok/codegate/actions/workflows/run-on-push.yml) | [](https://opensource.org/licenses/Apache-2.0) | [](https://discord.gg/RkzVuTp3WK)
+
+[](https://github.com/stacklok/codegate/actions/workflows/run-on-push.yml)
+|
+[](https://opensource.org/licenses/Apache-2.0)
+|
+[](https://discord.gg/RkzVuTp3WK)
---
+
## Introduction
-
+
CodeGate is a local gateway that makes AI coding assistants safer. CodeGate
ensures AI-generated recommendations adhere to best practices, while
@@ -76,7 +82,6 @@ With Aider, you can choose from two leading AI model providers:
- 💻 Local LLMs with [Ollama](https://ollama.com/)
- 🧠[OpenAI API](https://openai.com/api/)
-
### Privacy first
Unlike E.T., your code never phones home! 🛸 CodeGate is designed with privacy
@@ -94,7 +99,6 @@ Check out the quickstart guides to get up and running quickly!
- [Quickstart guide for GitHub Copilot with VS Code](https://docs.codegate.ai/quickstart)
- [Quickstart guide for Continue with VS Code and Ollama](https://docs.codegate.ai/quickstart-continue)
-
## 🎯 Usage
### IDE integration
@@ -139,19 +143,22 @@ pip install -e ".[dev]"
### Testing
To run the unit tests, execute this command:
+
```bash
pytest
```
-To run the integration tests, create a `.env` file in the repo root directory and add the
-following properties to it:
-```
+To run the integration tests, create a `.env` file in the repo root directory
+and add the following properties to it:
+
+```plain
ENV_OPENAI_KEY=
ENV_VLLM_KEY=
ENV_ANTHROPIC_KEY=
```
Then the integration tests can be executed by running:
+
```bash
python tests/integration/integration_tests.py
```
diff --git a/src/codegate/api/v1.py b/src/codegate/api/v1.py
index ec111525..243e78ee 100644
--- a/src/codegate/api/v1.py
+++ b/src/codegate/api/v1.py
@@ -82,7 +82,8 @@ async def create_new_workspace(
raise HTTPException(
status_code=400,
detail=(
- "Invalid workspace name. " "Please use only alphanumeric characters and dashes"
+ "Invalid workspace name. "
+ "Please use only alphanumeric characters, hyphens, or underscores."
),
)
except crud.WorkspaceCrudError as e:
@@ -106,7 +107,8 @@ async def rename_workspace(
raise HTTPException(
status_code=400,
detail=(
- "Invalid workspace name. " "Please use only alphanumeric characters and dashes"
+ "Invalid workspace name. "
+ "Please use only alphanumeric characters, hyphens, or underscores."
),
)
except crud.WorkspaceCrudError as e:
diff --git a/src/codegate/pipeline/cli/commands.py b/src/codegate/pipeline/cli/commands.py
index f6253224..1b1017c6 100644
--- a/src/codegate/pipeline/cli/commands.py
+++ b/src/codegate/pipeline/cli/commands.py
@@ -187,7 +187,7 @@ async def _add_workspace(self, flags: Dict[str, str], args: List[str]) -> str:
try:
ws = await self.workspace_crud.add_workspace(new_workspace_name)
except ValidationError:
- return "Invalid workspace name: It should be alphanumeric and dashes"
+ return "Invalid workspace name: It should be alphanumeric with hyphens or underscores"
except AlreadyExistsError:
return f"Workspace **{new_workspace_name}** already exists"
except crud.WorkspaceCrudError: