Module: Sonarqube::Client::Permissions

Included in:
Sonarqube::Client
Defined in:
lib/sonarqube/client/permissions.rb

Overview

Defines methods related to permissions.

Instance Method Summary collapse

Instance Method Details

#add_group_to_template(options = {}) ⇒ <Sonarqube::ObjectifiedHash>

Add group to template.

Sonarqube.add_group_to_template({ groupName: ‘New-Group’, permission: ‘user’, templateName: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/add_group_to_template

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :groupId (String)

    Id of group.

  • :groupName (String)

    Name of group.

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user

  • :templateId (String)

    Id of template.

  • :templateName (String)

    Name of template.

Returns:

Raises:

  • (ArgumentError)


41
42
43
44
45
46
# 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 = {}) ⇒ <Sonarqube::ObjectifiedHash>

Add project creator to template.

Sonarqube.add_project_creator_to_template(‘issueadmin’, { templateName: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/add_project_creator_to_template

Parameters:

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :templateId (String)

    Id of template.

  • :templateName (String)

    Name of template.

Returns:

Raises:

  • (ArgumentError)


59
60
61
62
63
# 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_to_template(login, permission, options = {}) ⇒ <Sonarqube::ObjectifiedHash>

Add user to template.

Sonarqube.add_user_to_template({ ‘new_user’, ‘issueadmin’, { templateName: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/add_user_to_template

Parameters:

  • :login (String)

    Name of login user.

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user.

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :templateId (String)

    Id of template.

  • :templateName (String)

    Name of template.

Returns:

Raises:

  • (ArgumentError)


98
99
100
101
102
103
104
# File 'lib/sonarqube/client/permissions.rb', line 98

def add_user_to_template(, permission, options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if .nil? && permission.nil?

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

#apply_template(options = {}) ⇒ <Sonarqube::ObjectifiedHash>

Apply template.

Sonarqube.apply_template({ projectName: ‘New-Group’, templateName: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/apply_template

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :projectId (String)

    Id of group.

  • :projectName (String)

    Name of group.

  • :templateId (String)

    Id of template.

  • :templateName (String)

    Name of template.

Returns:



118
119
120
121
122
# 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 = {}) ⇒ <Sonarqube::ObjectifiedHash>

Bulk apply template.

Sonarqube.bulk_apply_template({ templateName: ‘test’, projects: ‘my_project,another_project’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/bulk_apply_template

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :analyzedBefore (String)

    Filter the projects for which last analysis is older than the given date .

  • :onProvisionedOnly (String)

    Filter the projects that are provisioned.

  • :projects (String)

    Comma-separated list of project keys maximum 1000

  • :q (String)

    serach project names that contain the supplied string and project keys that are exactly the same as the supplied string

  • :qualifiers (String)

    Comma-separated list of component qualifiers. Filter the results with the specified qualifiers.

  • :templateId (String)

    Id of template.

  • :templateName (String)

    Name of template.

Returns:



139
140
141
142
143
# 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) ⇒ <Sonarqube::ObjectifiedHash>

Create template.

Sonarqube.create_template(‘template_name’, ‘description’, ‘.*.finance..*’)

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/create_template

Parameters:

  • :name (String)

    Name of template.

  • :project_key_pattern (String)

    Project key pattern. Must be a valid Java regular expression.

  • :description (String)

    Description of template.

Returns:



155
156
157
158
# 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 = {}) ⇒ <Sonarqube::ObjectifiedHash>

Delete template.

Sonarqube.create_template({ templateName: ‘template_name’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/delete_template

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :templateId (String)

    Id of template.

  • :templateName (String)

    Name of template.

Returns:

Raises:

  • (ArgumentError)


170
171
172
173
174
175
# 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

#permission_add_group(options = {}) ⇒ <Sonarqube::ObjectifiedHash> Also known as: add_group_permission

Add permission to a group.

Sonarqube.permissions_add_group({ groupName: ‘New-Group’, permission: ‘user’, projectKey: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/add_group

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :groupId (String)

    Id of group.

  • :groupName (String)

    Name of group.

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user

  • :projectId (String)

    Id of project, only apply for project permissions.

  • :projectKey (String)

    Key of project, only apply for project permissions.

Returns:

Raises:

  • (ArgumentError)


20
21
22
23
24
25
# 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

#permission_add_user(login, permission, options = {}) ⇒ <Sonarqube::ObjectifiedHash> Also known as: add_user_permission

Add permissions to user.

Sonarqube.permission_add_user(‘new_user’, ‘issueadmin’, { projectKey: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/add_user

Parameters:

  • :login (String)

    Name of login user.

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :projectId (String)

    Id of project, only apply for project permissions.

  • :projectKey (String)

    Key of project, only apply for project permissions.

Returns:

Raises:

  • (ArgumentError)


77
78
79
80
81
82
83
# File 'lib/sonarqube/client/permissions.rb', line 77

def permission_add_user(, permission, options = {})
  options.transform_keys(&:to_sym)
  raise ArgumentError, 'Missing required parameters' if .nil? && permission.nil?

  body = { login: , permission: permission }.merge!(options)
  post('/api/permissions/add_user', body: body)
end

#permission_list_group(options = {}) ⇒ <Sonarqube::ObjectifiedHash> Also known as: list_group_permission

Lists the groups with their permissions

Sonarqube.permission_list_group({ q: ‘test’, projectsKey: ‘project’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/groups?internal=true

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :organization (String)

    Key of organization, used when group name is set

  • :p (String)

    1-based page number.

  • :permission (String)

    Possible values for global permissions or values for project permissions.

  • :q (String)

    Limit search to group names that contain the supplied string.

  • :ps (String)

    Page size. Must be greater than 0 and less or equal than 100

  • :projectId (String)

    Id of project.

  • :projectKey (String)

    Key of project.

Returns:



230
231
232
233
234
# 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

#permission_remove_group(options = {}) ⇒ <Sonarqube::ObjectifiedHash> Also known as: remove_group_permission

Remove permission to a group.

Sonarqube.permissions_add_group({ groupName: ‘New-Group’, permission: permission, projectKey: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/remove_group

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :groupId (String)

    Id of group.

  • :groupName (String)

    Name of group.

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user

  • :projectId (String)

    Id of project, only apply for project permissions.

  • :projectKey (String)

    Key of project, only apply for project permissions.

Returns:

Raises:

  • (ArgumentError)


190
191
192
193
194
195
# 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

#remove_group_from_template(options = {}) ⇒ <Sonarqube::ObjectifiedHash>

Remove group from template.

Sonarqube.remove_group_from_template({ groupName: ‘New-Group’, permission: ‘permission’, templateId: ‘test’ })

(Any provided options will be passed to Sonarqube. See https://SONAR_URL/web_api/api/permissions/remove_group_from_template

Parameters:

  • options (Hash) (defaults to: {})

    A customizable set of options.

Options Hash (options):

  • :groupId (String)

    Id of group.

  • :groupName (String)

    Name of group.

  • :permission (String)

    Permission to asing to group. global permissions: admin, profileadmin, gateadmin, scan, provisioning | project permissions: admin, codeviewer, issueadmin, securityhotspotadmin, scan, user

  • :TemplateId (String)

    Id of template.

  • :TemplateName (String)

    Name of template.

Returns:



211
212
213
# File 'lib/sonarqube/client/permissions.rb', line 211

def remove_group_from_template(options = {})
  post('/api/permissions/remove_group_from_template', body: options)
end