О проекте
Что такое GitRiver
GitRiver - самостоятельно размещаемая платформа управления git-репозиториями. Один бинарник на Rust (67 МБ) объединяет всё необходимое для разработки: размещение git-репозиториев с SSH, CI/CD с конвейерами с графом зависимостей, OCI-совместимый реестр контейнеров, реестр пакетов (npm, PyPI, Cargo, Maven, NuGet, Generic), задачи с досками, запросы на слияние с CODEOWNERS и очередью слияния, GitOps-развёртывание (RiverCD) с поддержкой канареечного и сине-зелёного развёртывания, 8 каналов уведомлений и многое другое.
Зачем
Традиционные платформы такого рода требуют гигабайты памяти, десятки процессов и сложную инфраструктуру. GitRiver предлагает полноценный функционал при потреблении 46 МБ памяти в покое. Один бинарник, одна база PostgreSQL, одна команда запуска. Реестр пакетов (7 форматов), CI/CD с конвейерами с графом зависимостей, реестр контейнеров и многое другое - бесплатно в Community-версии.
Технологии
Написан на Rust (edition 2021) с использованием Axum, Tokio и SQLx. 34 крейта в монорепозитории, гексагональная архитектура (DDD). Интерфейс - React 19 + TypeScript + TailwindCSS. БД - PostgreSQL 15 и новее: проверки выполняются на 17, поставляемый compose поднимает 18. 585 вызовов собственного REST API /api/v1 (695 операций API вместе со слоями совместимости GitHub и GitLab) с OpenAPI 3.1 спецификацией и Scalar UI. Работает целиком на своём оборудовании, без зависимостей от облачных сервисов.
Уникальные преимущества
RiverCD - встроенный GitOps-контроллер для развёртывания в Kubernetes прямо из GitRiver, без внешних инструментов. 8 каналов доставки уведомлений из коробки (Email, Telegram, Max, Slack, Discord, Teams, Matrix, вебхуки) плюс встроенные уведомления в интерфейсе. Поиск секретов с 17 встроенными масками и пользовательскими regex. Проверка лицензий зависимостей с поддержкой SPDX. Зашифрованные резервные копии (AES-256-GCM) с инкрементальным режимом и потоковой загрузкой в S3.