application.rb 4.3 KB
Newer Older
G
gitlabhq 已提交
1 2 3
require File.expand_path('../boot', __FILE__)

require 'rails/all'
4

5
Bundler.require(:default, Rails.env)
G
gitlabhq 已提交
6 7 8

module Gitlab
  class Application < Rails::Application
9 10
    require_dependency Rails.root.join('lib/gitlab/redis')

G
gitlabhq 已提交
11 12 13 14
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.

15 16 17 18 19 20 21 22 23
    # Sidekiq uses eager loading, but directories not in the standard Rails
    # directories must be added to the eager load paths:
    # https://github.com/mperham/sidekiq/wiki/FAQ#why-doesnt-sidekiq-autoload-my-rails-application-code
    # Also, there is no need to add `lib` to autoload_paths since autoloading is
    # configured to check for eager loaded paths:
    # https://github.com/rails/rails/blob/v4.2.6/railties/lib/rails/engine.rb#L687
    # This is a nice reference article on autoloading/eager loading:
    # http://blog.arkency.com/2014/11/dont-forget-about-eager-load-when-extending-autoload
    config.eager_load_paths.push(*%W(#{config.root}/lib
24
                                     #{config.root}/app/models/ci
25
                                     #{config.root}/app/models/hooks
26 27
                                     #{config.root}/app/models/members
                                     #{config.root}/app/models/project_services))
G
gitlabhq 已提交
28 29 30 31 32 33 34 35

    # Only load the plugins named here, in the order given (default is alphabetical).
    # :all can be used as a placeholder for all plugins not explicitly named.
    # config.plugins = [ :exception_notification, :ssl_requirement, :all ]

    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
    # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
    # config.i18n.default_locale = :de
36
    config.i18n.enforce_available_locales = false
G
gitlabhq 已提交
37 38 39 40 41

    # Configure the default encoding used in templates for Ruby 1.9.
    config.encoding = "utf-8"

    # Configure sensitive parameters which will be filtered from the log file.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    # 
    # Parameters filtered:
    # - Password (:password, :password_confirmation)
    # - Private tokens (:private_token)
    # - Two-factor tokens (:otp_attempt)
    # - Repo/Project Import URLs (:import_url)
    # - Build variables (:variables)
    # - GitLab Pages SSL cert/key info (:certificate, :encrypted_key)
    # - Webhook URLs (:hook)
    # - Sentry DSN (:sentry_dsn)
    # - Deploy keys (:key)
    config.filter_parameters += %i(
      certificate
      encrypted_key
      hook
      import_url
      key
      otp_attempt
      password
      password_confirmation
      private_token
      sentry_dsn
      variables
    )
G
gitlabhq 已提交
66

R
Riyad Preukschas 已提交
67 68 69 70 71 72 73 74
    # Enable escaping HTML in JSON.
    config.active_support.escape_html_entities_in_json = true

    # Use SQL instead of Active Record's schema dumper when creating the database.
    # This is necessary if your schema can't be completely dumped by the schema dumper,
    # like if you have constraints or database-specific column types
    # config.active_record.schema_format = :sql

G
gitlabhq 已提交
75 76
    # Enable the asset pipeline
    config.assets.enabled = true
R
Robert Speicher 已提交
77 78
    config.assets.paths << Gemojione.index.images_path
    config.assets.precompile << "*.png"
79
    config.assets.precompile << "print.css"
D
Douwe Maan 已提交
80
    config.assets.precompile << "notify.css"
81

G
gitlabhq 已提交
82 83
    # Version of your assets, change this if you want to expire all your assets
    config.assets.version = '1.0'
84

85 86
    config.action_view.sanitized_allowed_protocols = %w(smb)

M
Marin Jankovski 已提交
87
    config.middleware.use Rack::Attack
88 89 90 91 92

    # Allow access to GitLab API from other domains
    config.middleware.use Rack::Cors do
      allow do
        origins '*'
F
Fred Chasen 已提交
93 94
        resource '/api/*',
          headers: :any,
95
          methods: :any,
F
Fred Chasen 已提交
96
          expose: ['Link']
97 98
      end
    end
99

100
    redis_config_hash = Gitlab::Redis.redis_store_options
101
    redis_config_hash[:namespace] = Gitlab::Redis::CACHE_NAMESPACE
102
    redis_config_hash[:expires_in] = 2.weeks # Cache should not grow forever
103
    config.cache_store = :redis_store, redis_config_hash
D
Dmitriy Zaporozhets 已提交
104

V
Valery Sizov 已提交
105 106 107 108
    config.active_record.raise_in_transactional_callbacks = true

    config.active_job.queue_adapter = :sidekiq

D
Dmitriy Zaporozhets 已提交
109 110
    # This is needed for gitlab-shell
    ENV['GITLAB_PATH_OUTSIDE_HOOK'] = ENV['PATH']
111 112 113 114

    config.generators do |g|
      g.factory_girl false
    end
G
gitlabhq 已提交
115 116
  end
end