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.
|
a6b42433
Keenan Nemetz
7d ago
|
1 | {{define "profile"}} |
| 2 | {{template "header" .}} | |
|
77a024af
Keenan Nemetz
7d ago
|
3 | <div class="page-head"> |
|
a6b42433
Keenan Nemetz
7d ago
|
4 | <div class="page-head-main"> |
|
29a795b9
Keenan Nemetz
6d ago
|
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> | |
|
28b19c74
Keenan Nemetz
7d ago
|
7 | <p class="muted profile-joined">Joined {{.Joined.Format "January 2006"}}{{if and .ShowRole (ne .Role "none")}} · {{.Role}}{{end}}</p> |
|
a6b42433
Keenan Nemetz
7d ago
|
8 | </div> |
| 9 | </div> | |
| 10 | ||
| 11 | {{if .Repos}} | |
| 12 | <div class="stat-grid"> | |
|
ed03b3d1
Keenan Nemetz
3h ago
|
13 | <a class="stat" href="/-/u/{{.Name}}?type=issues"> |
|
a6b42433
Keenan Nemetz
7d ago
|
14 | <span class="stat-num">{{.Stats.Issues}}</span> |
| 15 | <span class="stat-label">Issues opened</span> | |
| 16 | </a> | |
|
ed03b3d1
Keenan Nemetz
3h ago
|
17 | <a class="stat" href="/-/u/{{.Name}}?type=changes"> |
|
a6b42433
Keenan Nemetz
7d ago
|
18 | <span class="stat-num">{{.Stats.Changes}}</span> |
| 19 | <span class="stat-label">Changes opened</span> | |
| 20 | </a> | |
|
ed03b3d1
Keenan Nemetz
3h ago
|
21 | <a class="stat" href="/-/u/{{.Name}}?type=reviews"> |
|
a6b42433
Keenan Nemetz
7d ago
|
22 | <span class="stat-num">{{.Stats.Reviews}}</span> |
| 23 | <span class="stat-label">Changes reviewed</span> | |
| 24 | </a> | |
|
ed03b3d1
Keenan Nemetz
3h ago
|
25 | <a class="stat" href="/-/u/{{.Name}}?type=comments"> |
|
a6b42433
Keenan Nemetz
7d ago
|
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"> | |
|
ed03b3d1
Keenan Nemetz
3h ago
|
39 | <h3><a href="/{{.Name}}">{{.Name}}</a></h3> |
|
a6b42433
Keenan Nemetz
7d ago
|
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"> | |
|
ed03b3d1
Keenan Nemetz
3h ago
|
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> | |
|
a6b42433
Keenan Nemetz
7d ago
|
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}} |