Universal Rhodium Standard Repository Compliance Engine
One compliance engine. Every git platform. Universal repository excellence.
RSR-Certified is a universal repository compliance engine that implements the Rhodium Standard Repository (RSR) certification framework. It provides automated compliance checking across GitHub, GitLab, Bitbucket, Gitea/Forgejo, and more.
| Feature | Description |
|---|---|
Universal Platform Support |
Single engine works with GitHub, GitLab, Bitbucket, Gitea, Forgejo |
Tiered Certification |
Bronze, Silver, Gold, and Rhodium compliance levels |
CLI Tool |
Check repository compliance locally before pushing |
Webhook Server |
Automatic compliance checks on push/PR events |
LSP Integration |
Real-time compliance feedback in VS Code, Neovim, Emacs |
Badge Generation |
Display your certification proudly in your README |
Containerized |
Run anywhere with Podman or Docker |
| Tier | Symbol | Requirements | Badge |
|---|---|---|---|
Rhodium |
|
Full compliance + SBOM + SLSA + reproducible builds + threat model |
|
Gold |
|
Full compliance + documentation + test coverage + security scanning |
|
Silver |
|
Core compliance + CONTRIBUTING + CI/CD + SECURITY + changelog |
|
Bronze |
|
LICENSE + README + .gitignore + no hardcoded secrets |
# Install from source
git clone https://github.com/Hyperpolymath/git-rsr-certified
cd git-rsr-certified
cargo build --release
# Check compliance
./target/release/rsr check /path/to/your/repo
# Initialize RSR configuration
./target/release/rsr init --tier silver /path/to/your/repo# Start server on port 8080
./target/release/rsr serve --host 0.0.0.0 --port 8080 --platforms github,gitlab
# Or use containers
cd container && podman-compose up -d+---------------------------------------------------------------+
| RSR-CERTIFIED ENGINE |
+---------------------------------------------------------------+
| GitHub | GitLab | Bitbucket | Gitea/Forgejo |
| | | | | |
| +----+----+----+------+------+-------+ |
| | |
| +---------v---------+ |
| | Universal Event | |
| | Translator | |
| +---------+---------+ |
| | |
| +---------v---------+ |
| | RSR Compliance |<-----+ |
| | Engine | | |
| +---------+---------+ | |
| | | |
| +---------+--------+-------+-------+ |
| | | | | |
| +--v---+ +---v----+ +--------v----+ | |
| |Badge | |Reports | | IDE/LSP | | |
| |Gen | | | | Integration | | |
| +------+ +--------+ +-------------+ | |
+---------------------------------------------------------------+git-rsr-certified/
|-- engine/ # Core compliance engine (Rust)
| |-- src/
| | |-- lib.rs # Library root
| | |-- main.rs # CLI entry point
| | |-- compliance/ # Tier check implementations
| | | |-- bronze.rs # LICENSE, README, .gitignore, secrets
| | | |-- silver.rs # CONTRIBUTING, CI, SECURITY
| | | |-- gold.rs # Docs, coverage, scanning
| | | +-- rhodium.rs # SBOM, SLSA, reproducible builds
| | |-- adapters/ # Platform adapters
| | | |-- github.rs # GitHub (fully implemented)
| | | |-- gitlab.rs # GitLab (scaffolded)
| | | |-- bitbucket.rs # Bitbucket (scaffolded)
| | | +-- gitea.rs # Gitea/Forgejo (scaffolded)
| | |-- events/ # Event abstraction layer
| | +-- server/ # HTTP webhook server
| +-- Cargo.toml
|
|-- lsp/ # Language Server Protocol server
| |-- src/main.rs # LSP implementation
| +-- Cargo.toml
|
|-- extensions/ # IDE extensions
| +-- vscode/ # VS Code extension
|
|-- container/ # Container deployment
| |-- Containerfile # Podman/Docker build
| |-- compose.yml # Compose orchestration
| +-- k8s/ # Kubernetes manifests
|
|-- badges/ # Badge SVG assets
|-- schemas/ # JSON schemas for configuration
+-- docs/ # Additional documentationCreate .rsr.toml in your repository root:
[compliance]
target_tier = "gold"
strict_mode = false
[checks]
license.required = true
license.allowed = ["MIT", "Apache-2.0", "GPL-3.0"]
readme.min_length = 100
[ignore]
paths = ["vendor/", "node_modules/", "third_party/"]
[badges]
style = "flat-square"
include_score = true
[ci]
fail_on = "bronze"
comment_on_pr = true| Command | Description |
|---|---|
|
Check compliance of a local repository |
|
Start the webhook server |
|
Generate a compliance badge |
|
Initialize |
| Endpoint | Description |
|---|---|
|
Receive platform webhooks |
|
Get compliance status |
|
Get badge SVG |
|
Get detailed report |
|
Health check |
|
Prometheus metrics |
Install the RSR-Certified extension from the marketplace or build from source:
cd extensions/vscode
npm install
npm run buildUse any LSP client with the rsr-lsp binary:
-- lua/lspconfig example
require('lspconfig').rsr.setup{
cmd = { "rsr-lsp" },
filetypes = { "toml", "markdown", "yaml" },
}# Build the image
podman build -t rsr-certified:latest -f container/Containerfile .
# Run the server
podman run -p 8080:8080 \
-e RSR_PLATFORMS=github,gitlab \
-e RSR_LOG_LEVEL=info \
rsr-certified:latest| Check ID | Description | Status |
|---|---|---|
|
Valid LICENSE file present |
Implemented |
|
README with minimum content |
Implemented |
|
.gitignore with patterns |
Implemented |
|
No hardcoded secrets (API keys, tokens, private keys) |
Implemented |
| Check ID | Description | Status |
|---|---|---|
|
CONTRIBUTING.md present |
Planned |
|
CODE_OF_CONDUCT.md present |
Planned |
|
SECURITY.md present |
Planned |
|
CHANGELOG maintained |
Planned |
|
CI/CD configuration present |
Planned |
|
Issue/PR templates |
Planned |
| Check ID | Description | Status |
|---|---|---|
|
API/Architecture docs |
Planned |
|
Minimum 70% coverage |
Planned |
|
Vulnerability scanning |
Planned |
|
GPG/SSH signing |
Planned |
See ROADMAP.adoc for the detailed development roadmap.
-
Bronze tier checks (complete)
-
GitHub adapter (complete)
-
CLI and webhook server (complete)
-
LSP baseline (complete)
See CONTRIBUTING.md for contribution guidelines.
We follow the RSR Tri-Perimeter Contribution Framework:
-
Perimeter 1 (Core): Engine architecture, security
-
Perimeter 2 (Expert): New compliance checks, adapters
-
Perimeter 3 (Community): Documentation, tests, proposals
See SECURITY.md for our security policy and vulnerability reporting process.
Dual-licensed under MIT or Apache-2.0 at your option.
RSR-Certified - Raising the bar for repository excellence, everywhere.