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.
Give change file counts their own Changes section
19fc6ed0e81348adf5bb52f1208a3a2fde4d4c2f · Keenan Nemetz · 11d ago · parent d3dcf54d
Give change file counts their own Changes section The sidebar now shows the changed-file count and diff totals in a Changes block with a right-aligned View changes button. The Files tab is named Changes to match, and What would land only appears when there is a merge fact or a closes link to report.
server/web/templates/requests.html +11−2
| @@ -81,6 +81,7 @@ | |||
| 81 | 81 | {{define "help"}}<span class="help" tabindex="0" role="note" aria-label="{{.}}" data-tip="{{.}}">?</span>{{end}} | |
| 82 | 82 | ||
| 83 | 83 | {{define "request_landing"}} | |
| 84 | {{if or .MergeChecked .Request.Closes}} | ||
| 84 | 85 | <section> | |
| 85 | 86 | <h2>{{icon "git-pull-request"}}What would land</h2> | |
| 86 | 87 | {{if .MergeChecked}}{{if .Conflicts}} | |
| @@ -94,8 +95,15 @@ | |||
| 94 | 95 | {{range $i, $id := .Request.Closes}}{{if $i}}, {{end}}<a href="/r/{{$.Name}}/issues/{{$id}}">{{num (index $.Numbers $id)}}</a>{{end}} | |
| 95 | 96 | when merged.</p> | |
| 96 | 97 | {{end}} | |
| 98 | </section> | ||
| 99 | {{end}} | ||
| 100 | {{end}} | ||
| 101 | |||
| 102 | {{define "request_changes"}} | ||
| 103 | <section> | ||
| 104 | <h2 class="with-more"><span>{{icon "file"}}Changes</span>{{if .FileCount}} <a class="button secondary" href="/r/{{.Name}}/requests/{{.Request.ID}}/files">View changes</a>{{end}}</h2> | ||
| 97 | 105 | {{if .FileCount}} | |
| 98 | <p class="muted">{{.FileCount}} file(s) changed{{if .Added}} · <span class="adds">+{{.Added}}</span>{{end}}{{if .Removed}} · <span class="dels">−{{.Removed}}</span>{{end}} · <a href="/r/{{.Name}}/requests/{{.Request.ID}}/files">Review files</a>{{if .AlreadyMerged}} · merged into {{.Request.Base}}{{end}}</p> | ||
| 106 | <p class="muted">{{.FileCount}} file(s) changed{{if .Added}} · <span class="adds">+{{.Added}}</span>{{end}}{{if .Removed}} · <span class="dels">−{{.Removed}}</span>{{end}}{{if .AlreadyMerged}} · merged into {{.Request.Base}}{{end}}</p> | ||
| 99 | 107 | {{else if .AlreadyMerged}} | |
| 100 | 108 | <p class="muted">Already merged into {{.Request.Base}}.</p> | |
| 101 | 109 | {{else}} | |
| @@ -115,6 +123,7 @@ | |||
| 115 | 123 | hx-sync="this:replace" | |
| 116 | 124 | hx-swap="outerHTML"> | |
| 117 | 125 | {{template "request_landing" .}} | |
| 126 | {{template "request_changes" .}} | ||
| 118 | 127 | {{template "request_sidebar" .}} | |
| 119 | 128 | </div> | |
| 120 | 129 | {{end}} | |
| @@ -266,7 +275,7 @@ | |||
| 266 | 275 | {{define "request_tabs"}} | |
| 267 | 276 | <nav class="subtabs" aria-label="Change request sections"> | |
| 268 | 277 | <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> | |
| 269 | <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> | ||
| 278 | <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"}}Changes <span class="chip-count">{{.FileCount}}</span></a> | ||
| 270 | 279 | <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> | |
| 271 | 280 | </nav> | |
| 272 | 281 | {{end}} | |