Add v0.5 webhook notification release tickets
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 02 Project Notification Settings UI
|
||||
|
||||
Implementation guide: [Ticket Implementation Guide](../ticket-implementation-guide.md)
|
||||
|
||||
## Branch
|
||||
|
||||
`codex/v0.5-webhook-notification/02-project-notification-settings-ui`
|
||||
|
||||
Start this branch from `codex/v0.5-webhook-notification/01-notification-action-foundation`.
|
||||
|
||||
## Goal
|
||||
|
||||
Add project settings UI for managing notification actions.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Add a project settings page at `projects/{project}/settings/notifications`.
|
||||
- Add a settings navigation link alongside general, board, ticket, and repository settings.
|
||||
- Project admins can list, create, update, enable, disable, and delete project notification actions.
|
||||
- The create and update forms support:
|
||||
- name
|
||||
- event type
|
||||
- channel
|
||||
- enabled flag
|
||||
- delivery URL
|
||||
- message template for Discord
|
||||
- Existing secret URLs stay hidden after save.
|
||||
- Updating an action only replaces the secret URL when a new URL is submitted.
|
||||
- Show the fixed template variables in the UI: `$url`, `$ticket_key`, `$ticket_title`, `$project_name`, `$status_from`, `$status_to`, and `$actor_name`.
|
||||
- Add frontend types under `resources/js/types`.
|
||||
- Generate Wayfinder output for the new routes and controller methods.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- Project admins can manage notification actions from project settings.
|
||||
- Non-admin project users cannot access the notification settings page or mutate notification actions.
|
||||
- Validation errors are shown next to the relevant form fields.
|
||||
- Saved notification actions show their name, event type, channel, enabled state, and created or updated date without exposing the secret URL.
|
||||
- Existing project settings pages continue to work.
|
||||
|
||||
## Tests
|
||||
|
||||
- Feature tests for page access, create, update, enable/disable, delete, validation, and authorization.
|
||||
- Inertia prop assertions for the notification action list and template variable metadata.
|
||||
- Regression test that secret URLs are not rendered back in page props.
|
||||
|
||||
## Verification
|
||||
|
||||
- `php artisan wayfinder:generate --with-form --no-interaction`
|
||||
- `vendor/bin/pint --dirty --format agent`
|
||||
- `php artisan test --compact tests/Feature/Projects`
|
||||
- `npm run types:check`
|
||||
- `git diff --check`
|
||||
|
||||
## Commit And Push
|
||||
|
||||
- Commit only this ticket's changes.
|
||||
- Push with `git push origin codex/v0.5-webhook-notification/02-project-notification-settings-ui`.
|
||||
|
||||
## Out of Scope
|
||||
|
||||
- Ticket status changed event dispatch
|
||||
- Actual webhook or Discord HTTP delivery
|
||||
- Delivery attempt screens
|
||||
- User bell notifications
|
||||
- Unread counters
|
||||
- Slack, Teams, email, or other channels
|
||||
- Incoming webhooks
|
||||
- API or MCP management endpoints
|
||||
Reference in New Issue
Block a user