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.
Merge change request 01M70WES5ZZDJ6RP226WB11BBZ: Let people rename and remove their own passkeys
keenan · 53m ago
4b8c9e1d
| 1 | {{define "profile"}} |
| 2 | {{template "header" .}} |
| 3 | <div class="page-head"> |
| 4 | <div class="page-head-main"> |
| 5 | <h1>{{.Name}}{{if .Bot}} <span class="state">bot</span>{{end}}</h1> |
| 6 | <p class="page-sub">{{if .Bot}}An automation account: its issues, changes, and reviews.{{else}}Issues, changes, and reviews from {{.Name}}.{{end}}{{if not .Active}} This account is no longer active; its history is kept.{{end}}</p> |
| 7 | <p class="muted profile-joined">Joined {{.Joined.Format "January 2006"}}{{if and .ShowRole (ne .Role "none")}} · {{.Role}}{{end}}</p> |
| 8 | </div> |
| 9 | </div> |
| 10 | |
| 11 | {{if .Repos}} |
| 12 | <div class="stat-grid"> |
| 13 | <a class="stat" href="/-/u/{{.Name}}?type=issues"> |
| 14 | <span class="stat-num">{{.Stats.Issues}}</span> |
| 15 | <span class="stat-label">Issues opened</span> |
| 16 | </a> |
| 17 | <a class="stat" href="/-/u/{{.Name}}?type=changes"> |
| 18 | <span class="stat-num">{{.Stats.Changes}}</span> |
| 19 | <span class="stat-label">Changes opened</span> |
| 20 | </a> |
| 21 | <a class="stat" href="/-/u/{{.Name}}?type=reviews"> |
| 22 | <span class="stat-num">{{.Stats.Reviews}}</span> |
| 23 | <span class="stat-label">Changes reviewed</span> |
| 24 | </a> |
| 25 | <a class="stat" href="/-/u/{{.Name}}?type=comments"> |
| 26 | <span class="stat-num">{{.Stats.Comments}}</span> |
| 27 | <span class="stat-label">Comments</span> |
| 28 | </a> |
| 29 | </div> |
| 30 | <p class="muted profile-scope">Counted across the repositories you can read.</p> |
| 31 | {{end}} |
| 32 | |
| 33 | {{if .Repos}} |
| 34 | <section class="profile-repos"> |
| 35 | <div class="section-head"><h2>Repositories</h2></div> |
| 36 | <div class="repo-grid"> |
| 37 | {{range .Repos}} |
| 38 | <article class="repo-card profile-repo"> |
| 39 | <h3><a href="/{{.Name}}">{{.Name}}</a></h3> |
| 40 | <p class="profile-repo-meta"> |
| 41 | {{if .Issues}}<span>{{.Issues}} {{if eq .Issues 1}}issue{{else}}issues{{end}}</span>{{end}} |
| 42 | {{if .Changes}}<span>{{.Changes}} {{if eq .Changes 1}}change{{else}}changes{{end}}</span>{{end}} |
| 43 | {{if .Reviews}}<span>{{.Reviews}} {{if eq .Reviews 1}}review{{else}}reviews{{end}}</span>{{end}} |
| 44 | {{if .Comments}}<span>{{.Comments}} {{if eq .Comments 1}}comment{{else}}comments{{end}}</span>{{end}} |
| 45 | </p> |
| 46 | </article> |
| 47 | {{end}} |
| 48 | </div> |
| 49 | </section> |
| 50 | {{end}} |
| 51 | |
| 52 | <section class="profile-activity"> |
| 53 | <div class="section-head"><h2>Activity</h2></div> |
| 54 | <div class="chips"> |
| 55 | <a class="chip{{if eq .Type ""}} active{{end}}" href="/-/u/{{.Name}}">{{icon "activity"}}All</a> |
| 56 | <a class="chip{{if eq .Type "issues"}} active{{end}}" href="/-/u/{{.Name}}?type=issues">{{icon "circle-dot"}}Issues</a> |
| 57 | <a class="chip{{if eq .Type "changes"}} active{{end}}" href="/-/u/{{.Name}}?type=changes">{{icon "git-pull-request"}}Changes</a> |
| 58 | <a class="chip{{if eq .Type "reviews"}} active{{end}}" href="/-/u/{{.Name}}?type=reviews">{{icon "check"}}Reviews</a> |
| 59 | <a class="chip{{if eq .Type "comments"}} active{{end}}" href="/-/u/{{.Name}}?type=comments">{{icon "message-square"}}Comments</a> |
| 60 | </div> |
| 61 | |
| 62 | {{if .Events}} |
| 63 | {{template "activity_events" .}} |
| 64 | {{template "pager" .Pager}} |
| 65 | {{else if .Repos}} |
| 66 | <div class="empty-state"> |
| 67 | <p>Nothing of this kind yet.</p> |
| 68 | <p class="muted">Choose another filter, or open a repository above.</p> |
| 69 | </div> |
| 70 | {{else}} |
| 71 | <div class="empty-state"> |
| 72 | <p>Nothing to show yet.</p> |
| 73 | {{if .Active}} |
| 74 | <p class="muted">When {{.Name}} opens an issue or comments on one, it appears here.</p> |
| 75 | {{else}} |
| 76 | <p class="muted">Their work was in repositories you cannot read, or they never wrote here.</p> |
| 77 | {{end}} |
| 78 | </div> |
| 79 | {{end}} |
| 80 | </section> |
| 81 | {{template "footer" .}} |
| 82 | {{end}} |
| 83 |