nexus_api 1.4.0 → 2.0.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: 593a1c9c8f0ae411f0dceb74937549defaa861aed877a911363535ef08c1666c
4
- data.tar.gz: 041e2a1f1acc3955688d56fc840a41c2b8f337499c0f7bfa751eff7fecd73ba5
3
+ metadata.gz: 8cef507212dc118ed642feb046f02507b8d3d1dd5f6ef82ea575debf5f9ec435
4
+ data.tar.gz: d2cc63846f5ad0957d06ff7a2d1f894aebc43cd02f1897bdd8781ca13d755cb3
5
5
  SHA512:
6
- metadata.gz: 7e5b2a098e126a0e5d80819949ad50e78be80ef3ba69128e1a00e1cb15963baa69922acb811198f0abc11846a2a677dcbfd5eb471774424809afa64e51aa0b86
7
- data.tar.gz: bb214d0d407c604860e63eadd0bf489a7b61d6b9d1cadf3d639f8d0212d3ad53ae9e8f916b55efdfd5881b3140ba084656282fd4028dec13a40233f8f55c7633
6
+ metadata.gz: 5b5ed7626a93a6c8da54c4147dc55d8dd1cf7daa85af4397866a8942489c1ac4374495a66450a26f4f3b54e2ff55eb2f9931252445fd40b610c4f2f2df9475e7
7
+ data.tar.gz: 6b1a560d2f14f54d481c97c776c53980acbd8a99c203aa27ea933a0f90fcabad05257553332804474bd22a2ed23507b8f5d0a2c39e1316c4147b86a59cda9824
@@ -5,6 +5,52 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
 
8
+ ## [2.0.0](https://github.com/Cisco-AMP/nexus_api/compare/v1.6.1...v2.0.0) - 2020-07-27
9
+ ### Added
10
+ - Fully implemented create methods for group, hosted, and proxy type repository in the following formats:
11
+ - docker
12
+ - maven
13
+ - npm
14
+ - pypi
15
+ - raw
16
+ - rubygems
17
+ - yum
18
+
19
+
20
+ ### Changed
21
+ - Method signature for `NexusAPI::API.create_repository_docker_hosted()`
22
+ - Method signature for `NexusAPI::API.create_repository_maven_hosted()`
23
+ - Method signature for `NexusAPI::API.create_repository_npm_hosted()`
24
+ - Method signature for `NexusAPI::API.create_repository_pypi_hosted()`
25
+ - Method signature for `NexusAPI::API.create_repository_raw_hosted()`
26
+ - Method signature for `NexusAPI::API.create_repository_rubygems_hosted()`
27
+ - Method signature for `NexusAPI::API.create_repository_yum_hosted()`
28
+
29
+
30
+ ## [1.6.1](https://github.com/Cisco-AMP/nexus_api/compare/v1.6.0...v1.6.1) - 2020-07-20
31
+ ### Fixed
32
+ - Parameters for tag creation were being JSON encoded twice resulting in data Nexus could not parse
33
+
34
+
35
+ ## [1.6.0](https://github.com/Cisco-AMP/nexus_api/compare/v1.5.0...v1.6.0) - 2020-07-20
36
+ ### Added
37
+ - `create_repository_raw_hosted()`
38
+ - `create_repository_rubygems_hosted()`
39
+
40
+
41
+ ## [1.5.0](https://github.com/Cisco-AMP/nexus_api/compare/v1.4.1...v1.5.0) - 2020-06-10
42
+ ### Added
43
+ - New methods around the `privileges` endpoint
44
+ - New methods around the `roles` endpoint
45
+ - New methods around the `users` endpoint
46
+ - New `list_all_*` methods for endpoints that paginate so the user doesn't have to page through results themselves if they just want all the raw data
47
+
48
+
49
+ ## [1.4.1](https://github.com/Cisco-AMP/nexus_api/compare/v1.4.0...v1.4.1) - 2020-05-08
50
+ ### Changed
51
+ - Error reporting to be more descriptive
52
+
53
+
8
54
  ## [1.4.0](https://github.com/Cisco-AMP/nexus_api/compare/v1.3.0...v1.4.0) - 2020-05-05
9
55
  ### Added
10
56
  - Optional `tag` parameter to `associate_tag()` and `delete_associated_tag()` methods
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nexus_api (1.4.0)
4
+ nexus_api (2.0.0)
5
5
  bundler (~> 2)
