webhook-payload 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,6 +30,11 @@ module Webhook
30
30
 
31
31
  attribute :email, String
32
32
  attribute :name, String
33
+ attribute :username, String
34
+ end
35
+
36
+ class Pusher
37
+ include User
33
38
  end
34
39
 
35
40
  class URI < Virtus::Attribute::Object
@@ -44,12 +49,17 @@ module Webhook
44
49
  include User
45
50
  end
46
51
 
52
+ class Committer
53
+ include User
54
+ end
55
+
47
56
  class Pathname < Virtus::Attribute::Object
48
57
  primitive String
49
58
  coercion_method :to_pathname
50
59
  end
51
60
 
52
61
  attribute :id, String
62
+ attribute :distinct, Boolean
53
63
  attribute :url, URI
54
64
  attribute :message, String
55
65
  attribute :timestamp, Time
@@ -57,6 +67,7 @@ module Webhook
57
67
  attribute :modified, Array[Pathname], :default => []
58
68
  attribute :removed, Array[Pathname], :default => []
59
69
  attribute :author, Author
70
+ attribute :committer, Committer
60
71
  end
61
72
 
62
73
  class Repository
@@ -66,15 +77,27 @@ module Webhook
66
77
  include User
67
78
  end
68
79
 
80
+ attribute :id, Integer
69
81
  attribute :url, URI
70
82
  attribute :name, String
71
83
  attribute :homepage, String
72
84
  attribute :pledgie, String
73
85
  attribute :description, String
74
86
  attribute :watchers, Integer
87
+ attribute :stargazers, Integer
88
+ attribute :fork, Boolean
75
89
  attribute :forks, Integer
76
90
  attribute :private, Boolean
77
91
  attribute :owner, Owner
92
+ attribute :created_at, DateTime
93
+ attribute :has_downloads, Boolean
94
+ attribute :has_issues, Boolean
95
+ attribute :has_wiki, Boolean
96
+ attribute :language, String
97
+ attribute :master_branch, String
98
+ attribute :open_issues, Integer
99
+ attribute :pushed_at, DateTime
100
+ attribute :size, Integer
78
101
  end
79
102
 
80
103
  attribute :before, String
@@ -82,5 +105,11 @@ module Webhook
82
105
  attribute :ref, String
83
106
  attribute :repository, Repository
84
107
  attribute :commits, Array[Commit]
108
+ attribute :compare, URI
109
+ attribute :created, Boolean
110
+ attribute :deleted, Boolean
111
+ attribute :forced, Boolean
112
+ attribute :head_commit, Commit
113
+ attribute :pusher, Pusher
85
114
  end
86
- end
115
+ end
@@ -1,5 +1,5 @@
1
1
  module Webhook
2
2
  class Payload
3
- VERSION = "1.1.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -19,6 +19,10 @@ describe Webhook::Payload do
19
19
  its(:before){should == "5aef35982fb2d34e9d9d4502f6ede1072793222d"}
20
20
  its(:after){should == "de8251ff97ee194a289832576287d6f8ad74e3d0"}
21
21
  its(:ref){should == "refs/heads/master"}
22
+ its(:compare){should == URI.parse("https://github.com/defunkt/github/compare/5aef35982fb2...de8251ff97ee")}
23
+ its(:created){should == false}
24
+ its(:deleted){should == false}
25
+ its(:forced){should == false}
22
26
 
23
27
  it "should have two commits" do
24
28
  subject.commits.size.should == 2
@@ -34,14 +38,26 @@ describe Webhook::Payload do
34
38
  its(:homepage){should be_nil}
35
39
  its(:description){should == "You're lookin' at it."}
36
40
  its(:watchers){should == 5}
41
+ its(:stargazers){should == 1}
42
+ its(:fork){should == true}
37
43
  its(:forks){should == 2}
38
44
  its(:private){should == true}
45
+ its(:has_downloads){should == true}
46
+ its(:has_issues){should == true}
47
+ its(:has_wiki){should == true}
48
+ its(:language){should == "Ruby"}
49
+ its(:master_branch){should == "master"}
50
+ its(:open_issues){should == 12}
51
+ its(:size){should == 2156}
52
+ its(:created_at){should == DateTime.new(2012, 3, 28, 23, 36, 8)}
53
+ its(:pushed_at){should == DateTime.new(2013, 3, 14, 21, 12, 0)}
39
54
 
