From 99b1467b6362877cebe818f438b604c8d5732177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Quintino?= Date: Fri, 5 Jul 2024 16:11:10 +0100 Subject: [PATCH] community: add support for 'cloud' parameter in JiraAPIWrapper (#23057) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - **Description:** Enhance JiraAPIWrapper to accept the 'cloud' parameter through an environment variable. This update allows more flexibility in configuring the environment for the Jira API. - **Twitter handle:** Andre_Q_Pereira --------- Co-authored-by: André Quintino Co-authored-by: Eugene Yurtsev Co-authored-by: Chester Curme --- docs/docs/integrations/toolkits/jira.ipynb | 6 ++++-- libs/community/langchain_community/tools/jira/tool.py | 1 + libs/community/langchain_community/utilities/jira.py | 11 ++++++++--- libs/community/tests/integration_tests/.env.example | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/docs/integrations/toolkits/jira.ipynb b/docs/docs/integrations/toolkits/jira.ipynb index 507edf89b76..88fb23d38f3 100644 --- a/docs/docs/integrations/toolkits/jira.ipynb +++ b/docs/docs/integrations/toolkits/jira.ipynb @@ -14,7 +14,8 @@ "To use this tool, you must first set as environment variables:\n", " JIRA_API_TOKEN\n", " JIRA_USERNAME\n", - " JIRA_INSTANCE_URL" + " JIRA_INSTANCE_URL\n", + " JIRA_CLOUD" ] }, { @@ -88,7 +89,8 @@ "os.environ[\"JIRA_API_TOKEN\"] = \"abc\"\n", "os.environ[\"JIRA_USERNAME\"] = \"123\"\n", "os.environ[\"JIRA_INSTANCE_URL\"] = \"https://jira.atlassian.com\"\n", - "os.environ[\"OPENAI_API_KEY\"] = \"xyz\"" + "os.environ[\"OPENAI_API_KEY\"] = \"xyz\"\n", + "os.environ[\"JIRA_CLOUD\"] = \"True\"" ] }, { diff --git a/libs/community/langchain_community/tools/jira/tool.py b/libs/community/langchain_community/tools/jira/tool.py index 47ca6146db5..a80044b2a10 100644 --- a/libs/community/langchain_community/tools/jira/tool.py +++ b/libs/community/langchain_community/tools/jira/tool.py @@ -7,6 +7,7 @@ To use this tool, you must first set as environment variables: JIRA_API_TOKEN JIRA_USERNAME JIRA_INSTANCE_URL + JIRA_CLOUD Below is a sample script that uses the Jira tool: diff --git a/libs/community/langchain_community/utilities/jira.py b/libs/community/langchain_community/utilities/jira.py index c03d3badfea..dfc274dbd46 100644 --- a/libs/community/langchain_community/utilities/jira.py +++ b/libs/community/langchain_community/utilities/jira.py @@ -15,6 +15,7 @@ class JiraAPIWrapper(BaseModel): jira_username: Optional[str] = None jira_api_token: Optional[str] = None jira_instance_url: Optional[str] = None + jira_cloud: Optional[bool] = None class Config: """Configuration for this pydantic object.""" @@ -39,6 +40,10 @@ class JiraAPIWrapper(BaseModel): ) values["jira_instance_url"] = jira_instance_url + jira_cloud_str = get_from_dict_or_env(values, "jira_cloud", "JIRA_CLOUD") + jira_cloud = jira_cloud_str.lower() == "true" + values["jira_cloud"] = jira_cloud + try: from atlassian import Confluence, Jira except ImportError: @@ -51,21 +56,21 @@ class JiraAPIWrapper(BaseModel): jira = Jira( url=jira_instance_url, token=jira_api_token, - cloud=True, + cloud=jira_cloud, ) else: jira = Jira( url=jira_instance_url, username=jira_username, password=jira_api_token, - cloud=True, + cloud=jira_cloud, ) confluence = Confluence( url=jira_instance_url, username=jira_username, password=jira_api_token, - cloud=True, + cloud=jira_cloud, ) values["jira"] = jira diff --git a/libs/community/tests/integration_tests/.env.example b/libs/community/tests/integration_tests/.env.example index 44a4490e1e6..cf7d891b143 100644 --- a/libs/community/tests/integration_tests/.env.example +++ b/libs/community/tests/integration_tests/.env.example @@ -34,6 +34,7 @@ PINECONE_ENVIRONMENT=us-west4-gcp # JIRA_API_TOKEN=your_jira_api_token_here # JIRA_USERNAME=your_jira_username_here # JIRA_INSTANCE_URL=your_jira_instance_url_here +# JIRA_CLOUD=True # clickup