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.
Add remote administration and local workflow runs
3abbe749096f4d7ff76f4d468e4427829b8a6f95 · Keenan Nemetz · 16d ago · parent 520470e1
Add remote administration and local workflow runs Make `vole admin` the single namespace for user, repository, and access management, runnable locally or over SSH by instance admins. Instance-admin grants live in users.db, and the audit log names the actor separately from the account being changed. Add `vole workflow run` to execute workflow jobs in the working tree without a server or runner. Positional arguments select workflows, --job selects jobs, and the command reuses the push-time validator. Update the README and guides for the new command shapes.
server/hook/records.go +2−2
| @@ -7,7 +7,7 @@ package hook | |||
| 7 | 7 | // artifacts the build published. The gate's question is not "is this record well | |
| 8 | 8 | // formed" but "was this account allowed to be the one that reported this attempt", | |
| 9 | 9 | // and the answer is the same allowlist that decides who may lease a job — | |
| 10 | // `vole acl runners`. Admins are implicit there for the same reason as everywhere | ||
| 10 | // `vole admin acl runners`. Admins are implicit there for the same reason as everywhere | ||
| 11 | 11 | // else: they can rewrite the list. | |
| 12 | 12 | // | |
| 13 | 13 | // Two further rules make the record describe something that actually happened. The | |
| @@ -41,7 +41,7 @@ func recordFindings(g *git.Repo, c change, a *access.ACL, actor, actorID, repoNa | |||
| 41 | 41 | } | |
| 42 | 42 | return append(problems, fmt.Sprintf( | |
| 43 | 43 | "%s: %s reported a run result but is not a runner for %s (runners: %s). "+ | |
| 44 | "An admin can allow that account with `vole acl runners %s --add %s`", | ||
| 44 | "An admin can allow that account with `vole admin acl runners %s --add %s`", | ||
| 45 | 45 | c.ref, actor, repoName, people, repoName, actor)) | |
| 46 | 46 | } | |
| 47 | 47 | if runsDB == "" { | |