Skip to main content
Glama

PyGithub MCP Server

by AstroMined
# PyGithub Documentation This documentation provides comprehensive coverage of the PyGithub library, focusing on the most commonly used objects and operations for GitHub automation. ## Documentation Structure ``` docs/PyGithub/ ├── README.md # This file ├── api/ # API documentation │ ├── index.md # API overview and navigation │ └── objects/ # Object-specific documentation │ ├── core/ # Core GitHub objects │ │ ├── Repository.md │ │ └── Branch.md │ ├── issues/ # Issue tracking │ │ ├── Issue.md │ │ └── Milestone.md │ ├── projects/ # Project management │ │ └── Project.md │ └── pulls/ # Code review │ └── PullRequest.md ``` ## Getting Started ### Installation ```bash pip install PyGithub ``` ### Basic Usage ```python from github import Github # Create a GitHub instance g = Github("your-access-token") # Get a repository repo = g.get_repo("owner/repo") # Perform operations issues = repo.get_issues(state="open") pulls = repo.get_pulls(state="open") branches = repo.get_branches() ``` ## Documentation Overview ### [API Documentation](api/index.md) Comprehensive documentation of PyGithub objects and their usage: - **Core Objects**: Repository, Branch - **Issue Tracking**: Issue, Milestone - **Project Management**: Project, ProjectColumn - **Code Review**: PullRequest, PullRequestReview Each object's documentation includes: - Properties and methods - Code examples - Common patterns - Best practices - Error handling ### Key Features 1. **Repository Management** - Create and configure repositories - Manage branches and protection rules - Handle collaborators and teams 2. **Issue Tracking** - Create and manage issues - Organize with labels and milestones - Track progress and assignments 3. **Project Management** - Create project boards - Manage columns and cards - Automate workflows 4. **Code Review** - Create and manage pull requests - Review code changes - Handle merging and branch management ## Best Practices ### Authentication Always use tokens over username/password: ```python # Using environment variable (recommended) import os g = Github(os.getenv("GITHUB_TOKEN")) # Using personal access token directly g = Github("your-token") ``` ### Error Handling Implement proper error handling: ```python try: repo = g.get_repo("owner/repo") except GithubException as e: if e.status == 404: print("Repository not found") elif e.status == 403: print("Permission denied") ``` ### Rate Limiting Monitor and handle rate limits: ```python def check_rate_limit(): rate = g.get_rate_limit() if rate.core.remaining < 100: print(f"Warning: {rate.core.remaining} calls remaining") print(f"Reset time: {rate.core.reset}") ``` ## Common Use Cases ### Automation Scripts ```python # Auto-label issues def label_new_issues(): for issue in repo.get_issues(state="open", labels=[]): if "bug" in issue.title.lower(): issue.add_to_labels("bug") elif "feature" in issue.title.lower(): issue.add_to_labels("enhancement") # Auto-merge pull requests def merge_approved_pulls(): for pull in repo.get_pulls(state="open"): reviews = pull.get_reviews() if all(review.state == "APPROVED" for review in reviews): pull.merge() ``` ### Project Management ```python # Create sprint board def create_sprint_board(sprint_number): board = repo.create_project( f"Sprint {sprint_number}", body="Sprint planning board" ) # Create columns todo = board.create_column("To Do") in_progress = board.create_column("In Progress") review = board.create_column("Review") done = board.create_column("Done") return board ``` ### Code Review ```python # Review pull requests def review_pull_request(pull): files = pull.get_files() comments = [] for file in files: if file.filename.endswith('.py'): comments.append({ 'path': file.filename, 'position': file.changes, 'body': 'Please add docstring' }) if comments: pull.create_review( body="Please address comments", event="REQUEST_CHANGES", comments=comments ) ``` ## Contributing Contributions to this documentation are welcome! Please: 1. Follow the established format 2. Include practical examples 3. Test code snippets 4. Update relevant diagrams 5. Maintain cross-references ## Additional Resources - [PyGithub Repository](https://github.com/PyGithub/PyGithub) - [GitHub REST API Documentation](https://docs.github.com/en/rest) - [GitHub GraphQL API](https://docs.github.com/en/graphql) ## License This documentation is licensed under the MIT License. See the LICENSE file for details.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AstroMined/pygithub-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server