diff options
author | Marius Mathiesen <marius@shortcut.no> | 2010-02-01 13:40:20 +0100 |
---|---|---|
committer | Marius Mathiesen <marius@shortcut.no> | 2010-02-01 13:40:20 +0100 |
commit | 3c10e23d548ae99645cb04e1509cfa07b51d1a08 (patch) | |
tree | fd71e7c53e425ead347cc56ee834927a36630ea1 /app/models | |
parent | 33c6095805d5c808081a030dab4405ea9af126f0 (diff) | |
download | gitorious-mainline-outdated-3c10e23d548ae99645cb04e1509cfa07b51d1a08.zip gitorious-mainline-outdated-3c10e23d548ae99645cb04e1509cfa07b51d1a08.tar.gz gitorious-mainline-outdated-3c10e23d548ae99645cb04e1509cfa07b51d1a08.tar.bz2 |
Send a message to MQ when a MergeRequestVersion is deleted in order for a processor to delete the tracking branch.
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/merge_request_version.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/merge_request_version.rb b/app/models/merge_request_version.rb index 98ffae9..cc6d65a 100644 --- a/app/models/merge_request_version.rb +++ b/app/models/merge_request_version.rb @@ -17,8 +17,11 @@ #++ class MergeRequestVersion < ActiveRecord::Base + include ActiveMessaging::MessageSender + belongs_to :merge_request has_many :comments, :as => :target, :include => :user + before_destroy :schedule_branch_deletion def affected_commits Rails.cache.fetch(cache_key + '/affected_commits') do @@ -106,6 +109,21 @@ class MergeRequestVersion < ActiveRecord::Base end end + # The unserialized message that is sent to the message queue + # for deleting the tracking branch + def branch_deletion_message + { + :source_repository_path => merge_request.source_repository.full_repository_path, + :target_repository_path => merge_request.target_repository.full_repository_path, + :target_branch_name => merge_request.merge_branch_name(version) + } + end + + def schedule_branch_deletion + message = branch_deletion_message.to_json + publish :merge_request_version_deletion, message + end + private # Returns a string representation of a sha range def sha_range_string(string_or_range) |