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.

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 == "" {