GitHubToolkit#
- class langchain_community.agent_toolkits.github.toolkit.GitHubToolkit[source]#
Bases:
BaseToolkit
GitHub Toolkit.
- Security Note: This toolkit contains tools that can read and modify
the state of a service; e.g., by creating, deleting, or updating, reading underlying data.
For example, this toolkit can be used to create issues, pull requests, and comments on GitHub.
See [Security](https://python.langchain.com/docs/security) for more information.
- Setup:
See detailed installation instructions here: https://python.langchain.com/docs/integrations/tools/github/#installation
You will need to install
pygithub
and set the following environment variables:pip install -U pygithub export GITHUB_APP_ID="your-app-id" export GITHUB_APP_PRIVATE_KEY="path-to-private-key" export GITHUB_REPOSITORY="your-github-repository"
- Instantiate:
from langchain_community.agent_toolkits.github.toolkit import GitHubToolkit from langchain_community.utilities.github import GitHubAPIWrapper github = GitHubAPIWrapper() toolkit = GitHubToolkit.from_github_api_wrapper(github)
- Tools:
tools = toolkit.get_tools() for tool in tools: print(tool.name)
Get Issues Get Issue Comment on Issue List open pull requests (PRs) Get Pull Request Overview of files included in PR Create Pull Request List Pull Requests' Files Create File Read File Update File Delete File Overview of existing files in Main branch Overview of files in current working branch List branches in this repository Set active branch Create a new branch Get files from a directory Search issues and pull requests Search code Create review request
- Use within an agent:
from langchain_openai import ChatOpenAI from langgraph.prebuilt import create_react_agent # Select example tool tools = [tool for tool in toolkit.get_tools() if tool.name == "Get Issue"] assert len(tools) == 1 tools[0].name = "get_issue" llm = ChatOpenAI(model="gpt-4o-mini") agent_executor = create_react_agent(llm, tools) example_query = "What is the title of issue 24888?" events = agent_executor.stream( {"messages": [("user", example_query)]}, stream_mode="values", ) for event in events: event["messages"][-1].pretty_print()
================================[1m Human Message [0m================================= What is the title of issue 24888? ==================================[1m Ai Message [0m================================== Tool Calls: get_issue (call_iSYJVaM7uchfNHOMJoVPQsOi) Call ID: call_iSYJVaM7uchfNHOMJoVPQsOi Args: issue_number: 24888 =================================[1m Tool Message [0m================================= Name: get_issue {"number": 24888, "title": "Standardize KV-Store Docs", "body": "..." ==================================[1m Ai Message [0m================================== The title of issue 24888 is "Standardize KV-Store Docs".
- Parameters:
tools – List[BaseTool]. The tools in the toolkit. Default is an empty list.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- classmethod from_github_api_wrapper(github_api_wrapper: GitHubAPIWrapper) GitHubToolkit [source]#
Create a GitHubToolkit from a GitHubAPIWrapper.
- Parameters:
github_api_wrapper (GitHubAPIWrapper) – GitHubAPIWrapper. The GitHub API wrapper.
- Returns:
GitHubToolkit. The GitHub toolkit.
- Return type:
Examples using GitHubToolkit