From 9840c062caec602414cd7d2df2cef62d814e20a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20Hedenstro=CC=88m?= <erik@hedenstroem.com> Date: Thu, 14 Sep 2023 00:04:42 +0200 Subject: [PATCH] Fixes for latest version of Continue --- context_providers/confluence_context_provider.py | 13 ++++++++++--- context_providers/gitlab_context_provider.py | 3 +++ context_providers/jira_context_provider.py | 13 ++++++++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/context_providers/confluence_context_provider.py b/context_providers/confluence_context_provider.py index 8c9d830..181ced0 100644 --- a/context_providers/confluence_context_provider.py +++ b/context_providers/confluence_context_provider.py @@ -13,6 +13,10 @@ from markdownify import markdownify as md class ConfluenceContextProvider(ContextProvider): title = "confluence" + display_title = "Confluence Pages" + description = "Reference Confluence pages" + dynamic = True + requires_query = True server: str username: str @@ -37,13 +41,16 @@ class ConfluenceContextProvider(ContextProvider): return [self.BASE_CONTEXT_ITEM] async def get_item(self, id: ContextItemId, query: str) -> ContextItem: - if id.item_id != self.CONFLUENCE_CONTEXT_ITEM_ID: - raise Exception("Invalid item id") + if not id.provider_title == self.title: + raise Exception("Invalid provider title for item") + page_id = query.lstrip(self.title + " ").strip() + if page_id is None or page_id == "": + return None confluence = Confluence( url=self.server, username=self.username, password=self.token, cloud=True ) page = confluence.get_page_by_id( - query.lstrip(self.title + " "), + page_id, expand="space,body.view", status=None, version=None, diff --git a/context_providers/gitlab_context_provider.py b/context_providers/gitlab_context_provider.py index a17e5a0..a2c4d75 100644 --- a/context_providers/gitlab_context_provider.py +++ b/context_providers/gitlab_context_provider.py @@ -12,6 +12,9 @@ from gitlab import Gitlab class GitLabContextProvider(ContextProvider): title = "gitlab" + display_title = "GitLab Issues" + description = "Reference GitLab issues" + dynamic = False server: str token: str diff --git a/context_providers/jira_context_provider.py b/context_providers/jira_context_provider.py index ca8e38c..84aa6a0 100644 --- a/context_providers/jira_context_provider.py +++ b/context_providers/jira_context_provider.py @@ -12,6 +12,10 @@ from atlassian import Jira class JIRAContextProvider(ContextProvider): title = "jira" + display_title = "Jira Issues" + description = "Reference Jira issues" + dynamic = True + requires_query = True server: str username: str @@ -36,12 +40,15 @@ class JIRAContextProvider(ContextProvider): return [self.BASE_CONTEXT_ITEM] async def get_item(self, id: ContextItemId, query: str) -> ContextItem: - if id.item_id != self.JIRA_CONTEXT_ITEM_ID: - raise Exception("Invalid item id") + if not id.provider_title == self.title: + raise Exception("Invalid provider title for item") + issue_key = query.lstrip(self.title + " ").strip() + if issue_key is None or issue_key == "": + return None jira = Jira( url=self.server, username=self.username, password=self.token, cloud=True ) - issue = jira.issue(query.lstrip(self.title + " ")) + issue = jira.issue(issue_key) ctx_item = self.BASE_CONTEXT_ITEM.copy() ctx_item.description.name = issue["key"] ctx_item.description.description = issue["fields"]["summary"] -- GitLab