module Sonarqube::Client::Permissions

Defines methods related to permissions. @see SONAR_URL/web_api/api/permissions

Public Instance Methods

add_group_permission(options = {})
add_group_to_template(options = {}) click to toggle source

Add group to template.

@example Sonarqube.add_group_to_template({ groupName: 'New-Group', permission: 'user', templateName: 'test' })

@param [Hash] options A customizable set of options. @option options [String] :groupId Id of group. @option options [String] :groupName Name of group. @option options [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user @option options [String] :templateId Id of template. @option options [String] :templateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/add_group_to_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 41
def add_group_to_template(options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if options[:groupId].nil? && options[:groupName].nil?

  post('/api/permissions/add_group_to_template', body: options)
end
add_project_creator_to_template(permission, options = {}) click to toggle source

Add project creator to template.

@example Sonarqube.add_project_creator_to_template('issueadmin', { templateName: 'test' })

@param [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user @param [Hash] options A customizable set of options. @option options [String] :templateId Id of template. @option options [String] :templateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/add_project_creator_to_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 59
def add_project_creator_to_template(permission, options = {})
  raise ArgumentError, 'Missing required parameters' if permission.nil?

  post('/api/permissions/add_project_creator_to_template', body: { permission: permission }.merge!(options))
end
add_user_permission(login, permission, options = {})
Alias for: permission_add_user
add_user_to_template(login, permission, options = {}) click to toggle source

Add user to template.

@example Sonarqube.add_user_to_template({ 'new_user', 'issueadmin', { templateName: 'test' })

@param [String] :login Name of login user. @param [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user. @param [Hash] options A customizable set of options. @option options [String] :templateId Id of template. @option options [String] :templateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/add_user_to_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 98
def add_user_to_template(login, permission, options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if login.nil? && permission.nil?

  body = { login: login, permission: permission }.merge!(options)
  post('/api/permissions/add_user_to_template', body: body)
end
apply_template(options = {}) click to toggle source

Apply template.

@example Sonarqube.apply_template({ projectName: 'New-Group', templateName: 'test' })

@param [Hash] options A customizable set of options. @option options [String] :projectId Id of group. @option options [String] :projectName Name of group. @option options [String] :templateId Id of template. @option options [String] :templateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/apply_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 118
def apply_template(options = {})
  options.transform_keys(&:to_sym)

  post('/api/permissions/apply_template', body: options)
end
bulk_apply_template(options = {}) click to toggle source

Bulk apply template.

@example Sonarqube.bulk_apply_template({ templateName: 'test', projects: 'my_project,another_project' })

@param [Hash] options A customizable set of options. @option options [String] :analyzedBefore Filter the projects for which last analysis is older than the given date . @option options [String] :onProvisionedOnly Filter the projects that are provisioned. @option options [String] :projects Comma-separated list of project keys maximum 1000 @option options [String] :q serach project names that contain the supplied string and project keys that are exactly the same as the supplied string @option options [String] :qualifiers Comma-separated list of component qualifiers. Filter the results with the specified qualifiers. @option options [String] :templateId Id of template. @option options [String] :templateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/bulk_apply_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 139
def bulk_apply_template(options = {})
  options.transform_keys(&:to_sym)

  post('/api/permissions/bulk_apply_template', body: options)
end
create_template(name, description, project_key_pattern) click to toggle source

Create template.

@example Sonarqube.create_template('template_name', 'description', '.*.finance..*')

@param [String] :name Name of template. @param [String] :project_key_pattern Project key pattern. Must be a valid Java regular expression. @param [String] :description Description of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/create_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 155
def create_template(name, description, project_key_pattern)
  body = { name: name, description: description, projectKeyPattern: project_key_pattern }
  post('/api/permissions/create_template', body: body)
end
delete_template(options = {}) click to toggle source

Delete template.

@example Sonarqube.create_template({ templateName: 'template_name' })

@param [Hash] options A customizable set of options. @option options [String] :templateId Id of template. @option options [String] :templateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/delete_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 170
def delete_template(options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if options[:templateName].nil? && options[:templateId].nil?

  post('/api/permissions/delete_template', body: options)
end
list_group_permission(options = {})
permission_add_group(options = {}) click to toggle source

Add permission to a group.

@example Sonarqube.permissions_add_group({ groupName: 'New-Group', permission: 'user', projectKey: 'test' })

@param [Hash] options A customizable set of options. @option options [String] :groupId Id of group. @option options [String] :groupName Name of group. @option options [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user @option options [String] :projectId Id of project, only apply for project permissions. @option options [String] :projectKey Key of project, only apply for project permissions. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/add_group} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 20
def permission_add_group(options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if options[:groupId].nil? && options[:groupName].nil?

  post('/api/permissions/add_group', body: options)
end
Also aliased as: add_group_permission
permission_add_user(login, permission, options = {}) click to toggle source

Add permissions to user.

@example Sonarqube.permission_add_user('new_user', 'issueadmin', { projectKey: 'test' })

@param [String] :login Name of login user. @param [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user @param [Hash] options A customizable set of options. @option options [String] :projectId Id of project, only apply for project permissions. @option options [String] :projectKey Key of project, only apply for project permissions. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/add_user} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 77
def permission_add_user(login, permission, options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if login.nil? && permission.nil?

  body = { login: login, permission: permission }.merge!(options)
  post('/api/permissions/add_user', body: body)
end
Also aliased as: add_user_permission
permission_list_group(options = {}) click to toggle source

Lists the groups with their permissions

@example Sonarqube.permission_list_group({ q: 'test', projectsKey: 'project' })

@param [Hash] options A customizable set of options. @option options [String] :organization Key of organization, used when group name is set @option options [String] :p 1-based page number. @option options [String] :permission Possible values for global permissions or values for project permissions. @option options [String] :q Limit search to group names that contain the supplied string. @option options [String] :ps Page size. Must be greater than 0 and less or equal than 100 @option options [String] :projectId Id of project. @option options [String] :projectKey Key of project. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/groups?internal=true} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 230
def permission_list_group(options = {})
  options.transform_keys(&:to_sym)

  get('/api/permissions/groups', quey: options)
end
Also aliased as: list_group_permission
permission_remove_group(options = {}) click to toggle source

Remove permission to a group.

@example Sonarqube.permissions_add_group({ groupName: 'New-Group', permission: permission, projectKey: 'test' })

@param [Hash] options A customizable set of options. @option options [String] :groupId Id of group. @option options [String] :groupName Name of group. @option options [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user @option options [String] :projectId Id of project, only apply for project permissions. @option options [String] :projectKey Key of project, only apply for project permissions. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/remove_group} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 190
def permission_remove_group(options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if options[:groupId].nil? && options[:groupName].nil?

  post('/api/permissions/remove_group', body: options)
end
Also aliased as: remove_group_permission
remove_group_from_template(options = {}) click to toggle source

Remove group from template.

@example Sonarqube.remove_group_from_template({ groupName: 'New-Group', permission: 'permission', templateId: 'test' })

@param [Hash] options A customizable set of options. @option options [String] :groupId Id of group. @option options [String] :groupName Name of group. @option options [String] :permission Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user @option options [String] :TemplateId Id of template. @option options [String] :TemplateName Name of template. (Any provided options will be passed to Sonarqube. See {SONAR_URL/web_api/api/permissions/remove_group_from_template} @return [<Sonarqube::ObjectifiedHash>]

# File lib/sonarqube/client/permissions.rb, line 211
def remove_group_from_template(options = {})
  post('/api/permissions/remove_group_from_template', body: options)
end
remove_group_permission(options = {})