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 instance-wide roles and refine access UI

5b814e9958090cfd1fa826efb2d375bf613547c1 · Keenan Nemetz · 14d ago · parent 9579c1f9

Add instance-wide roles and refine access UI

Instance roles now live on accounts, apply to public repositories, and the Admin role is the unified instance-admin permission with access to every repository. Repository ACLs can raise an instance role but not lower it.

Adds role assignment to the users UI and CLI, open-registration role config, a reusable role picker, and separates adding a repository account from saving access rules.

forge/identity/passkey_test.go +4−2

@@ -5,6 +5,8 @@ import (
5 5 "errors"
6 6 "testing"
7 7 "time"
8
9 "github.com/rodent-software/vole/forge/access"
8 10 )
9 11
10 12 func testCredential(t *testing.T, label string) Credential {
@@ -287,11 +289,11 @@ func TestCreatePasskeySelfRegistration(t *testing.T) {
287 289 t.Parallel()
288 290 s := newStore(t)
289 291 cred := testCredential(t, "first passkey")
290 a, err := s.CreatePasskey("alice", cred, "self-registration")
292 a, err := s.CreatePasskeyWithRole("alice", access.Contribute, cred, "self-registration")
291 293 if err != nil {
292 294 t.Fatal(err)
293 295 }
294 if a.Name != "alice" || len(a.Keys) != 0 {
296 if a.Name != "alice" || len(a.Keys) != 0 || a.Role != access.Contribute {
295 297 t.Fatalf("created account = %+v", a)
296 298 }
297 299 creds, err := s.Credentials(a.Name)