Why
The repository Settings page had grown into one scroll with four audiences and ten forms: the repository’s own fields, the instance-admin access rules, the secrets its jobs read, and rename/delete. Every one of them was rendered by a separate permission conditional on the same document, and the page subtitle had to explain all three cases in one sentence.
What
Settings is now one page with a tab for each part, in this order:
Tab (?tab=) |
Contents | Who sees it |
|---|---|---|
| General (default) | Description, default branch, visibility | Repository admin |
| Access | Default role, approvals, CI checks, linked-issue rule, protected branches, accounts table, add account | Instance admin |
| Secrets | Secret list, save form, delete | Maintainer+ |
| Danger | Rename, delete | Repository admin |
- The row holds only the tabs the viewer may open, and a viewer with one tab (a maintainer who is not an admin) gets no row at all.
- A request for a tab the viewer cannot use falls back to the first visible tab, so a guessed URL neither fails nor confirms that a section exists.
- Each tab carries its own subtitle instead of the old three-way conditional.
- Visibility stays on General: it is an ACL default internally, but only a repository admin may write it, while the Access tab is instance-admin-only. Moving it would take the capability away from non-instance-admin repo admins.
- Destructive work is its own tab so it is not the neighbour of a text field.
Redirects and deep links
- Access success redirects to
?tab=access&saved=access#accessand?tab=access&saved=added#access. - Secrets success redirects to
?tab=secrets&secret_saved=…#secretsor?tab=secrets&secret_deleted=…#secrets. - General keeps
?saved=1, and rename keeps returning to/settings. - A failed Access, Secrets, or Danger form re-renders its own tab, so the message is beside the form that produced it rather than on an invisible section.
- The
#accessand#secretsfragments remain on the tab bodies.
Notes
status-tabsbecame the genericpage-tabs, shared by Admin and Settings.- Tests were updated to request the tab they assert on, and
TestSettingsTabsFollowTheViewersRolecovers the row, the fallback, and the one-tab page. docs/accounts-and-access.mdanddocs/workflows.mddescribe the tabs.
Verification
./vole workflow check and ./vole workflow run verify (formatting, vet, build,
licenses, govulncheck, packaging, link checks, race tests) pass.