sonarqube 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e680fc94b776928413282ec95fba32c8fd7e51c4b5bc87a4bcf55c1d52278243
4
- data.tar.gz: f50d05b8fdcae29c3012ece050e5a150b9ca34ccced8ae4d284a6a8cd7673695
3
+ metadata.gz: 36f0b9e09a5bfb9b12982dcd90c1d948b9b8f1f9208b7013df3f3e01abff6dd5
4
+ data.tar.gz: f40d3080cfe16333e36848d29085d1c2fd6931abc23c481eda5eaf9bda95235b
5
5
  SHA512:
6
- metadata.gz: 55b07744ea669d652069d03647ccb2e8474b27c68d259590a777ab2738163188f0ce1f8010f4c46c671a38964fa2221498c18e690c49c8b1dddda403699da3cb
7
- data.tar.gz: 379617da7805974463649b0d1379f08f9a6cc075ee840eb26b1466835e9e232e1b873420ec7d26352b8852c5ae5552ed30a0a18effdfb999af2658ab6cbf74ee
6
+ metadata.gz: d4386f5ea8015775811541b8eb725ae60b8489a8d1127ffa1445e95a4e01d0360001569897ab88f4691ad0b3c1cfe3973654c324f5bf011f36bc07f201e6216c
7
+ data.tar.gz: 4fe56aee93ffb543a2de3bbedac9560558265ab59f547225e23d8bfa4f7f9654150cb82927d026b9bad9c5e8b60a27100dceaf7b041ecea643b61aeb06fdf5c4
@@ -4,6 +4,14 @@
4
4
 
5
5
  Please see: https://github.com/psyreactor/sonarqube-ruby/releases
6
6
 
7
+ ### 1.1.0 (24/08/2020)
8
+
9
+ - New features
10
+ * Added support for users_token API
11
+ - Fix
12
+ * Fix Readme
13
+ * Add site documentation
14
+
7
15
  ### 1.0.2 (24/08/2020)
8
16
 
9
17
  - Fix
data/README.md CHANGED
@@ -88,28 +88,6 @@ project.to_hash
88
88
  # => {"project"=>{"key"=>"new_project", "name"=>"new_project", "qualifier"=>"TRK", "visibility"=>"public"}}
89
89
  ```
90
90
 
91
- #### Delete Project
92
- ```ruby
93
- project = Sonarqube.project_delete('test')
94
- # => #<Sonarqube::ObjectifiedHash:46220 {hash: {}}
95
- project.to_hash.empty?
96
- # => true
97
- ```
98
-
99
- #### Search Project
100
- ```ruby
101
- projects = Sonarqube.project_search()
102
- # => #<Sonarqube::ObjectifiedHash:46240 {hash: {"paging"=>{"pageIndex"=>1, "pageSize"=>100, "total"=>2}, "components"=>[{"organization"=>"default-organization", "key"=>"old_key", "name"=>"new_proyect", "qualifier"=>"TRK", "visibility"=>"private"}, {"organization"=>"default-organization", "key"=>"test", "name"=>"test", "qualifier"=>"TRK", "visibility"=>"public"}]}}
103
- projects.components.each do | project |
104
- puts "name: #{project.name}"
105
- puts "key: #{project.key}"
106
- end
107
- # name: new_proyect
108
- # key: old_key
109
- # name: test
110
- # key: test
111
- ```
112
-
113
91
  ### Users
114
92
 
115
93
  #### Create User
@@ -122,56 +100,9 @@ user.user.name
122
100
  # name_user
123
101
  ```
124
102
 
125
- #### Delete User
126
- ```ruby
127
- user = Sonarqube.user_delete('test')
128
- # => #<Sonarqube::ObjectifiedHash:46220 {hash: {}}
129
- user.to_hash.empty?
130
- # => true
131
- ```
132
-
133
- #### Search User
134
- ```ruby
135
- users = Sonarqube.users_search()
136
- # => #<Sonarqube::ObjectifiedHash:46340 {hash: {"paging"=>{"pageIndex"=>1, "pageSize"=>50, "total"=>5}, "users"=>[{"login"=>"admin", "name"=>"Administrator", "active"=>true, "groups"=>["sonar-administrators", "sonar-users"], "tokensCount"=>1, "local"=>true, "externalIdentity"=>"admin", "externalProvider"=>"sonarqube", "lastConnectionDate"=>"2020-08-22T23:09:14+0000"}, {"login"=>"new_user", "name"=>"key_new_user", "active"=>true, "groups"=>["sonar-users"], "tokensCount"=>0, "local"=>true, "externalIdentity"=>"new_user", "externalProvider"=>"sonarqube"}, {"login"=>"login_name", "name"=>"name_user", "active"=>true, "groups"=>["sonar-users"], "tokensCount"=>0, "local"=>true, "externalIdentity"=>"login_name", "externalProvider"=>"sonarqube"}, {"login"=>"test3", "name"=>"test QA", "active"=>true, "groups"=>["sonar-users"], "tokensCount"=>0, "local"=>true, "externalIdentity"=>"test3", "externalProvider"=>"sonarqube"}, {"login"=>"newlogin", "name"=>"test QA", "active"=>true, "groups"=>["sonar-users"], "tokensCount"=>0, "local"=>true, "externalIdentity"=>"newlogin", "externalProvider"=>"sonarqube"}]}}
137
- users.users.each do | user |
138
- puts "name: #{user.name}"
139
- puts "login: #{user.login}"
140
- puts "lastConection: #{user.lastConnectionDate}" if defined? user.lastConnectionDate
141
- end
142
- # name: Administrator
143
- # login: admin
144
- # lastConection: 2020-08-22T23:09:14+0000
145
- # name: key_new_user
146
- # login: new_user
147
- # name: name_user
148
- # login: login_name
149
- # name: test QA
150
- # login: test3
151
- # name: test QA
152
- # login: newlogin
153
- ```
154
103
 
