What is PyGitWeb?
The goal of PyGitWeb is to provide everything you need to self host a code forge for small or medium-sized teams. PyGitWeb implements OAuth2 flows, but if running locally or inside a LAN, it can be run without authentication.
PyGit2 is the only dependency required by the internal tooling package, so you can script workflows without bringing up the web server. There is also an ABC-based plugin model if you want to extend the stack with your own tools.
Core dependencies
-
PyGit2
LibGit2 wrapper for fast manipulation and queries. Shared with standalone tooling.
-
FastAPI + Uvicorn
ASGI server for rendered pages and internal workflow requests.
-
Jinja2
Fast, safe templating.
-
orjson
High-performance JSON serialization.
-
pydantic-settings
Straightforward settings model.
-
python-ripgrep
Fast file search across the tree.
What sets it apart?
All project metadata is stored in-situ; discovering new merge requests and tasks is just a git fetch.
Settings, merge requests, comments, and tasks all live in your repository object database. No separate database service to provision. If you have a repo, you have what PyGitWeb needs.
Setup is easy - give it a try.
Enterprise scale?
Not yet. PyGitWeb is currently only tested with light workflows, and is only recommended for evaluation by individuals and small teams. Stay tuned for updates!