Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing Reflect instances for new event types #17

Open
evanrelf opened this issue May 9, 2020 · 0 comments
Open

Missing Reflect instances for new event types #17

evanrelf opened this issue May 9, 2020 · 0 comments

Comments

@evanrelf
Copy link
Contributor

evanrelf commented May 9, 2020

I noticed the Reflect typeclass is missing instances for the new event types from the github library.

Missing instances
diff --git a/src/Servant/GitHub/Webhook.hs b/src/Servant/GitHub/Webhook.hs
index d3c862a..f7bd93e 100644
--- a/src/Servant/GitHub/Webhook.hs
+++ b/src/Servant/GitHub/Webhook.hs
@@ -411,21 +411,42 @@ instance Reflect 'WebhookCheckRunEvent where
 instance Reflect 'WebhookCommitCommentEvent where
   reflect _ = WebhookCommitCommentEvent
 
+instance Reflect 'WebhookContentReferenceEvent where
+  reflect _ = WebhookContentReferenceEvent
+
 instance Reflect 'WebhookCreateEvent where
   reflect _ = WebhookCreateEvent
 
 instance Reflect 'WebhookDeleteEvent where
   reflect _ = WebhookDeleteEvent
 
+instance Reflect 'WebhookDeployKeyEvent where
+  reflect _ = WebhookDeployKeyEvent
+
 instance Reflect 'WebhookDeploymentEvent where
   reflect _ = WebhookDeploymentEvent
 
 instance Reflect 'WebhookDeploymentStatusEvent where
   reflect _ = WebhookDeploymentStatusEvent
 
+instance Reflect 'WebhookDownloadEvent where
+  reflect _ = WebhookDownloadEvent
+
+instance Reflect 'WebhookFollowEvent where
+  reflect _ = WebhookFollowEvent
+
 instance Reflect 'WebhookForkEvent where
   reflect _ = WebhookForkEvent
 
+instance Reflect 'WebhookForkApplyEvent where
+  reflect _ = WebhookForkApplyEvent
+
+instance Reflect 'WebhookGitHubAppAuthorizationEvent where
+  reflect _ = WebhookGitHubAppAuthorizationEvent
+
+instance Reflect 'WebhookGistEvent where
+  reflect _ = WebhookGistEvent
+
 instance Reflect 'WebhookGollumEvent where
   reflect _ = WebhookGollumEvent
 
@@ -444,15 +465,45 @@ instance Reflect 'WebhookIssueCommentEvent where
 instance Reflect 'WebhookIssuesEvent where
   reflect _ = WebhookIssuesEvent
 
+instance Reflect 'WebhookLabelEvent where
+  reflect _ = WebhookLabelEvent
+
+instance Reflect 'WebhookMarketplacePurchaseEvent where
+  reflect _ = WebhookMarketplacePurchaseEvent
+
 instance Reflect 'WebhookMemberEvent where
   reflect _ = WebhookMemberEvent
 
+instance Reflect 'WebhookMembershipEvent where
+  reflect _ = WebhookMembershipEvent
+
+instance Reflect 'WebhookMetaEvent where
+  reflect _ = WebhookMetaEvent
+
+instance Reflect 'WebhookMilestoneEvent where
+  reflect _ = WebhookMilestoneEvent
+
+instance Reflect 'WebhookOrganizationEvent where
+  reflect _ = WebhookOrganizationEvent
+
+instance Reflect 'WebhookOrgBlockEvent where
+  reflect _ = WebhookOrgBlockEvent
+
 instance Reflect 'WebhookPageBuildEvent where
   reflect _ = WebhookPageBuildEvent
 
 instance Reflect 'WebhookPingEvent where
   reflect _ = WebhookPingEvent
 
+instance Reflect 'WebhookProjectCardEvent where
+  reflect _ = WebhookProjectCardEvent
+
+instance Reflect 'WebhookProjectColumnEvent where
+  reflect _ = WebhookProjectColumnEvent
+
+instance Reflect 'WebhookProjectEvent where
+  reflect _ = WebhookProjectEvent
+
 instance Reflect 'WebhookPublicEvent where
   reflect _ = WebhookPublicEvent
 
@@ -462,15 +513,36 @@ instance Reflect 'WebhookPullRequestReviewCommentEvent where
 instance Reflect 'WebhookPullRequestEvent where
   reflect _ = WebhookPullRequestEvent
 
+instance Reflect 'WebhookPullRequestReviewEvent where
+  reflect _ = WebhookPullRequestReviewEvent
+
 instance Reflect 'WebhookPushEvent where
   reflect _ = WebhookPushEvent
 
+instance Reflect 'WebhookRegistryPackageEvent where
+  reflect _ = WebhookRegistryPackageEvent
+
 instance Reflect 'WebhookReleaseEvent where
   reflect _ = WebhookReleaseEvent
 
+instance Reflect 'WebhookRepositoryImportEvent where
+  reflect _ = WebhookRepositoryImportEvent
+
+instance Reflect 'WebhookRepositoryVulnerabilityAlertEvent where
+  reflect _ = WebhookRepositoryVulnerabilityAlertEvent
+
+instance Reflect 'WebhookSecurityAdvisoryEvent where
+  reflect _ = WebhookSecurityAdvisoryEvent
+
+instance Reflect 'WebhookStarEvent where
+  reflect _ = WebhookStarEvent
+
 instance Reflect 'WebhookStatusEvent where
   reflect _ = WebhookStatusEvent
 
+instance Reflect 'WebhookTeamEvent where
+  reflect _ = WebhookTeamEvent
+
 instance Reflect 'WebhookTeamAddEvent where
   reflect _ = WebhookTeamAddEvent

I'm assuming this is because servant-github-webhook aims to support github >= 0.15. Would it be possible to support these new event types? I imagine this could be done in a couple ways:

  1. Bump the min bound on github to 0.22 (I believe that's the latest version that adds new event types)

  2. Use -XCPP to conditionally include the instances, e.g.

    #if MIN_VERSION_github(0,22)
    instance Reflect 'WebhookTeamEvent where
      reflect _ = WebhookTeamEvent
    #endif

For the moment I'm using a patched version of servant-github-webhook in my project to include these instances.

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

No branches or pull requests

1 participant