aboutsummaryrefslogtreecommitdiff
path: root/modules/core/module-loader.js
diff options
context:
space:
mode:
authorWebX11 SysOp <darkmotox11@gmail.com>2026-11-05 22:26:25 +0100
committerWebX11 SysOp <darkmotox11@gmail.com>2026-11-05 22:26:25 +0100
commit28c29f2c270009a1d48857afe05993ff6322d0ff (patch)
treed4d26713b500e6039137981660e62dedd49c3f97 /modules/core/module-loader.js
parent7d14ce41d6a24d8a20b34586a657cec498348fc7 (diff)
feat(git): contrib push surface with automated moderation
Users push to push.newos.webx11.duckdns.org with a per-user token; the read-only host is untouched. http.receivepack is unset so git only allows receive-pack when REMOTE_USER is present, which only that vhost sets. A pre-receive hook (installed by the publisher every run) allows refs/heads/contrib/* only and refuses banned paths, credential-shaped blobs, >200 files or >2MB, logging user+ref+decision. moderate-contrib.py triages every 10 min: deletes hard violations, stamps the rest ready-docs/review/stale into a queue rendered at /admin/git-contrib.html. A human still decides what merges. Verified end to end: contrib push accepted, main refused, credential file refused, accepted ref visible on the read-only host; guard extended (push host 401, hook present+executable, receivepack unset) and proven RED by removing the hook.
Diffstat (limited to 'modules/core/module-loader.js')
0 files changed, 0 insertions, 0 deletions