vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Unify terminology across the web UI and docs
ab326d3ac1fd947a9df45f31f6dc10ab38627882 · Keenan Nemetz · 14d ago · parent 5b814e99
Unify terminology across the web UI and docs Use account, repository, change request, enrollment link, instance admin, and sign in/out consistently. Rename the access guide to accounts-and-access.md, update its links, and record the canonical terms and retained command/URL spellings in the documentation index.
server/web/home.go +5−5
| @@ -5,7 +5,7 @@ package web | |||
| 5 | 5 | // The landing page answers three questions in one screen: what this forge is, | |
| 6 | 6 | // what is in it, and what happened lately. Repositories are the main column; the | |
| 7 | 7 | // merged feed is a rail beside them. Both come from one read per repository, so | |
| 8 | // listing a project does not cost a second walk over its history. | ||
| 8 | // listing a repository does not cost a second walk over its history. | ||
| 9 | 9 | ||
| 10 | 10 | import ( | |
| 11 | 11 | "net/http" | |
| @@ -46,7 +46,7 @@ type homeVitals struct { | |||
| 46 | 46 | LastActivity time.Time | |
| 47 | 47 | } | |
| 48 | 48 | ||
| 49 | // repoCard is one repository in the project grid. It is a summary of the same | ||
| 49 | // repoCard is one repository in the repository grid. It is a summary of the same | ||
| 50 | 50 | // activity feed the rail uses, not a second source of truth. | |
| 51 | 51 | type repoCard struct { | |
| 52 | 52 | Name string | |
| @@ -88,8 +88,8 @@ type instanceActivityData struct { | |||
| 88 | 88 | } | |
| 89 | 89 | ||
| 90 | 90 | // IndexPage serves GET /{$}: the landing page, or repository search results when | |
| 91 | // q is set. Search results reuse the project cards so a match looks like a | ||
| 92 | // project rather than a table row. | ||
| 91 | // q is set. Search results reuse the repository cards so a match looks like a | ||
| 92 | // repository rather than a table row. | ||
| 93 | 93 | func (w *Web) IndexPage(rw http.ResponseWriter, r *http.Request) { | |
| 94 | 94 | query := strings.TrimSpace(r.URL.Query().Get("q")) | |
| 95 | 95 | entries, err := w.visibleRepos(r, query) | |
| @@ -334,7 +334,7 @@ func (w *Web) homeVitals(r *http.Request, entries []index.Entry, events []activi | |||
| 334 | 334 | func (w *Web) instanceInfo(_ *http.Request) instanceInfo { | |
| 335 | 335 | info := instanceInfo{ | |
| 336 | 336 | Name: "Vole", | |
| 337 | Tagline: "Code, issues, changes, and CI, hosted here.", | ||
| 337 | Tagline: "Code, issues, change requests, and CI, hosted here.", | ||
| 338 | 338 | } | |
| 339 | 339 | if w.Cfg != nil { | |
| 340 | 340 | if v := strings.TrimSpace(w.Cfg.InstanceName); v != "" { | |