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 the instance access editor and repository danger zone

2973f7274b3c569de6018239ac8c90df98c38a1b · Keenan Nemetz · 15d ago · parent 1948358f

Add the instance access editor and repository danger zone

Instance admins get /admin: a repository list and a per-repository ACL editor for
default role, per-account roles, protected branches, approvals, checks, and
runners. The editor reads repositories directly instead of through the read
rule, because an instance admin may not have a role in the repository they are
administering. Everything else still hides behind a 404.

Repository admins get rename and delete on the settings page behind typed
confirmation. Both go through the instance operations that also move the index,
queue, LFS namespace, and locks, carry CSRF, and are audited.

docs/ui-plan.md +16−7

@@ -20,7 +20,8 @@ deliberately rather than by drift.
20 20 - **Identity later.** Keep the `vole` wordmark as a placeholder and keep colour,
21 21 type, radius, and spacing in tokens so a real identity is a token swap.
22 22 - **Single tenant.** No organisation/workspace switcher. The global bar has
23 three destinations; the repository owns its own horizontal tabs.
23 three destinations, plus Admin for instance admins; the repository owns its
24 own horizontal tabs.
24 25
25 26 ## Navigation model
26 27
@@ -67,7 +68,8 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
67 68 recovered into it, and the detail is logged rather than rendered
68 69 - todo — search across visible repositories
69 70 - todo — instance-wide activity feed on the home page (after the repo feed)
70 - todo — instance admin: users, invites, keys, repos, permissions
71 - wip — instance admin: repository ACL editor is done; users, invites, keys,
72 and repository create are still todo
71 73 - todo — health/status page (currently JSON at `/healthz`)
72 74
73 75 ### Repository
@@ -86,7 +88,7 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
86 88 - todo — activity events from metadata-log state changes (closed/reopened),
87 89 actor filter, and assignee filter
88 90 - done — repository settings: description, default branch, visibility
89 - todo — danger zone (rename/delete); ACL editing stays instance admin
91 - done — danger zone: rename and delete with typed confirmation
90 92 - todo — compare view (`/r/{name}/compare/{base}...{head}`)
91 93 - todo — file history and blame
92 94 - todo — language-aware file icons
@@ -113,10 +115,13 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
113 115 3. **Issues and changes** — done: list/detail layout, composer, filters,
114 116 close/reopen, discussion, label/assignee triage, writing inline review
115 117 comments.
116 4. **Activity and settings** — repository activity feed and repository settings
117 (description, default branch, visibility) are done. Remaining: ACL editor,
118 danger zone, and metadata-backed close/reopen events.
119 5. **Instance admin** — users, invitations, keys, repositories, permissions.
118 4. **Activity and settings** — repository activity feed, repository settings
119 (description, default branch, visibility, danger zone), and the
120 instance-admin ACL editor are done. Remaining: metadata-backed close/reopen
121 events.
122 5. **Instance admin** — access rules are done at
123 `/admin/repos/{name}/access`, and rename/delete live in repository settings.
124 Remaining: users, invitations, keys, and repository create.
120 125 6. **CI** — workflow/job list, rerun/cancel.
121 126 7. **Polish** — search, responsive pass, accessibility pass, light theme,
122 127 empty states, pagination.
@@ -176,6 +181,10 @@ visibility, danger zone). Every admin write uses the existing stores, CSRF, and
176 181 the audit log; the web is a second surface over the same operations, not a
177 182 second implementation.
178 183
184 The first instance-admin surface is the per-repository ACL editor at
185 `/admin/repos/{name}/access`; the rest of the operations above are still CLI
186 only.
187
179 188 ## Icons
180 189
181 190 Icons are Lucide 0.468.0 SVGs (ISC, license at `server/web/static/lucide.LICENSE`),