Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GITLAB_SHELL_VERSION2
-rw-r--r--config/application.rb2
-rw-r--r--config/gitlab.yml.example2
-rw-r--r--config/initializers/gitlab_shell_secret_token.rb20
-rw-r--r--features/project/forked_merge_requests.feature26
-rw-r--r--lib/gitlab/backend/shell.rb21
-rw-r--r--lib/tasks/gitlab/shell.rake12
-rw-r--r--spec/support/test_env.rb53
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