Commit Graph

17 Commits

Author SHA1 Message Date
erangel1 f211cfc7db Branch restrictions — fully enforced:
CRUD rules with pattern (exact or glob like release/*), requirePR, blockForcePush, bypass user list
Enforcement via pkt-line parsing inside the git HTTP handler — before any data reaches git http-backend, each ref update is extracted and checked against stored rules
Direct push to main with requirePR: true → 403 with message; push to unprotected branches still works
Inline checkboxes in the UI update rules immediately
Branching model — stored config:

GET/PUT per repo, defaults to feature/bugfix/release/hotfix prefixes
Toggle enabled/disabled, custom prefix per type with live preview
No enforcement (naming guide only, as Bitbucket does)
Merge strategies — enforced in PR merge endpoint:

GET/PUT per repo, defaults all three allowed
Merge handler now accepts strategy: "merge"|"squash"|"rebase" in request body, checks against stored policy
Disallowed strategy → 409 with clear error; allowed strategy → merges and fires pull_request webhook
Must have at least one strategy enabled (validated server-side)
Webhooks — full delivery with HMAC:

CRUD with title, URL, secret (optional), events (push/pull_request/issue), active toggle
Test button sends live HTTP POST to the configured URL and shows status code in UI
FireWebhooks() fires asynchronously from PR merge and can be called from any handler
X-ForgeBucket-Signature-256: sha256=<hmac> header when secret is set
Last delivery status and timestamp stored on webhook record and shown in list
2026-05-07 15:27:48 +02:00
erangel1 53aa5cbbf5 security sections are fully functional 2026-05-07 15:06:45 +02:00
erangel1 5e60b814ed repo permissions section is not functional 2026-05-07 14:49:47 +02:00
erangel1 12bcf59bc9 repo details page mostly working 2026-05-07 13:04:13 +02:00
erangel1 00aede9c91 changed layout of repo settings page 2026-05-07 12:32:07 +02:00
erangel1 39dd9ab9eb can now import repos and have more settings for creating new ones. 2026-05-07 12:16:58 +02:00
erangel1 dad82a79de readme file is now rendering in repo. can now view files and edit them. can switch between branches with dropdown menu 2026-05-07 11:28:06 +02:00
erangel1 d860d78543 test commit 2026-05-07 10:34:19 +02:00
erangel1 9ad2672a66 init commit 2026-05-07 10:27:16 +02:00
erangel1 dea186c995 making progress 2026-05-07 02:06:54 +02:00
erangel1 44359c1bb0 phase 3 bug repositories fixes 2026-05-07 01:15:32 +02:00
erangel1 200c4f43ea phase 3 bug fixing 2026-05-07 00:55:46 +02:00
erangel1 ce2aa2c776 phase 3 initial completion 2026-05-07 00:22:45 +02:00
erangel1 5d8662595c phase 2 testing complete 2026-05-07 00:09:50 +02:00
erangel1 57991e5406 phase 2 initial test 2026-05-06 23:39:04 +02:00
erangel1 def67b14e4 idk 2026-05-06 23:21:43 +02:00
erangel1 2aa5d01307 first round of files 2026-05-06 23:13:06 +02:00