# pygithub/pygithub

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pygithub-pygithub).**

7,735 stars · 1,881 forks · Python · LGPL-3.0

## Links

- GitHub: https://github.com/PyGithub/PyGithub
- Homepage: https://pygithub.readthedocs.io/
- awesome-repositories: https://awesome-repositories.com/repository/pygithub-pygithub.md

## Description

PyGithub is a Python library that serves as an object-oriented wrapper for the GitHub REST API. It functions as a specialized client that translates API endpoints into a hierarchy of Python classes, allowing for the programmatic management of GitHub repositories, user profiles, and organizations.

The library manages the serialization of requests and responses, converting JSON data into structured object attributes. It utilizes lazy-loading for property retrieval and employs generators to handle pagination when iterating over large remote datasets.

This toolkit enables the automation of GitHub resources, including repository configurations, user management, and organization memberships. It is designed to integrate these programmatic capabilities into DevOps workflows and automation pipelines.

## Tags

### Development Tools & Productivity

- [GitHub API Integrations](https://awesome-repositories.com/f/development-tools-productivity/github-api-integrations.md) — Provides a comprehensive Python library for interacting with the GitHub REST API to automate resource management. ([source](https://github.com/pygithub/pygithub#readme))
- [Python API Clients](https://awesome-repositories.com/f/development-tools-productivity/rest-apis/rest-api-clients/python-api-clients.md) — Offers a native Python client that provides object-oriented access to the GitHub REST API endpoints.
- [Bulk Configuration Tools](https://awesome-repositories.com/f/development-tools-productivity/github-repository-utilities/bulk-configuration-tools.md) — Enables bulk updates to settings and configurations across multiple GitHub repositories using Python scripts.
- [Resource Mappings](https://awesome-repositories.com/f/development-tools-productivity/rest-apis/resource-mappings.md) — Maps remote GitHub API endpoints to local Python objects representing entities and their properties.
- [REST API Clients](https://awesome-repositories.com/f/development-tools-productivity/rest-apis/rest-api-clients.md) — Implements a client that handles request serialization, pagination, and JSON parsing for the GitHub web service.

### DevOps & Infrastructure

- [DevOps Automation Tools](https://awesome-repositories.com/f/devops-infrastructure/devops-automation-tools.md) — Provides a programmatic interface for integrating GitHub resource management into DevOps automation pipelines.
- [CI/CD Workflows](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/cicd-pipeline-management/ci-cd-workflows.md) — Facilitates the integration of API calls into CI/CD pipelines to automate actions based on repository events.

### Programming Languages & Runtimes

- [Object-Oriented API Wrappers](https://awesome-repositories.com/f/programming-languages-runtimes/native-object-wrapping/api-response-wrappers/object-oriented-api-wrappers.md) — Translates raw JSON API responses into a hierarchy of strongly typed Python classes.
- [Object Property Deferred Loading](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation/class-loading-mechanisms/lazy-loading/lazy-loaded-result-sets/object-property-deferred-loading.md) — Defers the loading of individual object properties until they are first accessed to minimize initial memory usage.

### Data & Databases

- [Automatic API Pagination Engines](https://awesome-repositories.com/f/data-databases/iterator-based-pagination/automatic-api-pagination-engines.md) — Implements a transparent engine that automatically fetches subsequent pages of API responses until all results are collected.

### System Administration & Monitoring

- [User Group Management](https://awesome-repositories.com/f/system-administration-monitoring/user-group-management.md) — Programmatically manages organization memberships and user group assignments through the API.

### Web Development

- [Request and Response Transformers](https://awesome-repositories.com/f/web-development/request-body-deserializers/request-and-response-transformers.md) — Serializes Python method calls into HTTP requests and deserializes JSON responses back into structured object attributes.

### Part of an Awesome List

- [Git and GitHub Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/git-and-github-libraries.md) — Python library for GitHub API access.
