travis-api/lib/travis/api/v3/services/requests/create.rb
2015-03-05 14:44:25 +01:00

20 lines
720 B
Ruby

module Travis::API::V3
class Services::Requests::Create < Service
result_type :request
def run
raise LoginRequired unless access_control.logged_in? or access_control.full_access?
raise NotFound unless repository = find(:repository)
raise PushAccessRequired, repository: repository unless access_control.writable?(repository)
user = find(:user) if access_control.full_access? and params_for? 'user'.freeze
user ||= access_control.user
not_implemented unless Travis::Features.owner_active?(:request_create, repository.owner)
query.schedule(repository, user)
accepted(:request)
end
end
end