{"id":7262,"library":"githubpy","title":"githubpy: Simple GitHub REST API Client","description":"githubpy is a straightforward Python3 client designed to interact with the GitHub REST API. Its current version is 2.0.0, released in May 2023. Despite the recent PyPI release, the underlying GitHub repository shows no active development since 2017, indicating it is likely unmaintained.","status":"abandoned","version":"2.0.0","language":"python","source_language":"en","source_url":"https://github.com/michaelliao/githubpy","tags":["GitHub API","REST API","SDK","client","unmaintained"],"install":[{"cmd":"pip install githubpy","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"HTTP client for making API requests.","package":"requests"},{"reason":"Used for JWT (JSON Web Token) operations, potentially for GitHub App authentication.","package":"python-jose"}],"imports":[{"wrong":"from githubpy.github import Github","symbol":"GitHub","correct":"from github import GitHub"}],"quickstart":{"code":"import os\nfrom githubpy.github import Github\n\n# It's recommended to use an environment variable for your token\ngithub_token = os.environ.get('GITHUB_TOKEN', 'YOUR_GITHUB_TOKEN')\n\nif not github_token or github_token == 'YOUR_GITHUB_TOKEN':\n    print(\"WARNING: GITHUB_TOKEN environment variable not set or placeholder used. This may lead to rate limiting or authentication errors.\")\n\ntry:\n    g = Github(github_token)\n    \n    # Get authenticated user information\n    user_response = g.get('/user')\n    user_response.raise_for_status() # Raise an exception for bad status codes (4xx or 5xx)\n    user_data = user_response.json()\n    print(f\"Authenticated as: {user_data.get('login')}\")\n\n    # List repositories for the authenticated user\n    repos_response = g.get('/user/repos')\n    repos_response.raise_for_status()\n    repos_data = repos_response.json()\n    print(\"\\nUser Repositories:\")\n    for repo in repos_data[:3]: # Print first 3 repos for brevity\n        print(f\"- {repo.get('name')}\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    if hasattr(e, 'response') and e.response is not None:\n        print(f\"Response Status: {e.response.status_code}\")\n        print(f\"Response Body: {e.response.text}\")\n","lang":"python","description":"Initializes the GitHub client with a personal access token and retrieves information about the authenticated user and their repositories. Authentication is crucial for most API interactions to avoid severe rate limits."},"warnings":[{"fix":"Verify your `pip install` command and `from ... import ...` statements. If you intend to use the widely supported library, install `PyGithub` (`pip install PyGithub`) and use `from github import Github`.","message":"This library (`githubpy`) is frequently confused with the more popular and actively maintained `PyGithub` library. They have different import paths and API structures. Ensure you are using the correct library for your project.","severity":"gotcha","affected_versions":"All"},{"fix":"Be aware that new features, bug fixes, or compatibility updates for the latest GitHub API changes are unlikely. Consider using an actively maintained alternative like `PyGithub` for production systems.","message":"Despite a PyPI release (v2.0.0) in May 2023, the official GitHub repository for `githubpy` (michaelliao/githubpy) has not been updated since August 2017. This suggests the project is effectively abandoned, and the 2.0.0 release might be a re-packaging without active code development or bug fixes.","severity":"breaking","affected_versions":"2.0.0"},{"fix":"Generate a GitHub Personal Access Token with appropriate scopes (e.g., 'repo', 'read:user'). Pass this token during `Github` client initialization: `g = Github('your_token')`. Store tokens securely, preferably as environment variables, not hardcoded.","message":"Unauthenticated requests to the GitHub API are heavily rate-limited (e.g., 60 requests per hour). Most practical uses require authentication via a Personal Access Token or GitHub App.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"search_vec":"'2.0.0':25 '2017':44 '2023':29 'activ':41 'api':5,20,51,53 'client':6,12,55 'current':22 'design':13 'despit':30 'develop':42 'github':3,18,37,50 'githubpi':1,7 'indic':45 'interact':15 'like':48 'may':28 'pypi':33 'python3':11 'recent':32 'releas':26,34 'repositori':38 'rest':4,19,52 'sdk':54 'show':39 'simpl':2 'sinc':43 'straightforward':10 'under':36 'unmaintain':49,56 'version':23","created_at":"2026-04-16T13:50:42.591552+00:00","updated_at":"2026-04-16T13:50:42.591552+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"2.0.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/michaelliao/githubpy","docs":null,"changelog":null,"pypi":"https://pypi.org/project/githubpy/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}