Metadata-Version: 2.4
Name: github-webhook-server
Version: 4.1.0
Summary: A webhook server to manage Github repositories and pull requests.
Project-URL: homepage, https://github.com/myakove/github-webhook-server
Project-URL: repository, https://github.com/myakove/github-webhook-server
Project-URL: Bug Tracker, https://github.com/myakove/github-webhook-server/issues
Author-email: Meni Yakove <myakove@gmail.com>, Ruth Netser <ruth.netser@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: ==3.14.*
Requires-Dist: aiofiles>=24.1.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: asyncstdlib>=3.13.1
Requires-Dist: build>=1.2.2.post1
Requires-Dist: colorama>=0.4.6
Requires-Dist: colorlog>=6.8.2
Requires-Dist: fastapi-mcp>=0.4.0
Requires-Dist: fastapi>=0.115.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: pi-sidecar-client>=4.2.0
Requires-Dist: psutil>=7.0.0
Requires-Dist: pydantic>=2.8.0
Requires-Dist: pygithub>=2.4.0
Requires-Dist: pyhelper-utils>=0.0.42
Requires-Dist: pyjwt>=2.8.0
Requires-Dist: pytest-cov>=6.0.0
Requires-Dist: pytest-mock>=3.14.0
Requires-Dist: pytest>=8.3.3
Requires-Dist: python-simple-logger>=1.0.40
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: requests>=2.32.3
Requires-Dist: ruff>=0.6.9
Requires-Dist: shortuuid>=1.0.13
Requires-Dist: string-color>=1.2.3
Requires-Dist: timeout-sampler>=0.0.46
Requires-Dist: uvicorn[standard]>=0.32.0
Requires-Dist: webcolors>=24.11.1
Provides-Extra: tests
Requires-Dist: pytest-asyncio>=0.26.0; extra == 'tests'
Requires-Dist: pytest-xdist>=3.7.0; extra == 'tests'
Description-Content-Type: text/markdown

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Container](https://img.shields.io/badge/Container-ghcr.io-red)](https://ghcr.io/myk-org/github-webhook-server)
[![FastAPI](https://img.shields.io/badge/FastAPI-009688?logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com)
[![Python](https://img.shields.io/badge/Python-3.12+-3776ab?logo=python&logoColor=white)](https://python.org)

# GitHub Webhook Server

A [FastAPI](https://fastapi.tiangolo.com)-based webhook server for automating GitHub repository management and pull request workflows.

[![Documentation](https://img.shields.io/badge/Documentation-blue?logo=readthedocs&logoColor=white)](https://myk-org.github.io/github-webhook-server/)

## Key Features

- **Pull Request Automation** — reviewer assignment, approval workflows, auto-merge, size labeling, and WIP/hold management
- **Cherry-Pick Workflows** — automated cherry-picks with AI-powered conflict resolution
- **Check Runs and Mergeability** — configurable status checks, verified labels, and merge-readiness evaluation
- **OWNERS-Based Permissions** — reviewer and approver assignment from OWNERS files with per-directory granularity
- **Container and PyPI Publishing** — automated container builds, tag-based releases, and PyPI publishing
- **Issue Comment Commands** — `/retest`, `/approve`, `/cherry-pick`, `/build-and-push-container`, and more
- **AI Features** — conventional commit title validation and suggestions via Claude, Gemini, or Cursor
- **Repository Bootstrap** — automatic label creation, branch protection, and webhook configuration on startup
- **Log Viewer** — real-time log streaming, webhook flow visualization, and structured log analysis
- **Multi-Token Support** — automatic GitHub token failover for rate limit resilience

## Getting Started

See the [documentation](https://myk-org.github.io/github-webhook-server/) for installation, configuration, and deployment guides.

```bash
# Quick start
uv sync
cp examples/config.yaml /path/to/data/config.yaml  # Edit with your settings
uv run entrypoint.py
```
