puppet-forge-server 1.9.0 → 1.10.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
  SHA1:
3
- metadata.gz: 08f079588ee75d93139153846fb0021ffd6e856a
4
- data.tar.gz: 985dd8259b92e2a616e2ea00dcb4ac906572fb69
3
+ metadata.gz: 729d7bfd39907675eb708e82189328460b0ad915
4
+ data.tar.gz: 70d8b9cd7f17bf0689a988d558e644b962b10e6b
5
5
  SHA512:
6
- metadata.gz: 3bb6e219dd02e6484fab928c5c5047bf51329facd1fc1d2acd4613c79f4e22bc1fce66f4709302c0b57d24137417b23a8cd1b37c64b149e7f6e48cbc5186a438
7
- data.tar.gz: 4abba59d6b0cc3c16a65534940a37187286207ba273936dcf0c0b6d859c7a851cb055a549aecdaaf551797817cd08f3ab711341cc67223aac54fa175543bb8d6
6
+ metadata.gz: a295bacb75065a6d551c2af7b23ca3c2ea464065f827ab9ff98375af32fc328878aedd0c1b535faf677085b1a8886616d027d5a6d5ad5461ee2fed141fade074
7
+ data.tar.gz: 5b7f82e4a6a79495a124b67bb588fe58bda9004c995b6cfc7c3353be06653c08d4839b4f27d7c9dca5addc93893112ee233bb7516676473c4bdf732524ccfdee
data/README.md CHANGED
@@ -20,6 +20,8 @@ Puppet 2, 3 and 4 as well as librarian-puppet are supported.
20
20
  * [Proxy the official Puppet Forge v1 API and local Pulp puppet repository](#proxy-the-official-puppet-forge-v1-api-and-local-pulp-puppet-repository)
21
21
  * [Locally stored modules](#locally-stored-modules)
22
22
  * [All-in](#all-in)
23
+ * [r10k](#r10k)
24
+ * [librarian-puppet](#librarian-puppet)
23
25
  * [Daemon](#daemon)
24
26
  * [Web UI](#web-ui)
25
27
  * [Architecture](#command-reference)
@@ -30,7 +32,7 @@ Puppet 2, 3 and 4 as well as librarian-puppet are supported.
30
32
  * [Limitations](#limitations)
31
33
  * [Reference](#reference)
32
34
 
33
- ## Installation
35
+ ## Manual Installation
34
36
 
35
37
  Install the gem
36
38
  ```
@@ -45,6 +47,10 @@ bundle install
45
47
  bundle exec bin/puppet-forge-server --help
46
48
  ```
47
49
 
50
+ ## Installation with Puppet
51
+
52
+ To install the Puppet Forge Server with puppet, you can use this module: https://github.com/unibet/puppet-forge_server
53
+
48
54
  ### Dependencies
49
55
  The gem installtion requires the ruby development packages and GCC.
50
56
 
@@ -108,6 +114,23 @@ wget -P modules/ forge.puppetlabs.com/system/releases/p/puppetlabs/puppetlabs-st
108
114
  bundle exec bin/puppet-forge-server -m modules/ -x https://forgeapi.puppetlabs.com -x http://my.local.pulp/pulp_puppet/forge/repository/demo
109
115
  ```
110
116
 
117
+ #### r10k
118
+ Create an example Puppetfile
119
+ ```
120
+ cat > Puppetfile <<EOF
121
+ mod 'puppetlabs/apache'
122
+ EOF
123
+
124
+ ```
125
+ Add forge/baseurl to r10k.yaml
126
+ ```
127
+ cat >> r10k.yaml <<EOF
128
+ forge:
129
+ baseurl: 'http://localhost:8080'
130
+ EOF
131
+ ```
132
+
133
+ #### librarian-puppet
111
134
  Create an example Puppetfile
112
135
  ```
113
136
  cat > Puppetfile <<EOF
@@ -38,7 +38,7 @@ module PuppetForgeServer::Api::V1
38
38
  :author => author,
39
39
  :full_name => element.metadata.name.sub('-', '/'),
40
40
  :name => name,
41
- :desc => element.metadata.description,
41
+ :desc => element.metadata.description || element.metadata.summary,
42
42
  :version => element.metadata.version,
43
43
  :project_url => element.metadata.project_page,
44
44
  :releases => releases_version(element.metadata),
@@ -52,7 +52,7 @@ module PuppetForgeServer::Api::V3
52
52
 
53
53
  private
54
54
  def releases_version(metadata)
55
- [{:version => metadata.version, :uri => "/v3/releases/#{metadata.name}-#{metadata.version}"}]
55
+ [{:version => metadata.version, :uri => "/v3/releases/#{metadata.name}-#{metadata.version}", :slug => "#{metadata.name}-#{metadata.version}"}]
56
56
  end
57
57
 
58
58
  def max_version(left, right)
@@ -45,12 +45,18 @@ module PuppetForgeServer::App
45
45
 
46
46
  get '/modules' do
47
47
  query = params[:query]
48
+ halt(400, haml(:security, :locals => {:query => query})) \
49
+ unless safe_input? query
50
+
48
51
  modules = get("#{request.base_url}/v3/modules?query=#{query}")['results']
49
52
  haml :modules, :locals => {:query => query, :modules => modules}
50
53
  end
51
54
 
52
55
  get '/module' do
53
56
  module_v3_name = params[:name].gsub(/\//, '-')
57
+ halt(400, haml(:security, :locals => {:query => module_v3_name})) \
58
+ unless safe_input? module_v3_name
59
+
54
60
  releases = get("#{request.base_url}/v3/modules/#{module_v3_name}")['releases']
55
61
  if params.has_key? 'version'
56
62
  module_uri = releases.find {|r| r['version'] == params['version']}['uri']
@@ -63,7 +69,10 @@ module PuppetForgeServer::App
63
69
  rescue
64
70
  readme_markdown = ''
65
71
  end
66
- haml :module, :locals => { :module_metadata => module_metadata, :base_url => request.base_url, :readme_markdown => readme_markdown, :releases => releases }
72
+ haml :module, :locals => { :module_metadata => module_metadata,
73
+ :base_url => request.base_url,
74
+ :readme_markdown => readme_markdown,
75
+ :releases => releases }
67
76
  end
68
77
 
69
78
  get '/upload' do
@@ -84,5 +93,10 @@ module PuppetForgeServer::App
84
93
  {'results' => []}
85
94
  end
86
95
  end
96
+
97
+ def safe_input?(query)
98
+ unsafe_query = CGI::unescape(query)
99
+ %w[< javascript:].none? { |q| unsafe_query.include?(q) }
100
+ end
87
101
  end
88
102
  end
@@ -135,6 +135,12 @@ body {
135
135
  .clearfix {
136
136
  display: block;
137
137
  }
138
+ .code-block {
139
+ margin: 1em;
140
+ }
141
+ input[type=file]{
142
+ display: inline-block;
143
+ }
138
144
  input[type=search] {
139
145
  width: 80%;
140
146
  max-width: 650px;
@@ -40,7 +40,7 @@ module PuppetForgeServer::App
40
40
 
41
41
  get '/v3/releases/:module' do
42
42
  halt 404, json({:errors => ['404 Not found']}) unless params[:module]
43
- author, name, version = params[:module].split '-'
43
+ author, name, version = params[:module].split('-',3)
44
44
  halt 400, json({:errors => ["'#{params[:module]}' is not a valid release slug"]}) unless author && name && version
45
45
  releases = releases(author, name, version)
46
46
  halt 404, json({:errors => ['404 Not found']}) unless releases
@@ -0,0 +1,20 @@
1
+ -# -*- encoding: utf-8 -*-
2
+ -#
3
+ -# Copyright 2014 North Development AB
4
+ -#
5
+ -# Licensed under the Apache License, Version 2.0 (the "License");
6
+ -# you may not use this file except in compliance with the License.
7
+ -# You may obtain a copy of the License at
8
+ -#
9
+ -# http://www.apache.org/licenses/LICENSE-2.0
10
+ -#
11
+ -# Unless required by applicable law or agreed to in writing, software
12
+ -# distributed under the License is distributed on an "AS IS" BASIS,
13
+ -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ -# See the License for the specific language governing permissions and
15
+ -# limitations under the License.
16
+
17
+ %h3.search-results-title Security violation
18
+
19
+ %h4 The query provided contains illegal or dangerous characters.
20
+ Please clean them up and try again.
@@ -18,28 +18,35 @@
18
18
 
19
19
  / TODO Need better formatting
20
20
  / TODO Better error notification
21
- / TODO Information on programatic uploads
22
21
  %h3 Upload Puppet Module
23
22
 
24
- Specify below the location of the Puppet module .tar.gz file that you wish to publish.
23
+ %div.section.site-width#content
24
+ Specify below the location of the Puppet module .tar.gz file that you wish to publish.
25
25
 
26
- The Puppet module .tar.gz file should be generated by executing
26
+ The Puppet module .tar.gz file should be generated by executing
27
27
 
28
- %div
29
- %pre
30
- puppet module build
28
+ %div.code-block
29
+ %pre
30
+ puppet module build
31
31
 
32
- The result will be a pkg directory at the top level of the module with the .tag.gz within it.
32
+ The result will be a pkg directory at the top level of the module with the .tag.gz within it.
33
+ Once the .tar.gz has been generated, it can be uploaded to this Puppet Forge server through the
34
+ form below or by executing the following curl command line.
33
35
 
34
- %span.search_error
35
- -if upload_status
36
- -case upload_status
37
- -when '200'
38
- File has been uploaded
39
- -when ''
40
- -else
41
- Upload has failed. #{upload_status}
36
+ %div.code-block
37
+ %pre
38
+ :markdown
39
+ curl -F "file=@pkg/_&lt;name&gt;_-_&lt;version&gt;_.tar.gz" #{request.env['REQUEST_URI']}
42
40
 
43
- %form{:action => '/upload', :method=>'post', :enctype=>'multipart/form-data' }
44
- %input{ :type => 'file', :name=>'file'}
45
- %input{ :type=>'submit', :value=>'Upload'}
41
+ %span.search_error
42
+ -if upload_status
43
+ -case upload_status
44
+ -when '200'
45
+ File has been uploaded
46
+ -when ''
47
+ -else
48
+ Upload has failed. #{upload_status}
49
+
50
+ %form{:action => '/upload', :method=>'post', :enctype=>'multipart/form-data' }
51
+ %input{ :type => 'file', :name=>'file'}
52
+ %input{ :type=>'submit', :value=>'Upload'}
@@ -28,7 +28,7 @@ module PuppetForgeServer::Backends
28
28
  @file_path = file_path
29
29
 
30
30
  # Create directory structure for all alphabetic letters
31
- (10...36).each do |i|
31
+ (0...36).each do |i|
32
32
  FileUtils.mkdir_p(File.join(@cache_dir, i.to_s(36)))
33
33
  end
34
34
  end
@@ -31,6 +31,23 @@ module PuppetForgeServer::Http
31
31
  cache.extend(PuppetForgeServer::Utils::FilteringInspecter)
32
32
  @log = PuppetForgeServer::Logger.get
33
33
  @cache = cache
34
+ @uri_options= {
35
+ 'User-Agent' => "Puppet-Forge-Server/#{PuppetForgeServer::VERSION}",
36
+ :allow_redirections => :safe,
37
+ }
38
+ # OpenURI does not work with http_proxy=http://username:password@proxyserver:port/
39
+ # so split the proxy_url and feed it basic authentication.
40
+ if ENV.has_key?('http_proxy')
41
+ proxy = URI.parse(ENV['http_proxy'])
42
+ if proxy.userinfo != nil
43
+ @uri_options[:proxy_http_basic_authentication] = [
44
+ "#{proxy.scheme}://#{proxy.host}:#{proxy.port}",
45
+ proxy.userinfo.split(':')[0],
46
+ proxy.userinfo.split(':')[1]
47
+ ]
48
+ end
49
+ end
50
+
34
51
  end
35
52
 
36
53
  def post_file(url, file_hash, options = {})
@@ -69,7 +86,7 @@ module PuppetForgeServer::Http
69
86
  contents = @cache.fetch(url) do
70
87
  tmpfile = ::Timeout.timeout(10) do
71
88
  PuppetForgeServer::Logger.get.debug "Fetching data for url: #{url} from remote server"
72
- open(url, 'User-Agent' => "Puppet-Forge-Server/#{PuppetForgeServer::VERSION}", :allow_redirections => :safe)
89
+ open(url, @uri_options)
73
90
  end
74
91
  contents = tmpfile.read
75
92
  tmpfile.close
@@ -71,7 +71,7 @@ module PuppetForgeServer
71
71
  options.default = 'default'
72
72
  @log.info " +- Daemonizing: #{options[:daemonize]}"
73
73
  @log.info " |- Port: #{options[:port]}"
74
- @log.info " |- Host: #{options[:hostname]}"
74
+ @log.info " |- Host: #{options[:host]}"
75
75
  @log.info " |- Pidfile: #{options[:pidfile]}" if options[:pidfile]
76
76
  @log.info " |- Server: #{options[:server]}"
77
77
  @log.info ' `- Backends:'
@@ -84,7 +84,7 @@ module PuppetForgeServer
84
84
  FileUtils.mkdir_p File.dirname(options[:pidfile]) if options[:pidfile]
85
85
  Rack::Server.start(
86
86
  :app => server,
87
- :Host => options[:hostname],
87
+ :Host => options[:host],
88
88
  :Port => options[:port],
89
89
  :server => options[:server],
90
90
  :daemonize => options[:daemonize],
@@ -15,5 +15,5 @@
15
15
  # limitations under the License.
16
16
 
17
17
  module PuppetForgeServer
18
- VERSION = '1.9.0'
18
+ VERSION = '1.10.0'
19
19
  end
@@ -24,7 +24,7 @@ describe PuppetForgeServer::Http::HttpClient do
24
24
  "Connection: close\r\n"
25
25
  socket.print "\r\n"
26
26
  # To simulate network lag
27
- sleep 0.01
27
+ sleep 0.05
28
28
  socket.print response
29
29
  socket.close
30
30
  end
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-forge-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilja Bobkevic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-22 00:00:00.000000000 Z
11
+ date: 2017-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinatra-contrib
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: json
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.8'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rack-mount
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.8'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.8'
69
69
  - !ruby/object:Gem::Dependency
@@ -84,210 +84,210 @@ dependencies:
84
84
  name: open4
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.3'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: open_uri_redirections
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0.1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ~>
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: haml
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
117
  version: '4.0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ~>
123
123
  - !ruby/object:Gem::Version
124
124
  version: '4.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: deep_merge
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
131
  version: '1.0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ~>
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: multipart-post
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ~>
144
144
  - !ruby/object:Gem::Version
145
145
  version: 2.0.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ~>
151
151
  - !ruby/object:Gem::Version
152
152
  version: 2.0.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: redcarpet
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ~>
158
158
  - !ruby/object:Gem::Version
159
159
  version: 3.3.0
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ~>
165
165
  - !ruby/object:Gem::Version
166
166
  version: 3.3.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: lrucache
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - ~>
172
172
  - !ruby/object:Gem::Version
173
173
  version: 0.1.4
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - ~>
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.1.4
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: iconv
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - "~>"
185
+ - - ~>
186
186
  - !ruby/object:Gem::Version
187
187
  version: 1.0.4
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - "~>"
192
+ - - ~>
193
193
  - !ruby/object:Gem::Version
194
194
  version: 1.0.4
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: logger-colors
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - "~>"
199
+ - - ~>
200
200
  - !ruby/object:Gem::Version
201
201
  version: '1.0'
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - "~>"
206
+ - - ~>
207
207
  - !ruby/object:Gem::Version
208
208
  version: '1.0'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rake
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - "~>"
213
+ - - ~>
214
214
  - !ruby/object:Gem::Version
215
215
  version: '10.3'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - "~>"
220
+ - - ~>
221
221
  - !ruby/object:Gem::Version
222
222
  version: '10.3'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: rspec
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - "~>"
227
+ - - ~>
228
228
  - !ruby/object:Gem::Version
229
229
  version: '3.1'
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - "~>"
234
+ - - ~>
235
235
  - !ruby/object:Gem::Version
236
236
  version: '3.1'
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: rspec-core
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
- - - "~>"
241
+ - - ~>
242
242
  - !ruby/object:Gem::Version
243
243
  version: '3.1'
244
244
  type: :development
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
- - - "~>"
248
+ - - ~>
249
249
  - !ruby/object:Gem::Version
250
250
  version: '3.1'
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: simplecov
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - "~>"
255
+ - - ~>
256
256
  - !ruby/object:Gem::Version
257
257
  version: 0.11.0
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - "~>"
262
+ - - ~>
263
263
  - !ruby/object:Gem::Version
264
264
  version: 0.11.0
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: rspec-stopwatch
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - "~>"
269
+ - - ~>
270
270
  - !ruby/object:Gem::Version
271
271
  version: 0.1.3
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - "~>"
276
+ - - ~>
277
277
  - !ruby/object:Gem::Version
278
278
  version: 0.1.3
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: pry
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
- - - ">="
283
+ - - '>='
284
284
  - !ruby/object:Gem::Version
285
285
  version: '0'
286
286
  type: :development
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
- - - ">="
290
+ - - '>='
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
293
293
  description: Private Puppet forge server supports local files, both v1 and v3 API
@@ -298,9 +298,9 @@ executables:
298
298
  extensions: []
299
299
  extra_rdoc_files: []
300
300
  files:
301
- - ".gitignore"
302
- - ".rspec"
303
- - ".travis.yml"
301
+ - .gitignore
302
+ - .rspec
303
+ - .travis.yml
304
304
  - Gemfile
305
305
  - README.md
306
306
  - Rakefile
@@ -323,6 +323,7 @@ files:
323
323
  - lib/puppet_forge_server/app/views/layout.haml
324
324
  - lib/puppet_forge_server/app/views/module.haml
325
325
  - lib/puppet_forge_server/app/views/modules.haml
326
+ - lib/puppet_forge_server/app/views/security.haml
326
327
  - lib/puppet_forge_server/app/views/upload.haml
327
328
  - lib/puppet_forge_server/backends/directory.rb
328
329
  - lib/puppet_forge_server/backends/proxy.rb
@@ -367,17 +368,17 @@ require_paths:
367
368
  - lib
368
369
  required_ruby_version: !ruby/object:Gem::Requirement
369
370
  requirements:
370
- - - ">="
371
+ - - '>='
371
372
  - !ruby/object:Gem::Version
372
373
  version: 1.9.3
373
374
  required_rubygems_version: !ruby/object:Gem::Requirement
374
375
  requirements:
375
- - - ">="
376
+ - - '>='
376
377
  - !ruby/object:Gem::Version
377
378
  version: '0'
378
379
  requirements: []
379
380
  rubyforge_project:
380
- rubygems_version: 2.4.1
381
+ rubygems_version: 2.0.14.1
381
382
  signing_key:
382
383
  specification_version: 4
383
384
  summary: Private Puppet forge server