> ## Documentation Index
> Fetch the complete documentation index at: https://docs.phidata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Github

**GithubTools** enables an Agent to access Github repositories and perform tasks such as listing open pull requests, issues and more.

## Prerequisites

The following examples requires the `PyGithub` library and a Github access token which can be obtained from [here](https://github.com/settings/tokens).

```shell theme={null}
pip install -U PyGithub
```

```shell theme={null}
export GITHUB_ACCESS_TOKEN=***
```

## Example

The following agent will search Google for the latest news about "Mistral AI":

```python cookbook/tools/github_tools.py theme={null}
from phi.agent import Agent
from phi.tools.github import GithubTools

agent = Agent(
    instructions=[
        "Use your tools to answer questions about the repo: agno-agi/phidata",
        "Do not create any issues or pull requests unless explicitly asked to do so",
    ],
    tools=[GithubTools()],
    show_tool_calls=True,
)
agent.print_response("List open pull requests", markdown=True)
```

## Toolkit Params

| Parameter                  | Type   | Default | Description                                                                                                   |
| -------------------------- | ------ | ------- | ------------------------------------------------------------------------------------------------------------- |
| `access_token`             | `str`  | `None`  | Github access token for authentication. If not provided, will use GITHUB\_ACCESS\_TOKEN environment variable. |
| `base_url`                 | `str`  | `None`  | Optional base URL for Github Enterprise installations.                                                        |
| `search_repositories`      | `bool` | `True`  | Enable searching Github repositories.                                                                         |
| `list_repositories`        | `bool` | `True`  | Enable listing repositories for a user/organization.                                                          |
| `get_repository`           | `bool` | `True`  | Enable getting repository details.                                                                            |
| `list_pull_requests`       | `bool` | `True`  | Enable listing pull requests for a repository.                                                                |
| `get_pull_request`         | `bool` | `True`  | Enable getting pull request details.                                                                          |
| `get_pull_request_changes` | `bool` | `True`  | Enable getting pull request file changes.                                                                     |
| `create_issue`             | `bool` | `True`  | Enable creating issues in repositories.                                                                       |

## Toolkit Functions

| Function                   | Description                                          |
| -------------------------- | ---------------------------------------------------- |
| `search_repositories`      | Searches Github repositories based on a query.       |
| `list_repositories`        | Lists repositories for a given user or organization. |
| `get_repository`           | Gets details about a specific repository.            |
| `list_pull_requests`       | Lists pull requests for a repository.                |
| `get_pull_request`         | Gets details about a specific pull request.          |
| `get_pull_request_changes` | Gets the file changes in a pull request.             |
| `create_issue`             | Creates a new issue in a repository.                 |

## Information

* View on [Github](https://github.com/agno-agi/phidata/blob/main/phi/tools/github.py)
