vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Show run durations and lazy step logs
c765ae2e18691b3f98d93b00b4eb418ce781e3f1 · Keenan Nemetz · 13d ago · parent bdf6a0de
server/web/templatefuncs.go +7−6
| @@ -25,12 +25,13 @@ func (w *Web) templateFuncs() template.FuncMap { | |||
| 25 | 25 | return template.FuncMap{ | |
| 26 | 26 | // Formatting. `since` takes a Unix second so a template does not have to | |
| 27 | 27 | // convert; `short` and `bytes` are the same renderings the CLI uses. | |
| 28 | "since": humanSince, | ||
| 29 | "short": format.SHA, | ||
| 30 | "bytes": format.Bytes, | ||
| 31 | "credid": identity.CredentialIDString, | ||
| 32 | "inc": func(i int) int { return i + 1 }, | ||
| 33 | "join": strings.Join, | ||
| 28 | "since": humanSince, | ||
| 29 | "short": format.SHA, | ||
| 30 | "bytes": format.Bytes, | ||
| 31 | "duration": format.Duration, | ||
| 32 | "credid": identity.CredentialIDString, | ||
| 33 | "inc": func(i int) int { return i + 1 }, | ||
| 34 | "join": strings.Join, | ||
| 34 | 35 | ||
| 35 | 36 | // Escaping. They are not interchangeable: `esc` escapes a whole value | |
| 36 | 37 | // (a ref or a query value, where a "/" becomes a segment separator), | |