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/instance.go +3

@@ -82,6 +82,9 @@ func Open(cfg *config.Config, binPath string) (*Instance, error) {
82 82 return nil, fmt.Errorf("open access rules: %w", err)
83 83 }
84 84 acls.AuditPath = cfg.AuditLog()
85 // Instance roles are account standing, owned by the roster. Wiring the
86 // lookup here means every ACL read from this instance applies them.
87 acls.InstanceRole = ident.InstanceRole
85 88
86 89 lk, err := lfs.OpenLocks(cfg.UsersDB())
87 90 if err != nil {