40
55
  describe "#owner" do
41
56
  subject{repository.owner}
42
57
 
43
58
  its(:email){should == "chris@ozmm.org"}
44
- its(:name){should == "defunkt"}
59
+ its(:name){should == "Chris Wanstrath"}
60
+ its(:username){should == "defunkt"}
45
61
  end
46
62
  end
47
63
 
@@ -50,6 +66,7 @@ describe Webhook::Payload do
50
66
  subject{commit}
51
67
 
52
68
  its(:id){should == "41a212ee83ca127e3c8cf465891ab7216a705f59"}
69
+ its(:distinct){should == true}
53
70
  its(:url){should == URI.parse("http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59")}
54
71
  its(:message){should == "okay i give in"}
55
72
  its(:timestamp){should == Time.parse("2008-02-15T14:57:17-08:00")}
@@ -62,6 +79,50 @@ describe Webhook::Payload do
62
79
 
63
80
  its(:email){should == "chris@ozmm.org"}
64
81
  its(:name){should == "Chris Wanstrath"}
82
+ its(:username){should == "defunkt"}
83
+ end
84
+
85
+ describe "#committer" do
86
+ subject{commit.committer}
87
+
88
+ its(:email){should == "chris@ozmm.org"}
89
+ its(:name){should == "Chris Wanstrath"}
90
+ its(:username){should == "defunkt"}
91
+ end
92
+ end
93
+
94
+ describe "#pusher" do
95
+ subject{payload.pusher}
96
+
97
+ its(:name){should == "none"}
98
+ end
99
+
100
+ describe "#head_commit" do
101
+ subject{payload.head_commit}
102
+
103
+ its(:id){should == "de8251ff97ee194a289832576287d6f8ad74e3d0"}
104
+ its(:distinct){should == true}
105
+ its(:url){should == URI.parse("http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0")}
106
+ its(:message){should == "update pricing a tad"}
107
+ its(:timestamp){should == Time.parse("2008-02-15T14:36:34-08:00")}
108
+ its(:added){should == []}
109
+ its(:removed){should == []}
110
+ its(:modified){should == []}
111
+
112
+ describe "#author" do
113
+ subject{payload.head_commit.author}
114
+
115
+ its(:email){should == "chris@ozmm.org"}
116
+ its(:name){should == "Chris Wanstrath"}
117
+ its(:username){should == "defunkt"}
118
+ end
119
+
120
+ describe "#committer" do
121
+ subject{payload.head_commit.committer}
122
+
123
+ its(:email){should == "chris@ozmm.org"}
124
+ its(:name){should == "Chris Wanstrath"}
125
+ its(:username){should == "defunkt"}
65
126
  end
66
127
  end
67
128
 
@@ -73,20 +134,39 @@ describe Webhook::Payload do
73
134
  "name" => "github",
74
135
  "description" => "You're lookin' at it.",
75
136
  "watchers" => 5,
137
+ "stargazers" => 1,
138
+ "fork" => true,
76
139
  "forks" => 2,
77
140
  "private" => 1,
78
141
  "owner" => {
79
142
  "email" => "chris@ozmm.org",
80
- "name" => "defunkt"
81
- }
143
+ "name" => "Chris Wanstrath",
144
+ "username" => "defunkt"
145
+ },
146
+ "created_at" => 1332977768,
147
+ "has_downloads" => true,
148
+ "has_issues" => true,
149
+ "has_wiki" => true,
150
+ "language" => "Ruby",
151
+ "master_branch" => "master",
152
+ "open_issues" => 12,
153
+ "pushed_at" => 1363295520,
154
+ "size" => 2156
82
155
  },
