nitr v0.8.0
First release cut since v0.7.0. Brings the toolchain and CI up to date, clears
most known vulnerabilities, and adds a test suite. Contains one externally
visible breaking change to the HTTP API.
⚠ Breaking changes
AuthAPInow returns HTTP401 Unauthorizedon a failed API-key check
instead of200 OK. The response body already reported401in its
statusfield, but the actual HTTP status was incorrectly200. Any client
branching on the HTTP status code (rather than the body) will now correctly
see401. If a client was relying on the prior200, update it to expect
401on bad credentials. (3d581ba)
Added
- Test suite across all packages (~92% coverage), including
cmd,database,
handlers,models,utils,version, andmain. (57bcfd6) Draft ReleaseCI job that, on av*tag push, attaches the four
cross-compiled binaries (nitr_linux_amd64,nitr_linux_386,
nitr_windows_amd64.exe,nitr_windows_386.exe) to a draft GitHub release. (32deb54, 468e3ee)
Changed
- Migrated CI from Travis to GitHub Actions (
.github/workflows/ci.yml):
Vet & Test,Cross-compile binaries, andDraft Releasejobs. (32deb54) - Bumped all GitHub Actions off the deprecated Node 20 runtime. (d6fd5cf)
- Bumped the Go toolchain:
godirective1.13 → 1.26,toolchainpinned to
go1.26.5; thegoversion badge (images/goversion.svg) updated to match. (f90cc72, 07943fc) database.GetUserByIDnow returns(models.User, error)instead of panicking
on DB open / unmarshal errors, anddatabase.GetApiKeynow returns
(string, error). Callers incmd/andhandlers/propagate the error
rather than crashing. This is an internal Go API signature change. (9912861)utils.OpenBrowsernow returns anerrorinstead of callinglog.Fatal
when the platform has no opener (xdg-open,open, etc.), so a missing
browser helper no longer hard-crashes the process (notably in CI). (6ed031e)- Replaced the retired Go Report Card badge with a self-hosted SVG
(images/goreport.svg). (1298ba1)
Fixed
- Test correctness: changed
assert.NoErrortorequire.NoErrorafter
app.Test(req, timeout)so that a timeout — which returns a nil
*http.Response— stops the test immediately instead of letting the next
line dereferenceresp.StatusCodeand panic over the real timeout failure. (d88e164)
Security
- Bumped vulnerable dependencies:
gorilla/schema v1.4.1,
valyala/fasthttp v1.34.0, and (via the Go toolchain bump) cleared 9 stdlib
advisories.govulncheckfindings dropped from 15 to 4. The remaining 4 are
infiber v1.11.1(EOL, no upstream fix); resolving them requires a
fiber v1 → v2migration, tracked separately. (f90cc72)