fix: add missing Go and Raw registries to OpenAPI, startup logs, and metrics tests (#115)

- openapi.rs: add Go Module Proxy and Raw File Storage tags, update version and description
- main.rs: add /go/ to Available endpoints startup log
- dashboard_metrics.rs: add go to download and upload test coverage for all 7 registries
This commit is contained in:
2026-04-08 11:39:36 +03:00
committed by GitHub
parent 71d8d83585
commit 4003c54744
3 changed files with 17 additions and 9 deletions

View File

@@ -212,15 +212,16 @@ mod tests {
#[test]
fn test_record_download_all_registries() {
let m = DashboardMetrics::new();
for reg in &["docker", "npm", "maven", "cargo", "pypi", "raw"] {
for reg in &["docker", "npm", "maven", "cargo", "pypi", "go", "raw"] {
m.record_download(reg);
}
assert_eq!(m.downloads.load(Ordering::Relaxed), 6);
assert_eq!(m.downloads.load(Ordering::Relaxed), 7);
assert_eq!(m.get_registry_downloads("docker"), 1);
assert_eq!(m.get_registry_downloads("npm"), 1);
assert_eq!(m.get_registry_downloads("maven"), 1);
assert_eq!(m.get_registry_downloads("cargo"), 1);
assert_eq!(m.get_registry_downloads("pypi"), 1);
assert_eq!(m.get_registry_downloads("go"), 1);
assert_eq!(m.get_registry_downloads("raw"), 1);
}
@@ -233,14 +234,18 @@ mod tests {
}
#[test]
fn test_record_upload() {
fn test_record_upload_all_registries() {
let m = DashboardMetrics::new();
m.record_upload("docker");
m.record_upload("maven");
m.record_upload("raw");
assert_eq!(m.uploads.load(Ordering::Relaxed), 3);
for reg in &["docker", "npm", "maven", "cargo", "pypi", "go", "raw"] {
m.record_upload(reg);
}
assert_eq!(m.uploads.load(Ordering::Relaxed), 7);
assert_eq!(m.get_registry_uploads("docker"), 1);
assert_eq!(m.get_registry_uploads("npm"), 1);
assert_eq!(m.get_registry_uploads("maven"), 1);
assert_eq!(m.get_registry_uploads("cargo"), 1);
assert_eq!(m.get_registry_uploads("pypi"), 1);
assert_eq!(m.get_registry_uploads("go"), 1);
assert_eq!(m.get_registry_uploads("raw"), 1);
}

View File

@@ -438,6 +438,7 @@ async fn run_server(config: Config, storage: Storage) {
npm = "/npm/",
cargo = "/cargo/",
pypi = "/simple/",
go = "/go/",
raw = "/raw/",
"Available endpoints"
);

View File

@@ -18,8 +18,8 @@ use crate::AppState;
#[openapi(
info(
title = "Nora",
version = "0.2.12",
description = "Multi-protocol package registry supporting Docker, Maven, npm, Cargo, and PyPI",
version = "0.5.0",
description = "Multi-protocol package registry supporting Docker, Maven, npm, Cargo, PyPI, Go, and Raw",
license(name = "MIT"),
contact(name = "DevITWay", url = "https://github.com/getnora-io/nora")
),
@@ -35,6 +35,8 @@ use crate::AppState;
(name = "npm", description = "npm Registry API"),
(name = "cargo", description = "Cargo Registry API"),
(name = "pypi", description = "PyPI Simple API"),
(name = "go", description = "Go Module Proxy API"),
(name = "raw", description = "Raw File Storage API"),
(name = "auth", description = "Authentication & API Tokens")
),
paths(