diff --git a/.gitignore b/.gitignore
index a93e887bab171f1c7098c52ed2a40c7165cf450d..13322f119bf8245f42c413fb18a97b52771ff347 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
 libs
+__pycache__
+*.code-workspace
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fef13ef2d2249f6cb2e84092c31acb1d14f8da6a..a5074ea876d01c9586b56c7b31e6fc0aab390f61 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,13 +1,6 @@
-# You can override the included template(s) by including variable overrides
-# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
-# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
-# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
-# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
-# Note that environment variables can be set in several places
-# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
-stages:
-- test
-sast:
-  stage: test
 include:
 - template: Security/SAST.gitlab-ci.yml
+- template: Security/Secret-Detection.gitlab-ci.yml
+
+stages:
+  - test
diff --git a/config.py b/config.py
index eb2d710a215ecf8fe6b476fa378edcb37773a7d7..bfadb580f561faeb32a16fad69e2da568d7cfc4f 100644
--- a/config.py
+++ b/config.py
@@ -10,7 +10,7 @@ from continuedev.src.continuedev.core.models import Models
 from continuedev.src.continuedev.core.config import CustomCommand, SlashCommand, ContinueConfig
 
 from continuedev.src.continuedev.libs.llm.ollama import Ollama
-from continuedev.src.continuedev.libs.llm.maybe_proxy_openai import MaybeProxyOpenAI
+from continuedev.src.continuedev.libs.llm.openai import OpenAI
 
 from continuedev.src.continuedev.plugins.steps.open_config import OpenConfigStep
 from continuedev.src.continuedev.plugins.steps.clear_history import ClearHistoryStep
@@ -39,10 +39,34 @@ for path in c.get("SYS_PATH","").split(","):
 logger.info(f"sys.path: {', '.join(sys.path)}")
 
 from jira_context_provider import JIRAContextProvider
+from gitlab_context_provider import GitLabContextProvider
 
 config = ContinueConfig(
     allow_anonymous_telemetry=False,
-    models=Models(default=Ollama(prompt_templates={'edit': '[INST] Consider the following code:\n```\n{{code_to_edit}}\n```\nEdit the code to perfectly satisfy the following user request:\n{{user_input}}\nOutput nothing except for the code. No code block, no English explanation, no start/end tags.\n[/INST]'}, model="codellama", server_url="http://localhost:11434", max_context_length=2048)),
+    models=Models(
+        default=Ollama(
+            context_length=2048,
+            unique_id="116ea2d7ed102aa7a7c2ab2206dd2083aebcac7a7f853956a9108fd1b1e67e82",
+            model="codellama",
+            prompt_templates={
+                'edit': '[INST] Consider the following code:\n```\n{{code_to_edit}}\n```\nEdit the code to perfectly satisfy the following user request:\n{{user_input}}\nOutput nothing except for the code. No code block, no English explanation, no start/end tags.\n[/INST]'
+            },
+            server_url="http://localhost:11434"
+        ),
+        unused=[
+            OpenAI(
+                context_length=2048,
+                model="gpt-4",
+                prompt_templates={},
+                api_key=c.get("OPENAI_API_KEY")
+            ),
+            OpenAI(
+                context_length=2048,
+                model="gpt-3.5-turbo",
+                prompt_templates={},
+                api_key=c.get("OPENAI_API_KEY"))
+        ]
+    ),
     system_message=None,
     temperature=0.3,
     custom_commands=[
@@ -98,5 +122,9 @@ config = ContinueConfig(
             username=c.get("JIRA_USERNAME"),
             token=c.get("JIRA_TOKEN")
         ),
+        GitLabContextProvider(
+            server=c.get("GITLAB_SERVER"),
+            token=c.get("GITLAB_TOKEN")
+        )
     ],
 )
diff --git a/context_providers/gitlab_context_provider.py b/context_providers/gitlab_context_provider.py
new file mode 100644
index 0000000000000000000000000000000000000000..c9a716161210c60a64a9ef3cdeb97112040cf2e9
--- /dev/null
+++ b/context_providers/gitlab_context_provider.py
@@ -0,0 +1,34 @@
+from typing import List
+
+from continuedev.src.continuedev.core.context import (
+    ContextItem,
+    ContextItemDescription,
+    ContextItemId,
+    ContextProvider,
+)
+
+from gitlab import Gitlab
+
+class GitLabContextProvider(ContextProvider):
+
+    title = "gitlab"
+
+    server: str
+    token: str
+
+    async def provide_context_items(self, workspace_dir: str) -> List[ContextItem]:
+
+        gl = Gitlab(url=self.server, private_token=self.token)
+        issues = gl.issues.list(state='opened',scope='all',per_page=100)
+
+        return [
+            ContextItem(
+                content=issue.description,
+                description=ContextItemDescription(
+                    name=f"Issue #{issue.project_id}.{issue.iid}",
+                    description=issue.title,
+                    id=ContextItemId(provider_title=self.title, item_id=str(issue.id)),
+                ),
+            )
+            for issue in issues
+        ]
diff --git a/requirements.txt b/requirements.txt
index c04ac9a1a2d7b53a51944b17ae561c556c504c09..fca13ec5ed2456bdf1a377430ab7d255d9e4bb10 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,2 @@
 jira==3.5.2
+python-gitlab==3.15.0