# GitHub Module The `github` module provides tools and functionalities for interacting with GitHub. It allows agents to manage repositories, issues, and pull requests. ## Submodules - [Repositories](#repositories) - [Issues](#issues) - [Pull Requests](#pull-requests) ## Repositories The `repositories` submodule provides tools for managing GitHub repositories. It includes functionalities for: - Getting repository details - Listing repositories for an organization or user - Getting repository README content ### Models - `GitHubRepoRequest`: Model for requesting repository information. - `GitHubRepository`: Model representing a GitHub repository with its attributes. ### Tools - `get_repository(repo_path: str, owner: Optional[str] = None)`: Retrieves details of a GitHub repository. - `list_repositories(org: Optional[str] = None, user: Optional[str] = None)`: Lists GitHub repositories for a given organization or user. - `get_readme(repo_path: str, owner: Optional[str] = None, ref: Optional[str] = None)`: Retrieves the README content of a GitHub repository. ## Issues The `issues` submodule provides tools for managing GitHub issues. It includes functionalities for: - Listing issues in a repository - Creating new issues ### Models - `GitHubIssueRequest`: Model for requesting issue information. - `GitHubCreateIssueRequest`: Model for requesting the creation of a new issue. - `GitHubIssue`: Model representing a GitHub issue with its attributes. ### Tools - `list_issues(repo_path: str, owner: Optional[str] = None, filters: Optional[Dict[str, str]] = None)`: Lists issues in a GitHub repository, optionally filtering by various criteria. - `create_issue(request: GitHubCreateIssueRequest, repo_path: str, owner: Optional[str] = None)`: Creates a new issue in a GitHub repository. ## Pull Requests The `pull-requests` submodule provides tools for managing GitHub pull requests. It includes functionalities for: - Listing pull requests in a repository ### Models - `GitHubPRRequest`: Model for requesting pull request information. - `GitHubPullRequest`: Model representing a GitHub pull request with its attributes. ### Tools - `list_pull_requests(repo_path: str, owner: Optional[str] = None, filters: Optional[Dict[str, str]] = None)`: Lists pull requests in a GitHub repository, optionally filtering by various criteria. ## Usage For detailed usage examples, please refer to the [examples directory](../../examples).