nightly.link but for forgejo
  • Go 89.8%
  • HTML 9.3%
  • Dockerfile 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Lain Iwakura 812f879432
All checks were successful
ci / test (push) Successful in 2s
ci / build (amd64, linux) (push) Successful in 3s
ci / build (arm64, linux) (push) Successful in 3s
ci / container (push) Successful in 43s
fix: i forgor
2026-08-03 02:42:55 +03:00
.forgejo/workflows fix: actions because accessMode = perm.AccessModeRead 2026-08-03 02:34:57 +03:00
cmd/noon feat: initial! 2026-08-03 02:23:22 +03:00
internal fix: i forgor 2026-08-03 02:42:55 +03:00
.dockerignore feat: docker! 2026-08-03 02:28:20 +03:00
.gitignore feat: initial! 2026-08-03 02:23:22 +03:00
Dockerfile feat: docker! 2026-08-03 02:28:20 +03:00
go.mod feat: initial! 2026-08-03 02:23:22 +03:00
go.sum feat: initial! 2026-08-03 02:23:22 +03:00
README.md fix: actions because accessMode = perm.AccessModeRead 2026-08-03 02:34:57 +03:00

noon.link

permanent links to Forgejo Actions artifacts. A nightly.link for Forgejo.

the run number changes on every push, so there is no stable URL for the artifacts of the latest build. this resolves it on demand:

https://noon.example/myorg/myrepo/workflows/build/main/binaries.zip

urls

/{owner}/{repo}/workflows/{workflow}/{branch}            latest successful run
/{owner}/{repo}/workflows/{workflow}/{branch}/{artifact}
/{owner}/{repo}/actions/runs/{n}                         one run, by the number in the UI
/{owner}/{repo}/actions/runs/{n}/{artifact}
/{owner}/{repo}/actions/artifacts/{id}

append .zip to an artifact URL to download instead of viewing the page. {workflow} is the file name, .yml optional. ?status=completed accepts the latest finished run rather than the latest successful one.

Paste any Forgejo URL into the front page to get the corresponding one here.

running

(todo nix flake)

go build -v -trimpath -ldflags="-s -w" ./cmd/noon/
NOON_FORGEJO_URL=https://code.example.org ./noon

also docker container code.cuddles.rs/lain/noon.link:latest available

env default
NOON_FORGEJO_URL required instance base URL
NOON_LISTEN 127.0.0.1:8080
NOON_BASE_URL http://$NOON_LISTEN public URL, used in the links shown on pages
NOON_TOKEN - see below
NOON_RUNS_TTL 2m
NOON_ARTIFACTS_TTL 3m
NOON_MAX_PROXY_SIZE 0 byte cap on proxied downloads, 0 = none

without a token only anonymously-readable repos are served, and downloads are a 302 straight to Forgejo. with one, private repos become reachable - but the token is a header, not a URL, so the zip is streamed through noon.link, and !!!everything the token can read becomes publicly downloadable!!!.

caveats

  • Branches with a slash don't fit the /workflows/ form; use /actions/runs/{n}.
  • Expired artifacts 404 (obviously)