diff --git a/app/serializers/pipeline_entity.rb b/app/serializers/pipeline_entity.rb index d04a4990cb0861990204e6f22efc356cbaf855ec..61f0f11d7d23ac06b86e2161689385b1e7bf2dae 100644 --- a/app/serializers/pipeline_entity.rb +++ b/app/serializers/pipeline_entity.rb @@ -40,10 +40,12 @@ class PipelineEntity < Grape::Entity end expose :path do |pipeline| - namespace_project_tree_path( - pipeline.project.namespace, - pipeline.project, - id: pipeline.ref) + if pipeline.ref + namespace_project_tree_path( + pipeline.project.namespace, + pipeline.project, + id: pipeline.ref) + end end expose :tag?, as: :tag diff --git a/changelogs/unreleased/fix-pipeline-ref-path-serialization.yml b/changelogs/unreleased/fix-pipeline-ref-path-serialization.yml new file mode 100644 index 0000000000000000000000000000000000000000..f60ab01a6f1142787c05a76b8aca37b1803a0e9d --- /dev/null +++ b/changelogs/unreleased/fix-pipeline-ref-path-serialization.yml @@ -0,0 +1,4 @@ +--- +title: Do not generate pipeline branch/tag path if not present +merge_request: 8658 +author: diff --git a/spec/serializers/pipeline_entity_spec.rb b/spec/serializers/pipeline_entity_spec.rb index b19464c7117aefd2390f7cd4b69698b83fef3725..ccb72973f9c2de19db795e56c85b70206fbaf8d0 100644 --- a/spec/serializers/pipeline_entity_spec.rb +++ b/spec/serializers/pipeline_entity_spec.rb @@ -134,5 +134,17 @@ describe PipelineEntity do expect(subject).not_to have_key(:yaml_errors) end end + + context 'when pipeline ref is empty' do + let(:pipeline) { create(:ci_empty_pipeline) } + + before do + allow(pipeline).to receive(:ref).and_return(nil) + end + + it 'does not generate branch path' do + expect(subject[:ref][:path]).to be_nil + end + end end end