kindredgroup / puppet-forge-server

Private Puppet forge server supports local files and both v1 and v3 API proxies
69 stars 44 forks source link

Added detailed module view in frontend #34

Closed jlyheden closed 8 years ago

jlyheden commented 8 years ago

Extends the module model with readme attribute, html generation from markdown, tons of css copied from official forge.

jlyheden commented 8 years ago

Hmm adding the readme attribute causes multi_json to blow up in some cases, for example:

$ curl http://localhost:8080/v3/releases?module=puppetlabs-concat
Encoding::UndefinedConversionError: "\xE2" from ASCII-8BIT to UTF-8
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/multi_json-1.11.2/lib/multi_json/adapters/json_common.rb:19:in `encode'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/multi_json-1.11.2/lib/multi_json/adapters/json_common.rb:19:in `to_json'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/multi_json-1.11.2/lib/multi_json/adapters/json_common.rb:19:in `dump'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/multi_json-1.11.2/lib/multi_json/adapter.rb:25:in `dump'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/multi_json-1.11.2/lib/multi_json.rb:136:in `dump'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:113:in `block in resolve_encoder_action'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:112:in `each'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:112:in `resolve_encoder_action'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-contrib-1.4.6/lib/sinatra/json.rb:98:in `json'
    /Users/johan/Documents/git/puppet-forge-server/lib/puppet_forge_server/app/version3.rb:55:in `block in <class:Version3>'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:in `block in compile!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `[]'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `block (3 levels) in route!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:993:in `route_eval'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `block (2 levels) in route!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1014:in `block in process_route'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `catch'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `process_route'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:972:in `block in route!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `each'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `route!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1084:in `block in dispatch!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `block in invoke'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1081:in `dispatch!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `block in call!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `block in invoke'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `call!'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:894:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-1.5.5/lib/rack/commonlogger.rb:33:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:218:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-1.5.5/lib/rack/logger.rb:15:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:211:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-1.5.5/lib/rack/head.rb:11:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/show_exceptions.rb:21:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:181:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/sinatra-1.4.6/lib/sinatra/base.rb:2021:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:152:in `block in call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:96:in `block in recognize'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:96:in `optimized_each'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-mount-0.8.3/lib/rack/mount/code_generation.rb:95:in `recognize'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/rack-mount-0.8.3/lib/rack/mount/route_set.rb:141:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/puma-2.15.3/lib/puma/server.rb:541:in `handle_request'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/puma-2.15.3/lib/puma/server.rb:388:in `process_client'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/puma-2.15.3/lib/puma/server.rb:270:in `block in run'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/puma-2.15.3/lib/puma/thread_pool.rb:106:in `call'
    /Users/johan/Documents/git/puppet-forge-server/.bundle/ruby/1.9.1/gems/puma-2.15.3/lib/puma/thread_pool.rb:106:in `block in spawn_thread'
i11 commented 8 years ago

+1