83
156
  "commits" => [
84
157
  {
85
158
  "id" => "41a212ee83ca127e3c8cf465891ab7216a705f59",
159
+ "distinct" => true,
86
160
  "url" => "http://github.com/defunkt/github/commit/41a212ee83ca127e3c8cf465891ab7216a705f59",
87
161
  "author" => {
88
162
  "email" => "chris@ozmm.org",
89
- "name" => "Chris Wanstrath"
163
+ "name" => "Chris Wanstrath",
164
+ "username" => "defunkt"
165
+ },
166
+ "committer" => {
167
+ "email" => "chris@ozmm.org",
168
+ "name" => "Chris Wanstrath",
169
+ "username" => "defunkt"
90
170
  },
91
171
  "message" => "okay i give in",
92
172
  "timestamp" => "2008-02-15T14:57:17-08:00",
@@ -94,18 +174,49 @@ describe Webhook::Payload do
94
174
  },
95
175
  {
96
176
  "id" => "de8251ff97ee194a289832576287d6f8ad74e3d0",
177
+ "distinct" => true,
97
178
  "url" => "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0",
98
179
  "author" => {
99
180
  "email" => "chris@ozmm.org",
100
- "name" => "Chris Wanstrath"
181
+ "name" => "Chris Wanstrath",
182
+ "username" => "defunkt"
183
+ },
184
+ "committer" => {
185
+ "email" => "chris@ozmm.org",
186
+ "name" => "Chris Wanstrath",
187
+ "username" => "defunkt"
101
188
  },
102
189
  "message" => "update pricing a tad",
103
190
  "timestamp" => "2008-02-15T14:36:34-08:00"
104
191
  }
105
192
  ],
106
193
  "after" => "de8251ff97ee194a289832576287d6f8ad74e3d0",
107
- "ref" => "refs/heads/master"
194
+ "ref" => "refs/heads/master",
195
+ "compare" => "https://github.com/defunkt/github/compare/5aef35982fb2...de8251ff97ee",
196
+ "created" => false,
197
+ "deleted" => false,
198
+ "forced" => false,
199
+ "head_commit" => {
200
+ "id" => "de8251ff97ee194a289832576287d6f8ad74e3d0",
201
+ "distinct" => true,
202
+ "url" => "http://github.com/defunkt/github/commit/de8251ff97ee194a289832576287d6f8ad74e3d0",
203
+ "author" => {
204
+ "email" => "chris@ozmm.org",
205
+ "name" => "Chris Wanstrath",
206
+ "username" => "defunkt"
207
+ },
208
+ "committer" => {
209
+ "email" => "chris@ozmm.org",
210
+ "name" => "Chris Wanstrath",
211
+ "username" => "defunkt"
212
+ },
213
+ "message" => "update pricing a tad",
214
+ "timestamp" => "2008-02-15T14:36:34-08:00"
215
+ },
216
+ "pusher" => {
217
+ "name" => "none"
218
+ }
108
219
  }
109
220
  end
110
221
  end
111
- end
222
+ end
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
21
21
  # specify any dependencies here; for example:
22
22
  s.add_development_dependency "rspec"
23
23
  s.add_development_dependency "rake"
24
- s.add_runtime_dependency "virtus"
24
+ s.add_runtime_dependency "virtus", ">= 0.5.0"
25
25
  s.add_runtime_dependency "multi_json"
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webhook-payload
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-10 00:00:00.000000000 Z
12
+ date: 2013-07-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70203489228800 !ruby/object:Gem::Requirement
16
+ requirement: &70124157666340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70203489228800
24
+ version_requirements: *70124157666340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70203489228280 !ruby/object:Gem::Requirement
27
+ requirement: &70124157665880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,21 +32,21 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70203489228280
35
+ version_requirements: *70124157665880
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: virtus
38
- requirement: &70203489227740 !ruby/object:Gem::Requirement
38
+ requirement: &70124157665300 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
- version: '0'
43
+ version: 0.5.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70203489227740
46
+ version_requirements: *70124157665300
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: multi_json
49
- requirement: &70203489227160 !ruby/object:Gem::Requirement
49
+ requirement: &70124157664840 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70203489227160
57
+ version_requirements: *70124157664840
58
58
  description: This gem is a convenience wrapper for Github's webhook payload (https://help.github.com/articles/post-receive-hooks)
59
59
  that is triggered from a post receive hook. Feed it a hash of data and it will parse
60
60
  it into an object that you can use. It also provides conversions from basic data