diff --git a/src/api/app/controllers/source_project_controller.rb b/src/api/app/controllers/source_project_controller.rb index e3af41b28ad..6cdfe7610f6 100644 --- a/src/api/app/controllers/source_project_controller.rb +++ b/src/api/app/controllers/source_project_controller.rb @@ -22,6 +22,11 @@ def show @project = Project.find_by_name(project_name) raise Project::UnknownObjectError, "Project not found: #{project_name}" unless @project + if @project.scmsync.present? + pass_to_backend + return + end + # we let the backend list the packages after we verified the project is visible if params.key?(:view) case params[:view] @@ -52,7 +57,8 @@ def render_project_issues end def render_project_packages - @packages = params.key?(:expand) ? @project.expand_all_packages : @project.packages.pluck(:name) + # TODO: Display multibuild flavors when passing the expand param + @packages = params.key?(:expand) ? @project.expand_all_packages : @project.packages.sort_by(&:name) render locals: { expand: params.key?(:expand) }, formats: [:xml] end diff --git a/src/api/app/views/source_project/show.xml.builder b/src/api/app/views/source_project/show.xml.builder index 36ecd40efd1..625abdc9e7b 100644 --- a/src/api/app/views/source_project/show.xml.builder +++ b/src/api/app/views/source_project/show.xml.builder @@ -1,9 +1,14 @@ xml.directory(count: @packages.count) do - @packages.map do |name, project| + @packages.map do |package, project| if expand - xml.entry(name: name, originproject: project) + xml.entry(name: package, originproject: project) + elsif package.multibuild? + xml.entry(name: package.name) + package.multibuild_flavors.each do |flavor| + xml.entry(name: "#{package.name}:#{flavor}", originpackage: package.name) + end else - xml.entry(name: name) + xml.entry(name: package) end end end