GitHubTool provides methods to interact with GitHub repositories through the GitHub API using PyGithub.
Installation
Install the GitHub dependency:
pip install agentor[github]
Constructor
GitHub personal access token or OAuth token for authentication
Optional API key for MCP server usage
Methods
get_issue
Get details of a GitHub issue.
Repository name in format owner/repo
Returns: String with issue title, body, and state
create_issue
Create a new issue in a repository.
Repository name in format owner/repo
Returns: URL of the created issue
create_pr
Create a pull request.
Repository name in format owner/repo
Base branch name (default: “main”)
Returns: URL of the created pull request
Usage
With Agentor agent
import os
from agentor import Agentor
from agentor.tools import GitHubTool
github_tool = GitHubTool(
access_token=os.getenv("GITHUB_TOKEN")
)
agent = Agentor(
name="GitHub Assistant",
model="gpt-4o-mini",
tools=[github_tool]
)
result = agent.run("Get issue #42 from owner/repo")
print(result)
Creating issues
from agentor.tools import GitHubTool
github = GitHubTool(access_token="ghp_xxx")
# Create an issue
result = github.create_issue(
repo_name="CelestoAI/agentor",
title="Feature request: Add XYZ",
body="Please add support for XYZ feature"
)
print(result) # Issue created: https://github.com/...
Creating pull requests
# Create a PR from feature branch to main
result = github.create_pr(
repo_name="CelestoAI/agentor",
title="Add new feature",
head="feature-branch",
base="main",
body="This PR adds a new feature..."
)
print(result) # PR created: https://github.com/...
Error handling
The tool returns error messages as strings when operations fail:
# Invalid repository
result = github.get_issue("nonexistent/repo", 1)
print(result) # GitHub Error: Not Found
# Invalid token
result = github.create_issue("owner/repo", "Test")
print(result) # GitHub Error: Bad credentials
Source reference
src/agentor/tools/github.py:13