From 62ed09f455ec625a058169e71663a1b751bedaca Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 31 Jul 2023 14:35:48 +0000 Subject: [PATCH] Add latest changes from gitlab-org/security/gitlab@16-1-stable-ee --- .../rspec/missing_feature_category.yml | 1 - .../javascripts/diffs/store/mutations.js | 2 +- .../javascripts/diffs/utils/diff_file.js | 6 +- .../notes/components/diff_with_note.vue | 3 +- .../notes/components/noteable_discussion.vue | 2 +- .../projects/pipeline_schedules_controller.rb | 10 +- app/models/project.rb | 11 ++ app/models/project_setting.rb | 11 ++ app/policies/ci/pipeline_schedule_policy.rb | 24 ++- .../capture_diff_note_positions_service.rb | 2 +- lib/banzai/filter/autolink_filter.rb | 15 +- lib/gitlab/pages/virtual_host_finder.rb | 5 +- lib/gitlab/path_regex.rb | 2 +- locale/gitlab.pot | 6 + package.json | 2 +- .../pipeline_schedules_controller_spec.rb | 69 ++++++-- spec/factories/diff_position.rb | 4 + .../user_views_comment_on_diff_file_spec.rb | 49 +++++ .../lib/banzai/filter/autolink_filter_spec.rb | 16 ++ .../project_reference_filter_spec.rb | 1 + .../gitlab/pages/virtual_host_finder_spec.rb | 29 ++- spec/models/project_setting_spec.rb | 26 ++- spec/models/project_spec.rb | 58 ++++++ .../ci/pipeline_schedule_policy_spec.rb | 167 ++++++++++++++---- .../pipeline_schedules/update_service_spec.rb | 4 +- yarn.lock | 8 +- 26 files changed, 450 insertions(+), 83 deletions(-) create mode 100644 spec/features/merge_request/user_views_comment_on_diff_file_spec.rb diff --git a/.rubocop_todo/rspec/missing_feature_category.yml b/.rubocop_todo/rspec/missing_feature_category.yml index 1f90a4c3ba5..1d41cc41315 100644 --- a/.rubocop_todo/rspec/missing_feature_category.yml +++ b/.rubocop_todo/rspec/missing_feature_category.yml @@ -5107,7 +5107,6 @@ RSpec/MissingFeatureCategory: - 'spec/policies/ci/bridge_policy_spec.rb' - 'spec/policies/ci/build_policy_spec.rb' - 'spec/policies/ci/pipeline_policy_spec.rb' - - 'spec/policies/ci/pipeline_schedule_policy_spec.rb' - 'spec/policies/ci/trigger_policy_spec.rb' - 'spec/policies/clusters/agent_policy_spec.rb' - 'spec/policies/clusters/agent_token_policy_spec.rb' diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js index 2786e971f4b..acdb68bc0e6 100644 --- a/app/assets/javascripts/diffs/store/mutations.js +++ b/app/assets/javascripts/diffs/store/mutations.js @@ -175,7 +175,7 @@ export default { originalStartLineCode, ...(discussion.line_codes || []), ]; - const fileHash = discussion.diff_file.file_hash; + const fileHash = discussion.diff_file?.file_hash; const lineCheck = (line) => discussionLineCodes.some( (discussionLineCode) => diff --git a/app/assets/javascripts/diffs/utils/diff_file.js b/app/assets/javascripts/diffs/utils/diff_file.js index f2a3224d332..98e1c1cc849 100644 --- a/app/assets/javascripts/diffs/utils/diff_file.js +++ b/app/assets/javascripts/diffs/utils/diff_file.js @@ -77,7 +77,7 @@ export function prepareRawDiffFile({ file, allFiles, meta = false, index = -1 }) } export function collapsedType(file) { - const isManual = typeof file.viewer?.manuallyCollapsed === 'boolean'; + const isManual = typeof file?.viewer?.manuallyCollapsed === 'boolean'; return isManual ? DIFF_FILE_MANUAL_COLLAPSE : DIFF_FILE_AUTOMATIC_COLLAPSE; } @@ -85,8 +85,8 @@ export function collapsedType(file) { export function isCollapsed(file) { const type = collapsedType(file); const collapsedStates = { - [DIFF_FILE_AUTOMATIC_COLLAPSE]: file.viewer?.automaticallyCollapsed || false, - [DIFF_FILE_MANUAL_COLLAPSE]: file.viewer?.manuallyCollapsed, + [DIFF_FILE_AUTOMATIC_COLLAPSE]: file?.viewer?.automaticallyCollapsed || false, + [DIFF_FILE_MANUAL_COLLAPSE]: file?.viewer?.manuallyCollapsed, }; return collapsedStates[type]; diff --git a/app/assets/javascripts/notes/components/diff_with_note.vue b/app/assets/javascripts/notes/components/diff_with_note.vue index db32079e6b9..b1a2ab77fa8 100644 --- a/app/assets/javascripts/notes/components/diff_with_note.vue +++ b/app/assets/javascripts/notes/components/diff_with_note.vue @@ -41,7 +41,7 @@ export default { return getDiffMode(this.discussion.diff_file); }, diffViewerMode() { - return this.discussion.diff_file.viewer.name; + return this.discussion.diff_file?.viewer.name; }, fileDiffRefs() { return this.discussion.diff_file.diff_refs; @@ -96,6 +96,7 @@ export default {