claudeandClaude Sonnet 5 7c3d13c2ad
Release / build-and-push (push) Skipped
Build / build-and-push (push) Successful in 1m7s
reject non-3xx status codes; close the CSV file; add tests
A row with a status code outside 3xx (e.g. "0" from a typo) was accepted
at load and then panicked net/http's WriteHeader on the first matching
request. ReadCsvRedirects now rejects anything that isn't 300-399, with a
line number in the message, and reports a non-numeric code clearly.

Also defer reader.Close() (the file was left open for the process
lifetime) and drop the unreachable "row == nil" check.

Adds internal/{csv,redirect,http}_test.go covering CSV parsing (valid,
reordered headings, header-only, missing heading, non-numeric and non-3xx
status, ragged row, missing file), Redirects.Find / Redirect.Match, and
ServeHTTP (redirect, 404, query string dropped).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 15:49:39 +00:00
2026-09-07 14:18:05 +01:00
2026-03-30 17:38:09 +01:00
2026-09-07 14:18:05 +01:00
2026-03-30 21:51:48 +01:00

Ultrashorty

Really simple HTTP redirection using a CSV file.

Usage

Create a CSV file with the following headings and add in as many redirects as you like:

From,To,Status Code

Start Ultrashorty:

ultrashorty /path/to/redirects.csv

To load changes to the CSV, just stop and restart Ultrashorty.

S
Description
No description provided
Readme
43 KiB
Languages
Go 92.5%
Dockerfile 7.5%