summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-14 16:30:48 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-14 16:30:48 +0300
commite7c930a55b9832a767bfb1a5e2a8add8f9e719f9 (patch)
tree93f264dce4f668f21a9155229ab640f25282e810
parentda98cebc5bd72f5cfc25c50fcaecbe952db5f3ed (diff)
downloadgitlab-ce-e7c930a55b9832a767bfb1a5e2a8add8f9e719f9.tar.gz
Add imported boolean to project. Prevent shell from creating repo after it was imported
-rw-r--r--app/contexts/projects/create_context.rb1
-rw-r--r--app/helpers/application_helper.rb2
-rw-r--r--app/models/project.rb4
-rw-r--r--app/observers/project_observer.rb16
-rw-r--r--db/migrate/20130614132337_add_improted_to_project.rb5
-rw-r--r--db/schema.rb3
6 files changed, 21 insertions, 10 deletions
diff --git a/app/contexts/projects/create_context.rb b/app/contexts/projects/create_context.rb
index 2922564ba20..d3b8dee3948 100644
--- a/app/contexts/projects/create_context.rb
+++ b/app/contexts/projects/create_context.rb
@@ -51,6 +51,7 @@ module Projects
if shell.import_repository(@project.path_with_namespace, @project.import_url)
# We should create satellite for imported repo
@project.satellite.create unless @project.satellite.exists?
+ @project.imported = true
true
else
@project.errors.add(:import_url, 'cannot clone repo')
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 663a414fff2..a73d574f22e 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -142,7 +142,7 @@ module ApplicationHelper
end
def user_color_scheme_class
- COLOR_SCHEMES[current_user.try(:color_scheme_id)]
+ COLOR_SCHEMES[current_user.try(:color_scheme_id)] if defined?(current_user)
end
# Define whenever show last push event
diff --git a/app/models/project.rb b/app/models/project.rb
index 22a9c1ffd63..234d5e98b4f 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -413,6 +413,10 @@ class Project < ActiveRecord::Base
!(forked_project_link.nil? || forked_project_link.forked_from_project.nil?)
end
+ def imported?
+ imported
+ end
+
def rename_repo
old_path_with_namespace = File.join(namespace_dir, path_was)
new_path_with_namespace = File.join(namespace_dir, path)
diff --git a/app/observers/project_observer.rb b/app/observers/project_observer.rb
index bd88bb838ef..3d4d161a1a2 100644
--- a/app/observers/project_observer.rb
+++ b/app/observers/project_observer.rb
@@ -1,13 +1,13 @@
class ProjectObserver < BaseObserver
def after_create(project)
- unless project.forked?
- GitlabShellWorker.perform_async(
- :add_repository,
- project.path_with_namespace
- )
-
- log_info("#{project.owner.name} created a new project \"#{project.name_with_namespace}\"")
- end
+ return true if project.forked? || project.imported?
+
+ GitlabShellWorker.perform_async(
+ :add_repository,
+ project.path_with_namespace
+ )
+
+ log_info("#{project.owner.name} created a new project \"#{project.name_with_namespace}\"")
end
def after_update(project)
diff --git a/db/migrate/20130614132337_add_improted_to_project.rb b/db/migrate/20130614132337_add_improted_to_project.rb
new file mode 100644
index 00000000000..cc882c3f10a
--- /dev/null
+++ b/db/migrate/20130614132337_add_improted_to_project.rb
@@ -0,0 +1,5 @@
+class AddImprotedToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :imported, :boolean, default: false, null: false
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index bec32c1d52a..c3c751e3a19 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20130613173246) do
+ActiveRecord::Schema.define(:version => 20130614132337) do
create_table "deploy_keys_projects", :force => true do |t|
t.integer "deploy_key_id", :null => false
@@ -172,6 +172,7 @@ ActiveRecord::Schema.define(:version => 20130613173246) do
t.string "issues_tracker_id"
t.boolean "snippets_enabled", :default => true, :null => false
t.datetime "last_activity_at"
+ t.boolean "imported", :default => false, :null => false
end
add_index "projects", ["creator_id"], :name => "index_projects_on_owner_id"