Class: GitlabQuality::TestTooling::GitlabClient::MergeRequestsClient
- Inherits:
-
GitlabClient
- Object
- GitlabClient
- GitlabQuality::TestTooling::GitlabClient::MergeRequestsClient
- Defined in:
- lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb
Direct Known Subclasses
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, reviewer_ids: []) ⇒ 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(id:, options: {}) ⇒ Object
- #merge_request_changed_files(merge_request_iid:) ⇒ Object
- #merge_request_diffs(merge_request_iid:) ⇒ Object
- #update_note(id:, note:, merge_request_iid:) ⇒ Object
Methods inherited from GitlabClient
#handle_gitlab_client_exceptions, #ignore_gitlab_client_exceptions, #initialize, #post_exception_to_slack
Constructor Details
This class inherits a constructor from GitlabQuality::TestTooling::GitlabClient::GitlabClient
Instance Method Details
#create_merge_request(title:, source_branch:, target_branch:, description:, labels:, assignee_id: nil, reviewer_ids: []) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 30 def create_merge_request(title:, source_branch:, target_branch:, description:, labels:, assignee_id: nil, reviewer_ids: []) attrs = { source_branch: source_branch, target_branch: target_branch, description: description, labels: labels, assignee_id: assignee_id, squash: true, remove_source_branch: true, reviewer_ids: reviewer_ids }.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
79 80 81 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 79 def create_note(note:, merge_request_iid:) client.create_merge_request_note(project, merge_request_iid, note) end |
#find(iid: nil, options: {}, &select) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 57 def find(iid: nil, options: {}, &select) select ||= :itself if iid find_merge_request(iid, &select) else find_merge_requests(, &select) end end |
#find_merge_request_changes(merge_request_iid:) ⇒ Object
18 19 20 21 22 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 18 def find_merge_request_changes(merge_request_iid:) handle_gitlab_client_exceptions do client.merge_request_changes(project, merge_request_iid) end end |
#find_note(body:, merge_request_iid:) ⇒ Object
73 74 75 76 77 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 73 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(id:, options: {}) ⇒ Object
53 54 55 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 53 def merge_request(id:, options: {}) client.merge_request(project, id, ) end |
#merge_request_changed_files(merge_request_iid:) ⇒ Object
67 68 69 70 71 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 67 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 |
#merge_request_diffs(merge_request_iid:) ⇒ Object
24 25 26 27 28 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 24 def merge_request_diffs(merge_request_iid:) handle_gitlab_client_exceptions do client.merge_request_diffs(project, merge_request_iid, per_page: 100) end end |
#update_note(id:, note:, merge_request_iid:) ⇒ Object
83 84 85 |
# File 'lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb', line 83 def update_note(id:, note:, merge_request_iid:) client.edit_merge_request_note(project, merge_request_iid, id, note) end |