Class: Shipit::Api::MergeRequestsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/shipit/api/merge_requests_controller.rb

Constant Summary

Constants included from Paginable

Paginable::LINK

Instance Method Summary collapse

Methods inherited from BaseController

require_permission

Methods included from Cacheable

#render_resource, #render_resources

Instance Method Details

#destroyObject



30
31
32
33
34
35
# File 'app/controllers/shipit/api/merge_requests_controller.rb', line 30

def destroy
  if (merge_request = stack.merge_requests.where(number: params[:id]).first) && merge_request.waiting?
    merge_request.cancel!
  end
  head(:no_content)
end

#indexObject



9
10
11
# File 'app/controllers/shipit/api/merge_requests_controller.rb', line 9

def index
  render_resources(stack.merge_requests.includes(:head).order(id: :desc))
end

#showObject



13
14
15
# File 'app/controllers/shipit/api/merge_requests_controller.rb', line 13

def show
  render_resource(stack.merge_requests.find_by!(number: params[:id]))
end

#updateObject



17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/shipit/api/merge_requests_controller.rb', line 17

def update
  merge_request = MergeRequest.request_merge!(stack, params[:id], current_user)
  if merge_request.waiting?
    head(:accepted)
  elsif merge_request.merged?
    render(status: :method_not_allowed, json: {
             message: "This pull request was already merged."
           })
  else
    raise "Pull Request is neither waiting nor merged, this should be impossible"
  end
end