Conversation
…ive events - Allow getEvent() to return string|array for multi-event payloads (PR #26) - Lowercase event names before handler class resolution for case-insensitive matching (PR #22) - Rewrite PostmarkProvider::verify() with configurable verification_types: 'auth', 'headers', and 'ips' modes (PR #31, closes #7) - Update all provider getEvent() signatures to string|array - Add Postmark verification tests (8 tests) - Add multi-event and case-insensitive handler tests - Add Configuration section to README with per-provider services.php examples - Document multi-event support in README - Document Postmark verification_types options Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace test_ prefix convention with native PHPUnit #[Test] attributes across all test files. Also add return type hints (void) and clean up redundant @param/@return docblocks on helper methods. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add ShopifyProvider (HMAC-SHA256, X-Shopify-Hmac-Sha256 header) - Add TwilioProvider (HMAC-SHA1 of fullUrl + sorted POST params) - Add MailchimpProvider (?secret= query param verification) - Add SendGridProvider (opt-in ECDSA SHA-256, multi-event batch dispatch) - Add PaddleProvider (HMAC-SHA256, Paddle-Signature header, key rotation) - Register all 5 new drivers in ReceiverManager - Add --provider flag to receiver:make to scaffold companion ServiceProvider - Add stubs/receiver-provider.stub - Fix ShopifyProvider getEvent to use ?? '' instead of header default arg - Add tests for all 5 providers (27 new tests) - Expand ManagerTest with driver instantiation tests for all 5 new providers - Update README: new providers in out-of-the-box list and configuration section - Document --provider flag and community provider packaging pattern in README Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace bullet list with a driver-name table for quick reference - Consolidate Configuration section: group common providers in one block, add targeted notes for Mailchimp, SendGrid, and Postmark only - Restructure Receiving Webhooks: single provider → multiple → fallbacks - Add handler naming table showing how event names map to class names - Fix wrong namespace in examples (Receiver\Providers → App\Http\Receivers) - Remove dangling references and unused `use Auth` imports - Update queues link from 9.x to current docs/queues - Fix CSRF middleware class to ValidateCsrfToken (Laravel 11+ compatible) - Fix route param from driver to provider to match ReceivesWebhooks trait - Simplify Extending section: generate → define → secure → handshake → multi-event → community provider (logical build-up order) - Use constructor property promotion in handler examples - Fix TOC anchors and remove duplicate entries Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add laravel/pint and phpstan/phpstan ^2.1 as dev dependencies - Create phpstan.neon (level 5, src/ only) - Add lint, lint:check, and analyse scripts to composer.json - Fix ReceiverManager: add @template to buildProvider() so PHPStan resolves concrete return types on all createXxxDriver() methods - Fix AbstractProvider: remove incorrect @return PHPDoc (native `static` is correct) - Fix GenerateReceiver::handle(): add missing `return null` at end - Suppress known trait-unused warning for ReceivesWebhooks in phpstan.neon - Rewrite .github/workflows/php.yml: - Split into three jobs: lint (Pint), analyse (PHPStan), tests - Fix matrix: laravel properly listed in the top-level array (10, 11, 12, 13) - Add PHP 8.4 to the matrix; exclude Laravel 10 + PHP 8.4 - Add testbench 11.* mapping for Laravel 13 - Drop deprecated --no-suggest flag; set fail-fast: false on tests - Clean up composer cache key Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…uire Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v1.0.0
This is the first stable release of Receiver. It includes a significant set of new features, bug fixes, new built-in providers, and a complete documentation rewrite.
🆕 New Providers
Five new built-in providers are included:
shopifytwiliomailchimpsendgridpaddle🆕 Multiple Events Per Request
getEvent()can now return anarrayof['event_name' => $eventData]pairs. When it does, Receiver dispatches a separate handler for each event. This enables providers like SendGrid that batch multiple events into a single webhook request.Resolves #13, supersedes #26.
🆕 Community Provider Ecosystem
php artisan receiver:make MyProvider --providernow generates both the provider class and a companionServiceProviderthat auto-registers the driver. Package authors can add the service provider to theircomposer.jsonauto-discovery to give users zero-configuration installs.Resolves #8.
🆕 Enhanced Postmark Verification
The Postmark provider now supports three verification strategies, configurable via
config/services.php:auth— HTTP Basic Auth (existing behaviour)headers— validate custom request headersips— validate source IP against Postmark's published webhook IPsMultiple strategies can be combined. Resolves #7, supersedes #31.
🐛 Bug Fixes
_when the payload has noactionfield (e.g.push,fork,installation). Addresses Fix: Event format with the Github provider #34.ALL_CAPSevent names (e.g.PAYMENT.AUTHORIZATION.CREATED) resolve to the correct handler class (PaymentAuthorizationCreated). Supersedes lower case all event names to get handler class #22.getEvent()return type corrected tostring|array; redundant docblocks removed.📖 Documentation
Complete README rewrite:
config/services.phpexamples for every provider. Resolves Clarify configuration requirements, provide examples #32.🔧 Tooling & CI
composer run lint,composer run lint:check,composer run analysescripts available locallyUpgrade Notes
No breaking changes from prior pre-release versions. Add your provider config entries to
config/services.phpas documented in the README and you're good to go.