# hunshcn/gh-proxy

**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/hunshcn-gh-proxy).**

8,843 stars · 2,377 forks · Python · MIT

## Links

- GitHub: https://github.com/hunshcn/gh-proxy
- awesome-repositories: https://awesome-repositories.com/repository/hunshcn-gh-proxy.md

## Description

gh-proxy is an HTTP reverse proxy designed to accelerate the download of GitHub releases, archives, and project files. It functions as a gateway and content cache that forwards requests to GitHub servers to reduce latency and increase delivery speeds.

The project provides specialized support for private repository proxying by extracting authentication tokens directly from the request URL. It also implements access control mechanisms, including the use of blocked user lists to restrict unauthorized proxy usage.

Traffic management is handled through file size limits that redirect oversized requests back to the original source to conserve bandwidth. The system utilizes stream-based response piping and request-header modification to manage data delivery and ensure compatibility with the target servers.

## Tags

### Networking & Communication

- [HTTP Reverse Proxies](https://awesome-repositories.com/f/networking-communication/http-reverse-proxies.md) — Functions as an HTTP reverse proxy that forwards requests to GitHub servers for optimized delivery.
- [HTTP Proxy Downloaders](https://awesome-repositories.com/f/networking-communication/http-proxy-downloaders.md) — Acts as a proxy server that routes file download requests for GitHub releases to accelerate delivery.
- [Request Header Configuration](https://awesome-repositories.com/f/networking-communication/request-header-configuration.md) — Provides custom HTTP request header configuration to ensure compatibility with target content servers.

### Content Management & Publishing

- [Asset Caches](https://awesome-repositories.com/f/content-management-publishing/content-caching/asset-caches.md) — Provides a caching layer that reduces latency and increases speed for fetching GitHub assets.

### Security & Cryptography

- [Private Repository Access](https://awesome-repositories.com/f/security-cryptography/private-repository-access.md) — Provides a mechanism to authenticate and retrieve data from private GitHub repositories through a proxy.
- [URL-Based Token Extraction](https://awesome-repositories.com/f/security-cryptography/token-authentication/url-based-token-extraction.md) — Enables authentication for private repositories by extracting access tokens directly from the request URL.
- [Access Restrictions](https://awesome-repositories.com/f/security-cryptography/access-restrictions.md) — Filters incoming web requests using user lists and file size limits to restrict proxy usage. ([source](https://github.com/hunshcn/gh-proxy#readme))
- [Private Repository Access Controls](https://awesome-repositories.com/f/security-cryptography/private-repository-access-controls.md) — Restrict unauthorized requests to specific repositories using approved and blocked user lists. ([source](https://github.com/hunshcn/gh-proxy/blob/master/README.md))
- [Request Size Limiters](https://awesome-repositories.com/f/security-cryptography/request-size-limiters.md) — Limits the maximum permitted file size to prevent excessive bandwidth consumption. ([source](https://github.com/hunshcn/gh-proxy/blob/master/README.md))
- [Response Redirects](https://awesome-repositories.com/f/security-cryptography/request-size-limiters/response-redirects.md) — Redirects requests to the original source if the file size exceeds defined limits to save bandwidth.

### Web Development

- [GitHub Download Gateways](https://awesome-repositories.com/f/web-development/reverse-proxy-integrations/outbound-only-repository-proxies/github-download-gateways.md) — Acts as a gateway for managing user permissions and file size limits for GitHub repository downloads.

### Data & Databases

- [Blacklist Filtering](https://awesome-repositories.com/f/data-databases/data-access-querying/blacklist-filtering.md) — Implements blacklist filtering to prevent unauthorized or abusive users from accessing the proxy.

### Development Tools & Productivity

- [HTTP Stream Piping](https://awesome-repositories.com/f/development-tools-productivity/stream-piping-utilities/http-stream-piping.md) — Uses HTTP stream piping to deliver data directly from the source to the client with minimal memory overhead.

### DevOps & Infrastructure

- [GitHub Traffic Management](https://awesome-repositories.com/f/devops-infrastructure/github-traffic-management.md) — Controls bandwidth and resource usage for GitHub downloads using file size limits and access lists.
- [Proxy User Filtering](https://awesome-repositories.com/f/devops-infrastructure/network-traffic-controllers/access-control-lists/proxy-user-filtering.md) — Manages which users can download repositories using approved and blocked lists on the proxy.

### Part of an Awesome List

- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Proxy for accelerating github release and archive downloads.
