module Gitlab::Client::MergeRequests

def accept_merge_request(project, id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about updated merge request.

Options Hash: (**options)
  • :merge_commit_message (String) -- Custom merge commit message

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def accept_merge_request(project, id, options={})
  put("/projects/#{url_encode project}/merge_requests/#{id}/merge", body: options)
end

def create_merge_request(project, title, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about created merge request.

Options Hash: (**options)
  • :labels (String) -- Labels as a comma-separated list.
  • :target_project_id (Integer) -- The target project ID.
  • :assignee_id (Integer) -- The ID of a user to assign merge request.
  • :target_branch (String) -- The target branch name.
  • :source_branch (String) -- The source branch name.

Parameters:
  • options (Hash) -- A customizable set of options.
  • title (String) -- The title of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def create_merge_request(project, title, options={})
  body = { title: title }.merge(options)
  post("/projects/#{url_encode project}/merge_requests", body: body)
end

def create_merge_request_discussion(project, merge_request_id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - The created merge request discussion.

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def create_merge_request_discussion(project, merge_request_id, options={})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions", body: options)
end

def create_merge_request_discussion_note(project, merge_request_id, discussion_id, options)

Returns:
  • (Gitlab::ObjectifiedHash) - The merge request discussion note.

Options Hash: (**options)
  • :created_at (String) -- Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z.
  • :body (String) -- The content of a discussion.
  • :note_id (Integer) -- The ID of a discussion note.

Parameters:
  • options (Hash) -- A customizable set of options.
  • discussion_id (Integer) -- The ID of a discussion.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def create_merge_request_discussion_note(project, merge_request_id, discussion_id, options)
  post("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes", body: options)
end

def delete_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id)

Returns:
  • (Gitlab::ObjectifiedHash) - An empty response.

Parameters:
  • note_id (Integer) -- The ID of a discussion note.
  • discussion_id (Integer) -- The ID of a discussion.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def delete_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id)
  delete("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes/#{note_id}")
end

def merge_request(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) -

Parameters:
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def merge_request(project, id)
  get("/projects/#{url_encode project}/merge_requests/#{id}")
end

def merge_request_changes(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - The merge request's changes.

Parameters:
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def merge_request_changes(project, id)
  get("/projects/#{url_encode project}/merge_requests/#{id}/changes")
end

def merge_request_closes_issues(project_id, merge_request_iid)

Parameters:
  • iid (Integer) -- The internal ID of a merge request
  • project (Integer) -- The ID of a project
def merge_request_closes_issues(project_id, merge_request_iid)
  get("/projects/#{project_id}/merge_requests/#{merge_request_iid}/closes_issues")
end

def merge_request_commits(project, id)

Returns:
  • (Array) - The merge request's commits.

Parameters:
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def merge_request_commits(project, id)
  get("/projects/#{url_encode project}/merge_requests/#{id}/commits")
end

def merge_request_discussion(project, merge_request_id, discussion_id)

Returns:
  • (Gitlab::ObjectifiedHash) - The merge request discussion.

Parameters:
  • discussion_id (Integer) -- The ID of a discussion.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def merge_request_discussion(project, merge_request_id, discussion_id)
  get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}")
end

def merge_request_discussions(project, merge_request_id)

Returns:
  • (Gitlab::ObjectifiedHash) - List of the merge request discussions.

Parameters:
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def merge_request_discussions(project, merge_request_id)
  get("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions")
end

def merge_requests(project, options={})

Returns:
  • (Array) -

Options Hash: (**options)
  • :per_page (Integer) -- The number of results per page.
  • :page (Integer) -- The page number.

Parameters:
  • options (Hash) -- A customizable set of options.
  • project (Integer, String) -- The ID or name of a project.
def merge_requests(project, options={})
  get("/projects/#{url_encode project}/merge_requests", query: options)
end

def resolve_merge_request_discussion(project, merge_request_id, discussion_id, options)

Returns:
  • (Gitlab::ObjectifiedHash) - The merge request discussion.

Options Hash: (**options)
  • :resolved (Boolean) -- Resolve/unresolve the discussion.

Parameters:
  • options (Hash) -- A customizable set of options.
  • discussion_id (Integer) -- The ID of a discussion.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def resolve_merge_request_discussion(project, merge_request_id, discussion_id, options)
  put("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}", body: options)
end

def subscribe_to_merge_request(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about subscribed merge request.

Parameters:
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def subscribe_to_merge_request(project, id)
  post("/projects/#{url_encode project}/merge_requests/#{id}/subscribe")
end

def unsubscribe_from_merge_request(project, id)

Returns:
  • (Gitlab::ObjectifiedHash) - Information about unsubscribed merge request.

Parameters:
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def unsubscribe_from_merge_request(project, id)
  post("/projects/#{url_encode project}/merge_requests/#{id}/unsubscribe")
end

def update_merge_request(project, id, options={})

Returns:
  • (Gitlab::ObjectifiedHash) - Information about updated merge request.

Options Hash: (**options)
  • :state_event (String) -- New state (close|reopen|merge).
  • :assignee_id (Integer) -- The ID of a user to assign merge request.
  • :target_branch (String) -- The target branch name.
  • :source_branch (String) -- The source branch name.
  • :title (String) -- The title of a merge request.

Parameters:
  • options (Hash) -- A customizable set of options.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def update_merge_request(project, id, options={})
  put("/projects/#{url_encode project}/merge_requests/#{id}", body: options)
end

def update_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id, options)

Returns:
  • (Gitlab::ObjectifiedHash) - The merge request discussion note.

Options Hash: (**options)
  • :resolved (Boolean) -- Resolve/unresolve the note.
  • :body (String) -- The content of a discussion.

Parameters:
  • options (Hash) -- A customizable set of options.
  • note_id (Integer) -- The ID of a discussion note.
  • discussion_id (Integer) -- The ID of a discussion.
  • id (Integer) -- The ID of a merge request.
  • project (Integer, String) -- The ID or name of a project.
def update_merge_request_discussion_note(project, merge_request_id, discussion_id, note_id, options)
  put("/projects/#{url_encode project}/merge_requests/#{merge_request_id}/discussions/#{discussion_id}/notes/#{note_id}", body: options)
end

def user_merge_requests(options = {})

Returns:
  • (Array) -

Parameters:
  • options (Hash) -- A customizable set of options.
def user_merge_requests(options = {})
  get('/merge_requests', query: options)
end