Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

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.

Code

395 commit(s) on main

update readme Keenan Nemetz · 37m ago 32290114
history blame raw 2.4 KiB
1{{define "login"}}
2{{template "header" .}}
3{{if not .Enabled}}
4<div class="auth">
5 <div class="card">
6 <h1>Sign in</h1>
7 <p class="muted">{{.Reason}}</p>
8 </div>
9</div>
10{{else}}
11<form class="auth" data-auth="login" data-next="{{.Next}}">
12 <div class="card form-card">
13 <h1>Sign in</h1>
14 <label>Account name
15 <input type="text" name="username" autocomplete="username webauthn" required autofocus>
16 </label>
17 <p class="muted">Your browser can offer a saved passkey in this field; otherwise type your account name and continue.</p>
18 <p class="error" data-auth-error></p>
19 {{if .Registration}}
20 <p class="muted">No account yet? <a href="/-/register">Create one</a>.</p>
21 {{else}}
22 <p class="muted">No account yet? Ask an instance admin for a one-time enrollment link.</p>
23 {{end}}
24 </div>
25 <div class="form-actions"><button type="submit">Use a passkey</button></div>
26</form>
27{{end}}
28{{template "footer" .}}
29{{end}}
30
31{{define "register"}}
32{{template "header" .}}
33<form class="auth" data-auth="register">
34 <div class="card form-card">
35 <h1>Create an account</h1>
36 <p class="muted">Pick a name and register a passkey. You can add an SSH key after signing in.</p>
37 <label>Account name
38 <input type="text" name="username" pattern="[a-z0-9][a-z0-9_-]{1,31}" maxlength="32" autocomplete="username webauthn" required autofocus>
39 </label>
40 <p class="error" data-auth-error></p>
41 <p class="muted">Names are 2–32 characters: lowercase letters, digits, <code>-</code> and <code>_</code>.
42 The account name is permanent — it is the folder your branches live under and cannot be
43 changed later.</p>
44 </div>
45 <div class="form-actions"><button type="submit">Create account and passkey</button></div>
46</form>
47{{template "footer" .}}
48{{end}}
49
50{{define "invite"}}
51{{template "header" .}}
52{{if .Enabled}}
53<form class="auth" data-auth="invite">
54 <div class="card form-card">
55 <h1>Enrollment link</h1>
56 <p class="muted">Register this device as a passkey for the account this link belongs to.
57 The link works once. The account name appears once the passkey is created.</p>
58 <p class="error" data-auth-error></p>
59 </div>
60 <div class="form-actions"><button type="submit">Create a passkey</button></div>
61</form>
62{{else}}
63<div class="auth">
64 <div class="card">
65 <h1>Enrollment link</h1>
66 <p class="muted">{{.Reason}}</p>
67 </div>
68</div>
69{{end}}
70{{template "footer" .}}
71{{end}}
72