From 970374b4e2eca914cc48ac0798d3dad811cffb29 Mon Sep 17 00:00:00 2001 From: devitway Date: Tue, 31 Mar 2026 22:48:32 +0000 Subject: [PATCH] chore: add clippy.toml, issue/PR templates, Helm OCI docs, logging env vars - clippy.toml: cognitive-complexity=25, too-many-arguments=7 - Issue templates: bug report + feature request (YAML forms) - PR template with checklist (fmt, clippy, test, unwrap, changelog) - README: Helm OCI support documented, NORA_LOG_LEVEL/FORMAT env vars - GitHub topic: helm-registry re-added (verified helm push/pull works) --- .github/ISSUE_TEMPLATE/bug_report.yml | 42 +++++++++++++++------- .github/ISSUE_TEMPLATE/feature_request.yml | 25 ++++++++----- .github/PULL_REQUEST_TEMPLATE.md | 16 +++++++++ README.md | 10 ++++-- clippy.toml | 4 +++ 5 files changed, 73 insertions(+), 24 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 clippy.toml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index aaf7d20..37f8adf 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,39 +1,57 @@ name: Bug Report -description: Report a bug or unexpected behavior -labels: ["bug"] +description: Report a bug in NORA +labels: [bug] body: - type: textarea id: description attributes: label: Description - description: What happened? What did you expect? + description: What happened? validations: required: true - type: textarea - id: steps + id: expected attributes: - label: Steps to reproduce - description: How can we reproduce the issue? + label: Expected Behavior + description: What did you expect to happen? + - type: textarea + id: reproduce + attributes: + label: Steps to Reproduce + description: How can we reproduce this? + validations: + required: true - type: input id: version attributes: - label: NORA version - placeholder: "0.2.32" + label: NORA Version + description: Output of 'nora --version' or Docker tag + placeholder: v0.3.0 + validations: + required: true - type: dropdown - id: protocol + id: registry attributes: - label: Registry protocol + label: Registry Protocol options: - - Docker + - Docker/OCI - npm - Maven - PyPI - Cargo + - Go - Raw - UI/Dashboard - Other + - type: dropdown + id: storage + attributes: + label: Storage Backend + options: + - Local filesystem + - S3-compatible - type: textarea id: logs attributes: - label: Logs / error output + label: Relevant Logs render: shell diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index f3ec16e..d5bca6b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,6 +1,6 @@ name: Feature Request -description: Suggest a new feature or improvement -labels: ["enhancement"] +description: Suggest a new feature for NORA +labels: [enhancement] body: - type: textarea id: problem @@ -12,19 +12,26 @@ body: - type: textarea id: solution attributes: - label: Proposed solution + label: Proposed Solution description: How would you like it to work? - - type: dropdown - id: protocol + validations: + required: true + - type: textarea + id: alternatives attributes: - label: Related protocol + label: Alternatives Considered + description: Other approaches you've thought about + - type: dropdown + id: registry + attributes: + label: Related Registry options: - - Docker + - Docker/OCI - npm - Maven - PyPI - Cargo + - Go - Raw - - CLI - UI/Dashboard - - General + - Core/General diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..b4df748 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Summary + + + +## Changes + + + +## Checklist + +- [ ] passes +- [ ] passes +- [ ] passes +- [ ] No in production code +- [ ] New public API has documentation +- [ ] CHANGELOG updated (if user-facing change) diff --git a/README.md b/README.md index a6aa58c..64040eb 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Open [http://localhost:4000/ui/](http://localhost:4000/ui/) — your registry is ## Why NORA - **Zero-config** — single 32 MB binary, no database, no dependencies. `docker run` and it works. -- **Production-tested** — Docker, Maven, npm, PyPI, Cargo, Go, Raw. Used in real CI/CD with ArgoCD, Buildx cache, and air-gapped environments. +- **Production-tested** — Docker (+ Helm OCI), Maven, npm, PyPI, Cargo, Go, Raw. Used in real CI/CD with ArgoCD, Buildx cache, and air-gapped environments. - **Secure by default** — [OpenSSF Scorecard](https://scorecard.dev/viewer/?uri=github.com/getnora-io/nora), signed releases, SBOM, fuzz testing, 200+ unit tests. [![Release](https://img.shields.io/github/v/release/getnora-io/nora)](https://github.com/getnora-io/nora/releases) @@ -30,7 +30,7 @@ Open [http://localhost:4000/ui/](http://localhost:4000/ui/) — your registry is | Registry | Mount Point | Upstream Proxy | Auth | |----------|------------|----------------|------| -| Docker Registry v2 | `/v2/` | Docker Hub, GHCR, any OCI | ✓ | +| Docker Registry v2 | `/v2/` | Docker Hub, GHCR, any OCI, Helm OCI | ✓ | | Maven | `/maven2/` | Maven Central, custom | proxy-only | | npm | `/npm/` | npmjs.org, custom | ✓ | | Cargo | `/cargo/` | — | ✓ | @@ -38,6 +38,8 @@ Open [http://localhost:4000/ui/](http://localhost:4000/ui/) — your registry is | Go Modules | `/go/` | proxy.golang.org, custom | ✓ | | Raw files | `/raw/` | — | ✓ | +> **Helm charts** work via the Docker/OCI endpoint — `helm push`/`pull` with `--plain-http` or behind TLS reverse proxy. + ## Quick Start ### Docker (Recommended) @@ -142,7 +144,9 @@ See [Authentication guide](https://getnora.dev/configuration/authentication/) fo | `NORA_STORAGE_MODE` | local | `local` or `s3` | | `NORA_AUTH_ENABLED` | false | Enable authentication | | `NORA_DOCKER_UPSTREAMS` | `https://registry-1.docker.io` | Docker upstreams (`url\|user:pass,...`) | - +| `NORA_LOG_LEVEL` | info | Log level: trace, debug, info, warn, error | +| `NORA_LOG_FORMAT` | text | Log format: `text` (human) or `json` (structured) | +| `NORA_PUBLIC_URL` | — | Public URL for rewriting artifact links | See [full configuration reference](https://getnora.dev/configuration/settings/) for all options. ### config.toml diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 0000000..828a895 --- /dev/null +++ b/clippy.toml @@ -0,0 +1,4 @@ +# NORA clippy configuration +cognitive-complexity-threshold = 25 +too-many-arguments-threshold = 7 +type-complexity-threshold = 300