Class: GitlabQuality::TestTooling::GitlabClient::MergeRequestsClient
- Inherits:
-
GitlabClient
- Object
- GitlabClient
- GitlabQuality::TestTooling::GitlabClient::MergeRequestsClient
show all
- Defined in:
- lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb
Constant Summary
Constants inherited
from GitlabClient
GitlabClient::MAX_RETRY_ATTEMPTS, GitlabClient::RETRY_BACK_OFF_DELAY
Instance Method Summary
collapse
-
#create_merge_request(title:, source_branch:, target_branch:, description:, labels:, assignee_id: nil) ⇒ Object
-
#create_note(note:, merge_request_iid:) ⇒ Object
-
#find(iid: nil, options: {}, &select) ⇒ Object
-
#find_merge_request_changes(merge_request_iid:) ⇒ Object
-
#find_note(body:, merge_request_iid:) ⇒ Object
-
#merge_request_changed_files(merge_request_iid:) ⇒ Object
-
#update_note(id:, note:, merge_request_iid:) ⇒ Object
#handle_gitlab_client_exceptions, #ignore_gitlab_client_exceptions, #initialize
Instance Method Details
#create_merge_request(title:, source_branch:, target_branch:, description:, labels:, assignee_id: nil) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 11
def create_merge_request(title:, source_branch:, target_branch:, description:, labels:, assignee_id: nil)
attrs = {
source_branch: source_branch,
target_branch: target_branch,
description: description,
labels: labels,
assignee_id: assignee_id,
squash: true,
remove_source_branch: true
}.compact
merge_request = handle_gitlab_client_exceptions do
client.create_merge_request(project,
title,
attrs)
end
Runtime::Logger.debug("Created merge request #{merge_request['iid']} (#{merge_request['web_url']})") if merge_request
merge_request
end
|
#create_note(note:, merge_request_iid:) ⇒ Object
55
56
57
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 55
def create_note(note:, merge_request_iid:)
client.create_merge_request_note(project, merge_request_iid, note)
end
|
#find(iid: nil, options: {}, &select) ⇒ Object
33
34
35
36
37
38
39
40
41
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 33
def find(iid: nil, options: {}, &select)
select ||= :itself
if iid
find_merge_request(iid, &select)
else
find_merge_requests(options, &select)
end
end
|
#find_merge_request_changes(merge_request_iid:) ⇒ Object
7
8
9
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 7
def find_merge_request_changes(merge_request_iid:)
client.merge_request_changes(project, merge_request_iid)
end
|
#find_note(body:, merge_request_iid:) ⇒ Object
49
50
51
52
53
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 49
def find_note(body:, merge_request_iid:)
client.merge_request_notes(project, merge_request_iid, per_page: 100).auto_paginate.find do |mr_note|
mr_note['body'] =~ /#{body}/
end
end
|
#merge_request_changed_files(merge_request_iid:) ⇒ Object
43
44
45
46
47
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 43
def merge_request_changed_files(merge_request_iid:)
find_merge_request_changes(merge_request_iid: merge_request_iid)["changes"].map do |change|
change["new_path"]
end
end
|
#update_note(id:, note:, merge_request_iid:) ⇒ Object
59
60
61
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 59
def update_note(id:, note:, merge_request_iid:)
client.edit_merge_request_note(project, merge_request_iid, id, note)
end
|