summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen van Baarsen <jeroenvanbaarsen@gmail.com>2014-03-06 16:08:51 +0100
committerJeroen van Baarsen <jeroenvanbaarsen@gmail.com>2014-03-06 16:08:51 +0100
commit4a251849cf0408780f6ee536699c212f8fe7a7be (patch)
treebe865450d3c709468f5697137cfbcbc375107b01
parentf096bd61bda605f2e3631bcd4663ab68c7396989 (diff)
downloadgitlab-ce-4a251849cf0408780f6ee536699c212f8fe7a7be.tar.gz
Added newrev and oldrev to the hook data
-rw-r--r--app/services/git_tag_push_service.rb8
-rw-r--r--app/workers/post_receive.rb2
-rw-r--r--spec/services/git_tag_push_service_spec.rb8
3 files changed, 12 insertions, 6 deletions
diff --git a/app/services/git_tag_push_service.rb b/app/services/git_tag_push_service.rb
index 21db5fcfa58..84fb371fee5 100644
--- a/app/services/git_tag_push_service.rb
+++ b/app/services/git_tag_push_service.rb
@@ -1,16 +1,18 @@
class GitTagPushService
attr_accessor :project, :user, :push_data
- def execute(project, user, ref)
+ def execute(project, user, oldrev, newrev, ref)
@project, @user = project, user
- @push_data = create_push_data(ref)
+ @push_data = create_push_data(oldrev, newrev, ref)
project.execute_hooks(@push_data.dup, :tag_push_hooks)
end
private
- def create_push_data(ref)
+ def create_push_data(oldrev, newrev, ref)
data = {
ref: ref,
+ oldrev: oldrev,
+ newrev: newrev,
user_id: user.id,
user_name: user.name,
project_id: project.id,
diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb
index 80e6368ad2d..3b0cf77d42e 100644
--- a/app/workers/post_receive.rb
+++ b/app/workers/post_receive.rb
@@ -30,7 +30,7 @@ class PostReceive
end
if tag?(ref)
- GitTagPushService.new.execute(project, user, ref)
+ GitTagPushService.new.execute(project, user, oldrev, newrev, ref)
else
GitPushService.new.execute(project, user, oldrev, newrev, ref)
end
diff --git a/spec/services/git_tag_push_service_spec.rb b/spec/services/git_tag_push_service_spec.rb
index aabb9f8f38d..d3f7ca30748 100644
--- a/spec/services/git_tag_push_service_spec.rb
+++ b/spec/services/git_tag_push_service_spec.rb
@@ -7,17 +7,21 @@ describe GitTagPushService do
before do
@ref = 'refs/tags/super-tag'
+ @oldrev = 'b98a310def241a6fd9c9a9a3e7934c48e498fe81'
+ @newrev = 'b19a04f53caeebf4fe5ec2327cb83e9253dc91bb'
end
describe 'Git Tag Push Data' do
before do
- service.execute(project, user, @ref)
+ service.execute(project, user, @oldrev, @newrev, @ref)
@push_data = service.push_data
end
subject { @push_data }
it { should include(ref: @ref) }
+ it { should include(oldrev: @oldrev) }
+ it { should include(newrev: @newrev) }
it { should include(user_id: user.id) }
it { should include(user_name: user.name) }
it { should include(project_id: project.id) }
@@ -36,7 +40,7 @@ describe GitTagPushService do
context "execute web hooks" do
it "when pushing tags" do
project.should_receive(:execute_hooks)
- service.execute(project, user, 'refs/tags/v1.0.0')
+ service.execute(project, user, 'oldrev', 'newrev', 'refs/tags/v1.0.0')
end
end
end