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.
Let an account be a bot
29a795b9d5b79cf5c8f2b7f3b4f6572f7cdff444 · Keenan Nemetz · 6d ago · parent e7aa0785
Let an account be a bot An automation needs an identity: something to assign an issue to, mention in a comment, and name in an approval and the audit log. An account already gives all of that, so this adds only the invariants a bot needs and the word for it. A bot is created with `vole admin account create --bot`, with the repository role the admin decides it should have. It has no browser sign-in — `account invite` and adding a passkey are refused — and it cannot hold the instance-admin role, because Admin reaches every repository and every instance surface while a bot is a repository automation. It is marked as a bot in the user directory and on its profile. Everything else is deliberately unchanged. A bot obeys the rules of its role: a contribute bot pushes only its own contributor branch and its CI waits for a maintainer to allow the tip; a maintain bot pushes shared branches, runs CI immediately, and its approval counts. The kind is fixed at creation, like the name, and a roster that predates it reads every account as a person. This is the first of three slices of #165. The per-run credential that lets a workflow act as a bot without a long-lived key in a repository secret is next; this slice changes no push rule and no permission.
server/web/templates/profile.html +2−2
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | {{template "header" .}} | |
| 3 | 3 | <div class="page-head"> | |
| 4 | 4 | <div class="page-head-main"> | |
| 5 | <h1>{{.Name}}</h1> | ||
| 6 | <p class="page-sub">Issues, changes, and reviews from {{.Name}}.{{if not .Active}} This account is no longer active; its history is kept.{{end}}</p> | ||
| 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 | 7 | <p class="muted profile-joined">Joined {{.Joined.Format "January 2006"}}{{if and .ShowRole (ne .Role "none")}} · {{.Role}}{{end}}</p> | |
| 8 | 8 | </div> | |
| 9 | 9 | </div> | |