izihub uses layered access control: site admins, organizations, teams with unit permissions, repository collaborators, and branch protection.
Instance admins manage users, auth, and system settings.
Teams map to roles. Default org is private.
Collaborators for one-off access; teams for ongoing work.
Protect main so only reviews/merges land there.
| Role | Code | Issues | PRs | Releases | Wiki | Projects | Packages | Actions | Create repos |
|---|---|---|---|---|---|---|---|---|---|
| Owners | Admin | Admin | Admin | Admin | Admin | Admin | Admin | Admin | Yes |
| Org-Admins | Admin | Admin | Admin | Admin | Admin | Admin | Admin | Admin | Yes |
| Maintainers | Write | Write | Write | Write | Write | Write | Write | Write | Yes |
| Developers | Write | Write | Write | Read | Write | Write | Read | Read | No |
| Reviewers | Read | Write | Write | Read | Read | Read | Read | Read | No |
| Reporters | None | Write | None | None | None | Read | None | None | No |
| Readers | Read | Read | Read | Read | Read | Read | Read | Read | No |
| CI-Bots | Read | Read | Read | Write | None | None | Write | Write | No |
./scripts/rbac-bootstrap.sh --create-admin --admin-user iziadmin --admin-email you@example.com./scripts/rbac-bootstrap.sh --token YOUR_TOKEN --url http://YOUR_HOST:3000izihub org and all standard teams../scripts/rbac-bootstrap.sh --token … --assign alice Developersmain (require PR, block force-push).DISABLE_REGISTRATION=true in .env and recreate the server.For a single repo outside the org model:
Prefer org teams for anything ongoing so access is reviewable in one place.
Branch protection is applied automatically to org repositories:
git push is denied (including admins)v* restricted to the same teamsPolicy file: rbac/enforcement.json · re-apply: ./scripts/enforce-protection.sh
A timer re-applies rules every 2 minutes so new repos are protected without manual steps.
Demo: org repo protected-demo — try pushing to main to see rejection.