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