diff --git a/lib/gitlab/data_builder/pipeline_data_builder.rb b/lib/gitlab/data_builder/pipeline_data_builder.rb
index 46f8a1857b40c0b58949b7e2ebe71ceb79e12226..13417ba09ebd7dc946335048002cf3a8b36b4c64 100644
--- a/lib/gitlab/data_builder/pipeline_data_builder.rb
+++ b/lib/gitlab/data_builder/pipeline_data_builder.rb
@@ -6,10 +6,10 @@ module Gitlab
       def build(pipeline)
         {
           object_kind: 'pipeline',
+          object_attributes: hook_attrs(pipeline),
           user: pipeline.user.try(:hook_attrs),
           project: pipeline.project.hook_attrs(backward: false),
           commit: pipeline.commit.try(:hook_attrs),
-          object_attributes: hook_attrs(pipeline),
           builds: pipeline.builds.map(&method(:build_hook_attrs))
         }
       end
diff --git a/spec/lib/gitlab/data_builder/pipeline_data_builder_spec.rb b/spec/lib/gitlab/data_builder/pipeline_data_builder_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..24d39b318c022324a6be20223826d51a55f85871
--- /dev/null
+++ b/spec/lib/gitlab/data_builder/pipeline_data_builder_spec.rb
@@ -0,0 +1,32 @@
+require 'spec_helper'
+
+describe Gitlab::DataBuilder::PipelineDataBuilder do
+  let(:user) { create(:user) }
+  let(:project) { create(:project) }
+  let(:pipeline) do
+    create(:ci_pipeline,
+           project: project, status: 'success',
+           sha: project.commit.sha, ref: project.default_branch)
+  end
+  let!(:build) { create(:ci_build, pipeline: pipeline) }
+
+  describe '.build' do
+    let(:data) { Gitlab::DataBuilder::PipelineDataBuilder.build(pipeline) }
+    let(:attributes) { data[:object_attributes] }
+    let(:build_data) { data[:builds].first }
+    let(:project_data) { data[:project] }
+
+    it { expect(attributes).to be_a(Hash) }
+    it { expect(attributes[:ref]).to eq(pipeline.ref) }
+    it { expect(attributes[:sha]).to eq(pipeline.sha) }
+    it { expect(attributes[:tag]).to eq(pipeline.tag) }
+    it { expect(attributes[:id]).to eq(pipeline.id) }
+    it { expect(attributes[:status]).to eq(pipeline.status) }
+
+    it { expect(build_data).to be_a(Hash) }
+    it { expect(build_data[:id]).to eq(build.id) }
+    it { expect(build_data[:status]).to eq(build.status) }
+
+    it { expect(project_data).to eq(project.hook_attrs(backward: false)) }
+  end
+end