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.
Budget only the untrusted write role
e5542ac6b64fa3ebaf62af4831e55996dba45e7e · Keenan Nemetz · 12d ago · parent 9e8cc155
Budget only the untrusted write role Maintainers and admins are trusted roles: they can already change the rules, push shared branches and run the instance, so a write budget would slow their work without bounding anybody who could not do worse. The budget now applies only below maintain, which is the contribute role and the read-only accounts that cannot write at all. The setting is named for what it does: contributor_writes_per_hour. The role is the effective one on the repository, so an instance-wide maintainer on a public repository is exempt for the same reason a repository maintainer is.
server/web/web.go +1−1
| @@ -84,7 +84,7 @@ func New(repos *repo.Store, ix *index.Store, ident *identity.Store, rs *runs.Sto | |||
| 84 | 84 | w := &Web{Repos: repos, Index: ix, Ident: ident, Runs: rs, Cfg: cfg, | |
| 85 | 85 | Auth: auth, Ceremonies: newCeremonyStore(), Started: time.Now().UTC(), | |
| 86 | 86 | sem: make(chan struct{}, archiveConc), gitSem: make(chan struct{}, webGitConcurrent), | |
| 87 | gitWait: webGitWait, limits: newAuthLimits(cfg.AccountWritesPerHour)} | ||
| 87 | gitWait: webGitWait, limits: newAuthLimits(cfg.ContributorWritesPerHour)} | ||
| 88 | 88 | // The templates are parsed after the Web exists because two of the functions | |
| 89 | 89 | // they call (who, nav) read the roster through the Web: metadata files carry | |
| 90 | 90 | // account names, and a page should show the account name for either. | |