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/templates/requests.html +10−10
| @@ -4,10 +4,10 @@ | |||
| 4 | 4 | ||
| 5 | 5 | <div class="page-head"> | |
| 6 | 6 | <div class="page-head-main"> | |
| 7 | <h1>Changes</h1> | ||
| 7 | <h1>Change requests</h1> | ||
| 8 | 8 | <p class="page-sub">{{.Open}} open · {{.Closed}} closed · {{.Total}} total</p> | |
| 9 | 9 | </div> | |
| 10 | {{if .CanOpen}}<div class="page-head-actions"><a class="button" href="/r/{{.Name}}/requests/new">{{icon "plus"}}New change</a></div>{{end}} | ||
| 10 | {{if .CanOpen}}<div class="page-head-actions"><a class="button" href="/r/{{.Name}}/requests/new">{{icon "plus"}}New change request</a></div>{{end}} | ||
| 11 | 11 | </div> | |
| 12 | 12 | ||
| 13 | 13 | {{template "change_list" .}} | |
| @@ -33,7 +33,7 @@ | |||
| 33 | 33 | <div class="panel"> | |
| 34 | 34 | <table class="change-list"> | |
| 35 | 35 | <thead> | |
| 36 | <tr><th>Status</th><th>Change</th><th>Base ← Head</th><th>Author</th><th>Approvals</th><th>Age</th></tr> | ||
| 36 | <tr><th>Status</th><th>Change request</th><th>Base ← Head</th><th>Author</th><th>Approvals</th><th>Age</th></tr> | ||
| 37 | 37 | </thead> | |
| 38 | 38 | <tbody> | |
| 39 | 39 | {{range .Rows}} | |
| @@ -53,7 +53,7 @@ | |||
| 53 | 53 | </table> | |
| 54 | 54 | </div> | |
| 55 | 55 | {{if gt .Pager.Pages 1}} | |
| 56 | <nav class="pager" aria-label="Change pages"> | ||
| 56 | <nav class="pager" aria-label="Change request pages"> | ||
| 57 | 57 | {{if .Pager.PrevURL}}<a class="button secondary" href="{{.Pager.PrevURL}}" hx-get="{{.Pager.PrevURL}}" hx-target="#change-list" hx-swap="outerHTML" hx-push-url="true">Previous</a>{{else}}<span></span>{{end}} | |
| 58 | 58 | <span class="muted">Showing {{.Pager.From}}–{{.Pager.To}} of {{.Pager.Total}} · page {{.Pager.Page}} of {{.Pager.Pages}}</span> | |
| 59 | 59 | {{if .Pager.NextURL}}<a class="button secondary" href="{{.Pager.NextURL}}" hx-get="{{.Pager.NextURL}}" hx-target="#change-list" hx-swap="outerHTML" hx-push-url="true">Next</a>{{else}}<span></span>{{end}} | |
| @@ -61,20 +61,20 @@ | |||
| 61 | 61 | {{end}} | |
| 62 | 62 | {{else if and (eq .State "open") .Closed}} | |
| 63 | 63 | <div class="empty-state"> | |
| 64 | <p>No open changes. {{.Closed}} closed.</p> | ||
| 65 | <a href="/r/{{.Name}}/requests?state=closed" hx-get="/r/{{.Name}}/requests?state=closed" hx-target="#change-list" hx-swap="outerHTML" hx-push-url="true">View closed changes</a> | ||
| 64 | <p>No open change requests. {{.Closed}} closed.</p> | ||
| 65 | <a href="/r/{{.Name}}/requests?state=closed" hx-get="/r/{{.Name}}/requests?state=closed" hx-target="#change-list" hx-swap="outerHTML" hx-push-url="true">View closed change requests</a> | ||
| 66 | 66 | </div> | |
| 67 | 67 | {{else if .Filtered}} | |
| 68 | 68 | <div class="empty-state"> | |
| 69 | <p>No changes match this filter.</p> | ||
| 69 | <p>No change requests match this filter.</p> | ||
| 70 | 70 | <a href="/r/{{.Name}}/requests" hx-get="/r/{{.Name}}/requests" hx-target="#change-list" hx-swap="outerHTML" hx-push-url="true">Clear filters</a> | |
| 71 | 71 | </div> | |
| 72 | 72 | {{else}} | |
| 73 | 73 | <div class="empty-state"> | |
| 74 | <p>No changes yet.</p> | ||
| 74 | <p>No change requests yet.</p> | ||
| 75 | 75 | <p class="muted">From a clone of this repository:</p> | |
| 76 | 76 | <pre>vole change new --title "..." --base {{.Base}}</pre> | |
| 77 | <p class="muted">A change is also just a directory on the <code>vole</code> branch: | ||
| 77 | <p class="muted">A change request is also just a directory on the <code>vole</code> branch: | ||
| 78 | 78 | <code>requests/<ulid>/request.md</code> naming the base branch and the head | |
| 79 | 79 | commit, plus <code>approvals/<account-id>.md</code> from each approver.</p> | |
| 80 | 80 | </div> | |
| @@ -299,7 +299,7 @@ | |||
| 299 | 299 | {{end}} | |
| 300 | 300 | ||
| 301 | 301 | {{define "request_tabs"}} | |
| 302 | <nav class="subtabs" aria-label="Change sections"> | ||
| 302 | <nav class="subtabs" aria-label="Change request sections"> | ||
| 303 | 303 | <a class="{{if eq .Tab "conversation"}}active{{end}}" href="/r/{{.Name}}/requests/{{.Request.ID}}"{{if eq .Tab "conversation"}} aria-current="page"{{end}}>{{icon "message-square"}}Conversation</a> | |
| 304 | 304 | <a class="{{if eq .Tab "files"}}active{{end}}" href="/r/{{.Name}}/requests/{{.Request.ID}}/files"{{if eq .Tab "files"}} aria-current="page"{{end}}>{{icon "file"}}Files <span class="chip-count">{{.FileCount}}</span></a> | |
| 305 | 305 | <a class="{{if eq .Tab "runs"}}active{{end}}" href="/r/{{.Name}}/requests/{{.Request.ID}}/runs"{{if eq .Tab "runs"}} aria-current="page"{{end}}>{{icon "play"}}Runs <span class="chip-count">{{len .Checks}}</span></a> | |