Module: Legion::Extensions::Jira::Projects::Runners::Roles

Includes:
Helpers::Lex, Helpers::Client
Included in:
Client
Defined in:
lib/legion/extensions/jira/projects/runners/roles.rb

Instance Method Summary collapse

Methods included from Helpers::Client

#connection, #upload_connection

Instance Method Details

#add_role_actors(project_key:, role_id:, user_account_ids: [], group_names: []) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/legion/extensions/jira/projects/runners/roles.rb', line 32

def add_role_actors(project_key:, role_id:, user_account_ids: [], group_names: [], **)
  body = {}
  body[:user] =  unless .empty?
  body[:group] = group_names unless group_names.empty?
  resp = connection(**).post("/rest/api/3/project/#{project_key}/role/#{role_id}", body)
  { role: resp.body }
end

#get_project_role(project_key:, role_id:) ⇒ Object



18
19
20
21
# File 'lib/legion/extensions/jira/projects/runners/roles.rb', line 18

def get_project_role(project_key:, role_id:, **)
  resp = connection(**).get("/rest/api/3/project/#{project_key}/role/#{role_id}")
  { role: resp.body }
end

#list_project_roles(project_key:) ⇒ Object



13
14
15
16
# File 'lib/legion/extensions/jira/projects/runners/roles.rb', line 13

def list_project_roles(project_key:, **)
  resp = connection(**).get("/rest/api/3/project/#{project_key}/role")
  { roles: resp.body }
end

#remove_role_actor(project_key:, role_id:, user: nil, group: nil) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/legion/extensions/jira/projects/runners/roles.rb', line 40

def remove_role_actor(project_key:, role_id:, user: nil, group: nil, **)
  resp = connection(**).delete("/rest/api/3/project/#{project_key}/role/#{role_id}") do |req|
    req.params['user'] = user if user
    req.params['group'] = group if group
  end
  { removed: resp.status == 204, project_key: project_key, role_id: role_id }
end

#set_role_actors(project_key:, role_id:, user_account_ids: [], group_names: []) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/legion/extensions/jira/projects/runners/roles.rb', line 23

def set_role_actors(project_key:, role_id:, user_account_ids: [], group_names: [], **)
  body = {}
  body['atlassian-user-role-actor'] =  unless .empty?
  body['atlassian-group-role-actor'] = group_names unless group_names.empty?
  resp = connection(**).put("/rest/api/3/project/#{project_key}/role/#{role_id}",
                            { categorisedActors: body })
  { role: resp.body }
end