31 lines
690 B
Ruby
31 lines
690 B
Ruby
require 'travis/api/app'
|
|
|
|
class Travis::Api::App
|
|
class Middleware
|
|
class Rewrite < Middleware
|
|
V1_REPO_URL = %r(^(/[^/]+/[^/]+(?:/builds(?:/[\d]+)?|/cc\.xml)?)$)
|
|
|
|
set(:setup) { ActiveRecord::Base.logger = Travis.logger }
|
|
|
|
after do
|
|
p not_found?
|
|
force_redirect("/repositories#{$1}") if response.status == 404 && version == 'v1' && request.path =~ V1_REPO_URL
|
|
end
|
|
|
|
private
|
|
|
|
def force_redirect(path)
|
|
response.body = ''
|
|
response['Content-Length'] = '0'
|
|
response['Content-Type'] = ''
|
|
redirect(path)
|
|
end
|
|
|
|
def version
|
|
API.version(request.accept.join)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|