module Gitlab::Client::MergeRequestApprovals

def approve_merge_request(project, merge_request, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval configuration information about the project

Options Hash: (**options)
  • :sha(optional) (String) -- The HEAD of the MR

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge request.
  • project(required) (Integer) -- The ID of a project.
def approve_merge_request(project, merge_request, options = {})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approve", body: options)
end

def create_merge_request_level_rule(project, merge_request, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - New MR level approval rule

Options Hash: (**options)
  • :group_ids(optional) (Array) -- The ids of groups as approvers
  • :user_ids(optional) (Array) -- The ids of users as approvers
  • :approval_project_rule_id(optional) (Integer) -- The ID of a project-level approval rule
  • :approvals_required(required) (Integer) -- The number of required approvals for this rule
  • :name(required) (String) -- The name of the approval rule

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge request.
  • project(required) (Integer) -- The ID of a project.
def create_merge_request_level_rule(project, merge_request, options = {})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approval_rules", body: options)
end

def create_project_merge_request_approval_rule(project, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - New MR approval rule

Options Hash: (**options)
  • :protected_branch_ids(optional) (Array) -- The ids of protected branches to scope the rule by
  • :group_ids(optional) (Array) -- The ids of groups as approvers
  • :user_ids(optional) (Array) -- The ids of users as approvers
  • :approvals_required(required) (Integer) -- The number of required approvals for this rule
  • :name(required) (String) -- The name of the approval rule

Parameters:
  • project(required) (Integer) -- The ID of a project.
def create_project_merge_request_approval_rule(project, options = {})
  post("/projects/#{url_encode project}/approval_rules", body: options)
end

def delete_merge_request_level_rule(project, merge_request, appr_rule_id)

Returns:
  • (void) - This API call returns an empty response body

Parameters:
  • appr_rule_id(required) (Integer) -- The ID of a approval rule
  • merge_request(required) (Integer) -- The IID of a merge request.
  • project(required) (Integer) -- The ID of a project.
def delete_merge_request_level_rule(project, merge_request, appr_rule_id)
  delete("/projects/#{url_encode project}/merge_requests/#{merge_request}/approval_rules/#{appr_rule_id}")
end

def delete_project_merge_request_approval_rule(project, approval_rule_id)

Returns:
  • (void) - This API call returns an empty response body

Parameters:
  • approval_rule_id(required) (Integer) -- The ID of a approval rule
  • project(required) (Integer) -- The ID of a project.
def delete_project_merge_request_approval_rule(project, approval_rule_id)
  delete("/projects/#{url_encode project}/approval_rules/#{approval_rule_id}")
end

def edit_merge_request_approvals(project, merge_request, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - Updated MR approval configuration information about the merge request

Options Hash: (**options)
  • :approvals_required(required) (Integer) -- Approvals required before MR can be merged

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge_request.
  • project(required) (Integer) -- The ID of a project.
def edit_merge_request_approvals(project, merge_request, options = {})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
end

def edit_merge_request_approvers(project, merge_request, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval configuration information about the project

Options Hash: (**options)
  • :approver_group_ids(required, (Array) -- nil if none) An array of Group IDs whose members can approve MRs
  • :approver_ids(required, (Array) -- nil if none) An array of User IDs that can approve MRs

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge_request.
  • project(required) (Integer) -- The ID of a project.

Deprecated:
  • Since Gitlab 13.12 /approvers endpoints are removed!!!
def edit_merge_request_approvers(project, merge_request, options = {})
  put("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvers", body: options)
end

def edit_project_approvers(project, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval configuration information about the project

Options Hash: (**options)
  • :approver_group_ids(required, (Array) -- nil if none) An array of Group IDs whose members can approve MRs
  • :approver_ids(required, (Array) -- nil if none) An array of User IDs that can approve MRs

Parameters:
  • project(required) (Integer) -- The ID of a project.

Deprecated:
  • Since Gitlab 13.12 /approvers endpoints are removed!!!
def edit_project_approvers(project, options = {})
  put("/projects/#{url_encode project}/approvers", body: options)
end

def edit_project_merge_request_approvals(project, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval configuration information about the project

Options Hash: (**options)
  • :disable_overriding_approvers_per_merge_request(optional) (Boolean) -- Allow/Disallow overriding approvers per MR
  • :reset_approvals_on_push(optional) (Boolean) -- Reset approvals on a new push
  • :approvals_before_merge(optional) (Integer) -- How many approvals are required before an MR can be merged

Parameters:
  • project(required) (Integer) -- The ID of a project.
def edit_project_merge_request_approvals(project, options = {})
  post("/projects/#{url_encode project}/approvals", body: options)
end

def merge_request_approval_state(project, id)

Returns:
  • (Array) -

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

def merge_request_approvals(project, merge_request)

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval configuration information about the merge request

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge_request.
  • project(required) (Integer) -- The ID of a project.
def merge_request_approvals(project, merge_request)
  get("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals")
end

def merge_request_level_rule(project, merge_request)

Returns:
  • (Gitlab::ObjectifiedHash) - New MR level approval rule

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge request.
  • project(required) (Integer) -- The ID of a project.
def merge_request_level_rule(project, merge_request)
  get("/projects/#{url_encode project}/merge_requests/#{merge_request}/approval_rules")
end

def project_merge_request_approval_rules(project)

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval rules for the project

Parameters:
  • project (Integer) -- The ID of a project.
def project_merge_request_approval_rules(project)
  get("/projects/#{url_encode project}/approval_rules")
end

def project_merge_request_approvals(project)

Returns:
  • (Gitlab::ObjectifiedHash) - MR approval configuration information about the project

Parameters:
  • project (Integer) -- The ID of a project.
def project_merge_request_approvals(project)
  get("/projects/#{url_encode project}/approvals")
end

def unapprove_merge_request(project, merge_request, options = {})

Returns:
  • (void) - This API call returns an empty response body.

Options Hash: (**options)
  • :sudo(optional) (String) -- The username of the user you want to remove the approval for

Parameters:
  • merge_request(required) (Integer) -- The IID of a merge request.
  • project(required) (Integer) -- The ID of a project.
def unapprove_merge_request(project, merge_request, options = {})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/unapprove", body: options)
end

def update_merge_request_level_rule(project, merge_request, appr_rule_id, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - Updated MR level approval rule

Options Hash: (**options)
  • :group_ids(optional) (Array) -- The ids of groups as approvers
  • :user_ids(optional) (Array) -- The ids of users as approvers
  • :approvals_required(required) (Integer) -- The number of required approvals for this rule
  • :name(required) (String) -- The name of the approval rule

Parameters:
  • appr_rule_id(required) (Integer) -- The ID of a approval rule
  • merge_request(required) (Integer) -- The IID of a merge request.
  • project(required) (Integer) -- The ID of a project.
def update_merge_request_level_rule(project, merge_request, appr_rule_id, options = {})
  put("/projects/#{url_encode project}/merge_requests/#{merge_request}/approval_rules/#{appr_rule_id}", body: options)
end

def update_project_merge_request_approval_rule(project, approval_rule_id, options = {})

Returns:
  • (Gitlab::ObjectifiedHash) - Updated MR approval rule

Options Hash: (**options)
  • :protected_branch_ids(optional) (Array) -- The ids of protected branches to scope the rule by
  • :group_ids(optional) (Array) -- The ids of groups as approvers
  • :user_ids(optional) (Array) -- The ids of users as approvers
  • :approvals_required(required) (Integer) -- The number of required approvals for this rule
  • :name(required) (String) -- The name of the approval rule

Parameters:
  • approval_rule_id(required) (Integer) -- The ID of a project Approval Rule
  • project(required) (Integer) -- The ID of a project.
def update_project_merge_request_approval_rule(project, approval_rule_id, options = {})
  put("/projects/#{url_encode project}/approval_rules/#{approval_rule_id}", body: options)
end