diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-11-18 18:14:36 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-11-18 18:14:36 +0300 |
commit | f7bf892cca6bb8106194c14bef1ed9ddfc26ec91 (patch) | |
tree | b9f47db5ffcb682281a52f281069e2bd8a852bad | |
parent | cfee95d0327485dffb8ea4d698d3f7f310fc6c19 (diff) |
Revert "gitlab shell works if multiple rubies installed"
This reverts commit 533f4cdf30b38c587f7a91f0dfd898b907ecd944.
-rw-r--r-- | GITLAB_SHELL_VERSION | 2 | ||||
-rw-r--r-- | config/application.rb | 2 | ||||
-rw-r--r-- | config/gitlab.yml.example | 2 | ||||
-rw-r--r-- | config/initializers/gitlab_shell_secret_token.rb | 20 | ||||
-rw-r--r-- | features/project/forked_merge_requests.feature | 26 | ||||
-rw-r--r-- | lib/gitlab/backend/shell.rb | 21 | ||||
-rw-r--r-- | lib/tasks/gitlab/shell.rake | 12 | ||||
-rw-r--r-- | spec/support/test_env.rb | 53 |
8 files changed, 40 insertions, 98 deletions
diff --git a/GITLAB_SHELL_VERSION b/GITLAB_SHELL_VERSION index 276cbf9e285..ccbccc3dc62 100644 --- a/GITLAB_SHELL_VERSION +++ b/GITLAB_SHELL_VERSION @@ -1 +1 @@ -2.3.0 +2.2.0 diff --git a/config/application.rb b/config/application.rb index 8300cf57a61..44a5d68d126 100644 --- a/config/application.rb +++ b/config/application.rb @@ -92,7 +92,5 @@ module Gitlab redis_config_hash[:namespace] = 'cache:gitlab' config.cache_store = :redis_store, redis_config_hash - - ENV['GITLAB_PATH_OUTSIDE_HOOK'] = ENV['PATH'] end end diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 14b5e134ce2..bb0ffae0b70 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -307,7 +307,7 @@ test: enabled: true gitlab: host: localhost - port: 3001 + port: 80 # When you run tests we clone and setup gitlab-shell # In order to setup it correctly you need to specify diff --git a/config/initializers/gitlab_shell_secret_token.rb b/config/initializers/gitlab_shell_secret_token.rb index 250b86caaf0..8d2b771e535 100644 --- a/config/initializers/gitlab_shell_secret_token.rb +++ b/config/initializers/gitlab_shell_secret_token.rb @@ -1 +1,19 @@ -Gitlab::Shell.setup_secret_token +# Be sure to restart your server when you modify this file. + +require 'securerandom' + +# Your secret key for verifying the gitlab_shell. + + +secret_file = Rails.root.join('.gitlab_shell_secret') +gitlab_shell_symlink = File.join(Gitlab.config.gitlab_shell.path, '.gitlab_shell_secret') + +unless File.exist? secret_file + # Generate a new token of 16 random hexadecimal characters and store it in secret_file. + token = SecureRandom.hex(16) + File.write(secret_file, token) +end + +if File.exist?(Gitlab.config.gitlab_shell.path) && !File.exist?(gitlab_shell_symlink) + FileUtils.symlink(secret_file, gitlab_shell_symlink) +end
\ No newline at end of file diff --git a/features/project/forked_merge_requests.feature b/features/project/forked_merge_requests.feature index 7442145d87e..d9fbb875c28 100644 --- a/features/project/forked_merge_requests.feature +++ b/features/project/forked_merge_requests.feature @@ -11,18 +11,20 @@ Feature: Project Forked Merge Requests And I submit the merge request Then I should see merge request "Merge Request On Forked Project" - @javascript - Scenario: I can edit a forked merge request - Given I visit project "Forked Shop" merge requests page - And I click link "New Merge Request" - And I fill out a "Merge Request On Forked Project" merge request - And I submit the merge request - And I should see merge request "Merge Request On Forked Project" - And I click link edit "Merge Request On Forked Project" - Then I see the edit page prefilled for "Merge Request On Forked Project" - And I update the merge request title - And I save the merge request - Then I should see the edited merge request + # TODO: Improve it so it does not fail randomly + # + #@javascript + #Scenario: I can edit a forked merge request + #Given I visit project "Forked Shop" merge requests page + #And I click link "New Merge Request" + #And I fill out a "Merge Request On Forked Project" merge request + #And I submit the merge request + #And I should see merge request "Merge Request On Forked Project" + #And I click link edit "Merge Request On Forked Project" + #Then I see the edit page prefilled for "Merge Request On Forked Project" + #And I update the merge request title + #And I save the merge request + #Then I should see the edited merge request @javascript Scenario: I cannot submit an invalid merge request diff --git a/lib/gitlab/backend/shell.rb b/lib/gitlab/backend/shell.rb index 7b10ab539eb..aabc7f1e69a 100644 --- a/lib/gitlab/backend/shell.rb +++ b/lib/gitlab/backend/shell.rb @@ -1,5 +1,3 @@ -require 'securerandom' - module Gitlab class Shell class AccessDenied < StandardError; end @@ -15,25 +13,6 @@ module Gitlab @version_required ||= File.read(Rails.root. join('GITLAB_SHELL_VERSION')).strip end - - # Be sure to restart your server when you modify this method. - def setup_secret_token - secret_file = Rails.root.join('.gitlab_shell_secret') - gitlab_shell_symlink = File.join(Gitlab.config.gitlab_shell.path, - '.gitlab_shell_secret') - - unless File.exist? secret_file - # Generate a new token of 16 random hexadecimal characters - # and store it in secret_file. - token = SecureRandom.hex(16) - File.write(secret_file, token) - end - - if File.exist?(Gitlab.config.gitlab_shell.path) && - !File.exist?(gitlab_shell_symlink) - FileUtils.symlink(secret_file, gitlab_shell_symlink) - end - end end # Init new repository diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index d3cc7135c54..202e55c89ad 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -22,14 +22,10 @@ namespace :gitlab do # Make sure we're on the right tag Dir.chdir(target_dir) do - # Allows to change the origin URL to the fork - # when developing gitlab-shell. - sh(*%W(git remote set-url origin #{args.repo})) - # First try to checkout without fetching # to avoid stalling tests if the Internet is down. - reset = "(rev=\"$(git describe #{args.tag} || git describe \"origin/#{args.tag}\")\" && git reset --hard \"$rev\")" - sh "#{reset} || (git fetch --tags origin && #{reset})" + reset = "git reset --hard $(git describe #{args.tag} || git describe origin/#{args.tag})" + sh "#{reset} || git fetch origin && #{reset}" config = { user: user, @@ -41,7 +37,7 @@ namespace :gitlab do bin: %x{which redis-cli}.chomp, namespace: "resque:gitlab" }.stringify_keys, - log_level: Rails.env.test? ? 'DEBUG' : 'INFO', + log_level: "INFO", audit_usernames: false }.stringify_keys @@ -70,8 +66,6 @@ namespace :gitlab do File.open(File.join(home_dir, ".ssh", "environment"), "w+") do |f| f.puts "PATH=#{ENV['PATH']}" end - - Gitlab::Shell.setup_secret_token end desc "GITLAB | Setup gitlab-shell" diff --git a/spec/support/test_env.rb b/spec/support/test_env.rb index eb665b8b618..e6db410fb1c 100644 --- a/spec/support/test_env.rb +++ b/spec/support/test_env.rb @@ -1,5 +1,4 @@ require 'rspec/mocks' -require 'webrick' module TestEnv extend self @@ -25,6 +24,8 @@ module TestEnv disable_mailer if opts[:mailer] == false # Clean /tmp/tests + tmp_test_path = Rails.root.join('tmp', 'tests') + if File.directory?(tmp_test_path) Dir.entries(tmp_test_path).each do |entry| unless ['.', '..', 'gitlab-shell', factory_repo_name].include?(entry) @@ -38,8 +39,6 @@ module TestEnv # Setup GitLab shell for test instance setup_gitlab_shell - setup_internal_api_mock - # Create repository for FactoryGirl.create(:project) setup_factory_repo end @@ -109,52 +108,4 @@ module TestEnv def factory_repo_name 'gitlab-test' end - - def tmp_test_path - Rails.root.join('tmp', 'tests') - end - - def internal_api_mock_pid_path - File.join(tmp_test_path, 'internal_api_mock.pid') - end - - # This mock server exists because during testing GitLab is not served - # on any port, but gitlab-shell needs to ask the GitLab internal API - # if it is OK to push to repositories. This can happen during blob web - # edit tests. The server always replies yes: this should not modify affect - # web interface tests. - def setup_internal_api_mock - begin - server = WEBrick::HTTPServer.new( - BindAddress: '0.0.0.0', - Port: Gitlab.config.gitlab.port, - AccessLog: [], - Logger: WEBrick::Log.new('/dev/null') - ) - rescue => ex - ex.message.prepend('could not start mock server on configured port. ') - raise ex - end - fork do - trap(:INT) { server.shutdown } - server.mount_proc('/') do |_req, res| - res.status = 200 - res.body = 'true' - end - WEBrick::Daemon.start do - File.write(internal_api_mock_pid_path, Process.pid) - end - server.start - end - # Ideally this should be called from `config.after(:suite)`, - # but on Spinach when user hits Ctrl+C the server does not get killed - # if the hook is set up with `Spinach.hooks.after_run`. - at_exit do - # The file should exist on normal operation, - # but certain errors can lead to it not existing. - if File.exists?(internal_api_mock_pid_path) - Process.kill(:INT, File.read(internal_api_mock_pid_path).to_i) - end - end - end end |