diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 93f28e39f82f10522bcb9d14d7a06bf019d57e7a..b2bc0a17142a2f34aa01a28a6f5a8bbcb160efb9 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -690,9 +690,7 @@ module API expose :id expose :description, :ref, :cron, :cron_timezone, :next_run_at, :active expose :created_at, :updated_at, :deleted_at - expose :last_pipeline, using: Entities::Pipeline do |pipeline_schedule| - pipeline_schedule.pipelines&.last - end + expose :last_pipeline, using: Entities::Pipeline expose :owner, using: Entities::UserBasic end diff --git a/lib/api/pipeline_schedules.rb b/lib/api/pipeline_schedules.rb index 58888417888de3579c69ca1f496a181b947fb854..27be796356c6d1042f3bbc4cdc6a2bc26fea8c36 100644 --- a/lib/api/pipeline_schedules.rb +++ b/lib/api/pipeline_schedules.rb @@ -17,7 +17,7 @@ module API get ':id/pipeline_schedules' do authorize! :read_pipeline_schedule, user_project - pipeline_schedules = user_project.pipeline_schedules.preload(:pipelines) + pipeline_schedules = user_project.pipeline_schedules.includes(last_pipeline: {statuses: :latest}) present paginate(pipeline_schedules), with: Entities::PipelineSchedule end diff --git a/spec/requests/api/pipeline_schedules_spec.rb b/spec/requests/api/pipeline_schedules_spec.rb index 34c4fcfcae158161e5707d58040a52ad8904d2fa..1b44043907b73522358c7a48a8a646353b46447c 100644 --- a/spec/requests/api/pipeline_schedules_spec.rb +++ b/spec/requests/api/pipeline_schedules_spec.rb @@ -31,6 +31,9 @@ describe API::PipelineSchedules do end.count create_list(:ci_pipeline_schedule, 10, project: project, owner: developer) + .each do |pipeline_schedule| + pipeline_schedule.pipelines << build(:ci_pipeline, project: project) + end expect do get api("/projects/#{project.id}/pipeline_schedules", developer)