The new-webhook page keeps name, description and retention and adds an optional HTTP target URL and an archive checkbox, following the plan on #373.
A filled-in URL creates an http target named HTTP; an empty one creates none.
Checking archive shows a pruning choice (never, 1h, 12h, 24h, 30d, 90d, 365d) and creates a database target named Archive whose expiry is that choice; 30d, 90d and 365d are stored as 720h, 2160h and 8760h. Unchecked, the choice is hidden and no archive target is created. No schema change.
Each target goes through newTarget, the add target form's validation from #370, and the webhook, its default entrypoint and its targets are created in one transaction.
A refused form comes back with every value entered: name, description, retention (#373 (comment)), URL, the checked box and the pruning chosen.
What the diff does not show:
The seven pruning choices exist only on the page. The server accepts any expiry the add target form accepts.
The archive checkbox has autocomplete="off": without it, going back to the page left the box checked with the pruning choice hidden.
make test-browser now also walks the new page: all sixteen combinations, a refused URL, and going back.
Judgement call: the choice's labels are the owner's words as written (never, 1h … 365d).
Model: opus-5-5
The new-webhook page keeps name, description and retention and adds an optional HTTP target URL and an archive checkbox, following the plan on https://git.eeqj.de/sneak/webhooker/issues/373.
- A filled-in URL creates an `http` target named `HTTP`; an empty one creates none.
- Checking archive shows a pruning choice (never, 1h, 12h, 24h, 30d, 90d, 365d) and creates a `database` target named `Archive` whose `expiry` is that choice; 30d, 90d and 365d are stored as `720h`, `2160h` and `8760h`. Unchecked, the choice is hidden and no archive target is created. No schema change.
- Each target goes through `newTarget`, the add target form's validation from https://git.eeqj.de/sneak/webhooker/issues/370, and the webhook, its default entrypoint and its targets are created in one transaction.
- A refused form comes back with every value entered: name, description, retention (https://git.eeqj.de/sneak/webhooker/issues/373#issuecomment-108781), URL, the checked box and the pruning chosen.
What the diff does not show:
- The seven pruning choices exist only on the page. The server accepts any expiry the add target form accepts.
- The archive checkbox has `autocomplete="off"`: without it, going back to the page left the box checked with the pruning choice hidden.
- `make test-browser` now also walks the new page: all sixteen combinations, a refused URL, and going back.
Judgement call: the choice's labels are the owner's words as written (`never`, `1h` … `365d`).
Model: opus-5-5
The new-webhook page keeps name, description and retention and adds an
HTTP target URL field and an archive checkbox. A filled-in URL creates
an http target named HTTP; a checked archive shows a pruning choice
(never, 1h, 12h, 24h, 30d, 90d, 365d) and creates a database target
named Archive with that expiry. Each target goes through the add
target form's validation, and the webhook, its entrypoint and its
targets are created in one transaction. A refused form comes back with
every value entered, retention included.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The new-webhook page keeps name, description and retention and adds an optional HTTP target URL and an archive checkbox, following the plan on #373.
httptarget namedHTTP; an empty one creates none.databasetarget namedArchivewhoseexpiryis that choice; 30d, 90d and 365d are stored as720h,2160hand8760h. Unchecked, the choice is hidden and no archive target is created. No schema change.newTarget, the add target form's validation from #370, and the webhook, its default entrypoint and its targets are created in one transaction.What the diff does not show:
autocomplete="off": without it, going back to the page left the box checked with the pruning choice hidden.make test-browsernow also walks the new page: all sixteen combinations, a refused URL, and going back.Judgement call: the choice's labels are the owner's words as written (
never,1h…365d).Model: opus-5-5
Review passed: #476 meets #373 and its plan.
Model: opus-5-5