Skip to main content

Overview

GitHub tool allows you to search repositories, manage issues, and interact with GitHub’s API. The user asks about a repo or issue; the agent calls the GitHub API and returns the answer.

Installation

pip install "praisonai[tools]"

Environment Variables

export GITHUB_TOKEN=your_personal_access_token
Get your token from GitHub Settings.

Quick Start

1

Simple Usage

from praisonai_tools import GitHubTool

# Initialize
github = GitHubTool()

# Search repos
results = github.search_repos("machine learning python")
print(results)
2

With Configuration

Use the same tool with an agent — see Usage with Agent below, or pass env vars and options from the sections above.

Usage with Agent

from praisonaiagents import Agent
from praisonai_tools import GitHubTool

agent = Agent(
    name="DevAssistant",
    instructions="You help with GitHub tasks.",
    tools=[GitHubTool()]
)

response = agent.chat("Find popular Python AI frameworks on GitHub")
print(response)

Available Methods

search_repos(query, limit=10)

Search GitHub repositories.
from praisonai_tools import GitHubTool

github = GitHubTool()
repos = github.search_repos("langchain", limit=5)

get_repo(owner, repo)

Get repository details.
repo = github.get_repo("MervinPraison", "PraisonAI")

list_issues(owner, repo, state=“open”)

List repository issues.
issues = github.list_issues("MervinPraison", "PraisonAI", state="open")

create_issue(owner, repo, title, body)

Create a new issue.
github.create_issue("owner", "repo", "Bug: Something broken", "Description here")

Common Errors

ErrorCauseSolution
GITHUB_TOKEN not configuredMissing tokenSet environment variable
Rate limitedToo many requestsUse authenticated requests
Not foundRepo doesn’t existCheck owner/repo name

How It Works


Best Practices

Read the GitHub token from the environment and grant only the scopes the task needs.
GitHub throttles unauthenticated and heavy requests. Authenticate and retry with backoff.
Fetch issues and commits in pages so the agent processes manageable chunks.

Bitbucket

Bitbucket repos

Linear

Issue tracking

Jira

Project management