From 4003c547446e48ec887074893b75f378a807aa56 Mon Sep 17 00:00:00 2001 From: DevITWay | Pavel Volkov Date: Wed, 8 Apr 2026 11:39:36 +0300 Subject: [PATCH] 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 --- nora-registry/src/dashboard_metrics.rs | 19 ++++++++++++------- nora-registry/src/main.rs | 1 + nora-registry/src/openapi.rs | 6 ++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/nora-registry/src/dashboard_metrics.rs b/nora-registry/src/dashboard_metrics.rs index 4db11f1..a8ae23e 100644 --- a/nora-registry/src/dashboard_metrics.rs +++ b/nora-registry/src/dashboard_metrics.rs @@ -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); } diff --git a/nora-registry/src/main.rs b/nora-registry/src/main.rs index 906112d..58ca9b5 100644 --- a/nora-registry/src/main.rs +++ b/nora-registry/src/main.rs @@ -438,6 +438,7 @@ async fn run_server(config: Config, storage: Storage) { npm = "/npm/", cargo = "/cargo/", pypi = "/simple/", + go = "/go/", raw = "/raw/", "Available endpoints" ); diff --git a/nora-registry/src/openapi.rs b/nora-registry/src/openapi.rs index 253ba24..14369aa 100644 --- a/nora-registry/src/openapi.rs +++ b/nora-registry/src/openapi.rs @@ -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(