summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorSteve Norman <steve.norman@thomsonreuters.com>2015-05-05 15:13:11 +0000
committerSteve Norman <steve.norman@thomsonreuters.com>2016-01-04 13:48:00 +0000
commit79ec7f289748ca5812d51c3a61e3a2f9c2464fda (patch)
treee882f0feb35cc9e8d2247b53f4bfad88b69ca82a /app
parent57074d606b20516921ff2297e2f94262b58e3d3e (diff)
downloadgitlab-ce-79ec7f289748ca5812d51c3a61e3a2f9c2464fda.tar.gz
Added system hooks messages for renaming and transferring a project
Diffstat (limited to 'app')
-rw-r--r--app/models/project.rb6
-rw-r--r--app/services/projects/transfer_service.rb3
-rw-r--r--app/services/system_hooks_service.rb11
3 files changed, 19 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 017471995ec..eadc42d1da5 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -81,6 +81,7 @@ class Project < ActiveRecord::Base
acts_as_taggable_on :tags
attr_accessor :new_default_branch
+ attr_accessor :old_path_with_namespace
# Relations
belongs_to :creator, foreign_key: 'creator_id', class_name: 'User'
@@ -701,6 +702,11 @@ class Project < ActiveRecord::Base
gitlab_shell.mv_repository("#{old_path_with_namespace}.wiki", "#{new_path_with_namespace}.wiki")
send_move_instructions(old_path_with_namespace)
reset_events_cache
+
+ @old_path_with_namespace = old_path_with_namespace
+
+ SystemHooksService.new.execute_hooks_for(self, :rename)
+
@repository = nil
rescue
# Returning false does not rollback after_* transaction but gives
diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb
index 64ea6dd42eb..2e734654466 100644
--- a/app/services/projects/transfer_service.rb
+++ b/app/services/projects/transfer_service.rb
@@ -55,6 +55,9 @@ module Projects
# Move uploads
Gitlab::UploadsTransfer.new.move_project(project.path, old_namespace.path, new_namespace.path)
+ project.old_path_with_namespace = old_path
+
+ SystemHooksService.new.execute_hooks_for(project, :transfer)
true
end
end
diff --git a/app/services/system_hooks_service.rb b/app/services/system_hooks_service.rb
index 8b5143e1eb7..6dc854ec33d 100644
--- a/app/services/system_hooks_service.rb
+++ b/app/services/system_hooks_service.rb
@@ -18,7 +18,8 @@ class SystemHooksService
def build_event_data(model, event)
data = {
event_name: build_event_name(model, event),
- created_at: model.created_at.xmlschema
+ created_at: model.created_at.xmlschema,
+ updated_at: model.updated_at.xmlschema
}
case model
@@ -34,6 +35,14 @@ class SystemHooksService
end
when Project
data.merge!(project_data(model))
+
+ if event == :rename || event == :transfer
+ data.merge!({
+ old_path_with_namespace: model.old_path_with_namespace
+ })
+ end
+
+ data
when User
data.merge!({
name: model.name,