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/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.

Add one Admin page with status, accounts, and the audit log

43e681d8a5d94567aa9530d32b2c89223c1a17f9 · Keenan Nemetz · 4d ago · parent af018ce8

Add one Admin page with status, accounts, and the audit log

Instance administration was split between the Status and Accounts pages,
and the audit log had no browser view at all. The new /admin page gathers
the status tabs, the account roster, and a read-only audit viewer into one
place with a tab for each, and /status, /runners, and /users redirect to
the tab they named so old links keep working.

The audit reader walks the file backwards a chunk at a time, returns the
newest records first, and shows one extra record to know whether an older
page exists. It skips a line it cannot parse rather than failing the page
and refuses a symlink or a non-regular file, as startup already does.

Refs #198 (01M6MK0NNZ2XR1D5TQKNWYT4HN).

docs/accounts-and-access.md +10−7

@@ -246,12 +246,14 @@ change settings, and manage access without a repository-specific entry. SSH Git
246 246 and SSH LFS use the key's account for this check; anonymous HTTP clone has no
247 247 identity, so a private repository still answers `404` there.
248 248
249 Instance admins also get an **Accounts** page in the top navigation. It covers
250 accounts: create an account from an enrollment link, set its instance-wide role
251 (including `admin`), retire an account, start a fresh enrollment link, and
252 inspect or revoke SSH keys and browser sessions. Repository creation is a **New repository** action
253 on the home page, and per-repository access rules live on that repository's
254 **Settings** tab, visible there to instance admins.
249 Instance admins also get an **Admin** page in the top navigation. Its tabs cover
250 the instance's overview, storage, runners, and effective configuration; the
251 accounts roster, where an admin creates an account from an enrollment link, sets
252 its instance-wide role (including `admin`), retires an account, starts a fresh
253 enrollment link, and inspects or revokes SSH keys and browser sessions; and the
254 audit log. Repository creation is a **New repository** action on the home page,
255 and per-repository access rules live on that repository's **Settings** tab,
256 visible there to instance admins.
255 257
256 258 The first instance admin must be granted on the host. Instance admin is the
257 259 instance-wide `admin` role, so `vole admin account role alice admin` and
@@ -429,7 +431,8 @@ capability and use the same metadata writers and validation as the CLI.
429 431 That includes protected branches, approvals, required checks, file size limits,
430 432 locks, issue formatting, and the CI runner allowlist. Privileged actions — such as
431 433 an admin force-push, a lock override, an account change, or a merge through review —
432 are written to `data/audit.log`.
434 are written to `data/audit.log` and can be read by an instance admin at
435 **Admin → Audit log**.
433 436
434 437 For the reasoning behind this design, see
435 438 [Architecture](architecture.md#trust-a-credential-resolves-to-an-account). For file locks, see