diff --git a/src/api/app/controllers/concerns/scmsync_checker.rb b/src/api/app/controllers/concerns/scmsync_checker.rb index 166efa67613..6c007a5d46f 100644 --- a/src/api/app/controllers/concerns/scmsync_checker.rb +++ b/src/api/app/controllers/concerns/scmsync_checker.rb @@ -4,6 +4,7 @@ module ScmsyncChecker extend ActiveSupport::Concern def check_scmsync + return if Flipper.enabled?(:scmsync, User.session) return if @project&.scmsync.blank? flash[:error] = "The project #{@project.name} is configured through scmsync. This is not supported by the OBS frontend" diff --git a/src/api/app/controllers/webui/package_controller.rb b/src/api/app/controllers/webui/package_controller.rb index bf954522569..b5183ff2219 100644 --- a/src/api/app/controllers/webui/package_controller.rb +++ b/src/api/app/controllers/webui/package_controller.rb @@ -16,12 +16,16 @@ class Webui::PackageController < Webui::WebuiController save_person save_group remove_role view_file buildresult rpmlint_result rpmlint_log rpmlint_summary files] - before_action :check_scmsync, only: %i[requests revisions statistics users] + before_action :check_scmsync, only: %i[statistics users requests revisions] before_action :set_package, only: %i[edit update show requests statistics revisions branch_diff_info rdiff remove save_person save_group remove_role view_file - buildresult rpmlint_result rpmlint_log rpmlint_summary files users] + buildresult rpmlint_result rpmlint_log rpmlint_summary files users], + unless: -> { Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, only: %i[show revisions branch_diff_info rdiff view_file buildresult + rpmlint_result rpmlint_log rpmlint_summary files users], + if: -> { Flipper.enabled?(:scmsync, User.session) } # rubocop:enable Rails/LexicallyScopedActionFilter before_action :lints_list, only: %i[rpmlint_summary] @@ -37,7 +41,7 @@ def index def show # FIXME: Remove this statement when scmsync is fully supported - if @project.scmsync.present? + if @project.scmsync.present? && !Flipper.enabled?(:scmsync, User.session) flash[:error] = "Package sources for project #{@project.name} are received through scmsync. This is not supported by the OBS frontend" redirect_back_or_to project_show_path(@project) diff --git a/src/api/app/controllers/webui/packages/binaries_controller.rb b/src/api/app/controllers/webui/packages/binaries_controller.rb index 8993c4e4287..ee7c5f32b9c 100644 --- a/src/api/app/controllers/webui/packages/binaries_controller.rb +++ b/src/api/app/controllers/webui/packages/binaries_controller.rb @@ -13,7 +13,8 @@ class BinariesController < Webui::WebuiController before_action :require_login, except: [:index] before_action :set_project before_action :check_scmsync - before_action :set_package + before_action :set_package, unless: -> { Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, if: -> { Flipper.enabled?(:scmsync, User.session) } before_action :set_multibuild_flavor before_action :set_repository before_action :set_architecture, only: %i[show dependency filelist] diff --git a/src/api/app/controllers/webui/packages/build_reason_controller.rb b/src/api/app/controllers/webui/packages/build_reason_controller.rb index e51e79fcd7f..e034310e041 100644 --- a/src/api/app/controllers/webui/packages/build_reason_controller.rb +++ b/src/api/app/controllers/webui/packages/build_reason_controller.rb @@ -5,7 +5,8 @@ class BuildReasonController < Webui::WebuiController before_action :set_project before_action :check_scmsync - before_action :set_package + before_action :set_package, unless: -> { Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, if: -> { Flipper.enabled?(:scmsync, User.session) } before_action :set_repository before_action :set_architecture diff --git a/src/api/app/controllers/webui/packages/files_controller.rb b/src/api/app/controllers/webui/packages/files_controller.rb index 573858c7f47..e86276f408f 100644 --- a/src/api/app/controllers/webui/packages/files_controller.rb +++ b/src/api/app/controllers/webui/packages/files_controller.rb @@ -6,7 +6,8 @@ class FilesController < Webui::WebuiController before_action :set_project before_action :check_scmsync, only: :show - before_action :set_package + before_action :set_package, unless: -> { Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, if: -> { Flipper.enabled?(:scmsync, User.session) } before_action :set_filename, only: %i[show update destroy blame] before_action :ensure_existence, only: %i[show blame] before_action :ensure_viewable, only: %i[show blame] diff --git a/src/api/app/controllers/webui/packages/job_history_controller.rb b/src/api/app/controllers/webui/packages/job_history_controller.rb index 46244edbd9d..ebc79d88757 100644 --- a/src/api/app/controllers/webui/packages/job_history_controller.rb +++ b/src/api/app/controllers/webui/packages/job_history_controller.rb @@ -5,7 +5,8 @@ class JobHistoryController < Webui::WebuiController before_action :set_project before_action :check_scmsync - before_action :set_package + before_action :set_package, unless: -> { Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, if: -> { Flipper.enabled?(:scmsync, User.session) } before_action :set_repository before_action :set_architecture diff --git a/src/api/app/controllers/webui/packages/meta_controller.rb b/src/api/app/controllers/webui/packages/meta_controller.rb index 4fc400afe14..206e3a4ce00 100644 --- a/src/api/app/controllers/webui/packages/meta_controller.rb +++ b/src/api/app/controllers/webui/packages/meta_controller.rb @@ -4,7 +4,8 @@ class MetaController < Webui::WebuiController include ScmsyncChecker before_action :set_project - before_action :set_package + before_action :set_package, unless: -> { Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, if: -> { Flipper.enabled?(:scmsync, User.session) } before_action :check_scmsync before_action :validate_xml, only: :update diff --git a/src/api/app/controllers/webui/repositories_controller.rb b/src/api/app/controllers/webui/repositories_controller.rb index e1f2b9bd591..b8d48b17ee6 100644 --- a/src/api/app/controllers/webui/repositories_controller.rb +++ b/src/api/app/controllers/webui/repositories_controller.rb @@ -5,7 +5,8 @@ class Webui::RepositoriesController < Webui::WebuiController before_action :check_scmsync, if: -> { params[:package] } before_action :set_repository, only: %i[state mark_important] before_action :set_architectures, only: %i[index change_flag] - before_action :set_package, only: %i[index change_flag], if: -> { params[:package] } + before_action :set_package, only: %i[index change_flag], if: -> { params[:package] && !Flipper.enabled?(:scmsync, User.session) } + before_action :set_package_with_scmsync, only: %i[index change_flag], if: -> { params[:package] && Flipper.enabled?(:scmsync, User.session) } before_action :set_main_object, only: %i[index change_flag] before_action :check_ajax, only: :change_flag after_action :verify_authorized, except: %i[index state] diff --git a/src/api/app/controllers/webui/webui_controller.rb b/src/api/app/controllers/webui/webui_controller.rb index 23ca5769876..9299cc22492 100644 --- a/src/api/app/controllers/webui/webui_controller.rb +++ b/src/api/app/controllers/webui/webui_controller.rb @@ -105,6 +105,21 @@ def set_package end end + def set_package_with_scmsync + @package_name = params[:package] || params[:package_name] + + return if @package_name.blank? + + begin + @package = Package.get_by_project_and_name(@project.name, @package_name, + follow_multibuild: true, + follow_project_scmsync_links: Flipper.enabled?(:scmsync, User.session)) + # why it's not found is of no concern + rescue APIError + raise Package::UnknownObjectError, "Package not found: #{@project.name}/#{@package_name}" + end + end + def set_repository repository_name = params[:repository] || params[:repository_name] @repository = @project.repositories.find_by(name: repository_name) diff --git a/src/api/app/models/package.rb b/src/api/app/models/package.rb index 19fda578d09..795fedef712 100644 --- a/src/api/app/models/package.rb +++ b/src/api/app/models/package.rb @@ -1005,6 +1005,8 @@ def update_instance(namespace = 'OBS', name = 'UpdateProject') end def developed_packages + return [] unless persisted? + packages = [] candidates = Package.where(develpackage_id: self).load candidates.each do |candidate| @@ -1046,6 +1048,8 @@ def update_if_dirty end def linking_packages + return [] unless persisted? + ::Package.joins(:backend_package).where(backend_packages: { links_to_id: id }) end diff --git a/src/api/app/models/project.rb b/src/api/app/models/project.rb index b936912ddbb..9540dcef58e 100644 --- a/src/api/app/models/project.rb +++ b/src/api/app/models/project.rb @@ -410,6 +410,12 @@ def very_important_projects_with_categories # class_methods end + def backend_only_packages + Nokogiri::XML(Backend::Api::Search.packages_for_project(name)).xpath('//package').map do |package| + Package.get_by_project_and_name(name, package['name'], follow_multibuild: true, follow_project_scmsync_links: true) + end + end + def config @config ||= ProjectConfigFile.new(project_name: name) end diff --git a/src/api/app/views/webui/package/_files_view.html.haml b/src/api/app/views/webui/package/_files_view.html.haml index f0175ea8108..7c78641c77e 100644 --- a/src/api/app/views/webui/package/_files_view.html.haml +++ b/src/api/app/views/webui/package/_files_view.html.haml @@ -2,7 +2,7 @@ - nobody = !User.session .card-body - - if files.present? + - if files.present? && (!Flipper.enabled?(:scmsync, User.session) || !package.scmsync.present? || revision_parameter.present?) %table.table.table-bordered.table-hover.table-sm.dt-responsive.w-100#files-table %thead %tr @@ -16,6 +16,13 @@ can_modify: user_can_modify_package, nobody: nobody, srcmd5: srcmd5 } = render partial: 'file', collection: files, cached: proc { |file| [file['name'], file['mtime'], file['md5'], file_locals].hash }, locals: file_locals + - elsif Flipper.enabled?(:scmsync, User.session) && package.scmsync.present? + %i + This package is managed with + #{link_to('SCM', package.scmsync)}. + You can also + = link_to('browse source', package_show_path(project, package, rev: revision)) + here - else %i This package has no files yet - if user_can_modify_package diff --git a/src/api/app/views/webui/package/_show_actions.html.haml b/src/api/app/views/webui/package/_show_actions.html.haml index 496eeb37d6c..dcf8bf7dc02 100644 --- a/src/api/app/views/webui/package/_show_actions.html.haml +++ b/src/api/app/views/webui/package/_show_actions.html.haml @@ -2,27 +2,28 @@ %li.nav-item.action-report-bug = render partial: 'webui/package/show_actions/bugzilla_owner', locals: { url: package.report_bug_or_bugzilla_url } - if User.session - - if current_rev && is_working && is_branchable + - if current_rev && is_working && is_branchable && !package.readonly? = render partial: 'webui/package/show_actions/branch_package', locals: { package: package, project: project, revision: revision } - if current_rev && is_working = render partial: 'webui/package/show_actions/submit_package', locals: { package: package, project: project, revision: revision } - - if User.possibly_nobody.can_modify?(package) - = render partial: 'webui/package/show_actions/delete_package' + - unless package.readonly? + - if User.possibly_nobody.can_modify?(package) + = render partial: 'webui/package/show_actions/delete_package' - - if package.kiwi_image? && policy(package).update? - = render partial: 'webui/package/show_actions/view_kiwi', locals: { package_id: package.id } + - if package.kiwi_image? && policy(package).update? + = render partial: 'webui/package/show_actions/view_kiwi', locals: { package_id: package.id } - - if services.present? - = render partial: 'webui/package/show_actions/trigger_services', locals: { package: package, project: project } - - else - = render partial: 'webui/package/show_actions/request_role_addition', locals: { package: package, project: project } - = render partial: 'webui/package/show_actions/request_deletion', locals: { package: package, project: project } + - if services.present? + = render partial: 'webui/package/show_actions/trigger_services', locals: { package: package, project: project } + - else + = render partial: 'webui/package/show_actions/request_role_addition', locals: { package: package, project: project } + = render partial: 'webui/package/show_actions/request_deletion', locals: { package: package, project: project } - //TODO: only users w/o rights should see this, maintainers should get a different dialog: - - if package.develpackage - = render partial: 'webui/package/show_actions/request_devel_project_change', locals: { package: package, project: project } + //TODO: only users w/o rights should see this, maintainers should get a different dialog: + - if package.develpackage + = render partial: 'webui/package/show_actions/request_devel_project_change', locals: { package: package, project: project } - = render partial: 'webui/shared/lock_unlock_comment', locals: { commentable: package } - = render partial: 'webui/package/show_actions/report_package', locals: { package: package } + = render partial: 'webui/shared/lock_unlock_comment', locals: { commentable: package } + = render partial: 'webui/package/show_actions/report_package', locals: { package: package } diff --git a/src/api/app/views/webui/package/_tabs.html.haml b/src/api/app/views/webui/package/_tabs.html.haml index f2e2ee94d51..a218f512f93 100644 --- a/src/api/app/views/webui/package/_tabs.html.haml +++ b/src/api/app/views/webui/package/_tabs.html.haml @@ -10,13 +10,15 @@ - if Flipper.enabled?(:request_show_redesign, User.possibly_nobody) = tab_link('RPM Lint', rpmlint_result_path(project, package), 'scrollable-tab-link') = tab_link('Revisions', package_view_revisions_path(project, package), 'scrollable-tab-link') - - if Flipper.enabled?(:request_index, User.session) - = tab_link('Requests', packages_requests_path(project, - package, - state: %w[new review]), - 'scrollable-tab-link', active: controller_name == 'bs_requests') - - else - = tab_link('Requests', package_requests_path(project, package), 'scrollable-tab-link') + - unless package.readonly? + - if Flipper.enabled?(:request_index, User.session) + = tab_link('Requests', packages_requests_path(project, + package, + state: %w[new review]), + 'scrollable-tab-link', active: controller_name == 'bs_requests') + - else + = tab_link('Requests', package_requests_path(project, package), 'scrollable-tab-link') = tab_link('Users', package_users_path(project, package), 'scrollable-tab-link') - = tab_link('Attributes', index_attribs_path(project, package), 'scrollable-tab-link') + - unless package.readonly? + = tab_link('Attributes', index_attribs_path(project, package), 'scrollable-tab-link') = tab_link('Meta', project_package_meta_path(project, package), 'scrollable-tab-link') diff --git a/src/api/app/views/webui/package/show.html.haml b/src/api/app/views/webui/package/show.html.haml index 08a49e1378f..e0ef0a1ec84 100644 --- a/src/api/app/views/webui/package/show.html.haml +++ b/src/api/app/views/webui/package/show.html.haml @@ -85,17 +85,19 @@ is_current_rev: @is_current_rev, current_rev: @current_rev, revision: @revision, + revision_parameter: @revision_parameter, srcmd5: @srcmd5, spider_bot: @spider_bot } - .comments - .card#comments-list - %h5.card-header.text-word-break-all - Comments - %span.badge.text-bg-primary{ id: "comment-counter-package-#{@package.id}" } - = @comments.length - .card-body#comments - = render partial: 'webui/comment/show', locals: { commentable: @package, - comment_counter_id: "#comment-counter-package-#{@package.id}" } + - unless @package.readonly? + .comments + .card#comments-list + %h5.card-header.text-word-break-all + Comments + %span.badge.text-bg-primary{ id: "comment-counter-package-#{@package.id}" } + = @comments.length + .card-body#comments + = render partial: 'webui/comment/show', locals: { commentable: @package, + comment_counter_id: "#comment-counter-package-#{@package.id}" } - if User.session && User.possibly_nobody.can_modify?(@package) = render partial: 'delete_dialog', locals: { project: @project, package: @package, cleanup_source: @cleanup_source } diff --git a/src/api/app/views/webui/package/side_links/_assignments.html.haml b/src/api/app/views/webui/package/side_links/_assignments.html.haml index 03010847f79..c17c6016f7b 100644 --- a/src/api/app/views/webui/package/side_links/_assignments.html.haml +++ b/src/api/app/views/webui/package/side_links/_assignments.html.haml @@ -8,7 +8,7 @@ %p.mb-0.link-danger %i.fas.fa-user-minus Unassign -- else +- elsif !package.readonly? .dropdown#assignment-search %button.btn.btn-sm.dropdown-toggle.ps-0.border-0{ data: { 'bs-toggle': 'dropdown', 'bs-auto-close': 'outside' }, aria: { expanded: 'false' } } %strong diff --git a/src/api/app/views/webui/packages/build_log/live_build_log.html.haml b/src/api/app/views/webui/packages/build_log/live_build_log.html.haml index 70493577b39..c58195740f7 100644 --- a/src/api/app/views/webui/packages/build_log/live_build_log.html.haml +++ b/src/api/app/views/webui/packages/build_log/live_build_log.html.haml @@ -2,7 +2,7 @@ - @metarobots = 'noindex,nofollow' .card.mb-3 - - unless @project.scmsync + - if Flipper.enabled?(:scmsync, User.session) || !@project.scmsync = render partial: 'webui/package/tabs', locals: { project: @project, package: @package } .card-body %h3= @pagetitle diff --git a/src/api/app/views/webui/project/_project_packages.html.haml b/src/api/app/views/webui/project/_project_packages.html.haml index 063c4dcb7b0..63e086ecd66 100644 --- a/src/api/app/views/webui/project/_project_packages.html.haml +++ b/src/api/app/views/webui/project/_project_packages.html.haml @@ -7,9 +7,25 @@ .card-body - if project.scmsync.present? - %p - = link_to project.scmsync do - This project is managed in SCM + - if Flipper.enabled?(:scmsync, User.session) + %table.table.table-sm.table-bordered.table-hover.w-100#packages-table-scm + %thead + %tr + %th Name + %th SCM + %tbody + - project.backend_only_packages.each do |package| + %tr + %td + = link_to(package.name, package_show_path(project, package.name)) + %td + = link_to(package.scmsync) do + %i.fas.fa-up-right-from-square + = URI.parse(package.scmsync).path[1..-1] + - else + %p + = link_to project.scmsync do + This project is managed in SCM - elsif packages.present? .obs-dataTable %table.table.table-sm.table-bordered.table-hover.w-100#packages-table{ data: { source: package_index_path(project: project) } } @@ -28,29 +44,35 @@ - if User.possibly_nobody.can_modify?(project) && show_package_actions? .pt-4 %ul.nav - %li.nav-item - = link_to(new_package_path(project), class: 'nav-link') do - %i.fas.fa-plus-circle.text-primary - Create Package - %li.nav-item - = link_to(project_new_packages_branch_path(project), class: 'nav-link') do - %i.fas.fa-code-branch.text-primary - Branch Package + - if policy(Package.new(project: project)).create? + %li.nav-item + = link_to(new_package_path(project), class: 'nav-link') do + %i.fas.fa-plus-circle.text-primary + Create Package + - if policy(Package.new(project: project)).create_branch? + %li.nav-item + = link_to(project_new_packages_branch_path(project), class: 'nav-link') do + %i.fas.fa-code-branch.text-primary + Branch Package - content_for :ready_function do - :plain - var package_datatable_columns = [{"data": "name"}] - - - if Flipper.enabled?(:package_version_tracking, User.session) + - if project.scmsync.present? && Flipper.enabled?(:scmsync, User.session) :plain - package_datatable_columns.push({"data": "version", "orderable": false}) - - - if Flipper.enabled?(:labels, User.session) + initializeDataTable('#packages-table-scm'); + - else :plain - package_datatable_columns.push({"data": "labels", "orderable": false}) + var package_datatable_columns = [{"data": "name"}] + + - if Flipper.enabled?(:package_version_tracking, User.session) + :plain + package_datatable_columns.push({"data": "version", "orderable": false}) - :plain - package_datatable_columns.push({"data": "changed"}) - initializeRemoteDatatable('#packages-table', { - "columns": package_datatable_columns - }); + - if Flipper.enabled?(:labels, User.session) + :plain + package_datatable_columns.push({"data": "labels", "orderable": false}) + + :plain + package_datatable_columns.push({"data": "changed"}) + initializeRemoteDatatable('#packages-table', { + "columns": package_datatable_columns + }); diff --git a/src/api/app/views/webui/project/show.html.haml b/src/api/app/views/webui/project/show.html.haml index 232f99a8516..5f1db2dd27b 100644 --- a/src/api/app/views/webui/project/show.html.haml +++ b/src/api/app/views/webui/project/show.html.haml @@ -45,7 +45,10 @@ aria: { controls: 'packages', selected: 'false' } } Packages %span.badge.text-bg-primary - = @packages.length + - if @project.scmsync.present? && Flipper.enabled?(:scmsync, User.session) + = @project.backend_only_packages.count + - else + = @packages.length - if @inherited_packages.present? %li.nav-item %a.nav-link#inherited-packages-tab{ href: '#inherited-packages', role: 'tab', data: { 'bs-toggle': 'tab' }, diff --git a/src/api/config/initializers/flipper.rb b/src/api/config/initializers/flipper.rb index 8ce5f8a7bb2..9573afd5800 100644 --- a/src/api/config/initializers/flipper.rb +++ b/src/api/config/initializers/flipper.rb @@ -8,7 +8,8 @@ { name: :labels, description: 'Allow to apply labels to packages, submit requests and projects to improve collaboration between build service users.' }, { name: :request_index, description: 'Redesign of listing requests' }, { name: :canned_responses, description: 'Create messages using templates' }, - { name: :package_version_tracking, description: 'Track the local and upstream versions of your packages' } + { name: :package_version_tracking, description: 'Track the local and upstream versions of your packages' }, + { name: :scmsync, description: 'Display extended information about packages from external SCMs' } ].freeze Flipper.configure do diff --git a/src/api/spec/cassettes/Assignments/creating_an_assignment_for_a_package/creates_an_assignment_for_the_package.yml b/src/api/spec/cassettes/Assignments/creating_an_assignment_for_a_package/creates_an_assignment_for_the_package.yml index 393af84341a..0ecd3f7cd8c 100644 --- a/src/api/spec/cassettes/Assignments/creating_an_assignment_for_a_package/creates_an_assignment_for_the_package.yml +++ b/src/api/spec/cassettes/Assignments/creating_an_assignment_for_a_package/creates_an_assignment_for_the_package.yml @@ -1,84 +1,17 @@ --- http_interactions: - request: - method: get - uri: http://backend:5352/source/home:tom/test_package - body: - encoding: US-ASCII - string: '' - headers: - X-Request-Id: - - da04052e-2705-451e-887e-4d3e304fdabe - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - "*/*" - User-Agent: - - Ruby - response: - status: - code: 404 - message: project 'home tom' does not exist - headers: - Content-Type: - - text/xml - Cache-Control: - - no-cache - Connection: - - close - Content-Length: - - '144' - body: - encoding: UTF-8 - string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:20 GMT -- request: - method: get - uri: http://backend:5352/source/home:tom/test_package?expand=1 - body: - encoding: US-ASCII - string: '' - headers: - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - "*/*" - User-Agent: - - Ruby - response: - status: - code: 404 - message: project 'home tom' does not exist - headers: - Content-Type: - - text/xml - Cache-Control: - - no-cache - Connection: - - close - Content-Length: - - '144' + method: put + uri: http://backend:5352/source/home:tom/_meta?user=tom body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:20 GMT -- request: - method: get - uri: http://backend:5352/source/home:tom/test_package - body: - encoding: US-ASCII - string: '' + + + <description/> + <person userid="tom" role="maintainer"/> + </project> headers: - X-Request-Id: - - da04052e-2705-451e-887e-4d3e304fdabe Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -87,8 +20,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -97,58 +30,28 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '128' body: encoding: UTF-8 string: | - <status code="404"> - <summary>project 'home:tom' does not exist</summary> - <details>404 project 'home:tom' does not exist</details> - </status> - recorded_at: Thu, 08 May 2025 08:57:20 GMT + <project name="home:tom"> + <title> + + + + recorded_at: Thu, 21 Aug 2025 11:52:35 GMT - request: - method: get - uri: http://backend:5352/source/home:tom/test_package?expand=0 - body: - encoding: US-ASCII - string: '' - headers: - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - "*/*" - User-Agent: - - Ruby - response: - status: - code: 404 - message: project 'home tom' does not exist - headers: - Content-Type: - - text/xml - Cache-Control: - - no-cache - Connection: - - close - Content-Length: - - '144' + method: put + uri: http://backend:5352/source/home:tom/test_package/_meta?user=user_1 body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:20 GMT -- request: - method: get - uri: http://backend:5352/source/home:tom/test_package - body: - encoding: US-ASCII - string: '' + + The Road Less Traveled + Quam blanditiis velit nihil. + + headers: - X-Request-Id: - - da04052e-2705-451e-887e-4d3e304fdabe Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -157,8 +60,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -167,15 +70,16 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '201' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:20 GMT + + The Road Less Traveled + Quam blanditiis velit nihil. + + + recorded_at: Thu, 21 Aug 2025 11:52:35 GMT - request: method: get uri: http://backend:5352/source/home:tom/test_package @@ -184,7 +88,7 @@ http_interactions: string: '' headers: X-Request-Id: - - da04052e-2705-451e-887e-4d3e304fdabe + - f7a0f71f-217c-4577-b2d4-b1d439904806 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -193,8 +97,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -203,24 +107,20 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:20 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:42 GMT - request: method: get - uri: http://backend:5352/build/home:tom/_result?lastbuild=1&locallink=1&multibuild=1&package=test_package&view=status + uri: http://backend:5352/source/home:tom/test_package?expand=1 body: encoding: US-ASCII string: '' headers: - X-Request-Id: - - 4c670889-ef92-453a-a48f-050cfa858c2a Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -229,8 +129,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -239,24 +139,22 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:42 GMT - request: method: get - uri: http://backend:5352/build/home:tom/_result?package=test_package&view=status + uri: http://backend:5352/source/home:tom/test_package body: encoding: US-ASCII string: '' headers: X-Request-Id: - - 04e5ca17-9a20-48c0-bd32-1cb4be86419c + - f7a0f71f-217c-4577-b2d4-b1d439904806 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -265,8 +163,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -275,15 +173,13 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:42 GMT - request: method: get uri: http://backend:5352/source/home:tom/test_package @@ -292,7 +188,7 @@ http_interactions: string: '' headers: X-Request-Id: - - b551b553-624c-4c47-9525-d9dd98d36b0c + - f7a0f71f-217c-4577-b2d4-b1d439904806 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -301,8 +197,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -311,22 +207,22 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:42 GMT - request: method: get - uri: http://backend:5352/source/home:tom/test_package?expand=1 + uri: http://backend:5352/build/home:tom/_result?lastbuild=1&locallink=1&multibuild=1&package=test_package&view=status body: encoding: US-ASCII string: '' headers: + X-Request-Id: + - bfcd637d-ab3b-40a7-96e1-29ab44b07e34 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -335,8 +231,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -345,15 +241,13 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '55' body: encoding: UTF-8 - string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + string: ' + +' + recorded_at: Thu, 21 Aug 2025 11:52:42 GMT - request: method: get uri: http://backend:5352/source/home:tom/test_package @@ -362,7 +256,7 @@ http_interactions: string: '' headers: X-Request-Id: - - b551b553-624c-4c47-9525-d9dd98d36b0c + - a7567488-6d8a-4721-98d0-848a49f57586 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -371,8 +265,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -381,18 +275,16 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:43 GMT - request: method: get - uri: http://backend:5352/source/home:tom/test_package?expand=0 + uri: http://backend:5352/source/home:tom/test_package?expand=1 body: encoding: US-ASCII string: '' @@ -405,8 +297,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -415,15 +307,13 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:43 GMT - request: method: get uri: http://backend:5352/source/home:tom/test_package @@ -432,7 +322,7 @@ http_interactions: string: '' headers: X-Request-Id: - - b551b553-624c-4c47-9525-d9dd98d36b0c + - a7567488-6d8a-4721-98d0-848a49f57586 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -441,8 +331,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -451,15 +341,13 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:43 GMT - request: method: get uri: http://backend:5352/source/home:tom/test_package @@ -468,7 +356,7 @@ http_interactions: string: '' headers: X-Request-Id: - - b551b553-624c-4c47-9525-d9dd98d36b0c + - a7567488-6d8a-4721-98d0-848a49f57586 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -477,8 +365,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -487,15 +375,13 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '87' body: encoding: UTF-8 string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + + + recorded_at: Thu, 21 Aug 2025 11:52:43 GMT - request: method: get uri: http://backend:5352/build/home:tom/_result?lastbuild=1&locallink=1&multibuild=1&package=test_package&view=status @@ -504,43 +390,7 @@ http_interactions: string: '' headers: X-Request-Id: - - 2e3ccda0-353c-4260-a3cf-7ecbc8a6b54e - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - "*/*" - User-Agent: - - Ruby - response: - status: - code: 404 - message: project 'home tom' does not exist - headers: - Content-Type: - - text/xml - Cache-Control: - - no-cache - Connection: - - close - Content-Length: - - '144' - body: - encoding: UTF-8 - string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT -- request: - method: get - uri: http://backend:5352/build/home:tom/_result?package=test_package&view=status - body: - encoding: US-ASCII - string: '' - headers: - X-Request-Id: - - 75f5335e-39c1-4789-9779-5a6a23fbbaa7 + - 2d495dca-f051-45c7-8db8-ed05ceb629ec Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: @@ -549,8 +399,8 @@ http_interactions: - Ruby response: status: - code: 404 - message: project 'home tom' does not exist + code: 200 + message: OK headers: Content-Type: - text/xml @@ -559,13 +409,11 @@ http_interactions: Connection: - close Content-Length: - - '144' + - '55' body: encoding: UTF-8 - string: | - - project 'home:tom' does not exist -
404 project 'home:tom' does not exist
-
- recorded_at: Thu, 08 May 2025 08:57:21 GMT + string: ' + +' + recorded_at: Thu, 21 Aug 2025 11:52:43 GMT recorded_with: VCR 6.3.1 diff --git a/src/api/spec/cassettes/Webui_Packages_MetaController/GET_show/when_its_a_project_managed_via_scmsync/1_1_2_1.yml b/src/api/spec/cassettes/Webui_Packages_MetaController/GET_show/when_its_a_project_managed_via_scmsync/1_1_2_1.yml new file mode 100644 index 00000000000..1003d98fcbe --- /dev/null +++ b/src/api/spec/cassettes/Webui_Packages_MetaController/GET_show/when_its_a_project_managed_via_scmsync/1_1_2_1.yml @@ -0,0 +1,77 @@ +--- +http_interactions: +- request: + method: put + uri: http://backend:5352/source/home:tom/_meta?user=tom + body: + encoding: UTF-8 + string: | + + + <description/> + <person userid="tom" role="maintainer"/> + </project> + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/xml + Cache-Control: + - no-cache + Connection: + - close + Content-Length: + - '128' + body: + encoding: UTF-8 + string: | + <project name="home:tom"> + <title> + + + + recorded_at: Mon, 18 Aug 2025 12:29:47 GMT +- request: + method: get + uri: http://backend:5352/source/home:tom/some_package/_meta + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 404 + message: package 'some_package' does not exist in project 'home tom' + headers: + Content-Type: + - text/xml + Cache-Control: + - no-cache + Connection: + - close + Content-Length: + - '196' + body: + encoding: UTF-8 + string: | + + package 'some_package' does not exist in project 'home:tom' +
404 package 'some_package' does not exist in project 'home:tom'
+
+ recorded_at: Mon, 18 Aug 2025 12:29:47 GMT +recorded_with: VCR 6.3.1 diff --git a/src/api/spec/cassettes/Webui_Packages_MetaController/GET_show/when_its_a_project_managed_via_scmsync/does_not_set_the_xml_representation_of_a_package.yml b/src/api/spec/cassettes/Webui_Packages_MetaController/GET_show/when_its_a_project_managed_via_scmsync/does_not_set_the_xml_representation_of_a_package.yml new file mode 100644 index 00000000000..c19e33a1237 --- /dev/null +++ b/src/api/spec/cassettes/Webui_Packages_MetaController/GET_show/when_its_a_project_managed_via_scmsync/does_not_set_the_xml_representation_of_a_package.yml @@ -0,0 +1,77 @@ +--- +http_interactions: +- request: + method: put + uri: http://backend:5352/source/home:tom/_meta?user=tom + body: + encoding: UTF-8 + string: | + + + <description/> + <person userid="tom" role="maintainer"/> + </project> + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - text/xml + Cache-Control: + - no-cache + Connection: + - close + Content-Length: + - '128' + body: + encoding: UTF-8 + string: | + <project name="home:tom"> + <title> + + + + recorded_at: Mon, 18 Aug 2025 12:29:46 GMT +- request: + method: get + uri: http://backend:5352/source/home:tom/some_package/_meta + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 404 + message: package 'some_package' does not exist in project 'home tom' + headers: + Content-Type: + - text/xml + Cache-Control: + - no-cache + Connection: + - close + Content-Length: + - '196' + body: + encoding: UTF-8 + string: | + + package 'some_package' does not exist in project 'home:tom' +
404 package 'some_package' does not exist in project 'home:tom'
+
+ recorded_at: Mon, 18 Aug 2025 12:29:46 GMT +recorded_with: VCR 6.3.1