diff --git a/.github/workflows/langchain_ci.yml b/.github/workflows/langchain_ci.yml index 8f1fc5d874413..04a702000acde 100644 --- a/.github/workflows/langchain_ci.yml +++ b/.github/workflows/langchain_ci.yml @@ -26,6 +26,7 @@ concurrency: env: POETRY_VERSION: "1.5.1" WORKDIR: "libs/langchain" + EXTENDED_TESTING: "extended_testing" jobs: lint: @@ -70,6 +71,7 @@ jobs: with: python-version: ${{ matrix.python-version }} poetry-version: ${{ env.POETRY_VERSION }} + extra-args: -E extended_testing working-directory: libs/langchain cache-key: extended diff --git a/libs/langchain/langchain/tools/github/tool.py b/libs/langchain/langchain/tools/github/tool.py index ec67fd2b3357b..2c3870a81d3c4 100644 --- a/libs/langchain/langchain/tools/github/tool.py +++ b/libs/langchain/langchain/tools/github/tool.py @@ -15,6 +15,33 @@ from langchain.utilities.github import GitHubAPIWrapper +class GitHubAction(BaseTool): + """Tool for interacting with the GitHub API.""" + + api_wrapper: GitHubAPIWrapper = Field(default_factory=GitHubAPIWrapper) + mode: str + name: str = "" + description: str = "" + + def _run( + self, + instructions: str, + run_manager: Optional[CallbackManagerForToolRun] = None, + ) -> str: + """Use the GitHub API to run an operation.""" + try: + return self.api_wrapper.run(self.mode, instructions) + except Exception as e: + # Handle the exception and log the error + print(f"Error occurred: {e}") + return "" + +from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field +from langchain.tools.base import BaseTool +from langchain.utilities.github import GitHubAPIWrapper + + class GitHubAction(BaseTool): """Tool for interacting with the GitHub API.""" @@ -30,3 +57,15 @@ def _run( ) -> str: """Use the GitHub API to run an operation.""" return self.api_wrapper.run(self.mode, instructions) + def _run( + self, + instructions: str, + run_manager: Optional[CallbackManagerForToolRun] = None, + ) -> str: + """Use the GitHub API to run an operation.""" + try: + return self.api_wrapper.run(self.mode, instructions) + except Exception as e: + # Handle the exception and log the error + print(f"Error occurred: {e}") + return "" diff --git a/libs/langchain/tests/integration_tests/utilities/test_github.py b/libs/langchain/tests/integration_tests/utilities/test_github.py index 48997887a24fd..cb127a0268507 100644 --- a/libs/langchain/tests/integration_tests/utilities/test_github.py +++ b/libs/langchain/tests/integration_tests/utilities/test_github.py @@ -11,11 +11,11 @@ @pytest.fixture -def api_client() -> GitHubAPIWrapper: +def api_client(mocker) -> GitHubAPIWrapper: return GitHubAPIWrapper() -def test_get_open_issues(api_client: GitHubAPIWrapper) -> None: +def test_get_open_issues(api_client: GitHubAPIWrapper, mocker): """Basic test to fetch issues""" issues = api_client.get_issues() assert len(issues) != 0