github-types 0.1.0.0 → 0.1.0.1
raw patch · 3 files changed
+63/−4 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ GitHub.Types.Events: eventParser :: Text -> Value -> Parser Event
+ GitHub.Types.Events: instance FromJSON CommitCommentEvent
+ GitHub.Types.Events: instance FromJSON DeploymentStatusEvent
+ GitHub.Types.Repository: Deployment :: Int -> Text -> Text -> Text -> Text -> Value -> Deployment
+ GitHub.Types.Repository: data Deployment
+ GitHub.Types.Repository: deploymentDescription :: Deployment -> Text
+ GitHub.Types.Repository: deploymentEnvironment :: Deployment -> Text
+ GitHub.Types.Repository: deploymentId :: Deployment -> Int
+ GitHub.Types.Repository: deploymentPayload :: Deployment -> Value
+ GitHub.Types.Repository: deploymentRef :: Deployment -> Text
+ GitHub.Types.Repository: deploymentSha :: Deployment -> Text
+ GitHub.Types.Repository: instance Eq Deployment
+ GitHub.Types.Repository: instance FromJSON Deployment
+ GitHub.Types.Repository: instance Show Deployment
- GitHub.Types.Events: DeploymentStatusEvent :: State -> Text -> Text -> Text -> DeploymentStatusEvent
+ GitHub.Types.Events: DeploymentStatusEvent :: State -> Maybe Text -> Deployment -> Maybe Text -> DeploymentStatusEvent
- GitHub.Types.Events: deploymentStatusEventDeployment :: DeploymentStatusEvent -> Text
+ GitHub.Types.Events: deploymentStatusEventDeployment :: DeploymentStatusEvent -> Deployment
- GitHub.Types.Events: deploymentStatusEventDescription :: DeploymentStatusEvent -> Text
+ GitHub.Types.Events: deploymentStatusEventDescription :: DeploymentStatusEvent -> Maybe Text
- GitHub.Types.Events: deploymentStatusEventTargetUrl :: DeploymentStatusEvent -> Text
+ GitHub.Types.Events: deploymentStatusEventTargetUrl :: DeploymentStatusEvent -> Maybe Text
Files
- github-types.cabal +1/−1
- src/GitHub/Types/Events.hs +38/−3
- src/GitHub/Types/Repository.hs +24/−0
github-types.cabal view
@@ -1,5 +1,5 @@ name: github-types-version: 0.1.0.0+version: 0.1.0.1 license: OtherLicense license-file: LICENSE author: Tomas Carnecky
src/GitHub/Types/Events.hs view
@@ -7,12 +7,17 @@ import Control.Monad import Data.Aeson+import Data.Aeson.Types import Data.Text import GitHub.Types.Base+import GitHub.Types.Repository +-- | All events which can be produced by GitHub.+--+-- See https://developer.github.com/v3/activity/events/types/ data Event = CommitCommentEventType CommitCommentEvent | DeploymentEventType DeploymentEvent@@ -20,7 +25,18 @@ deriving (Eq, Show) +-- | Since the event type is included through different means (X-GitHub-Event+-- header, or inline in the JSON object), it's not possible to make 'Event'+-- an instance of 'FromJSON'. But if you know the type, you can use this+-- parser.+eventParser :: Text -> Value -> Parser Event+eventParser "commit_comment" x = CommitCommentEventType <$> parseJSON x+eventParser "deployment" x = DeploymentEventType <$> parseJSON x+eventParser "deployment_status" x = DeploymentStatusEventType <$> parseJSON x+eventParser _ _ = mzero ++ ------------------------------------------------------------------------------ -- CommitCommentEvent @@ -28,7 +44,13 @@ { commitCommentEventRepository :: Repository } deriving (Eq, Show) +instance FromJSON CommitCommentEvent where+ parseJSON (Object x) = CommitCommentEvent+ <$> x .: "repository" + parseJSON _ = mzero++ ------------------------------------------------------------------------------ -- DeploymentEvent @@ -67,7 +89,20 @@ data DeploymentStatusEvent = DeploymentStatusEvent { deploymentStatusEventState :: State- , deploymentStatusEventTargetUrl :: Text- , deploymentStatusEventDeployment :: Text- , deploymentStatusEventDescription :: Text+ -- ^ The new state.+ , deploymentStatusEventTargetUrl :: Maybe Text+ -- ^ The optional link added to the status.+ , deploymentStatusEventDeployment :: Deployment+ -- ^ The deployment that this status is associated with.+ , deploymentStatusEventDescription :: Maybe Text+ -- ^ The optional human-readable description added to the status. } deriving (Eq, Show)++instance FromJSON DeploymentStatusEvent where+ parseJSON (Object x) = DeploymentStatusEvent+ <$> x .: "state"+ <*> x .: "target_url"+ <*> x .: "deployment"+ <*> x .: "description"++ parseJSON _ = mzero
src/GitHub/Types/Repository.hs view
@@ -4,6 +4,9 @@ module GitHub.Types.Repository where +import Control.Applicative+import Control.Monad+ import Data.Aeson import Data.Text @@ -24,3 +27,24 @@ , "target_url" .= cdsTargetUrl , "description" .= cdsDescription ]+++data Deployment = Deployment+ { deploymentId :: Int+ , deploymentSha :: Text+ , deploymentRef :: Text+ , deploymentEnvironment :: Text+ , deploymentDescription :: Text+ , deploymentPayload :: Value+ } deriving (Eq, Show)++instance FromJSON Deployment where+ parseJSON (Object x) = Deployment+ <$> x .: "id"+ <*> x .: "sha"+ <*> x .: "ref"+ <*> x .: "environment"+ <*> x .: "description"+ <*> x .: "payload"++ parseJSON _ = mzero