Commit d64090b8a9065746c6d532057228c079a1d57013
1 parent
8e0b58d7
Exists in
master
and in
4 other branches
No gitolite in project any more
Showing
28 changed files
with
125 additions
and
167 deletions
Show diff stats
CHANGELOG
app/controllers/admin/projects_controller.rb
| ... | ... | @@ -41,9 +41,7 @@ class Admin::ProjectsController < Admin::ApplicationController |
| 41 | 41 | end |
| 42 | 42 | |
| 43 | 43 | def destroy |
| 44 | - # Delete team first in order to prevent multiple gitolite calls | |
| 45 | 44 | @project.team.truncate |
| 46 | - | |
| 47 | 45 | @project.destroy |
| 48 | 46 | |
| 49 | 47 | redirect_to admin_projects_path, notice: 'Project was successfully deleted.' | ... | ... |
app/controllers/errors_controller.rb
app/controllers/projects_controller.rb
| ... | ... | @@ -93,9 +93,7 @@ class ProjectsController < ProjectResourceController |
| 93 | 93 | def destroy |
| 94 | 94 | return access_denied! unless can?(current_user, :remove_project, project) |
| 95 | 95 | |
| 96 | - # Delete team first in order to prevent multiple gitolite calls | |
| 97 | 96 | project.team.truncate |
| 98 | - | |
| 99 | 97 | project.destroy |
| 100 | 98 | |
| 101 | 99 | respond_to do |format| | ... | ... |
app/models/namespace.rb
| ... | ... | @@ -31,8 +31,6 @@ class Namespace < ActiveRecord::Base |
| 31 | 31 | |
| 32 | 32 | scope :root, where('type IS NULL') |
| 33 | 33 | |
| 34 | - attr_accessor :require_update_gitolite | |
| 35 | - | |
| 36 | 34 | def self.search query |
| 37 | 35 | where("name LIKE :query OR path LIKE :query", query: "%#{query}%") |
| 38 | 36 | end |
| ... | ... | @@ -60,13 +58,13 @@ class Namespace < ActiveRecord::Base |
| 60 | 58 | end |
| 61 | 59 | |
| 62 | 60 | def namespace_full_path |
| 63 | - @namespace_full_path ||= File.join(Gitlab.config.gitolite.repos_path, path) | |
| 61 | + @namespace_full_path ||= File.join(Gitlab.config.gitlab_shell.repos_path, path) | |
| 64 | 62 | end |
| 65 | 63 | |
| 66 | 64 | def move_dir |
| 67 | 65 | if path_changed? |
| 68 | - old_path = File.join(Gitlab.config.gitolite.repos_path, path_was) | |
| 69 | - new_path = File.join(Gitlab.config.gitolite.repos_path, path) | |
| 66 | + old_path = File.join(Gitlab.config.gitlab_shell.repos_path, path_was) | |
| 67 | + new_path = File.join(Gitlab.config.gitlab_shell.repos_path, path) | |
| 70 | 68 | if File.exists?(new_path) |
| 71 | 69 | raise "Already exists" |
| 72 | 70 | end |
| ... | ... | @@ -81,7 +79,6 @@ class Namespace < ActiveRecord::Base |
| 81 | 79 | |
| 82 | 80 | FileUtils.mv( old_path, new_path ) |
| 83 | 81 | send_update_instructions |
| 84 | - @require_update_gitolite = true | |
| 85 | 82 | rescue Exception => e |
| 86 | 83 | raise "Namespace move error #{old_path} #{new_path}" |
| 87 | 84 | end |
| ... | ... | @@ -89,7 +86,7 @@ class Namespace < ActiveRecord::Base |
| 89 | 86 | end |
| 90 | 87 | |
| 91 | 88 | def rm_dir |
| 92 | - dir_path = File.join(Gitlab.config.gitolite.repos_path, path) | |
| 89 | + dir_path = File.join(Gitlab.config.gitlab_shell.repos_path, path) | |
| 93 | 90 | FileUtils.rm_r( dir_path, force: true ) |
| 94 | 91 | end |
| 95 | 92 | ... | ... |
app/models/project.rb
| ... | ... | @@ -140,10 +140,6 @@ class Project < ActiveRecord::Base |
| 140 | 140 | nil |
| 141 | 141 | end |
| 142 | 142 | |
| 143 | - def git_error? | |
| 144 | - error_code == :gitolite | |
| 145 | - end | |
| 146 | - | |
| 147 | 143 | def saved? |
| 148 | 144 | id && valid? |
| 149 | 145 | end |
| ... | ... | @@ -157,7 +153,7 @@ class Project < ActiveRecord::Base |
| 157 | 153 | end |
| 158 | 154 | |
| 159 | 155 | def repo_name |
| 160 | - denied_paths = %w(gitolite-admin admin dashboard groups help profile projects search) | |
| 156 | + denied_paths = %w(admin dashboard groups help profile projects search) | |
| 161 | 157 | |
| 162 | 158 | if denied_paths.include?(path) |
| 163 | 159 | errors.add(:path, "like #{path} is not allowed") |
| ... | ... | @@ -450,7 +446,7 @@ class Project < ActiveRecord::Base |
| 450 | 446 | end |
| 451 | 447 | |
| 452 | 448 | def url_to_repo |
| 453 | - gitolite.url_to_repo(path_with_namespace) | |
| 449 | + gitlab_shell.url_to_repo(path_with_namespace) | |
| 454 | 450 | end |
| 455 | 451 | |
| 456 | 452 | def namespace_dir | ... | ... |
app/models/repository.rb
| ... | ... | @@ -25,7 +25,7 @@ class Repository |
| 25 | 25 | end |
| 26 | 26 | |
| 27 | 27 | def path_to_repo |
| 28 | - @path_to_repo ||= File.join(Gitlab.config.gitolite.repos_path, "#{path_with_namespace}.git") | |
| 28 | + @path_to_repo ||= File.join(Gitlab.config.gitlab_shell.repos_path, "#{path_with_namespace}.git") | |
| 29 | 29 | end |
| 30 | 30 | |
| 31 | 31 | def repo | ... | ... |
app/views/admin/groups/show.html.haml
app/views/errors/gitolite.html.haml
| ... | ... | @@ -1,25 +0,0 @@ |
| 1 | -%h1.http_status_code 500 | |
| 2 | -%h3.page_title GitLab was unable to access your Gitolite system. | |
| 3 | -%hr | |
| 4 | - | |
| 5 | -.git_error_tips | |
| 6 | - %h4 Tips for Administrator: | |
| 7 | - %ol | |
| 8 | - %li | |
| 9 | - %p | |
| 10 | - Check git logs in admin area | |
| 11 | - %li | |
| 12 | - %p | |
| 13 | - Check config/gitlab.yml for correct settings. | |
| 14 | - %li | |
| 15 | - %p | |
| 16 | - Diagnostic tool: | |
| 17 | - %pre | |
| 18 | - bundle exec rake gitlab:check RAILS_ENV=production | |
| 19 | - %li | |
| 20 | - %p | |
| 21 | - Permissions: | |
| 22 | - %pre | |
| 23 | - = preserve do | |
| 24 | - sudo chown -R git:git #{Gitlab.config.gitolite.repos_path} | |
| 25 | - sudo chmod -R ug+rwXs #{Gitlab.config.gitolite.repos_path} |
app/workers/gitolite_worker.rb
app/workers/post_receive.rb
| ... | ... | @@ -5,10 +5,10 @@ class PostReceive |
| 5 | 5 | |
| 6 | 6 | def perform(repo_path, oldrev, newrev, ref, identifier) |
| 7 | 7 | |
| 8 | - if repo_path.start_with?(Gitlab.config.gitolite.repos_path.to_s) | |
| 9 | - repo_path.gsub!(Gitlab.config.gitolite.repos_path.to_s, "") | |
| 8 | + if repo_path.start_with?(Gitlab.config.gitlab_shell.repos_path.to_s) | |
| 9 | + repo_path.gsub!(Gitlab.config.gitlab_shell.repos_path.to_s, "") | |
| 10 | 10 | else |
| 11 | - Gitlab::GitLogger.error("POST-RECEIVE: Check gitlab.yml config for correct gitolite.repos_path variable. \"#{Gitlab.config.gitolite.repos_path}\" does not match \"#{repo_path}\"") | |
| 11 | + Gitlab::GitLogger.error("POST-RECEIVE: Check gitlab.yml config for correct gitlab_shell.repos_path variable. \"#{Gitlab.config.gitlab_shell.repos_path}\" does not match \"#{repo_path}\"") | |
| 12 | 12 | end |
| 13 | 13 | |
| 14 | 14 | repo_path.gsub!(/.git$/, "") |
| ... | ... | @@ -22,7 +22,8 @@ class PostReceive |
| 22 | 22 | end |
| 23 | 23 | |
| 24 | 24 | # Ignore push from non-gitlab users |
| 25 | - user = if identifier.eql? Gitlab.config.gitolite.admin_key | |
| 25 | + user = if identifier.nil? | |
| 26 | + raise identifier.inspect | |
| 26 | 27 | email = project.repository.commit(newrev).author.email rescue nil |
| 27 | 28 | User.find_by_email(email) if email |
| 28 | 29 | elsif /^[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,4}$/.match(identifier) | ... | ... |
config/gitlab.yml.example
| ... | ... | @@ -5,8 +5,7 @@ |
| 5 | 5 | # How to use: |
| 6 | 6 | # 1. copy file as gitlab.yml |
| 7 | 7 | # 2. Replace gitlab -> host with your domain |
| 8 | -# 3. Replace gitolite -> ssh_host with your domain | |
| 9 | -# 4. Replace gitlab -> email_from | |
| 8 | +# 3. Replace gitlab -> email_from | |
| 10 | 9 | |
| 11 | 10 | # |
| 12 | 11 | # 1. GitLab app settings |
| ... | ... | @@ -22,8 +21,8 @@ gitlab: |
| 22 | 21 | # Note that ENV['RAILS_RELATIVE_URL_ROOT'] in config/unicorn.rb may need to be changed |
| 23 | 22 | # relative_url_root: /gitlab |
| 24 | 23 | |
| 25 | - # Uncomment and customize if you can't use the default user to run GitLab (default: 'gitlab') | |
| 26 | - # user: user123 | |
| 24 | + # Uncomment and customize if you can't use the default user to run GitLab (default: 'git') | |
| 25 | + # user: git | |
| 27 | 26 | |
| 28 | 27 | ## Email settings |
| 29 | 28 | # Email address used in the "From" field in mails sent by GitLab |
| ... | ... | @@ -103,21 +102,18 @@ backup: |
| 103 | 102 | path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/) |
| 104 | 103 | # keep_time: 604800 # default: 0 (forever) (in seconds) |
| 105 | 104 | |
| 106 | -## Gitolite settings | |
| 107 | -gitolite: | |
| 105 | +## GitLab Shell settings | |
| 106 | +gitlab_shell: | |
| 108 | 107 | # REPOS_PATH MUST NOT BE A SYMLINK!!! |
| 109 | 108 | repos_path: /home/git/repositories/ |
| 110 | 109 | hooks_path: /home/git/gitlab-shell/hooks/ |
| 111 | - admin_key: gitlab | |
| 110 | + | |
| 111 | + # Git over HTTP | |
| 112 | 112 | upload_pack: true |
| 113 | 113 | receive_pack: true |
| 114 | - ssh_user: git | |
| 115 | - ssh_host: localhost | |
| 116 | - # ssh_port: 22 | |
| 117 | - # config_file: gitolite.conf | |
| 118 | 114 | |
| 119 | - # Uncomment and customize if you can't use the default group to own the repositories and run Gitolite (default: same as the 'ssh_user' above) | |
| 120 | - # owner_group: group123 | |
| 115 | + # If you use non-standart ssh port you need to specify it | |
| 116 | + # ssh_port: 22 | |
| 121 | 117 | |
| 122 | 118 | ## Git settings |
| 123 | 119 | # CAUTION! | ... | ... |
config/initializers/1_settings.rb
| ... | ... | @@ -8,11 +8,11 @@ class Settings < Settingslogic |
| 8 | 8 | |
| 9 | 9 | private |
| 10 | 10 | |
| 11 | - def build_gitolite_ssh_path_prefix | |
| 12 | - if gitolite.ssh_port != 22 | |
| 13 | - "ssh://#{gitolite.ssh_user}@#{gitolite.ssh_host}:#{gitolite.ssh_port}/" | |
| 11 | + def build_gitlab_shell_ssh_path_prefix | |
| 12 | + if gitlab_shell.ssh_port != 22 | |
| 13 | + "ssh://#{gitlab_shell.ssh_user}@#{gitlab_shell.ssh_host}:#{gitlab_shell.ssh_port}/" | |
| 14 | 14 | else |
| 15 | - "#{gitolite.ssh_user}@#{gitolite.ssh_host}:" | |
| 15 | + "#{gitlab_shell.ssh_user}@#{gitlab_shell.ssh_host}:" | |
| 16 | 16 | end |
| 17 | 17 | end |
| 18 | 18 | |
| ... | ... | @@ -41,6 +41,9 @@ Settings['omniauth'] ||= Settingslogic.new({}) |
| 41 | 41 | Settings.omniauth['enabled'] = false if Settings.omniauth['enabled'].nil? |
| 42 | 42 | Settings.omniauth['providers'] ||= [] |
| 43 | 43 | |
| 44 | +# | |
| 45 | +# GitLab | |
| 46 | +# | |
| 44 | 47 | Settings['gitlab'] ||= Settingslogic.new({}) |
| 45 | 48 | Settings.gitlab['default_projects_limit'] ||= 10 |
| 46 | 49 | Settings.gitlab['host'] ||= 'localhost' |
| ... | ... | @@ -54,29 +57,38 @@ Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url) |
| 54 | 57 | Settings.gitlab['user'] ||= 'git' |
| 55 | 58 | Settings.gitlab['signup_enabled'] ||= false |
| 56 | 59 | |
| 60 | +# | |
| 61 | +# Gravatar | |
| 62 | +# | |
| 57 | 63 | Settings['gravatar'] ||= Settingslogic.new({}) |
| 58 | 64 | Settings.gravatar['enabled'] = true if Settings.gravatar['enabled'].nil? |
| 59 | 65 | Settings.gravatar['plain_url'] ||= 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm' |
| 60 | 66 | Settings.gravatar['ssl_url'] ||= 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm' |
| 61 | 67 | |
| 62 | -Settings['gitolite'] ||= Settingslogic.new({}) | |
| 63 | -Settings.gitolite['admin_key'] ||= 'gitlab' | |
| 64 | -Settings.gitolite['admin_uri'] ||= 'git@localhost:gitolite-admin' | |
| 65 | -Settings.gitolite['config_file'] ||= 'gitolite.conf' | |
| 66 | -Settings.gitolite['hooks_path'] ||= '/home/git/share/gitolite/hooks/' | |
| 67 | -Settings.gitolite['receive_pack'] = true if Settings.gitolite['receive_pack'].nil? | |
| 68 | -Settings.gitolite['upload_pack'] = true if Settings.gitolite['upload_pack'].nil? | |
| 69 | -Settings.gitolite['repos_path'] ||= '/home/git/repositories/' | |
| 70 | -Settings.gitolite['ssh_host'] ||= (Settings.gitlab.host || 'localhost') | |
| 71 | -Settings.gitolite['ssh_port'] ||= 22 | |
| 72 | -Settings.gitolite['ssh_user'] ||= 'git' | |
| 73 | -Settings.gitolite['owner_group'] ||= Settings.gitolite.ssh_user | |
| 74 | -Settings.gitolite['ssh_path_prefix'] ||= Settings.send(:build_gitolite_ssh_path_prefix) | |
| 68 | +# | |
| 69 | +# GitLab Shell | |
| 70 | +# | |
| 71 | +Settings['gitlab_shell'] ||= Settingslogic.new({}) | |
| 72 | +Settings.gitlab_shell['hooks_path'] ||= '/home/git/gitlab-shell/hooks/' | |
| 73 | +Settings.gitlab_shell['receive_pack'] = true if Settings.gitlab_shell['receive_pack'].nil? | |
| 74 | +Settings.gitlab_shell['upload_pack'] = true if Settings.gitlab_shell['upload_pack'].nil? | |
| 75 | +Settings.gitlab_shell['repos_path'] ||= '/home/git/repositories/' | |
| 76 | +Settings.gitlab_shell['ssh_host'] ||= (Settings.gitlab.host || 'localhost') | |
| 77 | +Settings.gitlab_shell['ssh_port'] ||= 22 | |
| 78 | +Settings.gitlab_shell['ssh_user'] ||= Settings.gitlab.user | |
| 79 | +Settings.gitlab_shell['owner_group'] ||= Settings.gitlab.user | |
| 80 | +Settings.gitlab_shell['ssh_path_prefix'] ||= Settings.send(:build_gitlab_shell_ssh_path_prefix) | |
| 75 | 81 | |
| 82 | +# | |
| 83 | +# Backup | |
| 84 | +# | |
| 76 | 85 | Settings['backup'] ||= Settingslogic.new({}) |
| 77 | 86 | Settings.backup['keep_time'] ||= 0 |
| 78 | 87 | Settings.backup['path'] = File.expand_path(Settings.backup['path'] || "tmp/backups/", Rails.root) |
| 79 | 88 | |
| 89 | +# | |
| 90 | +# Git | |
| 91 | +# | |
| 80 | 92 | Settings['git'] ||= Settingslogic.new({}) |
| 81 | 93 | Settings.git['max_size'] ||= 5242880 # 5.megabytes |
| 82 | 94 | Settings.git['bin_path'] ||= '/usr/bin/git' | ... | ... |
config/routes.rb
| ... | ... | @@ -18,9 +18,9 @@ Gitlab::Application.routes.draw do |
| 18 | 18 | # Enable Grack support |
| 19 | 19 | mount Grack::Bundle.new({ |
| 20 | 20 | git_path: Gitlab.config.git.bin_path, |
| 21 | - project_root: Gitlab.config.gitolite.repos_path, | |
| 22 | - upload_pack: Gitlab.config.gitolite.upload_pack, | |
| 23 | - receive_pack: Gitlab.config.gitolite.receive_pack | |
| 21 | + project_root: Gitlab.config.gitlab_shell.repos_path, | |
| 22 | + upload_pack: Gitlab.config.gitlab_shell.upload_pack, | |
| 23 | + receive_pack: Gitlab.config.gitlab_shell.receive_pack | |
| 24 | 24 | }), at: '/', constraints: lambda { |request| /[-\/\w\.]+\.git\//.match(request.path_info) } |
| 25 | 25 | |
| 26 | 26 | # | ... | ... |
features/support/env.rb
| ... | ... | @@ -31,9 +31,9 @@ DatabaseCleaner.strategy = :truncation |
| 31 | 31 | |
| 32 | 32 | Spinach.hooks.before_scenario do |
| 33 | 33 | # Use tmp dir for FS manipulations |
| 34 | - Gitlab.config.gitolite.stub(repos_path: Rails.root.join('tmp', 'test-git-base-path')) | |
| 35 | - FileUtils.rm_rf Gitlab.config.gitolite.repos_path | |
| 36 | - FileUtils.mkdir_p Gitlab.config.gitolite.repos_path | |
| 34 | + Gitlab.config.gitlab_shell.stub(repos_path: Rails.root.join('tmp', 'test-git-base-path')) | |
| 35 | + FileUtils.rm_rf Gitlab.config.gitlab_shell.repos_path | |
| 36 | + FileUtils.mkdir_p Gitlab.config.gitlab_shell.repos_path | |
| 37 | 37 | end |
| 38 | 38 | |
| 39 | 39 | Spinach.hooks.after_scenario do | ... | ... |
lib/gitlab/backend/shell.rb
lib/gitlab/project_mover.rb
| ... | ... | @@ -15,10 +15,10 @@ module Gitlab |
| 15 | 15 | |
| 16 | 16 | def execute |
| 17 | 17 | # Create new dir if missing |
| 18 | - new_dir_path = File.join(Gitlab.config.gitolite.repos_path, new_dir) | |
| 18 | + new_dir_path = File.join(Gitlab.config.gitlab_shell.repos_path, new_dir) | |
| 19 | 19 | FileUtils.mkdir( new_dir_path, mode: 0770 ) unless File.exists?(new_dir_path) |
| 20 | 20 | |
| 21 | - old_path = File.join(Gitlab.config.gitolite.repos_path, old_dir, "#{project.path}.git") | |
| 21 | + old_path = File.join(Gitlab.config.gitlab_shell.repos_path, old_dir, "#{project.path}.git") | |
| 22 | 22 | new_path = File.join(new_dir_path, "#{project.path}.git") |
| 23 | 23 | |
| 24 | 24 | if File.exists? new_path | ... | ... |
lib/gitolited.rb
| 1 | 1 | # == Gitolited mixin |
| 2 | 2 | # |
| 3 | -# Provide a shortcut to Gitlab::Gitolite instance by gitolite | |
| 3 | +# Provide a shortcut to Gitlab::Shell instance by gitlab_shell | |
| 4 | 4 | # |
| 5 | 5 | # Used by Project, UsersProject, etc |
| 6 | 6 | # |
| 7 | 7 | module Gitolited |
| 8 | - def gitolite | |
| 8 | + def gitlab_shell | |
| 9 | 9 | Gitlab::Shell.new |
| 10 | 10 | end |
| 11 | 11 | end | ... | ... |
lib/tasks/gitlab/backup.rake
| ... | ... | @@ -144,7 +144,7 @@ namespace :gitlab do |
| 144 | 144 | |
| 145 | 145 | task :restore => :environment do |
| 146 | 146 | backup_path_repo = File.join(Gitlab.config.backup.path, "repositories") |
| 147 | - repos_path = Gitlab.config.gitolite.repos_path | |
| 147 | + repos_path = Gitlab.config.gitlab_shell.repos_path | |
| 148 | 148 | |
| 149 | 149 | puts "Restoring repositories ... " |
| 150 | 150 | ... | ... |
lib/tasks/gitlab/check.rake
| 1 | 1 | namespace :gitlab do |
| 2 | 2 | desc "GITLAB | Check the configuration of GitLab and its environment" |
| 3 | 3 | task check: %w{gitlab:env:check |
| 4 | - gitlab:gitolite:check | |
| 4 | + gitlab:gitlab_shell:check | |
| 5 | 5 | gitlab:sidekiq:check |
| 6 | 6 | gitlab:app:check} |
| 7 | 7 | |
| ... | ... | @@ -296,10 +296,10 @@ namespace :gitlab do |
| 296 | 296 | |
| 297 | 297 | # see https://github.com/gitlabhq/gitlabhq/issues/1059 |
| 298 | 298 | def check_issue_1059_shell_profile_error |
| 299 | - gitolite_ssh_user = Gitlab.config.gitolite.ssh_user | |
| 300 | - print "Has no \"-e\" in ~#{gitolite_ssh_user}/.profile ... " | |
| 299 | + gitlab_shell_ssh_user = Gitlab.config.gitlab_shell.ssh_user | |
| 300 | + print "Has no \"-e\" in ~#{gitlab_shell_ssh_user}/.profile ... " | |
| 301 | 301 | |
| 302 | - profile_file = File.join(gitolite_user_home, ".profile") | |
| 302 | + profile_file = File.join(gitlab_shell_user_home, ".profile") | |
| 303 | 303 | |
| 304 | 304 | unless File.read(profile_file) =~ /^-e PATH/ |
| 305 | 305 | puts "yes".green |
| ... | ... | @@ -367,7 +367,7 @@ namespace :gitlab do |
| 367 | 367 | |
| 368 | 368 | |
| 369 | 369 | |
| 370 | - namespace :gitolite do | |
| 370 | + namespace :gitlab_shell do | |
| 371 | 371 | desc "GITLAB | Check the configuration of Gitolite" |
| 372 | 372 | task check: :environment do |
| 373 | 373 | warn_user_is_not_gitlab |
| ... | ... | @@ -392,25 +392,25 @@ namespace :gitlab do |
| 392 | 392 | print "post-receive hook up-to-date? ... " |
| 393 | 393 | |
| 394 | 394 | hook_file = "post-receive" |
| 395 | - gitolite_hooks_path = File.join(Gitlab.config.gitolite.hooks_path, "common") | |
| 396 | - gitolite_hook_file = File.join(gitolite_hooks_path, hook_file) | |
| 397 | - gitolite_ssh_user = Gitlab.config.gitolite.ssh_user | |
| 395 | + gitlab_shell_hooks_path = File.join(Gitlab.config.gitlab_shell.hooks_path, "common") | |
| 396 | + gitlab_shell_hook_file = File.join(gitlab_shell_hooks_path, hook_file) | |
| 397 | + gitlab_shell_ssh_user = Gitlab.config.gitlab_shell.ssh_user | |
| 398 | 398 | |
| 399 | - unless File.exists?(gitolite_hook_file) | |
| 399 | + unless File.exists?(gitlab_shell_hook_file) | |
| 400 | 400 | puts "can't check because of previous errors".magenta |
| 401 | 401 | return |
| 402 | 402 | end |
| 403 | 403 | |
| 404 | - gitolite_hook_content = File.read(gitolite_hook_file) | |
| 404 | + gitlab_shell_hook_content = File.read(gitlab_shell_hook_file) | |
| 405 | 405 | gitlab_hook_file = Rails.root.join.join("lib", "hooks", hook_file) |
| 406 | 406 | gitlab_hook_content = File.read(gitlab_hook_file) |
| 407 | 407 | |
| 408 | - if gitolite_hook_content == gitlab_hook_content | |
| 408 | + if gitlab_shell_hook_content == gitlab_hook_content | |
| 409 | 409 | puts "yes".green |
| 410 | 410 | else |
| 411 | 411 | puts "no".red |
| 412 | 412 | try_fixing_it( |
| 413 | - "sudo -u #{gitolite_ssh_user} cp #{gitlab_hook_file} #{gitolite_hook_file}" | |
| 413 | + "sudo -u #{gitlab_shell_ssh_user} cp #{gitlab_hook_file} #{gitlab_shell_hook_file}" | |
| 414 | 414 | ) |
| 415 | 415 | for_more_information( |
| 416 | 416 | see_installation_guide_section "Setup GitLab Hooks" |
| ... | ... | @@ -422,7 +422,7 @@ namespace :gitlab do |
| 422 | 422 | def check_repo_base_exists |
| 423 | 423 | print "Repo base directory exists? ... " |
| 424 | 424 | |
| 425 | - repo_base_path = Gitlab.config.gitolite.repos_path | |
| 425 | + repo_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 426 | 426 | |
| 427 | 427 | if File.exists?(repo_base_path) |
| 428 | 428 | puts "yes".green |
| ... | ... | @@ -444,7 +444,7 @@ namespace :gitlab do |
| 444 | 444 | def check_repo_base_is_not_symlink |
| 445 | 445 | print "Repo base directory is a symlink? ... " |
| 446 | 446 | |
| 447 | - repo_base_path = Gitlab.config.gitolite.repos_path | |
| 447 | + repo_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 448 | 448 | unless File.exists?(repo_base_path) |
| 449 | 449 | puts "can't check because of previous errors".magenta |
| 450 | 450 | return |
| ... | ... | @@ -464,7 +464,7 @@ namespace :gitlab do |
| 464 | 464 | def check_repo_base_permissions |
| 465 | 465 | print "Repo base access is drwxrws---? ... " |
| 466 | 466 | |
| 467 | - repo_base_path = Gitlab.config.gitolite.repos_path | |
| 467 | + repo_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 468 | 468 | unless File.exists?(repo_base_path) |
| 469 | 469 | puts "can't check because of previous errors".magenta |
| 470 | 470 | return |
| ... | ... | @@ -487,23 +487,23 @@ namespace :gitlab do |
| 487 | 487 | end |
| 488 | 488 | |
| 489 | 489 | def check_repo_base_user_and_group |
| 490 | - gitolite_ssh_user = Gitlab.config.gitolite.ssh_user | |
| 491 | - gitolite_owner_group = Gitlab.config.gitolite.owner_group | |
| 492 | - print "Repo base owned by #{gitolite_ssh_user}:#{gitolite_owner_group}? ... " | |
| 490 | + gitlab_shell_ssh_user = Gitlab.config.gitlab_shell.ssh_user | |
| 491 | + gitlab_shell_owner_group = Gitlab.config.gitlab_shell.owner_group | |
| 492 | + print "Repo base owned by #{gitlab_shell_ssh_user}:#{gitlab_shell_owner_group}? ... " | |
| 493 | 493 | |
| 494 | - repo_base_path = Gitlab.config.gitolite.repos_path | |
| 494 | + repo_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 495 | 495 | unless File.exists?(repo_base_path) |
| 496 | 496 | puts "can't check because of previous errors".magenta |
| 497 | 497 | return |
| 498 | 498 | end |
| 499 | 499 | |
| 500 | - if File.stat(repo_base_path).uid == uid_for(gitolite_ssh_user) && | |
| 501 | - File.stat(repo_base_path).gid == gid_for(gitolite_owner_group) | |
| 500 | + if File.stat(repo_base_path).uid == uid_for(gitlab_shell_ssh_user) && | |
| 501 | + File.stat(repo_base_path).gid == gid_for(gitlab_shell_owner_group) | |
| 502 | 502 | puts "yes".green |
| 503 | 503 | else |
| 504 | 504 | puts "no".red |
| 505 | 505 | try_fixing_it( |
| 506 | - "sudo chown -R #{gitolite_ssh_user}:#{gitolite_owner_group} #{repo_base_path}" | |
| 506 | + "sudo chown -R #{gitlab_shell_ssh_user}:#{gitlab_shell_owner_group} #{repo_base_path}" | |
| 507 | 507 | ) |
| 508 | 508 | for_more_information( |
| 509 | 509 | see_installation_guide_section "Gitolite" |
| ... | ... | @@ -516,11 +516,11 @@ namespace :gitlab do |
| 516 | 516 | print "post-receive hooks in repos are links: ... " |
| 517 | 517 | |
| 518 | 518 | hook_file = "post-receive" |
| 519 | - gitolite_hooks_path = File.join(Gitlab.config.gitolite.hooks_path, "common") | |
| 520 | - gitolite_hook_file = File.join(gitolite_hooks_path, hook_file) | |
| 521 | - gitolite_ssh_user = Gitlab.config.gitolite.ssh_user | |
| 519 | + gitlab_shell_hooks_path = File.join(Gitlab.config.gitlab_shell.hooks_path, "common") | |
| 520 | + gitlab_shell_hook_file = File.join(gitlab_shell_hooks_path, hook_file) | |
| 521 | + gitlab_shell_ssh_user = Gitlab.config.gitlab_shell.ssh_user | |
| 522 | 522 | |
| 523 | - unless File.exists?(gitolite_hook_file) | |
| 523 | + unless File.exists?(gitlab_shell_hook_file) | |
| 524 | 524 | puts "can't check because of previous errors".magenta |
| 525 | 525 | return |
| 526 | 526 | end |
| ... | ... | @@ -542,7 +542,7 @@ namespace :gitlab do |
| 542 | 542 | unless File.exists?(project_hook_file) |
| 543 | 543 | puts "missing".red |
| 544 | 544 | try_fixing_it( |
| 545 | - "sudo -u #{gitolite_ssh_user} ln -sf #{gitolite_hook_file} #{project_hook_file}" | |
| 545 | + "sudo -u #{gitlab_shell_ssh_user} ln -sf #{gitlab_shell_hook_file} #{project_hook_file}" | |
| 546 | 546 | ) |
| 547 | 547 | for_more_information( |
| 548 | 548 | "lib/support/rewrite-hooks.sh" |
| ... | ... | @@ -552,12 +552,12 @@ namespace :gitlab do |
| 552 | 552 | end |
| 553 | 553 | |
| 554 | 554 | if File.lstat(project_hook_file).symlink? && |
| 555 | - File.realpath(project_hook_file) == File.realpath(gitolite_hook_file) | |
| 555 | + File.realpath(project_hook_file) == File.realpath(gitlab_shell_hook_file) | |
| 556 | 556 | puts "ok".green |
| 557 | 557 | else |
| 558 | 558 | puts "not a link to Gitolite's hook".red |
| 559 | 559 | try_fixing_it( |
| 560 | - "sudo -u #{gitolite_ssh_user} ln -sf #{gitolite_hook_file} #{project_hook_file}" | |
| 560 | + "sudo -u #{gitlab_shell_ssh_user} ln -sf #{gitlab_shell_hook_file} #{project_hook_file}" | |
| 561 | 561 | ) |
| 562 | 562 | for_more_information( |
| 563 | 563 | "lib/support/rewrite-hooks.sh" |
| ... | ... | @@ -572,19 +572,19 @@ namespace :gitlab do |
| 572 | 572 | # Helper methods |
| 573 | 573 | ######################## |
| 574 | 574 | |
| 575 | - def gitolite_user_home | |
| 576 | - File.expand_path("~#{Gitlab.config.gitolite.ssh_user}") | |
| 575 | + def gitlab_shell_user_home | |
| 576 | + File.expand_path("~#{Gitlab.config.gitlab_shell.ssh_user}") | |
| 577 | 577 | end |
| 578 | 578 | |
| 579 | - def gitolite_version | |
| 580 | - gitolite_version_file = "#{gitolite_user_home}/gitolite/src/VERSION" | |
| 581 | - if File.readable?(gitolite_version_file) | |
| 582 | - File.read(gitolite_version_file) | |
| 579 | + def gitlab_shell_version | |
| 580 | + gitlab_shell_version_file = "#{gitlab_shell_user_home}/gitlab_shell/src/VERSION" | |
| 581 | + if File.readable?(gitlab_shell_version_file) | |
| 582 | + File.read(gitlab_shell_version_file) | |
| 583 | 583 | end |
| 584 | 584 | end |
| 585 | 585 | |
| 586 | - def has_gitolite3? | |
| 587 | - gitolite_version.try(:start_with?, "v3.") | |
| 586 | + def has_gitlab_shell3? | |
| 587 | + gitlab_shell_version.try(:start_with?, "v3.") | |
| 588 | 588 | end |
| 589 | 589 | end |
| 590 | 590 | ... | ... |
lib/tasks/gitlab/cleanup.rake
| ... | ... | @@ -7,7 +7,7 @@ namespace :gitlab do |
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | namespaces = Namespace.pluck(:path) |
| 10 | - git_base_path = Gitlab.config.gitolite.repos_path | |
| 10 | + git_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 11 | 11 | all_dirs = Dir.glob(git_base_path + '/*') |
| 12 | 12 | |
| 13 | 13 | puts git_base_path.yellow |
| ... | ... | @@ -48,7 +48,7 @@ namespace :gitlab do |
| 48 | 48 | warn_user_is_not_gitlab |
| 49 | 49 | remove_flag = ENV['REMOVE'] |
| 50 | 50 | |
| 51 | - git_base_path = Gitlab.config.gitolite.repos_path | |
| 51 | + git_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 52 | 52 | all_dirs = Dir.glob(git_base_path + '/*') |
| 53 | 53 | |
| 54 | 54 | global_projects = Project.where(namespace_id: nil).pluck(:path) |
| ... | ... | @@ -68,13 +68,6 @@ namespace :gitlab do |
| 68 | 68 | global_projects.include?(path) |
| 69 | 69 | end |
| 70 | 70 | |
| 71 | - # skip gitolite admin | |
| 72 | - all_dirs.reject! do |dir| | |
| 73 | - repo_name = File.basename dir | |
| 74 | - repo_name == 'gitolite-admin.git' | |
| 75 | - end | |
| 76 | - | |
| 77 | - | |
| 78 | 71 | all_dirs.each do |dir_path| |
| 79 | 72 | if remove_flag |
| 80 | 73 | if FileUtils.rm_rf dir_path | ... | ... |
lib/tasks/gitlab/enable_namespaces.rake
| ... | ... | @@ -6,11 +6,6 @@ namespace :gitlab do |
| 6 | 6 | migrate_user_namespaces |
| 7 | 7 | migrate_groups |
| 8 | 8 | migrate_projects |
| 9 | - | |
| 10 | - puts "Rebuild Gitolite ... " | |
| 11 | - gitolite = Gitlab::Gitolite.new | |
| 12 | - gitolite.update_repositories(Project.where('namespace_id IS NOT NULL')) | |
| 13 | - puts "... #{"done".green}" | |
| 14 | 9 | end |
| 15 | 10 | |
| 16 | 11 | def migrate_user_namespaces |
| ... | ... | @@ -80,7 +75,7 @@ namespace :gitlab do |
| 80 | 75 | end |
| 81 | 76 | |
| 82 | 77 | def migrate_projects |
| 83 | - git_path = Gitlab.config.gitolite.repos_path | |
| 78 | + git_path = Gitlab.config.gitlab_shell.repos_path | |
| 84 | 79 | puts "\nMove projects in groups into respective directories ... ".blue |
| 85 | 80 | Project.where('namespace_id IS NOT NULL').find_each(batch_size: 500) do |project| |
| 86 | 81 | next unless project.group | ... | ... |
lib/tasks/gitlab/import.rake
| ... | ... | @@ -12,7 +12,7 @@ namespace :gitlab do |
| 12 | 12 | desc "GITLAB | Import bare repositories from git_host -> base_path into GitLab project instance" |
| 13 | 13 | task :repos => :environment do |
| 14 | 14 | |
| 15 | - git_base_path = Gitlab.config.gitolite.repos_path | |
| 15 | + git_base_path = Gitlab.config.gitlab_shell.repos_path | |
| 16 | 16 | repos_to_import = Dir.glob(git_base_path + '/*') |
| 17 | 17 | |
| 18 | 18 | namespaces = Namespace.pluck(:path) |
| ... | ... | @@ -26,7 +26,6 @@ namespace :gitlab do |
| 26 | 26 | # skip if not git repo |
| 27 | 27 | next unless repo_name =~ /.git$/ |
| 28 | 28 | |
| 29 | - # skip gitolite admin | |
| 30 | 29 | next if repo_name == 'gitolite-admin.git' |
| 31 | 30 | |
| 32 | 31 | path = repo_name.sub(/\.git$/, '') | ... | ... |
lib/tasks/gitlab/info.rake
| ... | ... | @@ -54,16 +54,16 @@ namespace :gitlab do |
| 54 | 54 | |
| 55 | 55 | |
| 56 | 56 | # check Gitolite version |
| 57 | - gitolite_version_file = "#{Gitlab.config.gitolite.repos_path}/../gitlab-shell/VERSION" | |
| 58 | - if File.readable?(gitolite_version_file) | |
| 59 | - gitolite_version = File.read(gitolite_version_file) | |
| 57 | + gitlab_shell_version_file = "#{Gitlab.config.gitlab_shell.repos_path}/../gitlab-shell/VERSION" | |
| 58 | + if File.readable?(gitlab_shell_version_file) | |
| 59 | + gitlab_shell_version = File.read(gitlab_shell_version_file) | |
| 60 | 60 | end |
| 61 | 61 | |
| 62 | 62 | puts "" |
| 63 | 63 | puts "GitLab Shell".yellow |
| 64 | - puts "Version:\t#{gitolite_version || "unknown".red}" | |
| 65 | - puts "Repositories:\t#{Gitlab.config.gitolite.repos_path}" | |
| 66 | - puts "Hooks:\t\t#{Gitlab.config.gitolite.hooks_path}" | |
| 64 | + puts "Version:\t#{gitlab_shell_version || "unknown".red}" | |
| 65 | + puts "Repositories:\t#{Gitlab.config.gitlab_shell.repos_path}" | |
| 66 | + puts "Hooks:\t\t#{Gitlab.config.gitlab_shell.hooks_path}" | |
| 67 | 67 | puts "Git:\t\t#{Gitlab.config.git.bin_path}" |
| 68 | 68 | |
| 69 | 69 | end | ... | ... |
lib/tasks/gitlab/shell.rake
| ... | ... | @@ -8,7 +8,7 @@ namespace :gitlab do |
| 8 | 8 | desc "GITLAB | Build missing projects" |
| 9 | 9 | task build_missing_projects: :environment do |
| 10 | 10 | Project.find_each(batch_size: 1000) do |project| |
| 11 | - path_to_repo = File.join(Gitlab.config.gitolite.repos_path, "#{project.path_with_namespace}.git") | |
| 11 | + path_to_repo = File.join(Gitlab.config.gitlab_shell.repos_path, "#{project.path_with_namespace}.git") | |
| 12 | 12 | if File.exists?(path_to_repo) |
| 13 | 13 | print '-' |
| 14 | 14 | else | ... | ... |
lib/tasks/sidekiq.rake
| ... | ... | @@ -6,7 +6,7 @@ namespace :sidekiq do |
| 6 | 6 | |
| 7 | 7 | desc "GITLAB | Start sidekiq" |
| 8 | 8 | task :start do |
| 9 | - run "nohup bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitolite,common,default -e #{Rails.env} -P #{pidfile} >> #{Rails.root.join("log", "sidekiq.log")} 2>&1 &" | |
| 9 | + run "nohup bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,gitlab_shell,common,default -e #{Rails.env} -P #{pidfile} >> #{Rails.root.join("log", "sidekiq.log")} 2>&1 &" | |
| 10 | 10 | end |
| 11 | 11 | |
| 12 | 12 | def pidfile | ... | ... |
spec/spec_helper.rb
| ... | ... | @@ -35,7 +35,7 @@ RSpec.configure do |config| |
| 35 | 35 | config.before do |
| 36 | 36 | # Use tmp dir for FS manipulations |
| 37 | 37 | temp_repos_path = Rails.root.join('tmp', 'test-git-base-path') |
| 38 | - Gitlab.config.gitolite.stub(repos_path: temp_repos_path) | |
| 38 | + Gitlab.config.gitlab_shell.stub(repos_path: temp_repos_path) | |
| 39 | 39 | FileUtils.rm_rf temp_repos_path |
| 40 | 40 | FileUtils.mkdir_p temp_repos_path |
| 41 | 41 | end | ... | ... |