Skip to content

Commit aa650d3

Browse files
committed
Record browser's User-Agent value if X-User-Agent is not set
Recording `unknown` in most cases is not very helpful.
1 parent f18b678 commit aa650d3

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

lib/travis/api/app/middleware/user_agent_tracker.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class UserAgentTracker < Middleware
2525
before(agent: /^.+$/) do
2626
agent = UserAgent.parse(request.user_agent)
2727
case agent.browser
28-
when *WEB_BROWSERS then mark_browser
28+
when *WEB_BROWSERS then mark_browser(agent)
2929
when "curl", "Wget" then mark(:console, agent.browser)
3030
when "travis-api-wrapper" then mark(:script, :node_js, agent.browser)
3131
when "TravisPy" then mark(:script, :python, agent.browser)
@@ -36,10 +36,13 @@ class UserAgentTracker < Middleware
3636
end
3737
end
3838

39-
def mark_browser
39+
def mark_browser(agent)
4040
# allows a JavaScript Client to set X-User-Agent, for instance to "travis-web" in travis-web
41-
x_agent = UserAgent.parse(env['HTTP_X_USER_AGENT'] || 'unknown').browser
42-
mark(:browser, x_agent)
41+
if env['HTTP_X_USER_AGENT']
42+
mark :browser, UserAgent.parse(env['HTTP_X_USER_AGENT']).browser
43+
else
44+
mark :browser, agent.browser
45+
end
4346
end
4447

4548
def mark_travis(agent)

0 commit comments

Comments
 (0)