Runko offers a streamlined monorepo solution that integrates with Git, allowing for first-class project management and change-based code reviews. It ensures strict adherence to policies through server-side enforcement while providing both a CLI and API interface for users and coding agents alike. Experience efficient CI scoping and a clear path ownership model.
Runko is an innovative self-hosted monorepo platform designed to streamline software development using plain Git. It enables first-class project management within a single repository while implementing change-based review processes similar to Gerrit, along with features like path ownership, affected-based CI scoping, and server-enforced merge gates. Both human developers and automated coding agents interact seamlessly with a unified CLI/API interface, providing a versatile experience for all users.
refs/for/ pushes for effective code review.Runko operates on a public instance, allowing users to browse code, track changes, and view review history without needing an account. Users are encouraged to explore the code and its changes via the following links:
Clone the repository with:
git clone https://runko.victornazzaro.com/o/runko/repo.git
Runko's architecture relies solely on Git as its core storage medium, while Postgres provides a rebuildable index of the trunk without creating additional sources of truth. The complete design details can be found in the design document.
In Runko, direct pushes to main and merged pull requests are prohibited. Instead, changes are pushed to refs/for/main, undergoing a series of checks based on the relevant PROJECT.yaml manifests which specify the required CI checks. These checks are executed by a generic CI executor, ensuring that only vetted changes progress through the codebase.
Runko is fully operational and utilized in its development processes, serving as a practical testbed for its features. Comprehensive documentation regarding its implementation and engineering history is available in docs/implementation-log.md.
The repository contains several key directories:
docs/design.md # Full design specifications
docs/spec/ # Schema artifacts
db/ # Database migrations and queries
internal/ # Shared internal components
platform/ # Control-plane libraries
runkod/ # Daemon processes for handling requests
web/ # Web UI built with React and TypeScript
cli/runko/ # CLI for human/agent interaction
Runko provides a consistent command-line interface, where every action is executed through commands. A daily usage example includes:
runko project create --name payments-api --type service --lang go
runko workspace create --name fix-sku --project payments-api --by you
runko change push
runko change land
To build and test Runko, follow these commands:
git clone https://runko.victornazzaro.com/o/runko/repo.git runko
cd runko
make check # Run formatting, vetting, and testing
Contributions and community discussions are welcome; however, pull requests will be reviewed on the Runko platform, since this repository serves merely as a read-only mirror.
No comments yet.
Sign in to be the first to comment.