Skip to content

Feat/87 Webhook System Review Notifier - #1026

Open
hanielee wants to merge 9 commits into
ascherj:mainfrom
hanielee:feat/87-webhook-system
Open

Feat/87 Webhook System Review Notifier#1026
hanielee wants to merge 9 commits into
ascherj:mainfrom
hanielee:feat/87-webhook-system

Conversation

@hanielee

Copy link
Copy Markdown

Summary

This PR adds an authenticated webhook system so review jobs can notify clients asynchronously when processing completes or fails. Clients can register a callback URL, and the app sends a signed POST payload with the final review state, removing the need to rely on polling for status updates.

Issue

Closes #87

Changes

Testing

  • Unit tests pass (pytest tests/unit/test_webhook_service.py -q)
  • Integration tests pass (make test-integration)
  • Linter passes (make lint)
  • Type checker passes (make typecheck)
  • New/updated tests cover the changes

Manual verification:

  1. Start the app and create a review as usual.
  2. Register a test webhook endpoint (for example, a local echo server or a temporary public URL).
  3. Trigger a review and confirm the callback receives a signed POST with the completed or failed review payload.
  4. Optionally simulate a temporary delivery failure to confirm the retry logic is exercised.

Notes for Reviewers

  • The delivery flow signs outbound requests with HMAC-SHA256 and records each attempt for auditability.
  • The current implementation focuses on webhook delivery reliability and retry behavior; further hardening around user-supplied callback URL validation can be addressed in a follow-up pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement a webhook system that notifies users when their review is ready

1 participant