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.

server/ssh/sshserver_test.go +1−1

@@ -318,7 +318,7 @@ func TestReadOnlyUserCannotPush(t *testing.T) {
318 318 if err == nil {
319 319 t.Fatal("read-only user pushed successfully")
320 320 }
321 if !strings.Contains(errs, "does not have maintain access") || !strings.Contains(errs, "reader") {
321 if !strings.Contains(errs, "does not have maintain or contribute access") || !strings.Contains(errs, "reader") {
322 322 t.Fatalf("rejection did not name the SSH identity:\n%s", errs)
323 323 }
324 324 if after := h.serverRef(); after != before {