vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Fold admin work into repository settings and a Users page
9579c1f976254fdeb2ec73d4016db5b25c7921c1 · Keenan Nemetz · 14d ago · parent 381d6aac
Fold admin work into repository settings and a Users page Remove the combined /admin tabs. Per-repository access rules now live on the repository's Settings page, visible to instance admins while repository details and the danger zone stay with repository admins. User management moves to /users, linked from the top navigation only for instance admins, and repository creation moves to /repos/new. Align the invite, danger-zone, and settings forms with the shared card-and-actions layout, and make settings section headings consistent.
docs/ui-plan.md +15−13
| @@ -135,10 +135,11 @@ Status: `done` exists today · `wip` in progress · `todo` missing. | |||
| 135 | 135 | comments. | |
| 136 | 136 | 4. **Activity and settings** — done: repository activity feed with state | |
| 137 | 137 | changes and actor/assignee filters, repository settings (description, default | |
| 138 | branch, visibility, danger zone), and the instance-admin ACL editor. | ||
| 139 | 5. **Instance admin** — done: repository create, access rules at | ||
| 140 | `/admin/repos/{name}/access`, rename/delete in repository settings, and | ||
| 141 | `/admin/users` for invitations, admin grants, retirement, keys, and sessions. | ||
| 138 | branch, visibility, danger zone), and the instance-admin access section on the | ||
| 139 | same Settings page. | ||
| 140 | 5. **Instance admin** — done: repository create at `/repos/new`, access rules on | ||
| 141 | each repository's Settings tab, rename/delete for repository admins, and | ||
| 142 | `/users` for invitations, admin grants, retirement, keys, and sessions. | ||
| 142 | 143 | 6. **CI** — done: workflow/job list, cancel a queued run, rerun a finished | |
| 143 | 144 | one as another attempt. | |
| 144 | 145 | 7. **Polish** — done: repository search, code search, issue/change pagination, | |
| @@ -196,19 +197,20 @@ Instance admin covers the operations that used to be CLI-only: | |||
| 196 | 197 | - repositories: create, rename, delete | |
| 197 | 198 | - per-repository ACL: set roles, default role, approvals, checks, runners | |
| 198 | 199 | ||
| 199 | The web admin will not ask an admin to paste a user's SSH key. Account creation | ||
| 200 | The Users page will not ask an admin to paste a user's SSH key. Account creation | ||
| 200 | 201 | uses the existing `identity.CreateWithInvite` path and returns a one-time | |
| 201 | 202 | enrollment link; browser auth must be enabled for that link to work. | |
| 202 | 203 | ||
| 203 | 204 | Repository admins still own repository settings (description, default branch, | |
| 204 | visibility, danger zone). Every admin write uses the existing stores, CSRF, and | ||
| 205 | the audit log; the web is a second surface over the same operations, not a | ||
| 206 | second implementation. | ||
| 207 | |||
| 208 | The web admin is one surface at `/admin`, with `Repositories` and `Users` tabs. | ||
| 209 | Repository creation and the per-repository ACL editor live under Repositories; | ||
| 210 | account detail and enrollment links live under Users. Repository settings that | ||
| 211 | belong to a repository's own admins stay on that repository's Settings tab. | ||
| 205 | visibility, danger zone). Instance admins see an additional access section on the | ||
| 206 | same Settings page: roles, the default role, approvals, checks, and runners. | ||
| 207 | Repository creation stays an instance-admin operation, but it is a standalone | ||
| 208 | page reached from the home page rather than a repository-list admin screen. | ||
| 209 | |||
| 210 | Accounts live at `/users`, reached from a Users item in the top navigation that | ||
| 211 | is shown only to instance admins. Every admin write uses the existing stores, | ||
| 212 | CSRF, and the audit log; the web is a second surface over the same operations, | ||
| 213 | not a second implementation. | ||
| 212 | 214 | ||
| 213 | 215 | ## Icons | |
| 214 | 216 | ||