Class: GitlabQuality::TestTooling::GitlabClient::IssuesClient
- Inherits:
-
GitlabClient
- Object
- GitlabClient
- GitlabQuality::TestTooling::GitlabClient::IssuesClient
show all
- Defined in:
- lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb
Overview
Constant Summary
collapse
- REPORTER_ACCESS_LEVEL =
20
Constants inherited
from GitlabClient
GitlabClient::MAX_RETRY_ATTEMPTS, GitlabClient::RETRY_BACK_OFF_DELAY
Instance Method Summary
collapse
-
#add_note_to_issue_discussion_as_thread(iid:, discussion_id:, body:) ⇒ Object
-
#assert_user_permission! ⇒ Object
-
#create_issue(title:, description:, labels:, issue_type: 'issue', assignee_id: nil, due_date: nil, confidential: false) ⇒ Object
-
#create_issue_note(iid:, note:) ⇒ Object
-
#edit_issue(iid:, options: {}) ⇒ Object
-
#edit_issue_note(issue_iid:, note_id:, note:) ⇒ Object
-
#find_issue_discussions(iid:) ⇒ Object
-
#find_issue_notes(iid:) ⇒ Object
-
#find_issues(iid: nil, options: {}, &select) ⇒ Object
-
#find_user_id(username:) ⇒ Object
-
#upload_file(file_fullpath:) ⇒ Object
#handle_gitlab_client_exceptions, #ignore_gitlab_client_exceptions, #initialize
Instance Method Details
#add_note_to_issue_discussion_as_thread(iid:, discussion_id:, body:) ⇒ Object
96
97
98
99
100
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 96
def add_note_to_issue_discussion_as_thread(iid:, discussion_id:, body:)
handle_gitlab_client_exceptions do
client.add_note_to_issue_discussion_as_thread(project, iid, discussion_id, body: body)
end
end
|
#assert_user_permission! ⇒ Object
29
30
31
32
33
34
35
36
37
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 29
def assert_user_permission!
handle_gitlab_client_exceptions do
member = client.team_member(project, user.id)
abort_not_permitted(member.access_level) if member.access_level < REPORTER_ACCESS_LEVEL
end
rescue Gitlab::Error::NotFound
abort_member_not_found(user)
end
|
#create_issue(title:, description:, labels:, issue_type: 'issue', assignee_id: nil, due_date: nil, confidential: false) ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 57
def create_issue(title:, description:, labels:, issue_type: 'issue', assignee_id: nil, due_date: nil, confidential: false)
attrs = {
issue_type: issue_type,
description: description,
labels: labels,
assignee_id: assignee_id,
due_date: due_date,
confidential: confidential
}.compact
handle_gitlab_client_exceptions do
client.create_issue(project, title, attrs)
end
end
|
#create_issue_note(iid:, note:) ⇒ Object
84
85
86
87
88
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 84
def create_issue_note(iid:, note:)
handle_gitlab_client_exceptions do
client.create_issue_note(project, iid, note)
end
end
|
#edit_issue(iid:, options: {}) ⇒ Object
72
73
74
75
76
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 72
def edit_issue(iid:, options: {})
handle_gitlab_client_exceptions do
client.edit_issue(project, iid, options)
end
end
|
#edit_issue_note(issue_iid:, note_id:, note:) ⇒ Object
90
91
92
93
94
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 90
def edit_issue_note(issue_iid:, note_id:, note:)
handle_gitlab_client_exceptions do
client.edit_issue_note(project, issue_iid, note_id, note)
end
end
|
#find_issue_discussions(iid:) ⇒ Object
51
52
53
54
55
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 51
def find_issue_discussions(iid:)
handle_gitlab_client_exceptions do
client.issue_discussions(project, iid, order_by: 'created_at', sort: 'asc').auto_paginate
end
end
|
#find_issue_notes(iid:) ⇒ Object
78
79
80
81
82
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 78
def find_issue_notes(iid:)
handle_gitlab_client_exceptions do
client.issue_notes(project, iid, order_by: 'created_at', sort: 'asc')&.auto_paginate
end
end
|
#find_issues(iid: nil, options: {}, &select) ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 39
def find_issues(iid: nil, options: {}, &select)
select ||= :itself
handle_gitlab_client_exceptions do
break [client.issue(project, iid)].select(&select) if iid
client.issues(project, options)
.auto_paginate
.select(&select)
end
end
|
#find_user_id(username:) ⇒ Object
102
103
104
105
106
107
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 102
def find_user_id(username:)
handle_gitlab_client_exceptions do
user = client.users(username: username)&.first
user['id'] unless user.nil?
end
end
|
#upload_file(file_fullpath:) ⇒ Object
109
110
111
112
113
|
# File 'lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb', line 109
def upload_file(file_fullpath:)
ignore_gitlab_client_exceptions do
client.upload_file(project, file_fullpath)
end
end
|