0f493e9b47
This PR solves the issue of there being both "<url>/" and "<url>" paths, that in the builder-web context shouldn't mean different things. The slashes are now removed using a `Dream` middleware, and the request is redirected using a permanent redirect (that doesn't change the method used): https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location Notable changes: * Trailing slashes from the hardcoded link urls were removed, as unneccesary redirects are then avoided. * All links in `Views` were rewritten to be absolute instead of relative. * As `Dream` deprecated `path` - `Utils.Path` was created containing some helpers for manipulating paths. *Note that `String.split_on_char` has a different semantics.* * A blacklist `routeprefix_blacklist_when_removing_trailing_slash` was added, containing `Dream` route-prefixes to ignore. * Only `GET` and `HEAD` requests are redirected. * `redirect_parent` helper was rewritten using new `Utils.Path` functions to avoid brittle string manipulation + fixed the edgecase of redirecting to `/`. * Added `Uri` dependency to make URL manipulation safer. Co-authored-by: rand00 <oth.rand@gmail.com> Co-authored-by: Reynir Björnsson <reynir@reynir.dk> Reviewed-on: https://git.robur.io/robur/builder-web/pulls/80 Co-authored-by: rand <rand@r7p5.earth> Co-committed-by: rand <rand@r7p5.earth>
67 lines
1.8 KiB
Text
67 lines
1.8 KiB
Text
opam-version: "2.0"
|
|
maintainer: "Reynir Björnsson <reynir@reynir.dk>"
|
|
authors: ["Reynir Björnsson <reynir@reynir.dk>"]
|
|
homepage: "https://github.com/roburio/builder-web"
|
|
dev-repo: "git+https://github.com/roburio/builder-web.git"
|
|
bug-reports: "https://github.com/roburio/builder-web/issues"
|
|
license: "ISC"
|
|
|
|
build: [
|
|
["dune" "subst"] {dev}
|
|
["dune" "build" "-p" name "-j" jobs]
|
|
["dune" "runtest" "-p" name "-j" jobs] {with-test}
|
|
["sh" "-ex" "packaging/FreeBSD/create_package.sh"] {os = "freebsd"}
|
|
["sh" "-ex" "packaging/debian/create_package.sh"] {os-family = "debian"}
|
|
]
|
|
|
|
depends: [
|
|
"ocaml" {>= "4.13.0"}
|
|
"dune" {>= "2.7.0"}
|
|
"builder" {>= "0.2.0"}
|
|
"dream" {= "1.0.0~alpha2"}
|
|
"cstruct" {>= "6.0.0"}
|
|
"bos"
|
|
"hex"
|
|
"lwt" {>= "5.3.0"}
|
|
"caqti"
|
|
"caqti-lwt"
|
|
"caqti-driver-sqlite3"
|
|
"pbkdf"
|
|
"mirage-crypto-rng"
|
|
"scrypt-kdf"
|
|
"alcotest" {with-test}
|
|
"opam-core"
|
|
"opam-format" {>= "2.1.0"}
|
|
"metrics" {>= "0.3.0"}
|
|
"metrics-lwt" {>= "0.3.0"}
|
|
"metrics-influx" {>= "0.3.0"}
|
|
"metrics-rusage" {>= "0.3.0"}
|
|
"ipaddr"
|
|
"tyxml" {>= "4.3.0"}
|
|
"ptime"
|
|
"duration"
|
|
"mirage-crypto"
|
|
"asn1-combinators"
|
|
"logs"
|
|
"cmdliner" {>= "1.1.0"}
|
|
"uri"
|
|
"fmt" {>= "0.8.7"}
|
|
"omd"
|
|
"modulectomy"
|
|
"opam-graph"
|
|
"tar"
|
|
"owee"
|
|
"solo5-elftool"
|
|
]
|
|
|
|
synopsis: "Web interface for builder"
|
|
description: """
|
|
Builder-web takes in submissions of builds, typically from [builder](https://github.com/roburio/builder/), and displays the produced artifacts in a way that makes it easy to compare checksums and build status.
|
|
Produced binaries can be downloaded and executed.
|
|
[builds.robur.coop](https://builds.robur.coop/) itself runs builder-web.
|
|
"""
|
|
|
|
pin-depends: [
|
|
["modulectomy.dev" "git+https://github.com/roburio/modulectomy.git"]
|
|
["opam-graph.dev" "git+https://git.robur.io/robur/opam-graph.git"]
|
|
]
|