diff --git a/app/serializers/build_entity.rb b/app/serializers/build_entity.rb
index 35566c55950328b33f055a814d0b80725c70a908..fadd6c5c59796f6789cef1652661b6830df53cf9 100644
--- a/app/serializers/build_entity.rb
+++ b/app/serializers/build_entity.rb
@@ -18,10 +18,7 @@ class BuildEntity < Grape::Entity
 
   expose :created_at
   expose :updated_at
-
-  expose :details do
-    expose :detailed_status, as: :status, with: StatusEntity
-  end
+  expose :detailed_status, as: :status, with: StatusEntity
 
   private
 
diff --git a/app/serializers/build_serializer.rb b/app/serializers/build_serializer.rb
index e0096dc7b4ad865e70dce1b8eed05024b18afde1..2c9cf99811e869c97e1658e98135a42afd794581 100644
--- a/app/serializers/build_serializer.rb
+++ b/app/serializers/build_serializer.rb
@@ -1,15 +1,12 @@
 class BuildSerializer < BaseSerializer
   entity BuildEntity
 
-  def only_status
-    tap { @status_only = { only: [{ details: [:status] }] } }
-  end
-
   def represent(resource, opts = {})
-    if @status_only.present?
-      opts.merge!(@status_only)
-    end
-
     super(resource, opts)
   end
+
+  def represent_status(resource)
+    data = represent(resource, { only: [:status] })
+    data[:status]
+  end
 end
diff --git a/app/serializers/pipeline_serializer.rb b/app/serializers/pipeline_serializer.rb
index c667fc840b2f37069cc449a964b1d96dd903d31a..62f31d4c5adfe741af389f96fcf0eb14f19f91ac 100644
--- a/app/serializers/pipeline_serializer.rb
+++ b/app/serializers/pipeline_serializer.rb
@@ -11,23 +11,20 @@ class PipelineSerializer < BaseSerializer
     @paginator.present?
   end
 
-  def only_status
-    tap { @status_only = { only: [{ details: [:status] }] } }
-  end
-
   def represent(resource, opts = {})
     if resource.is_a?(ActiveRecord::Relation)
       resource = resource.includes(project: :namespace)
     end
 
-    if @status_only.present?
-      opts.merge!(@status_only)
-    end
-
     if paginated?
       super(@paginator.paginate(resource), opts)
     else
       super(resource, opts)
     end
   end
+
+  def represent_status(resource)
+    data = represent(resource, { only: [{ details: [:status] }] })
+    data[:details][:status]
+  end
 end
diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb
index e6437538328d83afb94ebd61f59a0595abe403e2..a8069004e7bc2866affd0c4d2c36095cb7041419 100644
--- a/spec/serializers/build_serializer_spec.rb
+++ b/spec/serializers/build_serializer_spec.rb
@@ -10,16 +10,20 @@ describe BuildSerializer do
   subject { serializer.represent(resource) }
 
   describe '#represent' do
-    context 'when used with status' do
-      let(:serializer) do
-        described_class.new(user: user)
-          .only_status
+    # TODO:
+  end
+
+  describe '#represent_status' do
+    context 'when represents only status' do
+      let(:status) do
+        Gitlab::Ci::Status::Success.new(double('object'), double('user'))
       end
-      let(:resource) { create(:ci_build) }
+      let(:resource) { create(:ci_build, status: :success) }
+
+      subject { serializer.represent_status(resource) }
 
       it 'serializes only status' do
-        expect(subject[:details][:status]).not_to be_empty
-        expect(subject[:details].keys.count).to eq 1
+        expect(subject[:favicon]).to eq(status.favicon)
       end
     end
   end
diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb
index 0e043e980ac25dd5940a20b408dff3798b783739..a668d9df11aeeffd9b26633a5f4fe6c9ea493b9f 100644
--- a/spec/serializers/pipeline_serializer_spec.rb
+++ b/spec/serializers/pipeline_serializer_spec.rb
@@ -93,17 +93,19 @@ describe PipelineSerializer do
         end
       end
     end
+  end
 
-    context 'when used with status' do
-      let(:serializer) do
-        described_class.new(user: user)
-          .only_status
+  describe '#represent_status' do
+    context 'when represents only status' do
+      let(:status) do
+        Gitlab::Ci::Status::Success.new(double('object'), double('user'))
       end
-      let(:resource) { create(:ci_empty_pipeline) }
+      let(:resource) { create(:ci_pipeline, status: :success) }
+
+      subject { serializer.represent_status(resource) }
 
       it 'serializes only status' do
-        expect(subject[:details][:status]).not_to be_empty
-        expect(subject[:details].keys.count).to eq 1
+        expect(subject[:favicon]).to eq(status.favicon)
       end
     end
   end