From 4496903950f56dde684d4cf603358f5a9535cdb5 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Sat, 15 Dec 2012 01:45:44 +0100 Subject: [PATCH 1/5] Rename config options --- config/gitlab.yml.example | 86 ++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 7fcfc5b7..c8387fa2 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -1,57 +1,62 @@ -# # # # # # # # # # # # # # # # # # -# Gitlab application config file # -# # # # # # # # # # # # # # # # # # # -# 1. Common settings +# 1. GitLab app settings # ========================== -# Web application specific settings -web: +## GitLab settings +gitlab: + ## Web server settings host: localhost port: 80 https: false -# Email used for notification -# about new issues, comments -email: - from: notify@localhost + ## Email settings + # Email address used in the "From" field in mails sent by GitLab + email_from: gitlab@localhost -# Application specific settings -# Like default project limit for user etc -app: + ## Project settings default_projects_limit: 10 - # backup_path: "/vol/backups" # default: Rails.root + backups/ - # backup_keep_time: 604800 # default: 0 (forever) (in seconds) - # disable_gravatar: true # default: false - Disable user avatars from Gravatar.com - # gravatar_url: "http://" # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm - # gravatar_ssl_url: "https://" # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm + +## Gravatar +gravatar: + enabled: true # Use user avatar images from Gravatar.com (default: true) + # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm + # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm + # # 2. Auth settings # ========================== -ldap: + +## LDAP settings +ldap: enabled: false host: '_your_ldap_server' base: '_the_base_where_you_search_for_users' port: 636 uid: 'sAMAccountName' - method: 'ssl' # plain + method: 'ssl' # "ssl" or "plain" bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' password: '_the_password_of_the_bind_user' +## Omniauth settings omniauth: # Enable ability for users - # to login via twitter, google .. + # Allow logging in via Twitter, Google, etc. using Omniauth providers enabled: false - # IMPORTANT! - # It allows user to login without having user account + # CAUTION! + # This allows users to login without having a user account first (default: false) + # User accounts will be created automatically when authentication was successful. allow_single_sign_on: false + # Locks down those users until they have been cleared by the admin (default: true) block_auto_created_users: true - # Auth providers + ## Auth providers + # Uncomment the lines and fill in the data of the auth provider you want to use + # If your favorite auth provider is not listed you can user others: + # see https://github.com/gitlabhq/gitlabhq/wiki/Using-Custom-Omniauth-Providers providers: # - { name: 'google_oauth2', app_id: 'YOUR APP ID', # app_secret: 'YOUR APP SECRET', @@ -62,29 +67,36 @@ omniauth: # app_secret: 'YOUR APP SECRET' } + # -# 3. Advanced settings: +# 3. Advanced settings # ========================== -# Git Hosting configuration -git_host: +## Backup settings +backup: + path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) + # keep_time: 604800 # default: 0 (forever) (in seconds) + +## Gitolite settings +gitolite: admin_uri: git@localhost:gitolite-admin - base_path: /home/git/repositories/ + repos_path: /home/git/repositories/ hooks_path: /home/git/.gitolite/hooks/ - gitolite_admin_key: gitlab - git_user: git + admin_key: gitlab upload_pack: true receive_pack: true - # host: localhost + ssh_user: git + ssh_host: localhost + # ssh_port: 22 # config_file: gitolite.conf - # port: 22 -# Git settings -# Use default values unless you understand it +## Git settings +# CAUTION! +# Use the default values unless you really know what you are doing git: - path: /usr/bin/git + bin_path: /usr/bin/git # Max size of git object like commit, in bytes # This value can be increased if you have a very large commits - git_max_size: 5242880 # 5.megabytes + max_size: 5242880 # 5.megabytes # Git timeout to read commit, in seconds - git_timeout: 10 + timeout: 10 From b2e46f44ceee2078b8e1d92ae5ff892c044bc0e7 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Thu, 20 Dec 2012 16:52:29 +0100 Subject: [PATCH 2/5] Refactor Settings initializer All overrides are marked as deprecated. Default settings are at the bottom. --- config/initializers/1_settings.rb | 206 +++++++++++++++++++++++++++++- 1 file changed, 200 insertions(+), 6 deletions(-) diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index e684f378..4fe3ced4 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -2,23 +2,43 @@ class Settings < Settingslogic source "#{Rails.root}/config/gitlab.yml" class << self + # FIXME: Deprecated: remove for 4.1 def web_protocol + ActiveSupport::Deprecation.warn("Settings.web_protocol is deprecated and will be removed from GitLab 4.1", caller) + gitlab.protocol + rescue Settingslogic::MissingSetting self.web['protocol'] ||= web.https ? "https" : "http" end + # FIXME: Deprecated: remove for 4.1 def web_host + ActiveSupport::Deprecation.warn("Settings.web_host is deprecated and will be removed from GitLab 4.1", caller) + gitlab.host + rescue Settingslogic::MissingSetting self.web['host'] ||= 'localhost' end + # FIXME: Deprecated: remove for 4.1 def email_from + ActiveSupport::Deprecation.warn("Settings.email_from is deprecated and will be removed from GitLab 4.1", caller) + gitlab.email_from + rescue Settingslogic::MissingSetting self.email['from'] ||= ("notify@" + web_host) end + # FIXME: Deprecated: remove for 4.1 def url + ActiveSupport::Deprecation.warn("Settings.url is deprecated and will be removed from GitLab 4.1", caller) + gitlab.url + rescue Settingslogic::MissingSetting self['url'] ||= build_url end + # FIXME: Deprecated: remove for 4.1 def web_port + ActiveSupport::Deprecation.warn("Settings.web_port is deprecated and will be removed from GitLab 4.1", caller) + gitlab.port.to_i + rescue Settingslogic::MissingSetting if web.https web['port'] = 443 else @@ -26,11 +46,17 @@ class Settings < Settingslogic end.to_i end + # FIXME: Deprecated: remove for 4.1 def web_custom_port? + ActiveSupport::Deprecation.warn("Settings.web_custom_port? is deprecated and will be removed from GitLab 4.1", caller) + gitlab_on_non_standard_port? + rescue Settingslogic::MissingSetting ![443, 80].include?(web_port) end + # FIXME: Deprecated: remove for 4.1 def build_url + ActiveSupport::Deprecation.warn("Settings.build_url is deprecated and will be removed from GitLab 4.1", caller) if web_custom_port? custom_port = ":#{web_port}" else @@ -44,19 +70,35 @@ class Settings < Settingslogic ].join('') end + # FIXME: Deprecated: remove for 4.1 def ssh_port + ActiveSupport::Deprecation.warn("Settings.ssh_port is deprecated and will be removed from GitLab 4.1", caller) + gitolite.ssh_port + rescue Settingslogic::MissingSetting git_host['port'] || 22 end + # FIXME: Deprecated: remove for 4.1 def ssh_user + ActiveSupport::Deprecation.warn("Settings.ssh_user is deprecated and will be removed from GitLab 4.1", caller) + gitolite.ssh_user + rescue Settingslogic::MissingSetting git_host['git_user'] || 'git' end + # FIXME: Deprecated: remove for 4.1 def ssh_host + ActiveSupport::Deprecation.warn("Settings.ssh_host is deprecated and will be removed from GitLab 4.1", caller) + gitolite.ssh_host + rescue Settingslogic::MissingSetting git_host['host'] || web_host || 'localhost' end + # FIXME: Deprecated: remove for 4.1 def ssh_path + ActiveSupport::Deprecation.warn("Settings.ssh_path is deprecated and will be removed from GitLab 4.1", caller) + gitolite.ssh_path_prefix + rescue Settingslogic::MissingSetting if ssh_port != 22 "ssh://#{ssh_user}@#{ssh_host}:#{ssh_port}/" else @@ -64,15 +106,27 @@ class Settings < Settingslogic end end + # FIXME: Deprecated: remove for 4.1 def git_base_path + ActiveSupport::Deprecation.warn("Settings.git_base_path is deprecated and will be removed from GitLab 4.1", caller) + gitolite.repos_path + rescue Settingslogic::MissingSetting git_host['base_path'] || '/home/git/repositories/' end + # FIXME: Deprecated: remove for 4.1 def git_hooks_path + ActiveSupport::Deprecation.warn("Settings.git_hooks_path is deprecated and will be removed from GitLab 4.1", caller) + gitolite.hooks_path + rescue Settingslogic::MissingSetting git_host['hooks_path'] || '/home/git/share/gitolite/hooks/' end + # FIXME: Deprecated: remove for 4.1 def git_upload_pack + ActiveSupport::Deprecation.warn("Settings.git_upload_pack is deprecated and will be removed from GitLab 4.1", caller) + gitolite.upload_pack + rescue Settingslogic::MissingSetting if git_host['upload_pack'] != false true else @@ -80,7 +134,11 @@ class Settings < Settingslogic end end + # FIXME: Deprecated: remove for 4.1 def git_receive_pack + ActiveSupport::Deprecation.warn("Settings.git_receive_pack is deprecated and will be removed from GitLab 4.1", caller) + gitolite.receive_pack + rescue Settingslogic::MissingSetting if git_host['receive_pack'] != false true else @@ -88,71 +146,207 @@ class Settings < Settingslogic end end + # FIXME: Deprecated: remove for 4.1 def git_bin_path + ActiveSupport::Deprecation.warn("Settings.git_bin_path is deprecated and will be removed from GitLab 4.1", caller) + git.bin_path + rescue Settingslogic::MissingSetting git['path'] || '/usr/bin/git' end + # FIXME: Deprecated: remove for 4.1 def git_max_size + ActiveSupport::Deprecation.warn("Settings.git_max_size is deprecated and will be removed from GitLab 4.1", caller) + git.max_size + rescue Settingslogic::MissingSetting git['git_max_size'] || 5242880 # 5.megabytes end + # FIXME: Deprecated: remove for 4.1 def git_timeout + ActiveSupport::Deprecation.warn("Settings.git_timeout is deprecated and will be removed from GitLab 4.1", caller) + git.timeout + rescue Settingslogic::MissingSetting git['git_timeout'] || 10 end + # FIXME: Deprecated: remove for 4.1 def gitolite_admin_uri + ActiveSupport::Deprecation.warn("Settings.gitolite_admin_uri is deprecated and will be removed from GitLab 4.1", caller) + gitolite.admin_uri + rescue Settingslogic::MissingSetting git_host['admin_uri'] || 'git@localhost:gitolite-admin' end + # FIXME: Deprecated: remove for 4.1 def gitolite_config_file + ActiveSupport::Deprecation.warn("Settings.gitolite_config_file is deprecated and will be removed from GitLab 4.1", caller) + gitolite.config_file + rescue Settingslogic::MissingSetting git_host['config_file'] || 'gitolite.conf' end + # FIXME: Deprecated: remove for 4.1 def gitolite_admin_key + ActiveSupport::Deprecation.warn("Settings.gitolite_admin_key is deprecated and will be removed from GitLab 4.1", caller) + gitolite.admin_key + rescue Settingslogic::MissingSetting git_host['gitolite_admin_key'] || 'gitlab' end + # FIXME: Deprecated: remove for 4.1 def default_projects_limit + ActiveSupport::Deprecation.warn("Settings.default_projects_limit is deprecated and will be removed from GitLab 4.1", caller) + gitlab.default_projects_limit + rescue Settingslogic::MissingSetting app['default_projects_limit'] || 10 end + # FIXME: Deprecated: remove for 4.1 def backup_path - t = app['backup_path'] || "backups/" - t = /^\//.match(t) ? t : Rails.root .join(t) - t + ActiveSupport::Deprecation.warn("Settings.backup_path is deprecated and will be removed from GitLab 4.1", caller) + backup.path + rescue Settingslogic::MissingSetting + File.expand_path(app['backup_path'] || "backups/", Rails.root) end + # FIXME: Deprecated: remove for 4.1 def backup_keep_time + ActiveSupport::Deprecation.warn("Settings.backup_keep_time is deprecated and will be removed from GitLab 4.1", caller) + backup.keep_time + rescue Settingslogic::MissingSetting app['backup_keep_time'] || 0 end + # FIXME: Deprecated: remove for 4.1 def ldap_enabled? - ldap && ldap['enabled'] + ActiveSupport::Deprecation.warn("Settings.ldap_enabled? is deprecated and will be removed from GitLab 4.1", caller) + ldap.enabled rescue Settingslogic::MissingSetting false end + # FIXME: Deprecated: remove for 4.1 def omniauth_enabled? - omniauth && omniauth['enabled'] + ActiveSupport::Deprecation.warn("Settings.omniauth_enabled? is deprecated and will be removed from GitLab 4.1", caller) + omniauth.enabled rescue Settingslogic::MissingSetting false end + # FIXME: Deprecated: remove for 4.1 def omniauth_providers - (omniauth_enabled? && omniauth['providers']) || [] + ActiveSupport::Deprecation.warn("Settings.omniauth_providers is deprecated and will be removed from GitLab 4.1", caller) + omniauth.providers + rescue Settingslogic::MissingSetting + [] end + # FIXME: Deprecated: remove for 4.1 def disable_gravatar? + ActiveSupport::Deprecation.warn("Settings.disable_gravatar? is deprecated and will be removed from GitLab 4.1", caller) + !gravatar.enabled + rescue Settingslogic::MissingSetting app['disable_gravatar'] || false end + # FIXME: Deprecated: remove for 4.1 def gravatar_url + ActiveSupport::Deprecation.warn("Settings.gravatar_url is deprecated and will be removed from GitLab 4.1", caller) + gravatar.plain_url + rescue Settingslogic::MissingSetting app['gravatar_url'] || 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm' end + # FIXME: Deprecated: remove for 4.1 def gravatar_ssl_url + ActiveSupport::Deprecation.warn("Settings.gravatar_ssl_url is deprecated and will be removed from GitLab 4.1", caller) + gravatar.ssl_url + rescue Settingslogic::MissingSetting app['gravatar_ssl_url'] || 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm' end + + + def gitlab_on_non_standard_port? + ![443, 80].include?(gitlab.port.to_i) + end + + private + + def build_gitolite_ssh_path_prefix + if gitolite.ssh_port != 22 + "ssh://#{gitolite.ssh_user}@#{gitolite.ssh_host}:#{gitolite.ssh_port}/" + else + "#{gitolite.ssh_user}@#{gitolite.ssh_host}:" + end + end + + def build_gitlab_url + if gitlab_on_non_standard_port? + custom_port = ":#{gitlab.port}" + else + custom_port = nil + end + [ gitlab.protocol, + "://", + gitlab.host, + custom_port + ].join('') + end end end + + +# Default settings + +# FIXME: Deprecated: remove for 4.1 +# all Settings.web ... +# all Settings.app ... +# all Settings.email ... +# all Settings.git_host ... +Settings['pre_40_config'] ||= Settings['web'].present? + +Settings['ldap'] ||= Settingslogic.new({}) +Settings.ldap['enabled'] ||= false + +Settings['omniauth'] ||= Settingslogic.new({}) +Settings.omniauth['enabled'] ||= false +Settings.omniauth['providers'] ||= [] + +Settings['gitlab'] ||= Settingslogic.new({}) +Settings.gitlab['default_projects_limit'] ||= Settings.pre_40_config ? Settings.default_projects_limit : 10 +Settings.gitlab['host'] ||= Settings.pre_40_config ? Settings.web_host : 'localhost' +Settings.gitlab['https'] ||= Settings.pre_40_config ? Settings.web.https : false +Settings.gitlab['port'] ||= Settings.gitlab.https ? 443 : 80 +Settings.gitlab['protocol'] ||= Settings.gitlab.https ? "https" : "http" +Settings.gitlab['email_from'] ||= Settings.pre_40_config ? Settings.email_from : "gitlab@#{Settings.gitlab.host}" +Settings.gitlab['url'] ||= Settings.pre_40_config ? Settings.url : Settings.send(:build_gitlab_url) + +Settings['gravatar'] ||= Settingslogic.new({}) +Settings.gravatar['enabled'] ||= Settings.pre_40_config ? !Settings.disable_gravatar? : true +Settings.gravatar['plain_url'] ||= Settings.pre_40_config ? Settings.gravatar_url : 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm' +Settings.gravatar['ssl_url'] ||= Settings.pre_40_config ? Settings.gravatar_ssl_url : 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm' + +Settings['gitolite'] ||= Settingslogic.new({}) +Settings.gitolite['admin_key'] ||= Settings.pre_40_config ? Settings.gitolite_admin_key : 'gitlab' +Settings.gitolite['admin_uri'] ||= Settings.pre_40_config ? Settings.gitolite_admin_uri : 'git@localhost:gitolite-admin' +Settings.gitolite['config_file'] ||= Settings.pre_40_config ? Settings.gitolite_config_file : 'gitolite.conf' +Settings.gitolite['hooks_path'] ||= Settings.pre_40_config ? Settings.git_hooks_path : '/home/git/share/gitolite/hooks/' +Settings.gitolite['receive_pack'] ||= Settings.pre_40_config ? Settings.git_receive_pack : (Settings.gitolite['receive_pack'] != false) +Settings.gitolite['repos_path'] ||= Settings.pre_40_config ? Settings.git_base_path : '/home/git/repositories/' +Settings.gitolite['upload_pack'] ||= Settings.pre_40_config ? Settings.git_upload_pack : (Settings.gitolite['upload_pack'] != false) +Settings.gitolite['ssh_host'] ||= Settings.pre_40_config ? Settings.ssh_host : (Settings.gitlab.host || 'localhost') +Settings.gitolite['ssh_port'] ||= Settings.pre_40_config ? Settings.ssh_port : 22 +Settings.gitolite['ssh_user'] ||= Settings.pre_40_config ? Settings.ssh_user : 'git' +Settings.gitolite['ssh_path_prefix'] ||= Settings.pre_40_config ? Settings.ssh_path : Settings.send(:build_gitolite_ssh_path_prefix) + +Settings['backup'] ||= Settingslogic.new({}) +Settings.backup['keep_time'] ||= Settings.pre_40_config ? Settings.backup_keep_time : 0 +Settings.backup['path'] = Settings.pre_40_config ? Settings.backup_path : File.expand_path(Settings.backup['path'] || "tmp/backups/", Rails.root) + +Settings['git'] ||= Settingslogic.new({}) +Settings.git['max_size'] ||= Settings.pre_40_config ? Settings.git_max_size : 5242880 # 5.megabytes +Settings.git['bin_path'] ||= Settings.pre_40_config ? Settings.git_bin_path : '/usr/bin/git' +Settings.git['timeout'] ||= Settings.pre_40_config ? Settings.git_timeout : 10 +Settings.git['path'] ||= Settings.git.bin_path # FIXME: Deprecated: remove for 4.1 From 19eb63741995e3be60781db74edab5d5ae896c6b Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Sat, 15 Dec 2012 01:16:25 +0100 Subject: [PATCH 3/5] Update uses of Gitolite.config.foo settings --- app/controllers/admin/users_controller.rb | 2 +- .../omniauth_callbacks_controller.rb | 2 +- app/helpers/application_helper.rb | 4 +- app/mailers/notify.rb | 8 ++-- app/models/namespace.rb | 8 ++-- app/models/project.rb | 2 +- app/roles/push_observer.rb | 2 +- app/roles/repository.rb | 4 +- app/views/admin/groups/show.html.haml | 2 +- app/views/errors/gitolite.html.haml | 4 +- app/views/profiles/account.html.haml | 2 +- app/views/profiles/show.html.haml | 2 +- app/views/shared/_clone_panel.html.haml | 2 +- app/workers/post_receive.rb | 4 +- config/initializers/3_grit_ext.rb | 4 +- config/initializers/devise.rb | 2 +- config/routes.rb | 8 ++-- features/support/env.rb | 6 +-- lib/gitlab/auth.rb | 2 +- lib/gitlab/backend/gitolite.rb | 2 +- lib/gitlab/backend/gitolite_config.rb | 6 +-- lib/gitlab/project_mover.rb | 4 +- lib/tasks/gitlab/activate_namespaces.rake | 2 +- lib/tasks/gitlab/backup.rake | 22 +++++----- lib/tasks/gitlab/check.rake | 42 +++++++++---------- lib/tasks/gitlab/import.rake | 2 +- lib/tasks/gitlab/info.rake | 22 +++++----- spec/lib/gitolite_spec.rb | 2 +- spec/lib/project_mover_spec.rb | 2 +- spec/models/project_hooks_spec.rb | 2 +- spec/models/project_spec.rb | 4 +- spec/spec_helper.rb | 6 +-- spec/workers/post_receive_spec.rb | 2 +- 33 files changed, 95 insertions(+), 95 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 5614aaa2..5f259bd7 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -30,7 +30,7 @@ class Admin::UsersController < AdminController def new - @admin_user = User.new({ projects_limit: Gitlab.config.default_projects_limit }, as: :admin) + @admin_user = User.new({ projects_limit: Gitlab.config.gitlab.default_projects_limit }, as: :admin) end def edit diff --git a/app/controllers/omniauth_callbacks_controller.rb b/app/controllers/omniauth_callbacks_controller.rb index 2fb783b2..c4ebf0e4 100644 --- a/app/controllers/omniauth_callbacks_controller.rb +++ b/app/controllers/omniauth_callbacks_controller.rb @@ -1,5 +1,5 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController - Gitlab.config.omniauth_providers.each do |provider| + Gitlab.config.omniauth.providers.each do |provider| define_method provider['name'] do handle_omniauth end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 571c0cb7..c9e93980 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -37,7 +37,7 @@ module ApplicationHelper if Gitlab.config.disable_gravatar? || user_email.blank? 'no_avatar.png' else - gravatar_url = request.ssl? ? Gitlab.config.gravatar_ssl_url : Gitlab.config.gravatar_url + gravatar_url = request.ssl? ? Gitlab.config.gravatar.ssl_url : Gitlab.config.gravatar.plain_url user_email.strip! sprintf(gravatar_url, {:hash => Digest::MD5.hexdigest(user_email.downcase), :email => URI.escape(user_email), :size => size}) end @@ -48,7 +48,7 @@ module ApplicationHelper end def web_app_url - "#{request_protocol}://#{Gitlab.config.web_host}/" + "#{request_protocol}://#{Gitlab.config.gitlab.host}/" end def last_commit(project) diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb index 29cebada..f954a05c 100644 --- a/app/mailers/notify.rb +++ b/app/mailers/notify.rb @@ -3,11 +3,11 @@ class Notify < ActionMailer::Base add_template_helper ApplicationHelper add_template_helper GitlabMarkdownHelper - default_url_options[:host] = Gitlab.config.web_host - default_url_options[:protocol] = Gitlab.config.web_protocol - default_url_options[:port] = Gitlab.config.web_port if Gitlab.config.web_custom_port? + default_url_options[:host] = Gitlab.config.gitlab.host + default_url_options[:protocol] = Gitlab.config.gitlab.protocol + default_url_options[:port] = Gitlab.config.gitlab.port if Gitlab.config.gitlab_on_non_standard_port? - default from: Gitlab.config.email_from + default from: Gitlab.config.gitlab.email_from diff --git a/app/models/namespace.rb b/app/models/namespace.rb index e1c24de9..3c087e26 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -48,14 +48,14 @@ class Namespace < ActiveRecord::Base end def ensure_dir_exist - namespace_dir_path = File.join(Gitlab.config.git_base_path, path) + namespace_dir_path = File.join(Gitlab.config.gitolite.repos_path, path) system("mkdir -m 770 #{namespace_dir_path}") unless File.exists?(namespace_dir_path) end def move_dir if path_changed? - old_path = File.join(Gitlab.config.git_base_path, path_was) - new_path = File.join(Gitlab.config.git_base_path, path) + old_path = File.join(Gitlab.config.gitolite.repos_path, path_was) + new_path = File.join(Gitlab.config.gitolite.repos_path, path) if File.exists?(new_path) raise "Already exists" end @@ -64,7 +64,7 @@ class Namespace < ActiveRecord::Base end def rm_dir - dir_path = File.join(Gitlab.config.git_base_path, path) + dir_path = File.join(Gitlab.config.gitolite.repos_path, path) system("rm -rf #{dir_path}") end end diff --git a/app/models/project.rb b/app/models/project.rb index eb6e7cb1..6a427fdd 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -195,7 +195,7 @@ class Project < ActiveRecord::Base end def web_url - [Gitlab.config.url, path_with_namespace].join("/") + [Gitlab.config.gitlab.url, path_with_namespace].join("/") end def common_notes diff --git a/app/roles/push_observer.rb b/app/roles/push_observer.rb index 0b3d57f4..dda18267 100644 --- a/app/roles/push_observer.rb +++ b/app/roles/push_observer.rb @@ -114,7 +114,7 @@ module PushObserver id: commit.id, message: commit.safe_message, timestamp: commit.date.xmlschema, - url: "#{Gitlab.config.url}/#{path_with_namespace}/commit/#{commit.id}", + url: "#{Gitlab.config.gitlab.url}/#{path_with_namespace}/commit/#{commit.id}", author: { name: commit.author_name, email: commit.author_email diff --git a/app/roles/repository.rb b/app/roles/repository.rb index 4e80d50c..78190ca9 100644 --- a/app/roles/repository.rb +++ b/app/roles/repository.rb @@ -97,7 +97,7 @@ module Repository end def path_to_repo - File.join(Gitlab.config.git_base_path, "#{path_with_namespace}.git") + File.join(Gitlab.config.gitolite.repos_path, "#{path_with_namespace}.git") end def namespace_dir @@ -199,7 +199,7 @@ module Repository end def http_url_to_repo - http_url = [Gitlab.config.url, "/", path_with_namespace, ".git"].join('') + http_url = [Gitlab.config.gitlab.url, "/", path_with_namespace, ".git"].join('') end # Check if current branch name is marked as protected in the system diff --git a/app/views/admin/groups/show.html.haml b/app/views/admin/groups/show.html.haml index 1b02475f..41f6d9b3 100644 --- a/app/views/admin/groups/show.html.haml +++ b/app/views/admin/groups/show.html.haml @@ -22,7 +22,7 @@ %b Path: %td - %span.monospace= File.join(Gitlab.config.git_base_path, @group.path) + %span.monospace= File.join(Gitlab.config.gitolite.repos_path, @group.path) %tr %td %b diff --git a/app/views/errors/gitolite.html.haml b/app/views/errors/gitolite.html.haml index 6eec9583..590bca71 100644 --- a/app/views/errors/gitolite.html.haml +++ b/app/views/errors/gitolite.html.haml @@ -21,5 +21,5 @@ Permissions: %pre = preserve do - sudo chown -R git:git #{Gitlab.config.git_base_path} - sudo chmod -R ug+rwXs #{Gitlab.config.git_base_path} + sudo chown -R git:git #{Gitlab.config.gitolite.repos_path} + sudo chmod -R ug+rwXs #{Gitlab.config.gitolite.repos_path} diff --git a/app/views/profiles/account.html.haml b/app/views/profiles/account.html.haml index 1c51f48f..3b5099ed 100644 --- a/app/views/profiles/account.html.haml +++ b/app/views/profiles/account.html.haml @@ -1,4 +1,4 @@ -- if Gitlab.config.omniauth_enabled? +- if Gitlab.config.omniauth.enabled %fieldset %legend Social Accounts .oauth_select_holder diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml index ac36fa3a..177119f0 100644 --- a/app/views/profiles/show.html.haml +++ b/app/views/profiles/show.html.haml @@ -37,7 +37,7 @@ %li %p You can change your avatar at #{link_to "gravatar.com", "http://gravatar.com"} - - if Gitlab.config.omniauth_enabled? && @user.provider? + - if Gitlab.config.omniauth.enabled && @user.provider? %li %p You can login through #{@user.provider.titleize}! diff --git a/app/views/shared/_clone_panel.html.haml b/app/views/shared/_clone_panel.html.haml index f632e122..e283d9b3 100644 --- a/app/views/shared/_clone_panel.html.haml +++ b/app/views/shared/_clone_panel.html.haml @@ -1,4 +1,4 @@ .input-prepend.project_clone_holder %button{class: "btn active", :"data-clone" => @project.ssh_url_to_repo} SSH - %button{class: "btn", :"data-clone" => @project.http_url_to_repo}= Gitlab.config.web_protocol.upcase + %button{class: "btn", :"data-clone" => @project.http_url_to_repo}= Gitlab.config.gitlab.protocol.upcase = text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select input-xxlarge" diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb index 11281b8b..1414ed49 100644 --- a/app/workers/post_receive.rb +++ b/app/workers/post_receive.rb @@ -2,7 +2,7 @@ class PostReceive @queue = :post_receive def self.perform(repo_path, oldrev, newrev, ref, identifier) - repo_path.gsub!(Gitlab.config.git_base_path.to_s, "") + repo_path.gsub!(Gitlab.config.gitolite.repos_path.to_s, "") repo_path.gsub!(/.git$/, "") repo_path.gsub!(/^\//, "") @@ -10,7 +10,7 @@ class PostReceive return false if project.nil? # Ignore push from non-gitlab users - user = if identifier.eql? Gitlab.config.gitolite_admin_key + user = if identifier.eql? Gitlab.config.gitolite.admin_key email = project.commit(newrev).author.email rescue nil User.find_by_email(email) if email elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier) diff --git a/config/initializers/3_grit_ext.rb b/config/initializers/3_grit_ext.rb index d114ea6c..097c301a 100644 --- a/config/initializers/3_grit_ext.rb +++ b/config/initializers/3_grit_ext.rb @@ -1,8 +1,8 @@ require 'grit' require 'pygments' -Grit::Git.git_timeout = Gitlab.config.git_timeout -Grit::Git.git_max_size = Gitlab.config.git_max_size +Grit::Git.git_timeout = Gitlab.config.git.timeout +Grit::Git.git_max_size = Gitlab.config.git.max_size Grit::Blob.class_eval do include Linguist::BlobHelper diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 8f3cef5a..db7246a1 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -4,7 +4,7 @@ Devise.setup do |config| # ==> Mailer Configuration # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class with default "from" parameter. - config.mailer_sender = Gitlab.config.email_from + config.mailer_sender = Gitlab.config.gitlab.email_from # Configure the class responsible to send e-mails. # config.mailer = "Devise::Mailer" diff --git a/config/routes.rb b/config/routes.rb index 7214a786..e08bfebc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -14,10 +14,10 @@ Gitlab::Application.routes.draw do # Enable Grack support mount Grack::Bundle.new({ - git_path: Gitlab.config.git_bin_path, - project_root: Gitlab.config.git_base_path, - upload_pack: Gitlab.config.git_upload_pack, - receive_pack: Gitlab.config.git_receive_pack + git_path: Gitlab.config.git.bin_path, + project_root: Gitlab.config.gitolite.repos_path, + upload_pack: Gitlab.config.gitolite.upload_pack, + receive_pack: Gitlab.config.gitolite.receive_pack }), at: '/:path', constraints: { path: /[-\/\w\.-]+\.git/ } # diff --git a/features/support/env.rb b/features/support/env.rb index 38fcc5ad..500de0f3 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -33,9 +33,9 @@ DatabaseCleaner.strategy = :truncation Spinach.hooks.before_scenario do # Use tmp dir for FS manipulations - Gitlab.config.stub(git_base_path: Rails.root.join('tmp', 'test-git-base-path')) - FileUtils.rm_rf Gitlab.config.git_base_path - FileUtils.mkdir_p Gitlab.config.git_base_path + Gitlab.config.gitolite.stub(repos_path: Rails.root.join('tmp', 'test-git-base-path')) + FileUtils.rm_rf Gitlab.config.gitolite.repos_path + FileUtils.mkdir_p Gitlab.config.gitolite.repos_path end Spinach.hooks.after_scenario do diff --git a/lib/gitlab/auth.rb b/lib/gitlab/auth.rb index 056fb034..8c45c935 100644 --- a/lib/gitlab/auth.rb +++ b/lib/gitlab/auth.rb @@ -38,7 +38,7 @@ module Gitlab email: email, password: password, password_confirmation: password, - projects_limit: Gitlab.config.default_projects_limit, + projects_limit: Gitlab.config.gitlab.default_projects_limit, }, as: :admin) if Gitlab.config.omniauth['block_auto_created_users'] && !ldap @user.blocked = true diff --git a/lib/gitlab/backend/gitolite.rb b/lib/gitlab/backend/gitolite.rb index 7c3861bd..3b8a2090 100644 --- a/lib/gitlab/backend/gitolite.rb +++ b/lib/gitlab/backend/gitolite.rb @@ -38,7 +38,7 @@ module Gitlab end def url_to_repo path - Gitlab.config.ssh_path + "#{path}.git" + Gitlab.config.gitolite.ssh_path_prefix + "#{path}.git" end def enable_automerge diff --git a/lib/gitlab/backend/gitolite_config.rb b/lib/gitlab/backend/gitolite_config.rb index 70ccc478..a2bc4ca8 100644 --- a/lib/gitlab/backend/gitolite_config.rb +++ b/lib/gitlab/backend/gitolite_config.rb @@ -16,7 +16,7 @@ module Gitlab def ga_repo @ga_repo ||= ::Gitolite::GitoliteAdmin.new( File.join(config_tmp_dir,'gitolite'), - conf: Gitlab.config.gitolite_config_file + conf: Gitlab.config.gitolite.config_file ) end @@ -167,7 +167,7 @@ module Gitlab # Enable access to all repos for gitolite admin. # We use it for accept merge request feature def admin_all_repo - owner_name = Gitlab.config.gitolite_admin_key + owner_name = Gitlab.config.gitolite.admin_key # @ALL repos premission for gitolite owner repo_name = "@all" @@ -189,7 +189,7 @@ module Gitlab def pull tmp_dir Dir.mkdir tmp_dir - `git clone #{Gitlab.config.gitolite_admin_uri} #{tmp_dir}/gitolite` + `git clone #{Gitlab.config.gitolite.admin_uri} #{tmp_dir}/gitolite` unless File.exists?(File.join(tmp_dir, 'gitolite', 'conf', 'gitolite.conf')) raise PullError, "unable to clone gitolite-admin repo" diff --git a/lib/gitlab/project_mover.rb b/lib/gitlab/project_mover.rb index eeab22ae..def6e900 100644 --- a/lib/gitlab/project_mover.rb +++ b/lib/gitlab/project_mover.rb @@ -15,10 +15,10 @@ module Gitlab def execute # Create new dir if missing - new_dir_path = File.join(Gitlab.config.git_base_path, new_dir) + new_dir_path = File.join(Gitlab.config.gitolite.repos_path, new_dir) system("mkdir -m 770 #{new_dir_path}") unless File.exists?(new_dir_path) - old_path = File.join(Gitlab.config.git_base_path, old_dir, "#{project.path}.git") + old_path = File.join(Gitlab.config.gitolite.repos_path, old_dir, "#{project.path}.git") new_path = File.join(new_dir_path, "#{project.path}.git") if File.exists? new_path diff --git a/lib/tasks/gitlab/activate_namespaces.rake b/lib/tasks/gitlab/activate_namespaces.rake index 08df0a80..70ec88d0 100644 --- a/lib/tasks/gitlab/activate_namespaces.rake +++ b/lib/tasks/gitlab/activate_namespaces.rake @@ -27,7 +27,7 @@ namespace :gitlab do end print "\n\nMove projects from groups under groups dirs:".yellow - git_path = Gitlab.config.git_base_path + git_path = Gitlab.config.gitolite.repos_path Project.where('namespace_id IS NOT NULL').find_each(batch_size: 500) do |project| next unless project.group diff --git a/lib/tasks/gitlab/backup.rake b/lib/tasks/gitlab/backup.rake index c01fe479..307a6288 100644 --- a/lib/tasks/gitlab/backup.rake +++ b/lib/tasks/gitlab/backup.rake @@ -8,7 +8,7 @@ namespace :gitlab do Rake::Task["gitlab:app:db_dump"].invoke Rake::Task["gitlab:app:repo_dump"].invoke - Dir.chdir(Gitlab.config.backup_path) + Dir.chdir(Gitlab.config.backup.path) # saving additional informations s = {} @@ -17,7 +17,7 @@ namespace :gitlab do s[:gitlab_version] = %x{git rev-parse HEAD}.gsub(/\n/,"") s[:tar_version] = %x{tar --version | head -1}.gsub(/\n/,"") - File.open("#{Gitlab.config.backup_path}/backup_information.yml", "w+") do |file| + File.open("#{Gitlab.config.backup.path}/backup_information.yml", "w+") do |file| file << s.to_yaml.gsub(/^---\n/,'') end @@ -39,10 +39,10 @@ namespace :gitlab do # delete backups print "Deleting old backups... " - if Gitlab.config.backup_keep_time > 0 + if Gitlab.config.backup.keep_time > 0 file_list = Dir.glob("*_gitlab_backup.tar").map { |f| f.split(/_/).first.to_i } file_list.sort.each do |timestamp| - if Time.at(timestamp) < (Time.now - Gitlab.config.backup_keep_time) + if Time.at(timestamp) < (Time.now - Gitlab.config.backup.keep_time) %x{rm #{timestamp}_gitlab_backup.tar} end end @@ -55,7 +55,7 @@ namespace :gitlab do # Restore backup of GitLab system desc "GITLAB | Restore a previously created backup" task :backup_restore => :environment do - Dir.chdir(Gitlab.config.backup_path) + Dir.chdir(Gitlab.config.backup.path) # check for existing backups in the backup dir file_list = Dir.glob("*_gitlab_backup.tar").each.map { |f| f.split(/_/).first.to_i } @@ -111,7 +111,7 @@ namespace :gitlab do ################################# REPOSITORIES ################################# task :repo_dump => :environment do - backup_path_repo = File.join(Gitlab.config.backup_path, "repositories") + backup_path_repo = File.join(Gitlab.config.backup.path, "repositories") FileUtils.mkdir_p(backup_path_repo) until Dir.exists?(backup_path_repo) puts "Dumping repositories:" project = Project.all.map { |n| [n.path, n.path_to_repo] } @@ -127,7 +127,7 @@ namespace :gitlab do end task :repo_restore => :environment do - backup_path_repo = File.join(Gitlab.config.backup_path, "repositories") + backup_path_repo = File.join(Gitlab.config.backup.path, "repositories") puts "Restoring repositories:" project = Project.all.map { |n| [n.path, n.path_to_repo] } project << ["gitolite-admin.git", File.join(File.dirname(project.first.second), "gitolite-admin.git")] @@ -136,8 +136,8 @@ namespace :gitlab do FileUtils.rm_rf(project.second) if File.dirname(project.second) # delete old stuff if Kernel.system("cd #{File.dirname(project.second)} > /dev/null 2>&1 && git clone --bare #{backup_path_repo}/#{project.first}.bundle #{project.first}.git > /dev/null 2>&1") permission_commands = [ - "sudo chmod -R g+rwX #{Gitlab.config.git_base_path}", - "sudo chown -R #{Gitlab.config.ssh_user}:#{Gitlab.config.ssh_user} #{Gitlab.config.git_base_path}" + "sudo chmod -R g+rwX #{Gitlab.config.gitolite.repos_path}", + "sudo chown -R #{Gitlab.config.gitolite.ssh_user}:#{Gitlab.config.gitolite.ssh_user} #{Gitlab.config.gitolite.repos_path}" ] permission_commands.each { |command| Kernel.system(command) } puts "[DONE]".green @@ -150,7 +150,7 @@ namespace :gitlab do ###################################### DB ###################################### task :db_dump => :environment do - backup_path_db = File.join(Gitlab.config.backup_path, "db") + backup_path_db = File.join(Gitlab.config.backup.path, "db") FileUtils.mkdir_p(backup_path_db) unless Dir.exists?(backup_path_db) puts "Dumping database tables:" @@ -170,7 +170,7 @@ namespace :gitlab do end task :db_restore=> :environment do - backup_path_db = File.join(Gitlab.config.backup_path, "db") + backup_path_db = File.join(Gitlab.config.backup.path, "db") puts "Restoring database tables:" Rake::Task["db:reset"].invoke diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index f70a3e7b..0a452686 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -268,7 +268,7 @@ namespace :gitlab do options = { "user.name" => "GitLab", - "user.email" => Gitlab.config.email_from + "user.email" => Gitlab.config.gitlab.email_from } correct_options = options.map do |name, value| run("git config --global --get #{name}").try(:squish) == value @@ -290,7 +290,7 @@ namespace :gitlab do end def check_gitlab_in_git_group - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user print "gitlab user is in #{gitolite_ssh_user} group? ... " if run_and_match("id -rnG", /\Wgit\W/) @@ -309,10 +309,10 @@ namespace :gitlab do # see https://github.com/gitlabhq/gitlabhq/issues/1059 def check_issue_1056_shell_profile_error - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user print "Has no \"-e\" in ~#{gitolite_ssh_user}/.profile ... " - profile_file = File.expand_path("~#{Gitlab.config.ssh_user}/.profile") + profile_file = File.expand_path("~#{Gitlab.config.gitolite.ssh_user}/.profile") unless File.read(profile_file) =~ /^-e PATH/ puts "yes".green @@ -414,7 +414,7 @@ namespace :gitlab do test_path = "/tmp/gitlab_gitolite_admin_test" FileUtils.rm_rf(test_path) - `git clone -q #{Gitlab.config.gitolite_admin_uri} #{test_path}` + `git clone -q #{Gitlab.config.gitolite.admin_uri} #{test_path}` raise unless $?.success? puts "yes".green @@ -423,7 +423,7 @@ namespace :gitlab do try_fixing_it( "Make sure the \"admin_uri\" is set correctly in config/gitlab.yml", "Try cloning it yourself with:", - " git clone -q #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite-admin", + " git clone -q #{Gitlab.config.gitolite.admin_uri} /tmp/gitolite-admin", "Make sure Gitolite is installed correctly." ) for_more_information( @@ -452,7 +452,7 @@ namespace :gitlab do puts "no".red try_fixing_it( "Try committing to it yourself with:", - " git clone -q #{Gitlab.config.gitolite_admin_uri} /tmp/gitolite-admin", + " git clone -q #{Gitlab.config.gitolite.admin_uri} /tmp/gitolite-admin", " touch foo", " git add foo", " git commit -m \"foo\"", @@ -469,7 +469,7 @@ namespace :gitlab do def check_dot_gitolite_exists print "Config directory exists? ... " - gitolite_config_path = File.expand_path("~#{Gitlab.config.ssh_user}/.gitolite") + gitolite_config_path = File.expand_path("~#{Gitlab.config.gitolite.ssh_user}/.gitolite") if File.directory?(gitolite_config_path) puts "yes".green @@ -490,7 +490,7 @@ namespace :gitlab do def check_dot_gitolite_permissions print "Config directory access is drwxr-x---? ... " - gitolite_config_path = File.expand_path("~#{Gitlab.config.ssh_user}/.gitolite") + gitolite_config_path = File.expand_path("~#{Gitlab.config.gitolite.ssh_user}/.gitolite") unless File.exists?(gitolite_config_path) puts "can't check because of previous errors".magenta return @@ -512,7 +512,7 @@ namespace :gitlab do end def check_dot_gitolite_user_and_group - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user print "Config directory owned by #{gitolite_ssh_user}:#{gitolite_ssh_user} ... " gitolite_config_path = File.expand_path("~#{gitolite_ssh_user}/.gitolite") @@ -615,9 +615,9 @@ namespace :gitlab do print "post-receive hook exists? ... " hook_file = "post-receive" - gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common") + gitolite_hooks_path = File.join(Gitlab.config.gitolite.hooks_path, "common") gitolite_hook_file = File.join(gitolite_hooks_path, hook_file) - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user gitlab_hook_file = Rails.root.join.join("lib", "hooks", hook_file) @@ -639,10 +639,10 @@ namespace :gitlab do print "post-receive hook up-to-date? ... " hook_file = "post-receive" - gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common") + gitolite_hooks_path = File.join(Gitlab.config.gitolite.hooks_path, "common") gitolite_hook_file = File.join(gitolite_hooks_path, hook_file) gitolite_hook_content = File.read(gitolite_hook_file) - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user unless File.exists?(gitolite_hook_file) puts "can't check because of previous errors".magenta @@ -669,7 +669,7 @@ namespace :gitlab do def check_repo_base_exists print "Repo base directory exists? ... " - repo_base_path = Gitlab.config.git_base_path + repo_base_path = Gitlab.config.gitolite.repos_path if File.exists?(repo_base_path) puts "yes".green @@ -691,7 +691,7 @@ namespace :gitlab do def check_repo_base_permissions print "Repo base access is drwsrws---? ... " - repo_base_path = Gitlab.config.git_base_path + repo_base_path = Gitlab.config.gitolite.repos_path unless File.exists?(repo_base_path) puts "can't check because of previous errors".magenta return @@ -713,10 +713,10 @@ namespace :gitlab do end def check_repo_base_user_and_group - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user print "Repo base owned by #{gitolite_ssh_user}:#{gitolite_ssh_user}? ... " - repo_base_path = Gitlab.config.git_base_path + repo_base_path = Gitlab.config.gitolite.repos_path unless File.exists?(repo_base_path) puts "can't check because of previous errors".magenta return @@ -777,9 +777,9 @@ namespace :gitlab do print "post-receive hooks in repos are links: ... " hook_file = "post-receive" - gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common") + gitolite_hooks_path = File.join(Gitlab.config.gitolite.hooks_path, "common") gitolite_hook_file = File.join(gitolite_hooks_path, hook_file) - gitolite_ssh_user = Gitlab.config.ssh_user + gitolite_ssh_user = Gitlab.config.gitolite.ssh_user unless File.exists?(gitolite_hook_file) puts "can't check because of previous errors".magenta @@ -828,7 +828,7 @@ namespace :gitlab do ######################## def gitolite_home - File.expand_path("~#{Gitlab.config.ssh_user}") + File.expand_path("~#{Gitlab.config.gitolite.ssh_user}") end def gitolite_version diff --git a/lib/tasks/gitlab/import.rake b/lib/tasks/gitlab/import.rake index 09f0dc9e..81f66e2e 100644 --- a/lib/tasks/gitlab/import.rake +++ b/lib/tasks/gitlab/import.rake @@ -12,7 +12,7 @@ namespace :gitlab do desc "GITLAB | Import bare repositories from git_host -> base_path into GitLab project instance" task :repos => :environment do - git_base_path = Gitlab.config.git_base_path + git_base_path = Gitlab.config.gitolite.repos_path repos_to_import = Dir.glob(git_base_path + '/*') repos_to_import.each do |repo_path| diff --git a/lib/tasks/gitlab/info.rake b/lib/tasks/gitlab/info.rake index 2f633974..85458fe2 100644 --- a/lib/tasks/gitlab/info.rake +++ b/lib/tasks/gitlab/info.rake @@ -46,7 +46,7 @@ namespace :gitlab do http_clone_url = project.http_url_to_repo ssh_clone_url = project.ssh_url_to_repo - omniauth_providers = Gitlab.config.omniauth_providers + omniauth_providers = Gitlab.config.omniauth.providers omniauth_providers.map! { |provider| provider['name'] } puts "" @@ -55,17 +55,17 @@ namespace :gitlab do puts "Revision:\t#{Gitlab::Revision}" puts "Directory:\t#{Rails.root}" puts "DB Adapter:\t#{database_adapter}" - puts "URL:\t\t#{Gitlab.config.url}" + puts "URL:\t\t#{Gitlab.config.gitlab.url}" puts "HTTP Clone URL:\t#{http_clone_url}" puts "SSH Clone URL:\t#{ssh_clone_url}" - puts "Using LDAP:\t#{Gitlab.config.ldap_enabled? ? "yes".green : "no"}" - puts "Using Omniauth:\t#{Gitlab.config.omniauth_enabled? ? "yes".green : "no"}" - puts "Omniauth Providers: #{omniauth_providers.map(&:magenta).join(', ')}" if Gitlab.config.omniauth_enabled? + puts "Using LDAP:\t#{Gitlab.config.ldap.enabled ? "yes".green : "no"}" + puts "Using Omniauth:\t#{Gitlab.config.omniauth.enabled ? "yes".green : "no"}" + puts "Omniauth Providers: #{omniauth_providers.map(&:magenta).join(', ')}" if Gitlab.config.omniauth.enabled # check Gitolite version - gitolite_version_file = "#{Gitlab.config.git_base_path}/../gitolite/src/VERSION" + gitolite_version_file = "#{Gitlab.config.gitolite.repos_path}/../gitolite/src/VERSION" if File.exists?(gitolite_version_file) && File.readable?(gitolite_version_file) gitolite_version = File.read(gitolite_version_file) end @@ -73,11 +73,11 @@ namespace :gitlab do puts "" puts "Gitolite information".yellow puts "Version:\t#{gitolite_version || "unknown".red}" - puts "Admin URI:\t#{Gitlab.config.gitolite_admin_uri}" - puts "Admin Key:\t#{Gitlab.config.gitolite_admin_key}" - puts "Repositories:\t#{Gitlab.config.git_base_path}" - puts "Hooks:\t\t#{Gitlab.config.git_hooks_path}" - puts "Git:\t\t#{Gitlab.config.git.path}" + puts "Admin URI:\t#{Gitlab.config.gitolite.admin_uri}" + puts "Admin Key:\t#{Gitlab.config.gitolite.admin_key}" + puts "Repositories:\t#{Gitlab.config.gitolite.repos_path}" + puts "Hooks:\t\t#{Gitlab.config.gitolite.hooks_path}" + puts "Git:\t\t#{Gitlab.config.git.bin_path}" end diff --git a/spec/lib/gitolite_spec.rb b/spec/lib/gitolite_spec.rb index cc8ce8b2..8075b99e 100644 --- a/spec/lib/gitolite_spec.rb +++ b/spec/lib/gitolite_spec.rb @@ -16,7 +16,7 @@ describe Gitlab::Gitolite do it { should respond_to :create_repository } it { should respond_to :remove_repository } - it { gitolite.url_to_repo('diaspora').should == Gitlab.config.ssh_path + "diaspora.git" } + it { gitolite.url_to_repo('diaspora').should == Gitlab.config.gitolite.ssh_path_prefix + "diaspora.git" } it "should call config update" do gitolite_config.should_receive(:update_project!) diff --git a/spec/lib/project_mover_spec.rb b/spec/lib/project_mover_spec.rb index af24635d..2362bc26 100644 --- a/spec/lib/project_mover_spec.rb +++ b/spec/lib/project_mover_spec.rb @@ -6,7 +6,7 @@ describe Gitlab::ProjectMover do before do FileUtils.rm_rf base_path if File.exists? base_path - Gitlab.config.stub(git_base_path: base_path) + Gitlab.config.gitolite.stub(repos_path: base_path) @project = create(:project) end diff --git a/spec/models/project_hooks_spec.rb b/spec/models/project_hooks_spec.rb index 39a628a9..df6a3831 100644 --- a/spec/models/project_hooks_spec.rb +++ b/spec/models/project_hooks_spec.rb @@ -108,7 +108,7 @@ describe Project, "Hooks" do it { should include(id: @commit.id) } it { should include(message: @commit.safe_message) } it { should include(timestamp: @commit.date.xmlschema) } - it { should include(url: "#{Gitlab.config.url}/#{project.code}/commit/#{@commit.id}") } + it { should include(url: "#{Gitlab.config.gitlab.url}/#{project.code}/commit/#{@commit.id}") } context "with a author" do subject { @data[:commits].first[:author] } diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index b9eafc7f..83a76976 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -148,7 +148,7 @@ describe Project do it "should return valid url to repo" do project = Project.new(path: "somewhere") - project.url_to_repo.should == Gitlab.config.ssh_path + "somewhere.git" + project.url_to_repo.should == Gitlab.config.gitolite.ssh_path_prefix + "somewhere.git" end it "should return path to repo" do @@ -158,7 +158,7 @@ describe Project do it "returns the full web URL for this repo" do project = Project.new(path: "somewhere") - project.web_url.should == "#{Gitlab.config.url}/somewhere" + project.web_url.should == "#{Gitlab.config.gitlab.url}/somewhere" end describe "last_activity methods" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7728b1e9..9f066c0e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -42,8 +42,8 @@ RSpec.configure do |config| # ActiveRecord::Base.observers.enable(:all) # Use tmp dir for FS manipulations - Gitlab.config.stub(git_base_path: Rails.root.join('tmp', 'test-git-base-path')) - FileUtils.rm_rf Gitlab.config.git_base_path - FileUtils.mkdir_p Gitlab.config.git_base_path + Gitlab.config.gitolite.stub(repos_path: Rails.root.join('tmp', 'test-git-base-path')) + FileUtils.rm_rf Gitlab.config.gitolite.repos_path + FileUtils.mkdir_p Gitlab.config.gitolite.repos_path end end diff --git a/spec/workers/post_receive_spec.rb b/spec/workers/post_receive_spec.rb index b0f554c5..26b461c3 100644 --- a/spec/workers/post_receive_spec.rb +++ b/spec/workers/post_receive_spec.rb @@ -39,6 +39,6 @@ describe PostReceive do end def pwd(project) - File.join(Gitlab.config.git_base_path, project.path_with_namespace) + File.join(Gitlab.config.gitolite.repos_path, project.path_with_namespace) end end From 757c7a52916fbee75a94ee453e055e8ce02a428e Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Sat, 15 Dec 2012 02:19:21 +0100 Subject: [PATCH 4/5] Fix gravatar and ldap config --- app/helpers/application_helper.rb | 2 +- app/views/profiles/show.html.haml | 2 +- config/initializers/devise.rb | 22 ++++++++++------------ spec/helpers/application_helper_spec.rb | 4 ++-- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c9e93980..52715a26 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -34,7 +34,7 @@ module ApplicationHelper def gravatar_icon(user_email = '', size = nil) size = 40 if size.nil? || size <= 0 - if Gitlab.config.disable_gravatar? || user_email.blank? + if !Gitlab.config.gravatar.enabled || user_email.blank? 'no_avatar.png' else gravatar_url = request.ssl? ? Gitlab.config.gravatar.ssl_url : Gitlab.config.gravatar.plain_url diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml index 177119f0..934c1fdf 100644 --- a/app/views/profiles/show.html.haml +++ b/app/views/profiles/show.html.haml @@ -33,7 +33,7 @@ %ul %li %p You can change your password on Account page - -unless Gitlab.config.disable_gravatar? + - if Gitlab.config.gravatar.enabled %li %p You can change your avatar at #{link_to "gravatar.com", "http://gravatar.com"} diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index db7246a1..ed3ab718 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -205,20 +205,18 @@ Devise.setup do |config| # manager.default_strategies(:scope => :user).unshift :some_external_strategy # end - gl = Gitlab.config - - if gl.ldap_enabled? + if Gitlab.config.ldap.enabled config.omniauth :ldap, - :host => gl.ldap['host'], - :base => gl.ldap['base'], - :uid => gl.ldap['uid'], - :port => gl.ldap['port'], - :method => gl.ldap['method'], - :bind_dn => gl.ldap['bind_dn'], - :password => gl.ldap['password'] + :host => Gitlab.config.ldap['host'], + :base => Gitlab.config.ldap['base'], + :uid => Gitlab.config.ldap['uid'], + :port => Gitlab.config.ldap['port'], + :method => Gitlab.config.ldap['method'], + :bind_dn => Gitlab.config.ldap['bind_dn'], + :password => Gitlab.config.ldap['password'] end - gl.omniauth_providers.each do |gl_provider| - config.omniauth gl_provider['name'].to_sym, gl_provider['app_id'], gl_provider['app_secret'] + Gitlab.config.omniauth.providers.each do |provider| + config.omniauth provider['name'].to_sym, provider['app_id'], provider['app_secret'] end end diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index df66e3b4..ba1af084 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -43,7 +43,7 @@ describe ApplicationHelper do let(:user_email) { 'user@email.com' } it "should return a generic avatar path when Gravatar is disabled" do - Gitlab.config.stub(:disable_gravatar?).and_return(true) + Gitlab.config.gravatar.stub(:enabled).and_return(false) gravatar_icon(user_email).should == 'no_avatar.png' end @@ -63,7 +63,7 @@ describe ApplicationHelper do it "should return custom gravatar path when gravatar_url is set" do stub!(:request).and_return(double(:ssl? => false)) - Gitlab.config.stub(:gravatar_url).and_return('http://example.local/?s=%{size}&hash=%{hash}') + Gitlab.config.gravatar.stub(:plain_url).and_return('http://example.local/?s=%{size}&hash=%{hash}') gravatar_icon(user_email, 20).should == 'http://example.local/?s=20&hash=b58c6f14d292556214bd64909bcdb118' end From 4c8ac320dd72f6094bc05128a8c8878e5836f8c4 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Thu, 20 Dec 2012 16:51:14 +0100 Subject: [PATCH 5/5] Updated gitlab:check task --- lib/tasks/gitlab/check.rake | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 0a452686..d1f81408 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -90,7 +90,7 @@ namespace :gitlab do end def check_gitlab_config_not_outdated - print "GitLab config not outdated? ... " + print "GitLab config outdated? ... " gitlab_config_file = Rails.root.join("config", "gitlab.yml") unless File.exists?(gitlab_config_file) @@ -98,11 +98,12 @@ namespace :gitlab do end # omniauth or ldap could have been deleted from the file - if File.read(gitlab_config_file) =~ /^web:/ - puts "yes".green + unless Gitlab.config.pre_40_config + puts "no".green else - puts "no".red + puts "yes".red try_fixing_it( + "Backup your config/gitlab.yml", "Copy config/gitlab.yml.example to config/gitlab.yml", "Update config/gitlab.yml to match your setup" )