Skip to content

Commit f0494b6

Browse files
Merge pull request #93 from travis-ci/bug-fix-cycle-12
Bug fix cycle 12
2 parents a6920dd + d2a8376 commit f0494b6

File tree

5 files changed

+21
-9
lines changed

5 files changed

+21
-9
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ end
3434

3535
group :test do
3636
gem 'rack-test'
37+
gem 'timecop'
3738
end

Gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ GEM
8383
thor (0.20.0)
8484
thread_safe (0.3.6)
8585
tilt (2.0.8)
86+
timecop (0.9.1)
8687
travis-config (1.0.13)
8788
hashr (~> 2.0.0)
8889
tzinfo (1.2.5)
@@ -107,6 +108,7 @@ DEPENDENCIES
107108
sentry-raven
108109
sidekiq (~> 4.0.0)
109110
sinatra (~> 2.0.3)
111+
timecop
110112
travis-config (~> 1.0.0)
111113
travis-support!
112114
yajl-ruby (~> 1.4.0)

lib/travis/listener/app.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ def dispatch_event
111111

112112
return unless handle_event?
113113

114+
# According to GitHub every webhook payload should have this
115+
# If it is not present, assume payload is malformed
116+
return unless payload['sender']
117+
114118
debug "Event payload for #{uuid}: #{payload.inspect}"
115119

116120
log_event
@@ -178,6 +182,7 @@ def data
178182
:uuid => uuid,
179183
:github_guid => delivery_guid,
180184
:github_event => event_type,
185+
:received_at => Time.now,
181186
}
182187
end
183188

lib/travis/listener/schemas.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,37 +144,37 @@ def self.event_details(event_type, payload)
144144
source: payload['pull_request']['head']['repo'] && payload['pull_request']['head']['repo']['full_name'],
145145
head: payload['pull_request']['head']['sha'][0..6],
146146
ref: payload['pull_request']['head']['ref'],
147-
user: payload['pull_request']['head']['user']['login'],
148-
sender: payload['sender']['login'],
149-
sender_type: payload['sender']['type']
147+
user: payload['pull_request']['head'].fetch('user', {}).fetch('login', ''),
148+
sender: payload['sender'].fetch('login', ''),
149+
sender_type: payload['sender'].fetch('type', '')
150150
}
151151
when 'push'
152152
{
153153
repository: payload["repository"]["full_name"],
154154
ref: payload['ref'],
155155
head: payload['head_commit'] && payload['head_commit']['id'][0..6],
156156
commits: (payload["commits"] || []).map {|c| c['id'][0..6]}.join(","),
157-
sender: payload['sender']['login'],
158-
sender_type: payload['sender']['type']
157+
sender: payload['sender'].fetch('login', ''),
158+
sender_type: payload['sender'].fetch('type', '')
159159
}
160160
when 'check_suite'
161161
{
162162
action: payload['action'],
163163
ref_type: payload['check_suite']['ref_type'],
164164
repository: payload["repository"]["full_name"],
165-
sender: payload['sender']['login']
165+
sender: payload['sender'].fetch('login', '')
166166
}
167167
when 'create', 'delete', 'repository', 'check_run'
168168
{
169169
action: payload['action'],
170170
repository: payload["repository"]["full_name"],
171-
sender: payload['sender']['login']
171+
sender: payload['sender'].fetch('login', '')
172172
}
173173
when 'installation', 'installation_repositories'
174174
{
175175
action: payload['action'],
176176
installation: payload["installation"]["account"]["login"],
177-
sender: payload['sender']['login']
177+
sender: payload['sender'].fetch('login', '')
178178
}
179179
else
180180
{ }

spec/spec_helper.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
c.run_all_when_everything_filtered = true
1919
end
2020

21+
require 'timecop'
22+
Timecop.freeze('2022-01-01 00:02:00 +0200')
23+
2124
module Payloads
2225
def self.load(path)
2326
File.read(File.expand_path("../payloads/#{path}.json", __FILE__))
@@ -28,5 +31,6 @@ def self.load(path)
2831
:type => 'push',
2932
:uuid => Travis.uuid,
3033
:github_guid => 'abc123',
31-
:github_event => 'push'
34+
:github_event => 'push',
35+
:received_at => Time.now
3236
}

0 commit comments

Comments
 (0)