Class: Gitlab::Client
- Inherits:
-
API
- Object
- API
- Gitlab::Client
- Defined in:
- lib/gitlab_reviewbot/gitlab.rb
Instance Method Summary collapse
- #assign_mr_to_users(project_id, mr_iid, users) ⇒ Object
- #fetch_author_for_mr(project_id, mr_iid) ⇒ Object
- #fetch_mrs_requiring_review(project_id) ⇒ Object
- #fetch_users_for_group(group_name) ⇒ Object
- #users_with_pending_mr_review(project_id) ⇒ Object
Instance Method Details
#assign_mr_to_users(project_id, mr_iid, users) ⇒ Object
27 28 29 30 |
# File 'lib/gitlab_reviewbot/gitlab.rb', line 27 def assign_mr_to_users(project_id, mr_iid, users) user_ids = users.map(&:id) update_merge_request(project_id, mr_iid, 'assignee_ids' => user_ids) end |
#fetch_author_for_mr(project_id, mr_iid) ⇒ Object
32 33 34 35 |
# File 'lib/gitlab_reviewbot/gitlab.rb', line 32 def (project_id, mr_iid) res = merge_request(project_id, mr_iid) User.new(res..id, res..name) end |
#fetch_mrs_requiring_review(project_id) ⇒ Object
37 38 39 |
# File 'lib/gitlab_reviewbot/gitlab.rb', line 37 def fetch_mrs_requiring_review(project_id) merge_requests(project_id, :state => 'opened', :per_page => '100').select { |mr| mr.merge_status != 'can_be_merged' } end |
#fetch_users_for_group(group_name) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/gitlab_reviewbot/gitlab.rb', line 17 def fetch_users_for_group(group_name) group_id = search_group(group_name) return nil if group_id.nil? res = group_members(group_id) developer_access_level = 30 res.select { |u| u.state == 'active' && u.access_level >= developer_access_level }.map { |u| User.new(u.id, u.username) } end |
#users_with_pending_mr_review(project_id) ⇒ Object
41 42 43 44 45 |
# File 'lib/gitlab_reviewbot/gitlab.rb', line 41 def users_with_pending_mr_review(project_id) outstanding_mrs = fetch_mrs_requiring_review(project_id) outstanding_mrs.reduce([]) { |acc, mr| acc + mr.assignees} .map { |a| User.new(a['id'], a['username']) } end |