Module: Gitlab::Client::MergeRequestApprovals

Included in:
Gitlab::Client
Defined in:
lib/gitlab/client/merge_request_approvals.rb

Overview

Defines methods related to MR Approvals.

Instance Method Summary collapse

Instance Method Details

#approve_merge_request(project, merge_request, options = {}) ⇒ Gitlab::ObjectifiedHash

Approve a merge request

Examples:

Gitlab.approve_merge_request(1, 5)
Gitlab.approve_merge_request(1, 5, sha: 'fe678da')

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • merge_request(required) (Integer)

    The IID of a merge request.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :sha(optional) (String)

    The HEAD of the MR

Returns:



94
95
96
# File 'lib/gitlab/client/merge_request_approvals.rb', line 94

def approve_merge_request(project, merge_request, options = {})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approve", body: options)
end

#edit_merge_request_approvals(project, merge_request, options = {}) ⇒ Gitlab::ObjectifiedHash

Change configuration for approvals on a specific merge request.

Examples:

Gitlab.edit_merge_request_approvals(1, 5, approvals_required: 2)

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • merge_request(required) (Integer)

    The IID of a merge_request.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :approvals_required(required) (Integer)

    Approvals required before MR can be merged

Returns:



66
67
68
# File 'lib/gitlab/client/merge_request_approvals.rb', line 66

def edit_merge_request_approvals(project, merge_request, options = {})
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
end

#edit_merge_request_approvers(project, merge_request, options = {}) ⇒ Gitlab::ObjectifiedHash

Change allowed approvers and approver groups for a merge request

Examples:

Gitlab.edit_merge_request_approvers(1, 5, {approver_ids: [5], approver_groups: [1]})

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • merge_request(required) (Integer)

    The IID of a merge_request.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :approver_ids(optional) (Array)

    An array of User IDs that can approve MRs

  • :approver_group_ids(optional) (Array)

    An array of Group IDs whose members can approve MRs

Returns:



80
81
82
# File 'lib/gitlab/client/merge_request_approvals.rb', line 80

def edit_merge_request_approvers(project, merge_request, options = {})
  put("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals", body: options)
end

#edit_project_approvers(project, options = {}) ⇒ Gitlab::ObjectifiedHash

Change allowed approvers and approver groups for a project

Examples:

Gitlab.edit_project_approvers(1, {approver_ids: [5], approver_groups: [1]})

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :approver_ids(optional) (Array)

    An array of User IDs that can approve MRs

  • :approver_group_ids(optional) (Array)

    An array of Group IDs whose members can approve MRs

Returns:



41
42
43
# File 'lib/gitlab/client/merge_request_approvals.rb', line 41

def edit_project_approvers(project, options = {})
  put("/projects/#{url_encode project}/approvals", body: options)
end

#edit_project_merge_request_approvals(project, options = {}) ⇒ Gitlab::ObjectifiedHash

Change MR Approval Configuration for a project

Examples:

Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3})
Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3, reset_approvals_on_push: true})
Gitlab.edit_project_merge_request_approvals(1, {approvals_before_merge: 3, disable_overriding_approvers_per_merge_request: false})

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :approvals_before_merge(optional) (Integer)

    How many approvals are required before an MR can be merged

  • :reset_approvals_on_push(optional) (Boolean)

    Reset approvals on a new push

  • :disable_overriding_approvers_per_merge_request(optional) (Boolean)

    Allow/Disallow overriding approvers per MR

Returns:



28
29
30
# File 'lib/gitlab/client/merge_request_approvals.rb', line 28

def edit_project_merge_request_approvals(project, options = {})
  post("/projects/#{url_encode project}/approvals", body: options)
end

#merge_request_approvals(project, merge_request) ⇒ Gitlab::ObjectifiedHash

Get Configuration for approvals on a specific Merge Request.

Examples:

Gitlab.merge_request_approvals(1, 5)

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • merge_request(required) (Integer)

    The IID of a merge_request.

Returns:



53
54
55
# File 'lib/gitlab/client/merge_request_approvals.rb', line 53

def merge_request_approvals(project, merge_request)
  get("/projects/#{url_encode project}/merge_requests/#{merge_request}/approvals")
end

#project_merge_request_approvals(project) ⇒ Gitlab::ObjectifiedHash

Gets MR Approval Configuration for a project

Examples:

Gitlab.project_merge_request_approvals(1)

Parameters:

  • project (Integer)

    The ID of a project.

Returns:



12
13
14
# File 'lib/gitlab/client/merge_request_approvals.rb', line 12

def project_merge_request_approvals(project)
  get("/projects/#{url_encode project}/approvals")
end

#unapprove_merge_request(project, merge_request) ⇒ void

This method returns an undefined value.

Unapprove a merge request

Examples:

Gitlab.unapprove_merge_request(1, 5)

Parameters:

  • project(required) (Integer)

    The ID of a project.

  • merge_request(required) (Integer)

    The IID of a merge request.



106
107
108
# File 'lib/gitlab/client/merge_request_approvals.rb', line 106

def unapprove_merge_request(project, merge_request)
  post("/projects/#{url_encode project}/merge_requests/#{merge_request}/unapprove")
end