{"id":13905846,"url":"https://github.com/leejarvis/gridhook","last_synced_at":"2025-04-13T15:34:43.090Z","repository":{"id":7177023,"uuid":"8478831","full_name":"leejarvis/gridhook","owner":"leejarvis","description":"A Rails engine that provides an endpoint for SendGrid webhooks","archived":false,"fork":false,"pushed_at":"2019-02-27T16:51:35.000Z","size":41,"stargazers_count":103,"open_issues_count":4,"forks_count":25,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T11:52:18.465Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leejarvis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-28T12:37:21.000Z","updated_at":"2024-10-28T16:03:55.000Z","dependencies_parsed_at":"2022-08-20T10:11:15.443Z","dependency_job_id":null,"html_url":"https://github.com/leejarvis/gridhook","commit_stats":null,"previous_names":["injekt/gridhook"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leejarvis%2Fgridhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leejarvis%2Fgridhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leejarvis%2Fgridhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leejarvis%2Fgridhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leejarvis","download_url":"https://codeload.github.com/leejarvis/gridhook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248736212,"owners_count":21153551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-06T23:01:24.910Z","updated_at":"2025-04-13T15:34:43.067Z","avatar_url":"https://github.com/leejarvis.png","language":"Ruby","readme":"[![Build Status](https://travis-ci.org/leejarvis/gridhook.svg?branch=master)](https://travis-ci.org/leejarvis/gridhook)\n\n# Gridhook\n\nGridhook is a Rails engine providing an endpoint for handling incoming\nSendGrid webhook events.\n\nThis engine supports both batched and non-batched events from SendGrid.\n\nLooking to handle incoming email from the SendGrid Parse API? Gridhook\nwill eventually support that, until then, you should check out\n[Griddler](https://github.com/thoughtbot/griddler). It's awesome.\n\n[![Build Status](https://travis-ci.org/leejarvis/gridhook.svg?branch=master)](http://travis-ci.org/leejarvis/gridhook)\n\n## Installation\n\nAdd Gridhook to your application's Gemfile and run `bundle install`:\n\n```ruby\ngem 'gridhook'\n```\n\nYou must also tell Gridhook how to process your event. Simply add an\ninitializer in `config/initializers/gridhook.rb`:\n\n```ruby\nGridhook.configure do |config|\n  # The path we want to receive events\n  config.event_receive_path = '/sendgrid/event'\n\n  config.event_processor = proc do |event|\n    # event is a Gridhook::Event object\n    EmailEvent.create! event.attributes\n  end\nend\n```\n\nThe `config.event_processor` just needs to be any object that responds to\n`call()`. So, if you'd prefer to use a separate class, that's fine:\n\n```ruby\nclass EventProcessor\n  def call(event)\n    # do some stuff with my event!\n  end\nend\n\n# config/initializers/gridhook.rb\nGridhook.configure do |config|\n  config.event_processor = EventProcessor.new\nend\n```\n\n## Changelog\nv0.2.1 Use built-in rails JSON parser.\n\nv0.2.0 Supports version 3 of the Sendgrid webhook released on\nSeptember 6th, 2013, which provides the proper headers and JSON post body\nwithout hacks or middleware. If upgrading to this version, please make sure\nto update the Webhooks settings in your SendGrid App to use V3 of their API.\n\n## TODO\n\n* More tests\n* Integrate [parse webhook](http://sendgrid.com/docs/API_Reference/Webhooks/parse.html)\n\n## More Information\n\n* [Gridhook API Documentation](http://injekt.github.com/rdoc/gridhook/)\n* [SendGrid Webhooks](http://sendgrid.com/docs/API_Reference/Webhooks/index.html)\n* [SendGrid Webhooks/Event](http://sendgrid.com/docs/API_Reference/Webhooks/event.html)\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleejarvis%2Fgridhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleejarvis%2Fgridhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleejarvis%2Fgridhook/lists"}