155
104
  ### Groups
156
105
 
157
- #### Create Group
158
- ```ruby
159
- group = Sonarqube.create_group('New-Group', {description: 'Sonarqube group users'})
160
- # => #<Sonarqube::ObjectifiedHash:46500 {hash: {"group"=>{"uuid"=>"AXQYrrgCsrvdoo0YodNM", "organization"=>"default-organization", "name"=>"New-Group", "description"=>"Sonarqube group users", "membersCount"=>0, "default"=>false}}}
161
- group.group.uuid
162
- # AXQYrrgCsrvdoo0YodNM
163
- group.group.description
164
- # Sonarqube group users
165
- ```
166
-
167
- #### Delete Group
168
- ```ruby
169
- group = Sonarqube.group_delete('New-Group')
170
- # => #<Sonarqube::ObjectifiedHash:46220 {hash: {}}
171
- group.to_hash.empty?
172
- # => true
173
- ```
174
-
175
106
  #### Search Group
176
107
  ```ruby
177
108
  groups = Sonarqube.search_groups({ q: 'sonar-users' })
@@ -8,6 +8,7 @@ module Sonarqube
8
8
  # Please keep in alphabetical order
9
9
  include Groups
10
10
  include Projects
11
+ include Tokens
11
12
  include Users
12
13
 
13
14
  # Text representation of the client, masking private token.
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Sonarqube::Client
4
+ # Defines methods related to tokens.
5
+ # @see https://SONAR_URL/web_api/api/user_tokens
6
+ module Tokens
7
+ # Create token for user.
8
+ #
9
+ # @example
10
+ # Sonarqube.create_token('name_token')
11
+ # Sonarqube.create_token('name_token', 'login_name')
12
+ #
13
+ # @param [String] name (required) Token name.
14
+ # @param [String] login (optional) Login user name.
15
+ # @return [Sonarqube::ObjectifiedHash]
16
+ def create_token(name, login = nil)
17
+ raise ArgumentError, 'Missing required parameters' if name.nil?
18
+
19
+ body = { name: name }
20
+ body = { login: login }.merge!(body) unless login.nil?
21
+ post('/api/user_tokens/generate', body: body)
22
+ end
23
+ alias token_create create_token
24
+
25
+ # Revoke a token.
26
+ #
27
+ # @example
28
+ # Sonarqube.revoke_token('new-group')
29
+ # Sonarqube.revoke_token('sonarqube', { description: 'New Sonarqube project' })
30
+ #
31
+ # @param [String] name (required) Token name.
32
+ # @param [String] login (optional) Login user name.
33
+ # @return [Sonarqube::ObjectifiedHash] Empty hash response.
34
+ def revoke_token(name, login = nil)
35
+ raise ArgumentError, 'Missing required parameters' if name.nil?
36
+
37
+ body = { name: name }
38
+ body = { login: login }.merge!(body) unless login.nil?
39
+ post('/api/user_tokens/revoke', body: body)
40
+ end
41
+ alias token_revoke revoke_token
42
+
43
+ # List token for user.
44
+ #
45
+ # @example
46
+ # Sonarqube.list_token('login')
47
+ #
48
+ # @param [String] login (required) The login name of user
49
+ # @return [Sonarqube::ObjectifiedHash].
50
+ def list_tokens(login)
51
+ raise ArgumentError, 'Missing required parameters' if login.nil?
52
+
53
+ get('/api/user_tokens/search', query: { login: login })
54
+ end
55
+ alias tokens_list list_tokens
56
+ end
57
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sonarqube
4
- VERSION = '1.0.2'
4
+ VERSION = '1.1.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sonarqube
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mariani Lucas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-24 00:00:00.000000000 Z
11
+ date: 2020-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -107,6 +107,7 @@ files:
107
107
  - lib/sonarqube/client.rb
108
108
  - lib/sonarqube/client/groups.rb
109
109
  - lib/sonarqube/client/projects.rb
110
+ - lib/sonarqube/client/tokens.rb
110
111
  - lib/sonarqube/client/users.rb
111
112
  - lib/sonarqube/configuration.rb
112
113
  - lib/sonarqube/error.rb