6
6
  docker-api (~> 1.34.2)
7
7
  dotenv (~> 2.7.5)
@@ -15,7 +15,7 @@ GEM
15
15
  specs:
16
16
  addressable (2.7.0)
17
17
  public_suffix (>= 2.0.2, < 5.0)
18
- coderay (1.1.2)
18
+ coderay (1.1.3)
19
19
  crack (0.4.3)
20
20
  safe_yaml (~> 1.0.0)
21
21
  diff-lcs (1.3)
@@ -34,7 +34,7 @@ GEM
34
34
  method_source (0.9.2)
35
35
  mime-types (3.3.1)
36
36
  mime-types-data (~> 3.2015)
37
- mime-types-data (3.2020.0425)
37
+ mime-types-data (3.2020.0512)
38
38
  multi_json (1.14.1)
39
39
  netrc (0.11.0)
40
40
  pry (0.12.2)
@@ -84,4 +84,4 @@ DEPENDENCIES
84
84
  webmock (~> 3.8)
85
85
 
86
86
  BUNDLED WITH
87
- 2.0.2
87
+ 2.1.4
data/README.md CHANGED
@@ -5,10 +5,10 @@ A ruby gem that wraps the [Sonatype Nexus Repository Manager 3](https://help.son
5
5
  ## Latest Version Tested
6
6
  Title | Value
7
7
  ---|---
8
- **Version** | `3.22.0-02`
8
+ **Version** | `3.24.0-02`
9
9
  **Edition** | `PRO`
10
- **Build Revision** | `140e045ce3cdd3f35e6f9d13127d7299d21f7251`
11
- **Build Timestamp** | `2020-03-27-1616-27700`
10
+ **Build Revision** | `302d6f23f1414581162efaf0fa7b4d81dbf9b251`
11
+ **Build Timestamp** | `2020-06-03-2332-51567`
12
12
 
13
13
 
14
14
  ## Installation
@@ -59,38 +59,177 @@ api = NexusAPI::API.new(
59
59
  username: NEXUS_USERNAME,
60
60
  password: NEXUS_PASSWORD,
61
61
  hostname: NEXUS_HOSTNAME,
62
- docker_pull_hostname: DOCKER_PUSH_HOSTNAME, # Optional
63
- docker_push_hostname: DOCKER_PULL_HOSTNAME, # Optional
62
+ docker_pull_hostname: DOCKER_PULL_HOSTNAME, # Optional
63
+ docker_push_hostname: DOCKER_PUSH_HOSTNAME, # Optional
64
64
  config: "team_configs/#{CONFIG_NAME}", # Optional
65
65
  )
66
66
  # NOTE: All Docker commands will fail if the docker hostnames are not initialized
67
67
 
68
+
69
+ # You can create various types of repositories in different formats
70
+ api.create_repository_docker_group(
71
+ name: REPOSITORY_NAME,
72
+ members: REPOSITORY_MEMBERS,
73
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
74
+ )
75
+ api.create_repository_docker_hosted(
76
+ name: REPOSITORY_NAME,
77
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
78
+ )
79
+ api.create_repository_docker_proxy(
80
+ name: REPOSITORY_NAME,
81
+ remote_url: URL_TO_PROXY,
82
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
83
+ )
84
+
85
+ api.create_repository_maven_group(
86
+ name: REPOSITORY_NAME,
87
+ members: REPOSITORY_MEMBERS,
88
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
89
+ )
90
+ api.create_repository_maven_hosted(
91
+ name: REPOSITORY_NAME,
92
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
93
+ )
94
+ api.create_repository_maven_proxy(
95
+ name: REPOSITORY_NAME,
96
+ remote_url: URL_TO_PROXY,
97
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
98
+ )
99
+
100
+ api.create_repository_npm_group(
101
+ name: REPOSITORY_NAME,
102
+ members: REPOSITORY_MEMBERS,
103
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
104
+ )
105
+ api.create_repository_npm_hosted(
106
+ name: REPOSITORY_NAME,
107
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
108
+ )
109
+ api.create_repository_npm_proxy(
110
+ name: REPOSITORY_NAME,
111
+ remote_url: URL_TO_PROXY,
112
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
113
+ )
114
+
115
+ api.create_repository_pypi_group(
116
+ name: REPOSITORY_NAME,
117
+ members: REPOSITORY_MEMBERS,
118
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
119
+ )
120
+ api.create_repository_pypi_hosted(
121
+ name: REPOSITORY_NAME,
122
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
123
+ )
124
+ api.create_repository_pypi_proxy(
125
+ name: REPOSITORY_NAME,
126
+ remote_url: URL_TO_PROXY,
127
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
128
+ )
129
+
130
+ api.create_repository_raw_group(
131
+ name: REPOSITORY_NAME,
132
+ members: REPOSITORY_MEMBERS,
133
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
134
+ )
135
+ api.create_repository_raw_hosted(
136
+ name: REPOSITORY_NAME,
137
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
138
+ )
139
+ api.create_repository_raw_proxy(
140
+ name: REPOSITORY_NAME,
141
+ remote_url: URL_TO_PROXY,
142
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
143
+ )
144
+
145
+ api.create_repository_rubygems_group(
146
+ name: REPOSITORY_NAME,
147
+ members: REPOSITORY_MEMBERS,
148
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
149
+ )
150
+ api.create_repository_rubygems_hosted(
151
+ name: REPOSITORY_NAME,
152
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
153
+ )
154
+ api.create_repository_rubygems_proxy(
155
+ name: REPOSITORY_NAME,
156
+ remote_url: URL_TO_PROXY,
157
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
158
+ )
159
+
160
+ api.create_repository_yum_group(
161
+ name: REPOSITORY_NAME,
162
+ members: REPOSITORY_MEMBERS,
163
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
164
+ )
165
+ api.create_repository_yum_hosted(
166
+ name: REPOSITORY_NAME,
167
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
168
+ )
169
+ api.create_repository_yum_proxy(
170
+ name: REPOSITORY_NAME,
171
+ remote_url: URL_TO_PROXY,
172
+ options: HASH_OF_REPOSITORY_OPTIONS # Optional
173
+ )
174
+
175
+
68
176
  # You can query information through the list methods
69
- api.list_repositories
70
- api.list_repository_names
71
- api.list_assets(repository: REPOSITORY_NAME)
177
+ api.list_all_assets(repository: REPOSITORY_NAME)
178
+ api.list_assets(repository: REPOSITORY_NAME, paginate: BOOLEAN)
72
179
  api.list_asset(id: ASSET_ID)
73
- api.list_components(repository: REPOSITORY_NAME)
180
+
181
+ api.list_all_components(repository: REPOSITORY_NAME)
182
+ api.list_components(repository: REPOSITORY_NAME, paginate: BOOLEAN)
74
183
  api.list_component(id: ASSET_ID)
184
+
185
+ api.list_privileges
186
+ api.list_privilege(privilege_id: ID)
187
+
188
+ api.list_repositories
189
+ api.list_repository_names
190
+
191
+ api.list_roles
192
+ api.list_role(id: ROLE_ID)
193
+
75
194
  api.list_scripts
76
- api.list_tags
195
+
196
+ api.list_all_tags
197
+ api.list_tags(paginate: BOOLEAN)
198
+
199
+ api.list_users
200
+
77
201
 
78
202
  # You can search for an asset by its name
79
203
  # Optionally, you can pass in additional fields to filter the results
204
+ api.search_all_assets(
205
+ name: ASSET_NAME,
206
+ format: REPOSITORY_FORMAT, # Optional
207
+ repository: REPOSITORY_NAME, # Optional
208
+ sha1: SHA1, # Optional
209
+ version: VERSION, # Optional
210
+ )
211
+ # You can also paginate through the results if you want to do some additional filtering
80
212
  api.search_asset(
81
213
  name: ASSET_NAME,
82
214
  format: REPOSITORY_FORMAT, # Optional
83
215
  repository: REPOSITORY_NAME, # Optional
84
216
  sha1: SHA1, # Optional
85
217
  version: VERSION, # Optional
218
+ paginate: BOOLEAN # Optional
86
219
  )
87
220
 
221
+
88
222
  # The following endpoints will paginate:
89
223
  # - list_assets
90
224
  # - list_components
91
225
  # - list_tags
92
226
  # - search_asset
93
- # You can use the following pattern to page through each method:
227
+ # Or you can use the following methods to automatically gather data from all pages for you:
228
+ # - list_all_assets
229
+ # - list_all_components
230
+ # - list_all_tags
231
+ # - search_all_assets
232
+ # Or you can use the following pattern to page through if additional processing is desired:
94
233
  set = Array.new.tap do |set|
95
234
  loop do
96
235
  set.concat(api.METHOD_YOU_WANT(ARGUMENTS, paginate: true))
@@ -98,9 +237,11 @@ set = Array.new.tap do |set|
98
237
  end
99
238
  end
100
239
 
240
+
101
241
  # You can move all components that are tagged to a new destination
102
242
  api.move_components_to(destination: DESTINATION, tag: TAG)
103
243
 
244
+
104
245
  # You can download an asset by using its asset_id
105
246
  # Optionally, you can rename the file on download
106
247
  api.download(
@@ -108,6 +249,7 @@ api.download(
108
249
  name: NEW_FILE_NAME, # Optional
109
250
  )
110
251
 
252
+
111
253
  # Different asset types require differing information to be uploaded
112
254
  # Optionally, you can tag the component provided the tag already exists
113
255
  api.upload_maven_component(
@@ -146,12 +288,14 @@ api.upload_yum_component(
146
288
  tag: TAG, # Optional
147
289
  )
148
290
 
291
+
149
292
  # Docker is a special case and uses the local Docker daemon
150
293
  # If this daemon is not installed and running these methods will fail
151
294
  # NOTE: Docker login/logout is handled as part of the docker methods
152
295
  api.download_docker_component(image: IMAGE_NAME, tag: DOCKER_TAG)
153
296
  api.upload_docker_component(image: IMAGE_NAME, tag: DOCKER_TAG)
154
297
 
298
+
155
299
  # You can create/delete tags and associate/disassociate them from components
156
300
  # (we use the SHA1 rather than the file name because the Nexus search is inconsistent)
157
301
  api.create_tag(name: TAG)
@@ -159,10 +303,12 @@ api.associate_tag(name: TAG, sha1: SHA1_SUM, repository: REPOSITORY_NAME)
159
303
  api.delete_associated_tag(name: TAG, sha1: SHA1_SUM, repository: REPOSITORY_NAME)
160
304
  api.delete_tag(name: TAG)
161
305
 
306
+
162
307
  # You can query the Nexus status
163
308
  api.status
164
309
  api.status_writable
165
310
 
311
+
166
312
  # Using an asset's URL you can gather its filesize as a String
167
313
  api.get_asset_size(asset_url: URL)
168
314
  ```
data/bin/test CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env bash
2
- bundle exec rake test
2
+
3
+ bundle exec rspec ${1:+$1}
@@ -6,6 +6,15 @@ module NexusAPI
6
6
  @connection.get_response(endpoint: "assets?repository=#{repository}", paginate: paginate)
7
7
  end
8
8
 
9
+ def list_all_assets(repository: nil)
10
+ assets = Array.new.tap do |assets|
11
+ loop do
12
+ assets.concat(list_assets(repository: repository, paginate: true))
13
+ break unless paginate?
14
+ end
15
+ end
16
+ end
17
+
9
18
  # GET /service/rest/v1/assets/{id}
10
19
  def list_asset(id:)
11
20
  @connection.get_response(endpoint: "assets/#{id}")
@@ -6,6 +6,15 @@ module NexusAPI
6
6
  @connection.get_response(endpoint: "components?repository=#{repository}", paginate: paginate)
7
7
  end
8
8
 
9
+ def list_all_components(repository: nil)
10
+ components = Array.new.tap do |components|
11
+ loop do
12
+ components.concat(list_components(repository: repository, paginate: true))
13
+ break unless paginate?
14
+ end
15
+ end
16
+ end
17
+
9
18
  # POST /service/rest/v1/components
10
19
  def upload_maven_component(filename:, group_id:, artifact_id:, version:, repository: nil, tag: nil)
11
20
  repository ||= @team_config.maven_repository
@@ -1,8 +1,20 @@
1
1
  module NexusAPI
2
2
  class API
3
3
  # GET /service/rest/beta/security/privileges
4
+ def list_privileges
5
+ @connection.get_response(endpoint: 'security/privileges', api_version: 'beta')
6
+ end
7
+
4
8
  # GET /service/rest/beta/security/privileges/{privilegeId}
9
+ def list_privilege(privilege_id:)
10
+ @connection.get_response(endpoint: "security/privileges/#{privilege_id}", api_version: 'beta')
11
+ end
12
+
5
13
  # DELETE /service/rest/beta/security/privileges/{privilegeId}
14
+ def delete_privilege(privilege_id:)
15
+ @connection.delete(endpoint: "security/privileges/#{privilege_id}", api_version: 'beta')
16
+ end
17
+
6
18
  # POST /service/rest/beta/security/privileges/application
7
19
  # PUT /service/rest/beta/security/privileges/application/{privilegeId}
8
20
  # POST /service/rest/beta/security/privileges/repository-admin
@@ -10,6 +22,21 @@ module NexusAPI
10
22
  # POST /service/rest/beta/security/privileges/repository-content-selector
11
23
  # PUT /service/rest/beta/security/privileges/repository-content-selector/{privilegeId}
12
24
  # POST /service/rest/beta/security/privileges/repository-view
25
+ def create_privilege_repository_view(name:, description: nil, actions: ['READ'], format: '*', repository: '*')
26
+ parameters = {
27
+ # The name is also used as the privilege_id
28
+ 'name' => name,
29
+ 'description' => description,
30
+ # READ, BROWSE, EDIT, ADD, DELETE, RUN, ASSOCIATE, DISASSOCIATE, ALL
31
+ 'actions' => actions,
32
+ # The repository format (i.e 'nuget', 'npm') this privilege will grant access to (or * for all)
33
+ 'format' => format,
34
+ # The name of the repository this privilege will grant access to (or * for all)
35
+ 'repository' => repository
36
+ }
37
+ @connection.post(endpoint: 'security/privileges/repository-view', parameters: parameters, api_version: 'beta')
38
+ end
39
+
13
40
  # PUT /service/rest/beta/security/privileges/repository-view/{privilegeId}
14
41
  # POST /service/rest/beta/security/privileges/script
15
42
  # PUT /service/rest/beta/security/privileges/script/{privilegeId}
@@ -31,18 +31,30 @@ module NexusAPI
31
31
  # PUT /service/rest/beta/repositories/bower/hosted/{repositoryName}
32
32
  # POST /service/rest/beta/repositories/bower/proxy
33
33
  # PUT /service/rest/beta/repositories/bower/proxy/{repositoryName}
34
+ # POST /service/rest/beta/repositories/cocoapods/proxy
35
+ # PUT /service/rest/beta/repositories/cocoapods/proxy/{repositoryName}
34
36
  # POST /service/rest/beta/repositories/conan/proxy
35
37
  # PUT /service/rest/beta/repositories/conan/proxy/{repositoryName}
36
38
  # POST /service/rest/beta/repositories/docker/group
39
+ def create_repository_docker_group(name:, members:, options: {})
40
+ parameters = ParameterBuilder.docker_group(name, members, options)
41
+ create('repositories/docker/group', parameters)
42
+ end
43
+
37
44
  # PUT /service/rest/beta/repositories/docker/group/{repositoryName}
38
45
  # POST /service/rest/beta/repositories/docker/hosted
39
- def create_repository_docker_hosted(name:, port:)
40
- parameters = ParameterBuilder.docker_hosted(name, port)
41
- @connection.post(endpoint: 'repositories/docker/hosted', parameters: parameters, api_version: 'beta')
46
+ def create_repository_docker_hosted(name:, options: {})
47
+ parameters = ParameterBuilder.docker_hosted(name, options)
48
+ create('repositories/docker/hosted', parameters)
42
49
  end
43
50
 
44
51
  # PUT /service/rest/beta/repositories/docker/hosted/{repositoryName}
45
52
  # POST /service/rest/beta/repositories/docker/proxy
53
+ def create_repository_docker_proxy(name:, remote_url:, options: {})
54
+ parameters = ParameterBuilder.docker_proxy(name, remote_url, options)
55
+ create('repositories/docker/proxy', parameters)
56
+ end
57
+
46
58
  # PUT /service/rest/beta/repositories/docker/proxy/{repositoryName}
47
59
  # POST /service/rest/beta/repositories/gitlfs/hosted
48
60
  # PUT /service/rest/beta/repositories/gitlfs/hosted/{repositoryName}
@@ -54,25 +66,47 @@ module NexusAPI
54
66
  # PUT /service/rest/beta/repositories/helm/hosted/{repositoryName}
55
67
  # POST /service/rest/beta/repositories/helm/proxy
56
68
  # PUT /service/rest/beta/repositories/helm/proxy/{repositoryName}
69
+ # POST /service/rest/beta/repositories/maven/group
70
+ def create_repository_maven_group(name:, members:, options: {})
71
+ parameters = ParameterBuilder.maven_group(name, members, options)
72
+ create('repositories/maven/group', parameters)
73
+ end
74
+
75
+ # PUT /service/rest/beta/repositories/maven/group/{repositoryName}
57
76
  # POST /service/rest/beta/repositories/maven/hosted
58
- def create_repository_maven_hosted(name:)
59
- parameters = ParameterBuilder.maven_hosted(name)
60
- @connection.post(endpoint: 'repositories/maven/hosted', parameters: parameters, api_version: 'beta')
77
+ def create_repository_maven_hosted(name:, options: {})
78
+ parameters = ParameterBuilder.maven_hosted(name, options)
79
+ create('repositories/maven/hosted', parameters)
61
80
  end
62
81
 
63
82
  # PUT /service/rest/beta/repositories/maven/hosted/{repositoryName}
64
83
  # POST /service/rest/beta/repositories/maven/proxy
84
+ def create_repository_maven_proxy(name:, remote_url:, options: {})
85
+ parameters = ParameterBuilder.maven_proxy(name, remote_url, options)
86
+ create('repositories/maven/proxy', parameters)
87
+ end
88
+
65
89
  # PUT /service/rest/beta/repositories/maven/proxy/{repositoryName}
66
90
  # POST /service/rest/beta/repositories/npm/group
91
+ def create_repository_npm_group(name:, members:, options: {})
92
+ parameters = ParameterBuilder.npm_group(name, members, options)
93
+ create('repositories/npm/group', parameters)
94
+ end
95
+
67
96
  # PUT /service/rest/beta/repositories/npm/group/{repositoryName}
68
97
  # POST /service/rest/beta/repositories/npm/hosted
69
- def create_repository_npm_hosted(name:)
70
- parameters = ParameterBuilder.npm_hosted(name)
71
- @connection.post(endpoint: 'repositories/npm/hosted', parameters: parameters, api_version: 'beta')
98
+ def create_repository_npm_hosted(name:, options: {})
99
+ parameters = ParameterBuilder.npm_hosted(name, options)
100
+ create('repositories/npm/hosted', parameters)
72
101
  end
73
102
 
74
103
  # PUT /service/rest/beta/repositories/npm/hosted/{repositoryName}
75
104
  # POST /service/rest/beta/repositories/npm/proxy
105
+ def create_repository_npm_proxy(name:, remote_url:, options: {})
106
+ parameters = ParameterBuilder.npm_proxy(name, remote_url, options)
107
+ create('repositories/npm/proxy', parameters)
108
+ end
109
+
76
110
  # PUT /service/rest/beta/repositories/npm/proxy/{repositoryName}
77
111
  # POST /service/rest/beta/repositories/nuget/group
78
112
  # PUT /service/rest/beta/repositories/nuget/group/{repositoryName}
@@ -83,22 +117,104 @@ module NexusAPI
83
117
  # POST /service/rest/beta/repositories/p2/proxy
84
118
  # PUT /service/rest/beta/repositories/p2/proxy/{repositoryName}
85
119
  # POST /service/rest/beta/repositories/pypi/group
120
+ def create_repository_pypi_group(name:, members:, options: {})
121
+ parameters = ParameterBuilder.pypi_group(name, members, options)
122
+ create('repositories/pypi/group', parameters)
123
+ end
124
+
86
125
  # PUT /service/rest/beta/repositories/pypi/group/{repositoryName}
87
126
  # POST /service/rest/beta/repositories/pypi/hosted
88
- def create_repository_pypi_hosted(name:)
89
- parameters = ParameterBuilder.pypi_hosted(name)
90
- @connection.post(endpoint: 'repositories/pypi/hosted', parameters: parameters, api_version: 'beta')
127
+ def create_repository_pypi_hosted(name:, options: {})
128
+ parameters = ParameterBuilder.pypi_hosted(name, options)
129
+ create('repositories/pypi/hosted', parameters)
91
130
  end
92
131
 
93
132
  # PUT /service/rest/beta/repositories/pypi/hosted/{repositoryName}
94
133
  # POST /service/rest/beta/repositories/pypi/proxy
134
+ def create_repository_pypi_proxy(name:, remote_url:, options: {})
135
+ parameters = ParameterBuilder.pypi_proxy(name, remote_url, options)
136
+ create('repositories/pypi/proxy', parameters)
137
+ end
138
+
95
139
  # PUT /service/rest/beta/repositories/pypi/proxy/{repositoryName}
140
+ # POST /service/rest/beta/repositories/r/group
141
+ # PUT /service/rest/beta/repositories/r/group/{repositoryName}
142
+ # POST /service/rest/beta/repositories/r/hosted
143
+ # PUT /service/rest/beta/repositories/r/hosted/{repositoryName}
144
+ # POST /service/rest/beta/repositories/r/proxy
145
+ # PUT /service/rest/beta/repositories/r/proxy/{repositoryName}
146
+ # POST /service/rest/beta/repositories/raw/group
147
+ def create_repository_raw_group(name:, members:, options: {})
148
+ parameters = ParameterBuilder.raw_group(name, members, options)
149
+ create('repositories/raw/group', parameters)
150
+ end
151
+
152
+ # PUT /service/rest/beta/repositories/raw/group/{repositoryName}
153
+ # POST /service/rest/beta/repositories/raw/hosted
154
+ def create_repository_raw_hosted(name:, options: {})
155
+ parameters = ParameterBuilder.raw_hosted(name, options)
156
+ create('repositories/raw/hosted', parameters)
157
+ end
158
+
159
+ # PUT /service/rest/beta/repositories/raw/hosted/{repositoryName}
160
+ # POST /service/rest/beta/repositories/raw/proxy
161
+ def create_repository_raw_proxy(name:, remote_url:, options: {})
162
+ parameters = ParameterBuilder.raw_proxy(name, remote_url, options)
163
+ create('repositories/raw/proxy', parameters)
164
+ end
165
+
166
+ # PUT /service/rest/beta/repositories/raw/proxy/{repositoryName}
167
+ # POST /service/rest/beta/repositories/rubygems/group
168
+ def create_repository_rubygems_group(name:, members:, options: {})
169
+ parameters = ParameterBuilder.rubygems_group(name, members, options)
170
+ create('repositories/rubygems/group', parameters)
171
+ end
172
+
173
+ # PUT /service/rest/beta/repositories/rubygems/group/{repositoryName}
174
+ # POST /service/rest/beta/repositories/rubygems/hosted
175
+ def create_repository_rubygems_hosted(name:, options: {})
176
+ parameters = ParameterBuilder.rubygems_hosted(name, options)
177
+ create('repositories/rubygems/hosted', parameters)
178
+ end
179
+
180
+ # PUT /service/rest/beta/repositories/rubygems/hosted/{repositoryName}
181
+ # POST /service/rest/beta/repositories/rubygems/proxy
182
+ def create_repository_rubygems_proxy(name:, remote_url:, options: {})
183
+ parameters = ParameterBuilder.rubygems_proxy(name, remote_url, options)
184
+ create('repositories/rubygems/proxy', parameters)
185
+ end
186
+
187
+ # PUT /service/rest/beta/repositories/rubygems/proxy/{repositoryName}
188
+ # POST /service/rest/beta/repositories/yum/group
189
+ def create_repository_yum_group(name:, members:, options: {})
190
+ parameters = ParameterBuilder.yum_group(name, members, options)
191
+ create('repositories/yum/group', parameters)
192
+ end
193
+
194
+ # PUT /service/rest/beta/repositories/yum/group/{repositoryName}
96
195
  # POST /service/rest/beta/repositories/yum/hosted
97
- def create_repository_yum_hosted(name:, depth:)
98
- parameters = ParameterBuilder.yum_hosted(name, depth)
99
- @connection.post(endpoint: 'repositories/yum/hosted', parameters: parameters, api_version: 'beta')
196
+ def create_repository_yum_hosted(name:, options: {})
197
+ parameters = ParameterBuilder.yum_hosted(name, options)
198
+ create('repositories/yum/hosted', parameters)
100
199
  end
101
200
 
102
201
  # PUT /service/rest/beta/repositories/yum/hosted/{repositoryName}
202
+ # POST /service/rest/beta/repositories/yum/proxy
203
+ def create_repository_yum_proxy(name:, remote_url:, options: {})
204
+ parameters = ParameterBuilder.yum_proxy(name, remote_url, options)
205
+ create('repositories/yum/proxy', parameters)
206
+ end
207
+
208
+ # PUT /service/rest/beta/repositories/yum/proxy/{repositoryName}
209
+
210
+ private
211
+
212
+ def create(endpoint, parameters)
213
+ @connection.post(
214
+ endpoint: endpoint,
215
+ parameters: parameters,
216
+ api_version: 'beta'
217
+ )
218
+ end
103
219
  end
104
220
  end