forked from haskell-github/github
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReleases.hs
More file actions
85 lines (78 loc) · 2.71 KB
/
Copy pathReleases.hs
File metadata and controls
85 lines (78 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
module GitHub.Data.Releases where
import GitHub.Data.Definitions
import GitHub.Data.Id (Id)
import GitHub.Data.URL (URL)
import GitHub.Internal.Prelude
import Prelude ()
data Release = Release
{ releaseUrl :: !URL
, releaseHtmlUrl :: !URL
, releaseAssetsurl :: !URL
, releaseUploadUrl :: !URL
, releaseTarballUrl :: !URL
, releaseZipballUrl :: !URL
, releaseId :: !(Id Release)
, releaseTagName :: !Text
, releaseTargetCommitish :: !Text
, releaseName :: !Text
, releaseBody :: !Text
, releaseDraft :: !Bool
, releasePrerelease :: !Bool
, releaseCreatedAt :: !UTCTime
, releasePublishedAt :: !(Maybe UTCTime)
, releaseAuthor :: !SimpleUser
, releaseAssets :: !(Vector ReleaseAsset)
}
deriving (Show, Data, Typeable, Eq, Ord, Generic)
instance FromJSON Release where
parseJSON = withObject "Event" $ \o -> Release
<$> o .: "url"
<*> o .: "html_url"
<*> o .: "assets_url"
<*> o .: "upload_url"
<*> o .: "tarball_url"
<*> o .: "zipball_url"
<*> o .: "id"
<*> o .: "tag_name"
<*> o .: "target_commitish"
<*> o .: "name"
<*> o .: "body"
<*> o .: "draft"
<*> o .: "prerelease"
<*> o .: "created_at"
<*> o .:? "published_at"
<*> o .: "author"
<*> o .: "assets"
instance NFData Release where rnf = genericRnf
instance Binary Release
data ReleaseAsset = ReleaseAsset
{ releaseAssetUrl :: !URL
, releaseAssetBrowserDownloadUrl :: !Text
, releaseAssetId :: !(Id ReleaseAsset)
, releaseAssetName :: !Text
, releaseAssetLabel :: !(Maybe Text)
, releaseAssetState :: !Text
, releaseAssetContentType :: !Text
, releaseAssetSize :: !Int
, releaseAssetDownloadCount :: !Int
, releaseAssetCreatedAt :: !UTCTime
, releaseAssetUpdatedAt :: !UTCTime
, releaseAssetUploader :: !SimpleUser
}
deriving (Show, Data, Typeable, Eq, Ord, Generic)
instance FromJSON ReleaseAsset where
parseJSON = withObject "Event" $ \o -> ReleaseAsset
<$> o .: "url"
<*> o .: "browser_download_url"
<*> o .: "id"
<*> o .: "name"
<*> o .:? "label"
<*> o .: "state"
<*> o .: "content_type"
<*> o .: "size"
<*> o .: "download_count"
<*> o .: "created_at"
<*> o .: "updated_at"
<*> o .: "uploader"
instance NFData ReleaseAsset where rnf = genericRnf
instance Binary ReleaseAsset