nexus_api 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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