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

View File

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

View File

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