Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-11-28 12:15:25 +00:00
parent 940dc9bc92
commit b367fc8c84
120 changed files with 972 additions and 1493 deletions

View File

@ -1469,11 +1469,11 @@ lib/gitlab/checks/**
# opportunity to refine specific rules defined in this section.
# Note that frontend, CI templates and other concerns should be kept within
# the same section.
/app/**/ci/*.rb
/ee/app/**/ci/*.rb
/app/**/ci/**/*.rb
/ee/app/**/ci/**/*.rb
/lib/**/ci/
/ee/lib/**/ci/
/ee/app/**/merge_trains/*.rb
/ee/app/**/merge_trains/**/*.rb
/app/controllers/admin/jobs_controller.rb
/app/controllers/admin/runner_projects_controller.rb
/app/controllers/admin/runners_controller.rb

View File

@ -146,7 +146,6 @@ Database/AvoidUsingPluckWithoutLimit:
- 'ee/app/services/security/security_orchestration_policies/process_scan_result_policy_service.rb'
- 'ee/app/services/security/security_orchestration_policies/protected_branches_deletion_check_service.rb'
- 'ee/app/services/security/security_orchestration_policies/protected_branches_push_service.rb'
- 'ee/app/services/security/security_orchestration_policies/rule_schedule_service.rb'
- 'ee/app/services/security/security_orchestration_policies/validate_policy_service.rb'
- 'ee/app/services/vulnerabilities/bulk_dismiss_service.rb'
- 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb'

View File

@ -95,7 +95,6 @@ Gitlab/FeatureFlagWithoutActor:
- 'ee/app/graphql/resolvers/ai/user_chat_access_resolver.rb'
- 'ee/app/graphql/types/epic_type.rb'
- 'ee/app/helpers/billing_plans_helper.rb'
- 'ee/app/helpers/gitlab_subscriptions/code_suggestions_helper.rb'
- 'ee/app/models/concerns/geo/replicable_model.rb'
- 'ee/app/models/ee/application_setting.rb'
- 'ee/app/models/integrations/git_guardian.rb'
@ -122,7 +121,6 @@ Gitlab/FeatureFlagWithoutActor:
- 'ee/app/workers/search/zoekt/scheduling_worker.rb'
- 'ee/app/workers/zoekt/indexer_worker.rb'
- 'ee/lib/api/code_suggestions.rb'
- 'ee/lib/api/epics.rb'
- 'ee/lib/api/internal/search/zoekt.rb'
- 'ee/lib/api/internal/suggested_reviewers.rb'
- 'ee/lib/ee/api/entities/application_setting.rb'

View File

@ -25,7 +25,6 @@ Gitlab/StrongMemoizeAttr:
- 'app/finders/ci/pipelines_for_merge_request_finder.rb'
- 'app/finders/cluster_ancestors_finder.rb'
- 'app/finders/concerns/finder_with_group_hierarchy.rb'
- 'app/finders/crm/organizations_finder.rb'
- 'app/finders/groups/accepting_group_transfers_finder.rb'
- 'app/finders/issuable_finder.rb'
- 'app/finders/issuable_finder/params.rb'

View File

@ -123,7 +123,6 @@ Layout/ArrayAlignment:
- 'spec/graphql/resolvers/project_issues_resolver_spec.rb'
- 'spec/graphql/types/blob_viewer_type_spec.rb'
- 'spec/graphql/types/boards/board_issue_input_type_spec.rb'
- 'spec/graphql/types/container_repository_type_spec.rb'
- 'spec/graphql/types/issuable_sort_enum_spec.rb'
- 'spec/graphql/types/issue_type_spec.rb'
- 'spec/graphql/types/project_type_spec.rb'

View File

@ -418,7 +418,6 @@ Layout/ClassStructure:
- 'lib/gitlab/query_limiting/transaction.rb'
- 'lib/gitlab/repository_cache.rb'
- 'lib/gitlab/sidekiq_daemon/monitor.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb'
- 'lib/gitlab/slash_commands/base_command.rb'
- 'lib/gitlab/sql/set_operator.rb'
- 'lib/gitlab/suggestions/commit_message.rb'

View File

@ -6,7 +6,6 @@ Layout/LineBreakAfterFinalMixin:
- 'app/graphql/resolvers/projects/deploy_key_resolver.rb'
- 'app/models/alert_management/metric_image.rb'
- 'app/models/integrations/pushover.rb'
- 'app/models/integrations/telegram.rb'
- 'app/models/protected_branch/merge_access_level.rb'
- 'app/models/protected_branch/push_access_level.rb'
- 'app/policies/project_member_policy.rb'

View File

@ -26,7 +26,6 @@ Layout/LineContinuationSpacing:
- 'ee/app/models/ee/epic.rb'
- 'ee/app/models/ee/group_group_link.rb'
- 'ee/app/models/ee/project_group_link.rb'
- 'ee/app/models/ee/vulnerability.rb'
- 'ee/app/models/incident_management/oncall_shift.rb'
- 'ee/app/services/audit_events/protected_branch_audit_event_service.rb'
- 'ee/app/services/boards/epic_lists/destroy_service.rb'

View File

@ -119,7 +119,6 @@ Layout/LineEndStringConcatenationIndentation:
- 'ee/app/graphql/types/dast/site_profile_auth_type.rb'
- 'ee/app/graphql/types/dast_scanner_profile_type.rb'
- 'ee/app/graphql/types/dast_site_profile_type.rb'
- 'ee/app/graphql/types/epic_type.rb'
- 'ee/app/graphql/types/geo/geo_node_type.rb'
- 'ee/app/graphql/types/google_cloud/artifact_registry/repository_type.rb'
- 'ee/app/graphql/types/protected_environment_type.rb'
@ -141,7 +140,6 @@ Layout/LineEndStringConcatenationIndentation:
- 'ee/app/models/concerns/audit_events/gcp_externally_destinationable.rb'
- 'ee/app/models/ee/member.rb'
- 'ee/app/models/ee/merge_request.rb'
- 'ee/app/models/ee/vulnerability.rb'
- 'ee/app/models/incident_management/oncall_shift.rb'
- 'ee/app/models/integrations/google_cloud_platform/artifact_registry.rb'
- 'ee/app/models/members/member_role.rb'

View File

@ -176,7 +176,6 @@ Layout/LineLength:
- 'app/models/merge_requests_closing_issues.rb'
- 'app/models/milestone.rb'
- 'app/models/namespace.rb'
- 'app/models/namespace/package_setting.rb'
- 'app/models/namespace_setting.rb'
- 'app/models/namespaces/traversal/linear.rb'
- 'app/models/notification_setting.rb'
@ -501,7 +500,6 @@ Layout/LineLength:
- 'ee/app/graphql/mutations/audit_events/external_audit_event_destinations/create.rb'
- 'ee/app/graphql/mutations/boards/scoped_issue_board_arguments.rb'
- 'ee/app/graphql/mutations/compliance_management/frameworks/destroy.rb'
- 'ee/app/graphql/mutations/concerns/mutations/shared_epic_arguments.rb'
- 'ee/app/graphql/mutations/dast/profiles/update.rb'
- 'ee/app/graphql/mutations/dast_scanner_profiles/create.rb'
- 'ee/app/graphql/mutations/dast_scanner_profiles/update.rb'
@ -748,7 +746,6 @@ Layout/LineLength:
- 'ee/app/services/ee/resource_access_tokens/create_service.rb'
- 'ee/app/services/ee/system_note_service.rb'
- 'ee/app/services/ee/users/update_service.rb'
- 'ee/app/services/elastic/indexing_control_service.rb'
- 'ee/app/services/epics/issue_promote_service.rb'
- 'ee/app/services/epics/update_service.rb'
- 'ee/app/services/external_status_checks/create_service.rb'
@ -2412,7 +2409,6 @@ Layout/LineLength:
- 'qa/qa/resource/file.rb'
- 'qa/qa/resource/protected_branch.rb'
- 'qa/qa/resource/registry_repository.rb'
- 'qa/qa/resource/repository/push.rb'
- 'qa/qa/resource/snippet.rb'
- 'qa/qa/resource/user_runners.rb'
- 'qa/qa/resource/wiki/group_page.rb'
@ -2436,7 +2432,6 @@ Layout/LineLength:
- 'qa/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/custom_issue_template_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/issue/real_time_assignee_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/related_issues/related_issues_spec.rb'
@ -3550,7 +3545,6 @@ Layout/LineLength:
- 'spec/models/import_export_upload_spec.rb'
- 'spec/models/import_failure_spec.rb'
- 'spec/models/instance_configuration_spec.rb'
- 'spec/models/integrations/base_chat_notification_spec.rb'
- 'spec/models/integrations/base_issue_tracker_spec.rb'
- 'spec/models/integrations/chat_message/base_message_spec.rb'
- 'spec/models/integrations/chat_message/deployment_message_spec.rb'

View File

@ -1,5 +1,10 @@
---
# Cop supports --autocorrect.
Lint/RedundantCopDisableDirective:
# Temporarily disabled
# Offense count: 3
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'ee/app/controllers/admin/gitlab_duo/configuration_controller.rb'
- 'ee/app/presenters/ee/onboarding/status_presenter.rb'
- 'ee/spec/helpers/admin/application_settings_helper_spec.rb'

View File

@ -121,10 +121,8 @@ Performance/StringIdentifierArgument:
- 'lib/sidebars/context.rb'
- 'qa/qa/page/component/ci_icon.rb'
- 'qa/qa/page/component/note.rb'
- 'qa/qa/resource/base.rb'
- 'qa/qa/resource/integrations/web_hook/smockerable.rb'
- 'qa/qa/runtime/address.rb'
- 'qa/qa/specs/features/browser_ui/10_govern/login/login_via_oauth_and_oidc_with_gitlab_as_idp_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/9_data_stores/group/prevent_forking_outside_group_spec.rb'
- 'qa/qa/support/matchers/have_matcher.rb'
- 'scripts/perf/gc/print_gc_stats.rb'

View File

@ -7,7 +7,6 @@ Rake/Require:
- 'lib/tasks/contracts/pipelines.rake'
- 'lib/tasks/gitlab/artifacts/migrate.rake'
- 'lib/tasks/gitlab/backup.rake'
- 'lib/tasks/gitlab/cleanup.rake'
- 'lib/tasks/gitlab/docs/redirect.rake'
- 'lib/tasks/gitlab/graphql.rake'
- 'lib/tasks/gitlab/lfs/migrate.rake'

View File

@ -22,7 +22,6 @@ RSpec/AnyInstanceOf:
- 'ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb'
- 'ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb'
- 'ee/spec/models/geo_node_status_spec.rb'
- 'ee/spec/models/issue_spec.rb'
- 'ee/spec/models/merge_request_spec.rb'
- 'ee/spec/models/project_import_state_spec.rb'
- 'ee/spec/models/push_rule_spec.rb'

View File

@ -10,7 +10,6 @@ RSpec/AvoidConditionalStatements:
- 'ee/spec/features/epic_boards/epic_boards_spec.rb'
- 'ee/spec/features/epics/gfm_autocomplete_spec.rb'
- 'ee/spec/features/group_protected_branches_spec.rb'
- 'ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb'
- 'ee/spec/features/groups/iterations/user_views_iteration_spec.rb'
- 'ee/spec/features/incidents/incident_details_spec.rb'
- 'ee/spec/features/issues/user_sees_empty_state_spec.rb'
@ -70,4 +69,3 @@ RSpec/AvoidConditionalStatements:
- 'spec/features/search/user_uses_header_search_field_spec.rb'
- 'spec/features/usage_stats_consent_spec.rb'
- 'spec/features/users/login_spec.rb'
- 'spec/features/users/overview_spec.rb'

View File

@ -345,8 +345,6 @@ RSpec/BeEq:
- 'ee/spec/requests/api/graphql/merge_trains/trains_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/analytics/devops_adoption/enabled_namespaces/disable_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/audit_events/instance/amazon_s3_configurations/create_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/boards/epic_boards/create_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/boards/epic_boards/update_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/ci/namespace_ci_cd_settings_update_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/compliance_management/standards/refresh_adherence_checks_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/dast_scanner_profiles/create_spec.rb'

View File

@ -37,7 +37,6 @@ RSpec/ChangeByZero:
- 'ee/spec/services/search/zoekt/indexing_task_service_spec.rb'
- 'ee/spec/services/security/ingestion/tasks/ingest_cvs_security_scanners_spec.rb'
- 'ee/spec/services/security/orchestration/create_bot_service_spec.rb'
- 'ee/spec/services/security/security_orchestration_policies/rule_schedule_service_spec.rb'
- 'ee/spec/services/software_license_policies/bulk_create_scan_result_policy_service_spec.rb'
- 'ee/spec/services/vulnerabilities/manually_create_service_spec.rb'
- 'ee/spec/services/vulnerabilities/security_finding/create_merge_request_service_spec.rb'

View File

@ -84,7 +84,6 @@ RSpec/ContainExactly:
- 'spec/finders/ci/job_artifacts_finder_spec.rb'
- 'spec/finders/ci/pipelines_finder_spec.rb'
- 'spec/finders/merge_requests_finder_spec.rb'
- 'spec/finders/organizations/user_organizations_finder_spec.rb'
- 'spec/finders/personal_access_tokens_finder_spec.rb'
- 'spec/finders/projects_finder_spec.rb'
- 'spec/finders/repositories/branch_names_finder_spec.rb'

View File

@ -1989,7 +1989,6 @@ RSpec/ContextWording:
- 'spec/models/identity_spec.rb'
- 'spec/models/import_export_upload_spec.rb'
- 'spec/models/import_failure_spec.rb'
- 'spec/models/integrations/base_chat_notification_spec.rb'
- 'spec/models/integrations/chat_message/issue_message_spec.rb'
- 'spec/models/integrations/chat_message/merge_message_spec.rb'
- 'spec/models/integrations/chat_message/note_message_spec.rb'

View File

@ -35,7 +35,6 @@ RSpec/ExcessiveDocstringSpacing:
- 'ee/spec/services/users/service_accounts/create_service_spec.rb'
- 'ee/spec/support/shared_examples/features/password_complexity_shared_examples.rb'
- 'ee/spec/support/shared_examples/models/concerns/protected_ref_access_shared_examples.rb'
- 'ee/spec/views/gitlab_subscriptions/trials/duo_enterprise/_lead_form.html.haml_spec.rb.haml_spec.rb'
- 'ee/spec/views/shared/promotions/_promotion_link_project.html.haml_spec.rb'
- 'ee/spec/workers/analytics/code_review_metrics_worker_spec.rb'
- 'ee/spec/workers/security/scan_execution_policies/create_pipeline_worker_spec.rb'
@ -87,7 +86,6 @@ RSpec/ExcessiveDocstringSpacing:
- 'spec/services/git/wiki_push_service_spec.rb'
- 'spec/services/groups/nested_create_service_spec.rb'
- 'spec/services/issues/update_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb'
- 'spec/services/ml/experiment_tracking/candidate_repository_spec.rb'
- 'spec/services/quick_actions/interpret_service_spec.rb'
- 'spec/support/shared_examples/requests/projects/google_cloud/google_oauth2_config_examples.rb'

View File

@ -132,7 +132,6 @@ RSpec/ExpectChange:
- 'ee/spec/services/security/orchestration/unassign_service_spec.rb'
- 'ee/spec/services/security/security_orchestration_policies/create_pipeline_service_spec.rb'
- 'ee/spec/services/security/security_orchestration_policies/process_rule_service_spec.rb'
- 'ee/spec/services/security/security_orchestration_policies/rule_schedule_service_spec.rb'
- 'ee/spec/services/security/store_findings_service_spec.rb'
- 'ee/spec/services/users/email_verification/send_custom_confirmation_instructions_service_spec.rb'
- 'ee/spec/services/vulnerabilities/find_or_create_from_security_finding_service_spec.rb'

View File

@ -341,7 +341,6 @@ RSpec/ExpectInHook:
- 'spec/services/members/destroy_service_spec.rb'
- 'spec/services/merge_requests/cleanup_refs_service_spec.rb'
- 'spec/services/merge_requests/merge_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_draft_status_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_open_status_service_spec.rb'
- 'spec/services/merge_requests/mergeability/run_checks_service_spec.rb'

View File

@ -481,7 +481,6 @@ RSpec/FeatureCategory:
- 'ee/spec/lib/ee/gitlab/group_search_results_spec.rb'
- 'ee/spec/lib/ee/gitlab/hook_data/group_member_builder_spec.rb'
- 'ee/spec/lib/ee/gitlab/hook_data/issue_builder_spec.rb'
- 'ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb'
- 'ee/spec/lib/ee/gitlab/import_export/project/tree_saver_spec.rb'
- 'ee/spec/lib/ee/gitlab/import_export/repo_restorer_spec.rb'
- 'ee/spec/lib/ee/gitlab/import_export/wiki_repo_saver_spec.rb'
@ -679,7 +678,6 @@ RSpec/FeatureCategory:
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_groups_with_assigned_security_policy_project_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_groups_with_event_streaming_destinations_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_merge_requests_with_applied_scan_result_policies_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_applied_scan_result_policies_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_assigned_security_policy_project_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_external_status_checks_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_saml_group_links_metric_spec.rb'
@ -1026,7 +1024,6 @@ RSpec/FeatureCategory:
- 'ee/spec/services/audit_events/user_impersonation_group_audit_event_service_spec.rb'
- 'ee/spec/services/award_emojis/add_service_spec.rb'
- 'ee/spec/services/award_emojis/destroy_service_spec.rb'
- 'ee/spec/services/billable_members/destroy_service_spec.rb'
- 'ee/spec/services/boards/create_service_spec.rb'
- 'ee/spec/services/boards/epic_boards/create_service_spec.rb'
- 'ee/spec/services/boards/epic_boards/destroy_service_spec.rb'
@ -1211,7 +1208,6 @@ RSpec/FeatureCategory:
- 'spec/controllers/help_controller_spec.rb'
- 'spec/controllers/invites_controller_spec.rb'
- 'spec/controllers/metrics_controller_spec.rb'
- 'spec/controllers/oauth/authorizations_controller_spec.rb'
- 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- 'spec/controllers/oauth/token_info_controller_spec.rb'
- 'spec/controllers/profiles/accounts_controller_spec.rb'
@ -1317,7 +1313,6 @@ RSpec/FeatureCategory:
- 'spec/finders/concerns/finder_with_group_hierarchy_spec.rb'
- 'spec/finders/container_repositories_finder_spec.rb'
- 'spec/finders/context_commits_finder_spec.rb'
- 'spec/finders/crm/organizations_finder_spec.rb'
- 'spec/finders/database/batched_background_migrations_finder_spec.rb'
- 'spec/finders/deploy_tokens/tokens_finder_spec.rb'
- 'spec/finders/design_management/designs_finder_spec.rb'
@ -2553,7 +2548,6 @@ RSpec/FeatureCategory:
- 'spec/lib/gitlab/fogbugz_import/importer_spec.rb'
- 'spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb'
- 'spec/lib/gitlab/gfm/reference_rewriter_spec.rb'
- 'spec/lib/gitlab/gfm/uploads_rewriter_spec.rb'
- 'spec/lib/gitlab/git/attributes_at_ref_parser_spec.rb'
- 'spec/lib/gitlab/git/attributes_parser_spec.rb'
- 'spec/lib/gitlab/git/base_error_spec.rb'
@ -2963,7 +2957,6 @@ RSpec/FeatureCategory:
- 'spec/lib/gitlab/search_context/builder_spec.rb'
- 'spec/lib/gitlab/search_context/controller_concern_spec.rb'
- 'spec/lib/gitlab/security/scan_configuration_spec.rb'
- 'spec/lib/gitlab/seeder_spec.rb'
- 'spec/lib/gitlab/seeders/ci/daily_build_group_report_result_spec.rb'
- 'spec/lib/gitlab/serializer/ci/variables_spec.rb'
- 'spec/lib/gitlab/serializer/pagination_spec.rb'
@ -3429,7 +3422,6 @@ RSpec/FeatureCategory:
- 'spec/models/integrations/chat_message/pipeline_message_spec.rb'
- 'spec/models/integrations/chat_message/push_message_spec.rb'
- 'spec/models/integrations/chat_message/wiki_page_message_spec.rb'
- 'spec/models/integrations/emails_on_push_spec.rb'
- 'spec/models/integrations/ewm_spec.rb'
- 'spec/models/integrations/harbor_spec.rb'
- 'spec/models/integrations/issue_tracker_data_spec.rb'
@ -3575,7 +3567,6 @@ RSpec/FeatureCategory:
- 'spec/policies/award_emoji_policy_spec.rb'
- 'spec/policies/base_policy_spec.rb'
- 'spec/policies/blob_policy_spec.rb'
- 'spec/policies/board_policy_spec.rb'
- 'spec/policies/ci/bridge_policy_spec.rb'
- 'spec/policies/clusters/agent_policy_spec.rb'
- 'spec/policies/clusters/agent_token_policy_spec.rb'

View File

@ -28,8 +28,6 @@ RSpec/InstanceVariable:
- 'ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb'
- 'ee/spec/views/projects/security/dast_scanner_profiles/new.html.haml_spec.rb'
- 'ee/spec/views/projects/security/dast_site_profiles/new.html.haml_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb'
- 'spec/commands/metrics_server/metrics_server_spec.rb'

View File

@ -226,7 +226,6 @@ RSpec/NamedSubject:
- 'ee/spec/lib/api/entities/protected_environments/approval_rule_spec.rb'
- 'ee/spec/lib/api/entities/protected_environments/deploy_access_level_spec.rb'
- 'ee/spec/lib/audit_events/base_changes_auditor_spec.rb'
- 'ee/spec/lib/audit_events/external_destination_streamer_spec.rb'
- 'ee/spec/lib/audit_events/strategies/amazon_s3_destination_strategy_spec.rb'
- 'ee/spec/lib/audit_events/strategies/external_destination_strategy_spec.rb'
- 'ee/spec/lib/audit_events/strategies/google_cloud_logging_destination_strategy_spec.rb'
@ -1142,7 +1141,6 @@ RSpec/NamedSubject:
- 'ee/spec/workers/vulnerabilities/mark_dropped_as_resolved_worker_spec.rb'
- 'ee/spec/workers/vulnerabilities/update_namespace_ids_of_vulnerability_reads_worker_spec.rb'
- 'qa/spec/ee/runtime/geo_spec.rb'
- 'qa/spec/factory/resource/user_spec.rb'
- 'qa/spec/page/base_spec.rb'
- 'qa/spec/page/element_spec.rb'
- 'qa/spec/page/logging_spec.rb'
@ -2199,7 +2197,6 @@ RSpec/NamedSubject:
- 'spec/lib/gitlab/sidekiq_middleware/admin_mode/client_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/admin_mode/server_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/instrumentation_logger_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/monitor_spec.rb'
@ -2507,7 +2504,6 @@ RSpec/NamedSubject:
- 'spec/models/integrations/asana_spec.rb'
- 'spec/models/integrations/assembla_spec.rb'
- 'spec/models/integrations/bamboo_spec.rb'
- 'spec/models/integrations/base_chat_notification_spec.rb'
- 'spec/models/integrations/base_issue_tracker_spec.rb'
- 'spec/models/integrations/bugzilla_spec.rb'
- 'spec/models/integrations/buildkite_spec.rb'

View File

@ -54,7 +54,6 @@ RSpec/NoExpectationExample:
- 'qa/qa/specs/features/ee/browser_ui/10_govern/group/group_ldap_sync_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/10_govern/security_reports_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/12_systems/geo/wiki_ssh_push_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/13_secure/cvs_dependency_scanning_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/9_data_stores/group/prevent_forking_outside_group_spec.rb'
- 'qa/spec/specs/helpers/context_selector_spec.rb'
- 'qa/spec/specs/helpers/feature_flag_spec.rb'

View File

@ -406,7 +406,6 @@ RSpec/ReceiveMessages:
- 'spec/models/concerns/participable_spec.rb'
- 'spec/models/concerns/require_email_verification_spec.rb'
- 'spec/models/diff_viewer/base_spec.rb'
- 'spec/models/integrations/base_chat_notification_spec.rb'
- 'spec/models/integrations/chat_message/pipeline_message_spec.rb'
- 'spec/models/integrations/discord_spec.rb'
- 'spec/models/issue_spec.rb'
@ -503,7 +502,6 @@ RSpec/ReceiveMessages:
- 'spec/services/issuable/import_csv/base_service_spec.rb'
- 'spec/services/issues/relative_position_rebalancing_service_spec.rb'
- 'spec/services/merge_requests/after_create_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_commits_status_service_spec.rb'
- 'spec/services/merge_requests/mergeability/check_lfs_file_locks_service_spec.rb'
- 'spec/services/merge_requests/mergeability/run_checks_service_spec.rb'

View File

@ -2,205 +2,7 @@
# Cop supports --autocorrect.
Style/ArgumentsForwarding:
Exclude:
- 'app/controllers/admin/users_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/concerns/product_analytics_tracking.rb'
- 'app/controllers/concerns/sessionless_authentication.rb'
- 'app/controllers/oauth/applications_controller.rb'
- 'app/controllers/repositories/git_http_client_controller.rb'
- 'app/graphql/types/permission_types/base_permission_type.rb'
- 'app/helpers/application_helper.rb'
- 'app/helpers/merge_requests_helper.rb'
- 'app/mailers/application_mailer.rb'
- 'app/models/application_record.rb'
- 'app/models/ci/build_trace_chunk.rb'
- 'app/models/ci/partition.rb'
- 'app/models/ci/unlock_pipeline_request.rb'
- 'app/models/commit.rb'
- 'app/models/commit_collection.rb'
- 'app/models/concerns/after_commit_queue.rb'
- 'app/models/concerns/cross_database_ignored_tables.rb'
- 'app/models/concerns/redis_cacheable.rb'
- 'app/models/network/commit.rb'
- 'app/models/project.rb'
- 'app/models/system/broadcast_message.rb'
- 'app/presenters/gitlab/blame_presenter.rb'
- 'app/services/base_count_service.rb'
- 'app/services/concerns/projects/remove_refs.rb'
- 'app/services/packages/terraform_module/process_package_file_service.rb'
- 'app/services/projects/forks/sync_service.rb'
- 'app/services/projects/lfs_pointers/lfs_download_link_list_service.rb'
- 'app/services/projects/lfs_pointers/lfs_download_service.rb'
- 'app/services/projects/lfs_pointers/lfs_object_download_list_service.rb'
- 'app/services/protected_branches/cache_service.rb'
- 'app/services/user_project_access_changed_service.rb'
- 'app/services/users/update_service.rb'
- 'app/workers/authorized_project_update/user_refresh_from_replica_worker.rb'
- 'app/workers/concerns/limited_capacity/job_tracker.rb'
- 'app/workers/container_expiration_policies/cleanup_container_repository_worker.rb'
- 'app/workers/container_expiration_policy_worker.rb'
- 'app/workers/gitlab_performance_bar_stats_worker.rb'
- 'app/workers/packages/cleanup/delete_orphaned_dependencies_worker.rb'
- 'app/workers/projects/inactive_projects_deletion_cron_worker.rb'
- 'config/initializers/6_labkit_middleware.rb'
- 'config/initializers/mail_starttls_patch.rb'
- 'config/initializers/rest-client-hostname_override.rb'
- 'ee/app/controllers/ee/application_controller.rb'
- 'ee/app/models/ci/instance_runner_failed_jobs.rb'
- 'ee/app/models/dast_site_profile.rb'
- 'ee/app/models/ee/group.rb'
- 'ee/app/models/elastic/migration_record.rb'
- 'ee/app/models/license.rb'
- 'ee/app/models/security/orchestration_policy_configuration.rb'
- 'ee/app/services/elastic/indexing_control_service.rb'
- 'ee/app/services/elastic/process_bookkeeping_service.rb'
- 'ee/app/services/external_status_checks/base_service.rb'
- 'ee/app/services/vulnerability_exports/exporters/csv_service.rb'
- 'ee/app/workers/compliance_management/merge_requests/compliance_violations_consistency_worker.rb'
- 'ee/lib/ee/gitlab/auth/ldap/user.rb'
- 'ee/lib/gitlab/elastic/elasticsearch_enabled_cache.rb'
- 'ee/lib/gitlab/elastic/expr_name.rb'
- 'ee/lib/gitlab/license_scanning/package_licenses.rb'
- 'ee/lib/gitlab/llm/chain/concerns/ai_dependent.rb'
- 'ee/lib/gitlab/llm/chain/tools/tool.rb'
- 'ee/lib/gitlab/llm/chat_storage.rb'
- 'ee/lib/gitlab/llm/concerns/exponential_backoff.rb'
- 'ee/lib/gitlab/package_metadata/connector/gcp.rb'
- 'ee/lib/search/zoekt/cache.rb'
- 'ee/lib/security/scan_result_policies/policy_violation_comment.rb'
- 'lib/api/helpers/internal_helpers.rb'
- 'lib/backup/targets/database.rb'
- 'lib/banzai/reference_parser/base_parser.rb'
- 'lib/bitbucket/exponential_backoff.rb'
- 'lib/bitbucket_server/retry_with_delay.rb'
- 'lib/bulk_imports/clients/http.rb'
- 'lib/error_tracking/sentry_client.rb'
- 'lib/gitlab/application_context.rb'
- 'lib/gitlab/application_rate_limiter/base_strategy.rb'
- 'lib/gitlab/auth/ldap/dn.rb'
- 'lib/gitlab/avatar_cache.rb'
- 'lib/gitlab/background_migration/job_coordinator.rb'
- 'lib/gitlab/cache/ci/project_pipeline_status.rb'
- 'lib/gitlab/cache/import/caching.rb'
- 'lib/gitlab/changes_list.rb'
- 'lib/gitlab/ci/config/interpolation/config.rb'
- 'lib/gitlab/ci/pipeline/logger.rb'
- 'lib/gitlab/ci/secure_files/migration_helper.rb'
- 'lib/gitlab/ci/trace.rb'
- 'lib/gitlab/ci/variables/collection.rb'
- 'lib/gitlab/ci/variables/collection/sort.rb'
- 'lib/gitlab/ci/yaml_processor/dag.rb'
- 'lib/gitlab/circuit_breaker.rb'
- 'lib/gitlab/circuit_breaker/store.rb'
- 'lib/gitlab/cluster/lifecycle_events.rb'
- 'lib/gitlab/color_modes.rb'
- 'lib/gitlab/color_schemes.rb'
- 'lib/gitlab/config/entry/inheritable.rb'
- 'lib/gitlab/config/entry/simplifiable.rb'
- 'lib/gitlab/config/entry/validatable.rb'
- 'lib/gitlab/container_repository/tags/cache.rb'
- 'lib/gitlab/counters/buffered_counter.rb'
- 'lib/gitlab/current_settings.rb'
- 'lib/gitlab/database/async_indexes/index_creator.rb'
- 'lib/gitlab/database/async_indexes/index_destructor.rb'
- 'lib/gitlab/database/background_migration/batch_metrics.rb'
- 'lib/gitlab/database/consistency.rb'
- 'lib/gitlab/database/load_balancing/connection_proxy.rb'
- 'lib/gitlab/database/load_balancing/load_balancer.rb'
- 'lib/gitlab/database/load_balancing/sticking.rb'
- 'lib/gitlab/database/lock_writes_manager.rb'
- 'lib/gitlab/database/migrations/lock_retry_mixin.rb'
- 'lib/gitlab/database/migrations/runner_backoff/communicator.rb'
- 'lib/gitlab/database/migrations/test_batched_background_runner.rb'
- 'lib/gitlab/database/partitioning/detached_partition_dropper.rb'
- 'lib/gitlab/database/partitioning/list/locking_configuration.rb'
- 'lib/gitlab/database/partitioning/partition_manager.rb'
- 'lib/gitlab/database/partitioning/sliding_list_strategy.rb'
- 'lib/gitlab/database/partitioning_migration_helpers/index_helpers.rb'
- 'lib/gitlab/database/postgres_partitioned_table.rb'
- 'lib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb'
- 'lib/gitlab/database/tables_locker.rb'
- 'lib/gitlab/database/tables_sorted_by_foreign_keys.rb'
- 'lib/gitlab/diff/highlight_cache.rb'
- 'lib/gitlab/diff/position_collection.rb'
- 'lib/gitlab/discussions_diff/file_collection.rb'
- 'lib/gitlab/discussions_diff/highlight_cache.rb'
- 'lib/gitlab/encrypted_configuration.rb'
- 'lib/gitlab/etag_caching/store.rb'
- 'lib/gitlab/external_authorization/cache.rb'
- 'lib/gitlab/git/cross_repo.rb'
- 'lib/gitlab/git/diff_collection.rb'
- 'lib/gitlab/git/diff_stats_collection.rb'
- 'lib/gitlab/gitaly_client/cleanup_service.rb'
- 'lib/gitlab/gitaly_client/storage_settings.rb'
- 'lib/gitlab/gpg.rb'
- 'lib/gitlab/graphql/laziness.rb'
- 'lib/gitlab/graphql/lazy.rb'
- 'lib/gitlab/health_checks/base_abstract_check.rb'
- 'lib/gitlab/http.rb'
- 'lib/gitlab/i18n.rb'
- 'lib/gitlab/import_export/json/streaming_serializer.rb'
- 'lib/gitlab/issues/rebalancing/state.rb'
- 'lib/gitlab/kubernetes/node.rb'
- 'lib/gitlab/legacy_github_import/client.rb'
- 'lib/gitlab/markdown_cache/redis/store.rb'
- 'lib/gitlab/memory/watchdog/configuration.rb'
- 'lib/gitlab/merge_requests/mergeability/redis_interface.rb'
- 'lib/gitlab/metrics/subscribers/active_record.rb'
- 'lib/gitlab/metrics/transaction.rb'
- 'lib/gitlab/namespaced_session_store.rb'
- 'lib/gitlab/pagination/keyset/in_operator_optimization/order_by_columns.rb'
- 'lib/gitlab/popen.rb'
- 'lib/gitlab/rack_attack.rb'
- 'lib/gitlab/rack_attack/store.rb'
- 'lib/gitlab/redis/multi_store.rb'
- 'lib/gitlab/repository_archive_rate_limiter.rb'
- 'lib/gitlab/repository_cache.rb'
- 'lib/gitlab/repository_hash_cache.rb'
- 'lib/gitlab/repository_set_cache.rb'
- 'lib/gitlab/safe_request_loader.rb'
- 'lib/gitlab/search/recent_items.rb'
- 'lib/gitlab/set_cache.rb'
- 'lib/gitlab/shard_health_cache.rb'
- 'lib/gitlab/sidekiq_middleware/concurrency_limit/client.rb'
- 'lib/gitlab/sidekiq_middleware/concurrency_limit/server.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/client.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb'
- 'lib/gitlab/sidekiq_middleware/duplicate_jobs/server.rb'
- 'lib/gitlab/sidekiq_middleware/pause_control/client.rb'
- 'lib/gitlab/sidekiq_middleware/pause_control/pause_control_service.rb'
- 'lib/gitlab/sidekiq_middleware/pause_control/server.rb'
- 'lib/gitlab/sidekiq_middleware/pause_control/strategy_handler.rb'
- 'lib/gitlab/sidekiq_middleware/worker_context.rb'
- 'lib/gitlab/sidekiq_sharding/validator.rb'
- 'lib/gitlab/terraform/state_migration_helper.rb'
- 'lib/gitlab/themes.rb'
- 'lib/gitlab/utils/measuring.rb'
- 'lib/gitlab/workhorse.rb'
- 'lib/gitlab_settings.rb'
- 'lib/mattermost/client.rb'
- 'lib/object_storage/pending_direct_upload.rb'
- 'lib/uploaded_file.rb'
- 'lib/users/internal.rb'
- 'qa/qa/ee/page/insights/show.rb'
- 'qa/qa/ee/page/operations_dashboard.rb'
- 'qa/qa/page/admin/overview/users/show.rb'
- 'qa/qa/page/base.rb'
- 'qa/qa/page/component/blob_content.rb'
- 'qa/qa/page/component/snippet.rb'
- 'qa/qa/page/project/web_ide/vscode.rb'
- 'qa/qa/resource/protected_branch.rb'
- 'qa/qa/scenario/actable.rb'
- 'rubocop/code_reuse_helpers.rb'
- 'spec/lib/gitlab/pagination/offset_pagination_spec.rb'
- 'spec/support/database/prevent_cross_database_modification.rb'
- 'spec/support/helpers/form_builder_helpers.rb'
- 'spec/support/helpers/git_http_helpers.rb'
- 'spec/support/helpers/graphql_helpers.rb'
- 'spec/support/helpers/query_recorder.rb'
- 'spec/support/helpers/redis_commands/recorder.rb'
- 'spec/support/helpers/routes_helpers.rb'
- 'spec/support/helpers/stub_method_calls.rb'
- 'spec/support/matchers/internal_events_cli_matchers.rb'
- 'spec/support/protected_branch_helpers.rb'
- 'spec/support/sidekiq_middleware.rb'

View File

@ -132,7 +132,6 @@ Style/FormatString:
- 'ee/app/helpers/billing_plans_helper.rb'
- 'ee/app/helpers/ee/application_helper.rb'
- 'ee/app/helpers/ee/geo_helper.rb'
- 'ee/app/helpers/ee/groups/settings_helper.rb'
- 'ee/app/helpers/ee/groups_helper.rb'
- 'ee/app/helpers/ee/import_helper.rb'
- 'ee/app/helpers/ee/profiles_helper.rb'

View File

@ -509,7 +509,6 @@ Style/GuardClause:
- 'scripts/setup/find-jh-branch.rb'
- 'scripts/trigger-build.rb'
- 'spec/features/issuables/issuable_list_spec.rb'
- 'spec/features/projects/blobs/edit_spec.rb'
- 'spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb'
- 'spec/services/issues/relative_position_rebalancing_service_spec.rb'
- 'spec/services/packages/maven/metadata/append_package_file_service_spec.rb'

View File

@ -316,7 +316,6 @@ Style/IfUnlessModifier:
- 'ee/app/services/ee/protected_branches/create_service.rb'
- 'ee/app/services/ee/todo_service.rb'
- 'ee/app/services/ee/users/update_service.rb'
- 'ee/app/services/elastic/indexing_control_service.rb'
- 'ee/app/services/epics/base_service.rb'
- 'ee/app/services/epics/create_service.rb'
- 'ee/app/services/epics/epic_links/create_service.rb'
@ -685,7 +684,6 @@ Style/IfUnlessModifier:
- 'qa/qa/page/page_concern.rb'
- 'qa/qa/page/view.rb'
- 'qa/qa/resource/registry_repository.rb'
- 'qa/qa/resource/repository/push.rb'
- 'qa/qa/resource/snippet.rb'
- 'qa/qa/scenario/bootable.rb'
- 'qa/qa/service/praefect_manager.rb'

View File

@ -55,7 +55,6 @@ Style/InlineDisableAnnotation:
- 'app/controllers/dashboard/projects_controller.rb'
- 'app/controllers/explore/projects_controller.rb'
- 'app/controllers/graphql_controller.rb'
- 'app/controllers/groups/milestones_controller.rb'
- 'app/controllers/groups_controller.rb'
- 'app/controllers/help_controller.rb'
- 'app/controllers/import/base_controller.rb'
@ -465,7 +464,6 @@ Style/InlineDisableAnnotation:
- 'app/policies/email_policy.rb'
- 'app/policies/event_policy.rb'
- 'app/policies/group_group_link_policy.rb'
- 'app/policies/issue_policy.rb'
- 'app/policies/list_policy.rb'
- 'app/policies/namespace_ci_cd_setting_policy.rb'
- 'app/policies/project_group_link_policy.rb'
@ -1330,14 +1328,11 @@ Style/InlineDisableAnnotation:
- 'ee/app/services/security/security_orchestration_policies/fetch_policy_approvers_service.rb'
- 'ee/app/services/security/security_orchestration_policies/policy_branches_service.rb'
- 'ee/app/services/security/security_orchestration_policies/process_scan_result_policy_service.rb'
- 'ee/app/services/security/security_orchestration_policies/rule_schedule_service.rb'
- 'ee/app/services/security/security_orchestration_policies/validate_policy_service.rb'
- 'ee/app/services/security/token_revocation_service.rb'
- 'ee/app/services/security/update_training_service.rb'
- 'ee/app/services/status_page/publish_base_service.rb'
- 'ee/app/services/timebox/event_aggregation_service.rb'
- 'ee/app/services/timebox_report_service.rb'
- 'ee/app/services/vulnerabilities/bulk_dismiss_service.rb'
- 'ee/app/services/vulnerabilities/create_service_base.rb'
- 'ee/app/services/vulnerabilities/manually_create_service.rb'
- 'ee/app/validators/user_existence_validator.rb'
@ -1361,7 +1356,6 @@ Style/InlineDisableAnnotation:
- 'ee/app/workers/compliance_management/merge_requests/compliance_violations_consistency_worker.rb'
- 'ee/app/workers/compliance_management/timeout_pending_status_check_responses_worker.rb'
- 'ee/app/workers/concerns/elastic/bulk_cron_worker.rb'
- 'ee/app/workers/concerns/elastic/indexing_control.rb'
- 'ee/app/workers/concerns/geo/base_registry_sync_worker.rb'
- 'ee/app/workers/create_github_webhook_worker.rb'
- 'ee/app/workers/ee/post_receive.rb'
@ -1574,9 +1568,7 @@ Style/InlineDisableAnnotation:
- 'ee/spec/factories/security_scans.rb'
- 'ee/spec/features/dependency_proxy/packages/maven_spec.rb'
- 'ee/spec/features/groups/group_settings_spec.rb'
- 'ee/spec/features/groups/settings/domain_verification_spec.rb'
- 'ee/spec/features/merge_request/draft_comments_spec.rb'
- 'ee/spec/features/projects/mirror_spec.rb'
- 'ee/spec/features/registrations/combined_registration_spec.rb'
- 'ee/spec/features/registrations/saas/standard_flow_with_2fa_spec.rb'
- 'ee/spec/finders/audit_event_finder_spec.rb'
@ -1604,8 +1596,6 @@ Style/InlineDisableAnnotation:
- 'ee/spec/lib/gitlab/patch/database_config_spec.rb'
- 'ee/spec/lib/gitlab/sitemaps/sitemap_file_spec.rb'
- 'ee/spec/lib/gitlab/timebox/snapshot_builder_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_secure_pipelines_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_security_scans_metric_spec.rb'
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/protected_environment_approval_rules_required_approvals_average_metric_spec.rb'
- 'ee/spec/lib/repositories/group_push_rules_changes_auditor_spec.rb'
- 'ee/spec/lib/repositories/project_push_rules_changes_auditor_spec.rb'
@ -1756,7 +1746,6 @@ Style/InlineDisableAnnotation:
- 'lib/api/protected_branches.rb'
- 'lib/api/protected_tags.rb'
- 'lib/api/resource_access_tokens.rb'
- 'lib/api/rubygem_packages.rb'
- 'lib/api/settings.rb'
- 'lib/api/sidekiq_metrics.rb'
- 'lib/api/snippet_repository_storage_moves.rb'
@ -2007,7 +1996,6 @@ Style/InlineDisableAnnotation:
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/legacy_github_import/issuable_formatter.rb'
- 'lib/gitlab/lets_encrypt/client.rb'
- 'lib/gitlab/lfs_token.rb'
- 'lib/gitlab/local_and_remote_storage_migration/base_migrater.rb'
- 'lib/gitlab/marginalia/comment.rb'
- 'lib/gitlab/markdown_cache/redis/store.rb'
@ -2033,7 +2021,6 @@ Style/InlineDisableAnnotation:
- 'lib/gitlab/patch/sidekiq_cron_poller.rb'
- 'lib/gitlab/performance_bar.rb'
- 'lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb'
- 'lib/gitlab/popen/runner.rb'
- 'lib/gitlab/profiler.rb'
- 'lib/gitlab/project_search_results.rb'
- 'lib/gitlab/project_stats_refresh_conflicts_logger.rb'
@ -2144,14 +2131,11 @@ Style/InlineDisableAnnotation:
- 'qa/qa/scenario/test/integration/ldap_no_tls.rb'
- 'qa/qa/scenario/test/integration/ldap_tls.rb'
- 'qa/qa/scenario/test/integration/registry_with_cdn.rb'
- 'qa/qa/service/docker_run/gitlab_runner.rb'
- 'qa/qa/service/shellout.rb'
- 'qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb'
- 'qa/qa/specs/features/browser_ui/10_govern/user/user_access_termination_spec.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/integrations/jira/jira_basic_integration_spec.rb'
- 'qa/qa/specs/features/ee/api/10_govern/instance_audit_event_streaming_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/10_govern/create_merge_request_with_secure_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/10_govern/group/group_audit_event_streaming_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/10_govern/group/group_audit_logs_1_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/10_govern/instance/instance_audit_logs_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/integrations/jira_issues_list_spec.rb'
@ -2162,7 +2146,6 @@ Style/InlineDisableAnnotation:
- 'qa/qa/support/run.rb'
- 'qa/qa/support/wait_for_requests.rb'
- 'qa/qa/tools/reliable_report.rb'
- 'qa/qa/vendor/one_password/cli.rb'
- 'qa/spec/ee/resource/mixins/group_base_spec.rb'
- 'qa/spec/page/base_spec.rb'
- 'qa/spec/resource/project_web_hook_spec.rb'
@ -2204,7 +2187,6 @@ Style/InlineDisableAnnotation:
- 'spec/factories/projects/ci_feature_usages.rb'
- 'spec/factories/wiki_pages.rb'
- 'spec/features/markdown/math_spec.rb'
- 'spec/features/merge_request/user_edits_mr_spec.rb'
- 'spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb'
- 'spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb'
- 'spec/features/projects/members/import_project_members_spec.rb'
@ -2270,8 +2252,6 @@ Style/InlineDisableAnnotation:
- 'spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb'
- 'spec/lib/gitlab/database/migrations/instrumentation_spec.rb'
- 'spec/lib/gitlab/database_spec.rb'
- 'spec/lib/gitlab/doorkeeper_secret_storing/secret/pbkdf2_sha512_spec.rb'
- 'spec/lib/gitlab/doorkeeper_secret_storing/token/pbkdf2_sha512_spec.rb'
- 'spec/lib/gitlab/encoding_helper_spec.rb'
- 'spec/lib/gitlab/git/object_pool_spec.rb'
- 'spec/lib/gitlab/git/remote_mirror_spec.rb'
@ -2306,11 +2286,9 @@ Style/InlineDisableAnnotation:
- 'spec/lib/gitlab/memory/reports_daemon_spec.rb'
- 'spec/lib/gitlab/memory/reports_uploader_spec.rb'
- 'spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb'
- 'spec/lib/gitlab/merge_requests/message_generator_spec.rb'
- 'spec/lib/gitlab/pagination/keyset/iterator_spec.rb'
- 'spec/lib/gitlab/pagination/keyset/order_spec.rb'
- 'spec/lib/gitlab/patch/database_config_spec.rb'
- 'spec/lib/gitlab/search/abuse_detection_spec.rb'
- 'spec/lib/gitlab/shard_health_cache_spec.rb'
- 'spec/lib/gitlab/usage/metrics/instrumentations/count_deployments_metric_spec.rb'
- 'spec/lib/gitlab/usage/metrics/instrumentations/gitaly_apdex_metric_spec.rb'
@ -2332,7 +2310,6 @@ Style/InlineDisableAnnotation:
- 'spec/models/ci/persistent_ref_spec.rb'
- 'spec/models/ci/pipeline_spec.rb'
- 'spec/models/concerns/bulk_insertable_associations_spec.rb'
- 'spec/models/concerns/encrypted_user_password_spec.rb'
- 'spec/models/concerns/legacy_bulk_insert_spec.rb'
- 'spec/models/concerns/manual_inverse_association_spec.rb'
- 'spec/models/concerns/noteable_spec.rb'
@ -2353,7 +2330,6 @@ Style/InlineDisableAnnotation:
- 'spec/presenters/member_presenter_spec.rb'
- 'spec/presenters/ml/candidates_csv_presenter_spec.rb'
- 'spec/presenters/packages/nuget/search_results_presenter_spec.rb'
- 'spec/requests/api/alert_management_alerts_spec.rb'
- 'spec/requests/api/ci/runner/jobs_artifacts_spec.rb'
- 'spec/requests/api/graphql/groups_query_spec.rb'
- 'spec/requests/api/graphql/issues_spec.rb'
@ -2438,7 +2414,6 @@ Style/InlineDisableAnnotation:
- 'spec/support/helpers/stub_feature_flags.rb'
- 'spec/support/helpers/stub_object_storage.rb'
- 'spec/support/helpers/stub_snowplow.rb'
- 'spec/support/helpers/wait_for_requests.rb'
- 'spec/support/shared_contexts/controllers/ambiguous_ref_controller_shared_context.rb'
- 'spec/support/shared_contexts/disable_user_tracking.rb'
- 'spec/support/shared_contexts/policies/project_policy_table_shared_context.rb'
@ -2448,7 +2423,6 @@ Style/InlineDisableAnnotation:
- 'spec/support/shared_examples/db/seeds/data_seeder_shared_examples.rb'
- 'spec/support/shared_examples/deployments/create_for_job_shared_examples.rb'
- 'spec/support/shared_examples/environments/create_for_job_shared_examples.rb'
- 'spec/support/shared_examples/features/milestone_editing_shared_examples.rb'
- 'spec/support/shared_examples/features/wiki/user_previews_wiki_changes_shared_examples.rb'
- 'spec/support/shared_examples/features/wiki/user_updates_wiki_page_shared_examples.rb'
- 'spec/support/shared_examples/features/wiki/user_views_asciidoc_page_with_includes_shared_examples.rb'
@ -2508,7 +2482,6 @@ Style/InlineDisableAnnotation:
- 'spec/workers/repository_check/single_repository_worker_spec.rb'
- 'tooling/danger/database_dictionary.rb'
- 'tooling/danger/saas_feature.rb'
- 'tooling/danger/sidekiq_queues.rb'
- 'tooling/danger/stable_branch.rb'
- 'tooling/lib/tooling/fast_quarantine.rb'
- 'tooling/lib/tooling/find_changes.rb'

View File

@ -4,12 +4,18 @@ Style/MapIntoArray:
Exclude:
- 'app/finders/projects/members/effective_access_level_finder.rb'
- 'app/services/packages/nuget/extract_metadata_content_service.rb'
- 'app/services/snippets/base_service.rb'
- 'config/settings.rb'
- 'ee/app/workers/product_analytics/move_funnels_worker.rb'
- 'ee/lib/elastic/latest/user_class_proxy.rb'
- 'ee/lib/gitlab/search/zoekt/client.rb'
- 'ee/spec/lib/search/elastic/references/embedding_spec.rb'
- 'lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/node.rb'
- 'lib/gitlab/git/blame.rb'
- 'lib/gitlab/grape_logging/loggers/exception_logger.rb'
- 'lib/google_api/cloud_platform/client.rb'
- 'qa/qa/tools/delete_user_projects.rb'
- 'qa/qa/tools/generate_perf_testdata.rb'
- 'spec/lib/gitlab/color_schemes_spec.rb'
- 'spec/lib/gitlab/git/blame_spec.rb'
- 'spec/lib/gitlab/themes_spec.rb'

View File

@ -1 +1 @@
456a8af358cfde87bef3b63373bdf8b7b3ab9032
4fe9bfd64a3a6ed177743db3f0905aaffb2c10c2

View File

@ -238,7 +238,7 @@
{"name":"gitlab-net-dns","version":"0.9.2","platform":"ruby","checksum":"f726d978479d43810819f12a45c0906d775a07e34df111bbe693fffbbef3059d"},
{"name":"gitlab-sdk","version":"0.3.1","platform":"ruby","checksum":"48ba49084f4ab92df7c7ef9f347020d9dfdf6ed9c1e782b67264e98ffe6ea710"},
{"name":"gitlab-security_report_schemas","version":"0.1.2.min15.0.0.max15.2.1","platform":"ruby","checksum":"300037487ec9d51a814f648514ff521cb82b94fc51d9fe53389175b36ac680ae"},
{"name":"gitlab-styles","version":"13.0.1","platform":"ruby","checksum":"bf1840fe97b215ab76fe1f1a83af0aee30d33ded905415918462b832004b68bd"},
{"name":"gitlab-styles","version":"13.0.2","platform":"ruby","checksum":"e662b9334643763b55a861f9e26091096547f98179bd89b0fa8d6c6fb8cec861"},
{"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
{"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
{"name":"gitlab_quality-test_tooling","version":"2.2.0","platform":"ruby","checksum":"d8fdaa7e5b529d0157485db4c81876a492303b53f30d9e8246f91f37f689295a"},
@ -610,7 +610,7 @@
{"name":"rspec-support","version":"3.13.1","platform":"ruby","checksum":"48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f"},
{"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"},
{"name":"rspec_profiling","version":"0.0.9","platform":"ruby","checksum":"6199be2daeaa14bac3d10d704dbb0a8df052cf046332c505603263aea24f7590"},
{"name":"rubocop","version":"1.67.0","platform":"ruby","checksum":"8ccca7226e76d0a9974af960ea446d1fb38adf0c491214294e2fed75a85c378c"},
{"name":"rubocop","version":"1.68.0","platform":"ruby","checksum":"07df508504d81e97174e8d21030f25d52c1be7ee8615939db43f3b377ea6c12b"},
{"name":"rubocop-ast","version":"1.32.3","platform":"ruby","checksum":"40201e861c73a3c2d59428c7627828ef81fb2f8a306bc4a1c1801452afe3fe0f"},
{"name":"rubocop-capybara","version":"2.21.0","platform":"ruby","checksum":"5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab"},
{"name":"rubocop-factory_bot","version":"2.26.1","platform":"ruby","checksum":"8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa"},

View File

@ -777,8 +777,8 @@ GEM
gitlab-security_report_schemas (0.1.2.min15.0.0.max15.2.1)
activesupport (>= 6, < 8)
json_schemer (~> 2.3.0)
gitlab-styles (13.0.1)
rubocop (~> 1.67.0)
gitlab-styles (13.0.2)
rubocop (~> 1.68.0)
rubocop-capybara (~> 2.21.0)
rubocop-factory_bot (~> 2.26.1)
rubocop-graphql (~> 1.5.4)
@ -1636,7 +1636,7 @@ GEM
activerecord
get_process_mem
rails
rubocop (1.67.0)
rubocop (1.68.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)

View File

@ -239,7 +239,7 @@
{"name":"gitlab-net-dns","version":"0.9.2","platform":"ruby","checksum":"f726d978479d43810819f12a45c0906d775a07e34df111bbe693fffbbef3059d"},
{"name":"gitlab-sdk","version":"0.3.1","platform":"ruby","checksum":"48ba49084f4ab92df7c7ef9f347020d9dfdf6ed9c1e782b67264e98ffe6ea710"},
{"name":"gitlab-security_report_schemas","version":"0.1.2.min15.0.0.max15.2.1","platform":"ruby","checksum":"300037487ec9d51a814f648514ff521cb82b94fc51d9fe53389175b36ac680ae"},
{"name":"gitlab-styles","version":"13.0.1","platform":"ruby","checksum":"bf1840fe97b215ab76fe1f1a83af0aee30d33ded905415918462b832004b68bd"},
{"name":"gitlab-styles","version":"13.0.2","platform":"ruby","checksum":"e662b9334643763b55a861f9e26091096547f98179bd89b0fa8d6c6fb8cec861"},
{"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
{"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
{"name":"gitlab_quality-test_tooling","version":"2.2.0","platform":"ruby","checksum":"d8fdaa7e5b529d0157485db4c81876a492303b53f30d9e8246f91f37f689295a"},
@ -620,7 +620,7 @@
{"name":"rspec-support","version":"3.13.1","platform":"ruby","checksum":"48877d4f15b772b7538f3693c22225f2eda490ba65a0515c4e7cf6f2f17de70f"},
{"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"},
{"name":"rspec_profiling","version":"0.0.9","platform":"ruby","checksum":"6199be2daeaa14bac3d10d704dbb0a8df052cf046332c505603263aea24f7590"},
{"name":"rubocop","version":"1.67.0","platform":"ruby","checksum":"8ccca7226e76d0a9974af960ea446d1fb38adf0c491214294e2fed75a85c378c"},
{"name":"rubocop","version":"1.68.0","platform":"ruby","checksum":"07df508504d81e97174e8d21030f25d52c1be7ee8615939db43f3b377ea6c12b"},
{"name":"rubocop-ast","version":"1.32.3","platform":"ruby","checksum":"40201e861c73a3c2d59428c7627828ef81fb2f8a306bc4a1c1801452afe3fe0f"},
{"name":"rubocop-capybara","version":"2.21.0","platform":"ruby","checksum":"5d264efdd8b6c7081a3d4889decf1451a1cfaaec204d81534e236bc825b280ab"},
{"name":"rubocop-factory_bot","version":"2.26.1","platform":"ruby","checksum":"8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa"},

View File

@ -787,8 +787,8 @@ GEM
gitlab-security_report_schemas (0.1.2.min15.0.0.max15.2.1)
activesupport (>= 6, < 8)
json_schemer (~> 2.3.0)
gitlab-styles (13.0.1)
rubocop (~> 1.67.0)
gitlab-styles (13.0.2)
rubocop (~> 1.68.0)
rubocop-capybara (~> 2.21.0)
rubocop-factory_bot (~> 2.26.1)
rubocop-graphql (~> 1.5.4)
@ -1662,7 +1662,7 @@ GEM
activerecord
get_process_mem
rails
rubocop (1.67.0)
rubocop (1.68.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)

View File

@ -54,7 +54,7 @@ export default {
<div
v-gl-tooltip
:title="ciConfigPath"
class="gl-mb-3 gl-rounded-base gl-bg-gray-50 gl-px-3 gl-py-2"
class="gl-mb-3 gl-rounded-base gl-bg-strong gl-px-3 gl-py-2"
>
<span class="file-row-name gl-str-truncated" :title="ciConfigPath">
<file-icon class="file-row-icon" :file-name="ciConfigPath" />

View File

@ -34,7 +34,7 @@ export default {
:href="filePath"
:title="fileName"
target="_blank"
class="file-tree-includes-link gl-flex gl-justify-between gl-rounded-base gl-px-3 gl-py-2 gl-text-default hover:gl-bg-gray-50 hover:gl-text-gray-900 hover:gl-no-underline"
class="file-tree-includes-link gl-flex gl-justify-between gl-rounded-base gl-px-3 gl-py-2 gl-text-default hover:gl-bg-strong hover:gl-text-strong hover:gl-no-underline"
>
<span class="file-row-name gl-str-truncated" :title="fileName">
<file-icon class="file-row-icon" :file-name="fileName" />

View File

@ -290,8 +290,11 @@ export default {
<node-view-content
ref="nodeViewContent"
as="code"
class="line_content new code gl-relative gl-z-1 !gl-break-words gl-text-sm"
:class="themeClass"
class="gl-relative gl-z-1 !gl-break-words"
:class="{
'line_content new code': isCodeSuggestion,
themeClass: isCodeSuggestion,
}"
spellcheck="false"
data-testid="suggestion-field"
/>

View File

@ -66,6 +66,7 @@ const CODE_BLOCK_LANGUAGES = [
{ syntax: 'gauss', variants: 'gss', label: 'GAUSS' },
{ syntax: 'gcode', variants: 'nc', label: 'G-code (ISO 6983)' },
{ syntax: 'gherkin', variants: 'feature', label: 'Gherkin' },
{ syntax: 'glql', label: 'GitLab Query Language (GLQL)' },
{ syntax: 'glsl', label: 'GLSL' },
{ syntax: 'gml', label: 'GML' },
{ syntax: 'go', variants: 'golang', label: 'Go' },

View File

@ -4,6 +4,7 @@ import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';
import { debounce, throttle } from 'lodash';
// eslint-disable-next-line no-restricted-imports
import { mapState, mapGetters, mapActions } from 'vuex';
import FindingsDrawer from 'ee_component/diffs/components/shared/findings_drawer.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import api from '~/api';
@ -51,7 +52,6 @@ import { reviewStatuses } from '../utils/file_reviews';
import { diffsApp } from '../utils/performance';
import { updateChangesTabCount, extractFileHash } from '../utils/merge_request';
import { queueRedisHllEvents } from '../utils/queue_events';
import FindingsDrawer from './shared/findings_drawer.vue';
import CollapsedFilesWarning from './collapsed_files_warning.vue';
import CommitWidget from './commit_widget.vue';
import CompareVersions from './compare_versions.vue';

View File

@ -340,7 +340,7 @@ export default {
v-if="isModeChanged"
ref="fileMode"
v-gl-tooltip.hover.focus
class="mr-1"
class="gl-mr-2 gl-text-subtle"
:title="$options.i18n.fileModeTooltip"
>
{{ diffFile.a_mode }} {{ diffFile.b_mode }}

View File

@ -43,7 +43,7 @@ export default {
fileClasses() {
return this.file.type === 'blob' && !this.viewedFiles[this.file.fileHash]
? 'gl-font-bold'
: '';
: 'gl-text-subtle';
},
isActive() {
return this.currentDiffFileId === this.file.fileHash;
@ -62,7 +62,7 @@ export default {
:file-classes="fileClasses"
v-on="$listeners"
>
<file-row-stats v-if="showFileRowStats" :file="file" class="mr-1" />
<file-row-stats v-if="showFileRowStats" :file="file" class="gl-mr-2" />
<changed-file-icon :file="file" :size="16" :show-tooltip="true" />
</file-row>
</template>

View File

@ -1,138 +0,0 @@
<script>
import { GlDrawer, GlButton, GlButtonGroup, GlIcon, GlTooltipDirective } from '@gitlab/ui';
import { s__ } from '~/locale';
import { DRAWER_Z_INDEX } from '~/lib/utils/constants';
import { getSeverity } from '~/ci/reports/utils';
import { getContentWrapperHeight } from '~/lib/utils/dom_utils';
import FindingsDrawerDetails from '~/diffs/components/shared/findings_drawer_details.vue';
export const i18n = {
codeQualityFinding: s__('FindingsDrawer|Code Quality Finding'),
sastFinding: s__('FindingsDrawer|SAST Finding'),
codeQuality: s__('FindingsDrawer|Code Quality'),
detected: s__('FindingsDrawer|Detected in pipeline'),
nextButton: s__('FindingsDrawer|Next finding'),
previousButton: s__('FindingsDrawer|Previous finding'),
};
export const codeQuality = 'codeQuality';
export default {
i18n,
codeQuality,
components: {
FindingsDrawerDetails,
GlDrawer,
GlButton,
GlButtonGroup,
GlIcon,
},
directives: {
GlTooltip: GlTooltipDirective,
},
props: {
drawer: {
type: Object,
required: true,
},
project: {
type: Object,
required: false,
default: () => {},
},
},
data() {
return {
activeIndex: 0,
};
},
computed: {
getDrawerHeaderHeight() {
return getContentWrapperHeight();
},
isCodeQuality() {
return this.activeElement.scale === this.$options.codeQuality;
},
activeElement() {
return this.drawer.findings[this.activeIndex];
},
},
DRAWER_Z_INDEX,
watch: {
drawer(newVal) {
this.activeIndex = newVal.index;
},
},
methods: {
getSeverity,
prev() {
if (this.activeIndex === 0) {
this.activeIndex = this.drawer.findings.length - 1;
} else {
this.activeIndex -= 1;
}
},
next() {
if (this.activeIndex === this.drawer.findings.length - 1) {
this.activeIndex = 0;
} else {
this.activeIndex += 1;
}
},
},
};
</script>
<template>
<gl-drawer
:header-height="getDrawerHeaderHeight"
:z-index="$options.DRAWER_Z_INDEX"
class="findings-drawer"
:open="Object.keys(drawer).length !== 0"
@close="$emit('close')"
>
<template #title>
<h2 class="drawer-heading gl-mb-0 gl-mt-0 gl-w-28 gl-text-base">
<gl-icon
:size="12"
:name="getSeverity(activeElement).name"
:class="getSeverity(activeElement).class"
class="inline-findings-severity-icon !gl-align-baseline"
/>
<span class="drawer-heading-severity">{{ activeElement.severity }}</span>
{{ isCodeQuality ? $options.i18n.codeQualityFinding : $options.i18n.sastFinding }}
</h2>
<div v-if="drawer.findings.length > 1">
<gl-button-group>
<gl-button
v-gl-tooltip.bottom
:title="$options.i18n.previousButton"
:aria-label="$options.i18n.previousButton"
size="small"
data-testid="findings-drawer-prev-button"
@click="prev"
>
<gl-icon
:size="14"
class="findings-drawer-nav-button gl-relative"
name="chevron-lg-left"
/>
</gl-button>
<gl-button size="small" @click="next">
<gl-icon
v-gl-tooltip.bottom
data-testid="findings-drawer-next-button"
:title="$options.i18n.nextButton"
:aria-label="$options.i18n.nextButton"
class="findings-drawer-nav-button gl-relative"
:size="14"
name="chevron-lg-right"
/>
</gl-button>
</gl-button-group>
</div>
</template>
<template #default>
<findings-drawer-details :drawer="activeElement" :project="project" />
</template>
</gl-drawer>
</template>

View File

@ -1,119 +0,0 @@
<script>
import { GlBadge, GlLink } from '@gitlab/ui';
import { __, s__ } from '~/locale';
import DrawerItem from '~/diffs/components/shared/findings_drawer_item.vue';
import { SAST_FINDING_DISMISSED } from '~/diffs/constants';
export default {
name: 'FindingsDrawerDetails',
DrawerItem,
components: { DrawerItem, GlBadge, GlLink },
props: {
drawer: {
type: Object,
required: true,
},
project: {
type: Object,
required: false,
default: () => {},
},
},
computed: {
findingsStatus() {
return this.drawer.state === SAST_FINDING_DISMISSED ? 'muted' : 'warning';
},
isCodeQuality() {
return this.drawer.scale === this.$options.codeQuality;
},
},
methods: {
concatIdentifierName(name, index) {
return name + (index !== this.drawer.identifiers.length - 1 ? ', ' : '');
},
},
i18n: {
name: __('Name'),
status: __('Status'),
description: __('Description'),
project: __('Project'),
file: __('File'),
identifiers: __('Identifiers'),
tool: __('Tool'),
codeQuality: s__('FindingsDrawer|Code Quality'),
sast: __('SAST'),
engine: __('Engine'),
},
};
</script>
<template>
<ul class="gl-mb-0 gl-list-none !gl-pb-0 gl-border-b-initial">
<drawer-item
v-if="drawer.title"
:description="$options.i18n.name"
:value="drawer.title"
data-testid="findings-drawer-title"
/>
<drawer-item v-if="drawer.state" :description="$options.i18n.status">
<template #value>
<gl-badge :variant="findingsStatus" class="text-capitalize">{{ drawer.state }}</gl-badge>
</template>
</drawer-item>
<drawer-item
v-if="drawer.description"
:description="$options.i18n.description"
:value="drawer.description"
/>
<drawer-item
v-if="project && drawer.scale !== $options.codeQuality"
:description="$options.i18n.project"
>
<template #value>
<gl-link :href="`/${project.fullPath}`">{{ project.nameWithNamespace }}</gl-link>
</template>
</drawer-item>
<drawer-item v-if="drawer.location || drawer.webUrl" :description="$options.i18n.file">
<template #value>
<span v-if="drawer.webUrl && drawer.filePath && drawer.line">
<gl-link :href="drawer.webUrl">{{ drawer.filePath }}:{{ drawer.line }}</gl-link>
</span>
<span v-else-if="drawer.location">
{{ drawer.location.file }}:{{ drawer.location.startLine }}
</span>
</template>
</drawer-item>
<drawer-item
v-if="drawer.identifiers && drawer.identifiers.length"
:description="$options.i18n.identifiers"
>
<template #value>
<span v-for="(identifier, index) in drawer.identifiers" :key="identifier.externalId">
<gl-link v-if="identifier.url" :href="identifier.url">
{{ concatIdentifierName(identifier.name, index) }}
</gl-link>
<span v-else>
{{ concatIdentifierName(identifier.name, index) }}
</span>
</span>
</template>
</drawer-item>
<drawer-item
v-if="drawer.scale"
:description="$options.i18n.tool"
:value="isCodeQuality ? $options.i18n.codeQuality : $options.i18n.sast"
/>
<drawer-item
v-if="drawer.engineName"
:description="$options.i18n.engine"
:value="drawer.engineName"
/>
</ul>
</template>

View File

@ -1,28 +0,0 @@
<script>
export default {
props: {
description: {
type: String,
required: false,
default: '',
},
value: {
type: String,
required: false,
default: '',
},
},
};
</script>
<template>
<li class="gl-mb-4">
<p class="gl-leading-20">
<span data-testid="findings-drawer-item-description" class="gl-mb-1 gl-block gl-font-bold">{{
description
}}</span>
<slot name="value">
<span data-testid="findings-drawer-item-value-prop">{{ value }}</span>
</slot>
</p>
</li>
</template>

View File

@ -1,6 +1,8 @@
<script>
import { GlButtonGroup, GlButton } from '@gitlab/ui';
import { uniqueId } from 'lodash';
import axios from '~/lib/utils/axios_utils';
import { visitUrl } from '~/lib/utils/url_utility';
import { sprintf, __ } from '~/locale';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import getRefMixin from '../mixins/get_ref';
@ -105,6 +107,15 @@ export default {
this.$refs[modalId].show();
},
handleBlobDelete(formData) {
return axios({
method: 'post',
url: this.deletePath,
data: formData,
}).then((response) => {
visitUrl(response.data.filePath);
});
},
},
replaceBlobModalId: REPLACE_BLOB_MODAL_ID,
};
@ -144,7 +155,6 @@ export default {
<commit-changes-modal
:ref="deleteModalId"
:modal-id="deleteModalId"
:delete-path="deletePath"
:commit-message="deleteModalCommitMessage"
:target-branch="targetBranch || ref"
:original-branch="originalBranch || ref"
@ -152,6 +162,11 @@ export default {
:can-push-to-branch="canPushToBranch"
:empty-repo="emptyRepo"
:is-using-lfs="isUsingLfs"
/>
:handle-form-submit="handleBlobDelete"
>
<template #form-fields>
<input type="hidden" name="_method" value="delete" />
</template>
</commit-changes-modal>
</div>
</template>

View File

@ -1,5 +1,6 @@
<script>
import {
GlAlert,
GlModal,
GlFormCheckbox,
GlFormGroup,
@ -25,6 +26,7 @@ import {
export default {
csrf,
components: {
GlAlert,
GlModal,
GlFormCheckbox,
GlFormGroup,
@ -38,8 +40,14 @@ export default {
},
i18n: {
BRANCH: __('Branch'),
BRANCH_IN_FORK_MESSAGE: __(
'GitLab will create a branch in your fork and start a merge request.',
),
CURRENT_BRANCH_LABEL: __('Commit to the current %{branchName} branch'),
COMMIT_CHANGES: __('Commit changes'),
COMMIT_IN_BRANCH_MESSAGE: __(
'Your changes can be committed to %{branchName} because a merge request is open.',
),
COMMIT_LABEL,
COMMIT_MESSAGE_HINT: __(
'Try to keep the first line under 52 characters and the others under 72.',
@ -65,10 +73,6 @@ export default {
type: String,
required: true,
},
deletePath: {
type: String,
required: true,
},
commitMessage: {
type: String,
required: true,
@ -98,6 +102,15 @@ export default {
required: false,
default: false,
},
branchAllowsCollaboration: {
type: Boolean,
required: false,
default: false,
},
handleFormSubmit: {
type: Function,
required: true,
},
},
data() {
const form = {
@ -174,7 +187,7 @@ export default {
? this.$options.i18n.LFS_WARNING_TITLE
: this.$options.i18n.COMMIT_CHANGES;
},
showDeleteForm() {
showForm() {
return !this.isUsingLfs || (this.isUsingLfs && this.lfsWarningDismissed);
},
},
@ -224,7 +237,15 @@ export default {
this.loading = true;
this.form.showValidation = false;
this.$refs.form.$el.submit();
const form = this.$refs.form.$el;
const formData = new FormData(form);
try {
this.handleFormSubmit(formData);
} finally {
this.loading = false;
}
},
},
deleteLfsHelpPath: helpPagePath('topics/git/lfs', {
@ -243,6 +264,7 @@ export default {
:action-cancel="cancelOptions"
@primary="handlePrimaryAction"
>
<slot name="body"></slot>
<div v-if="showLfsWarning">
<p>
<gl-sprintf :message="$options.i18n.LFS_WARNING_PRIMARY_CONTENT">
@ -260,10 +282,10 @@ export default {
</gl-sprintf>
</p>
</div>
<div v-if="showDeleteForm">
<gl-form ref="form" novalidate :action="deletePath" method="post">
<input type="hidden" name="_method" value="delete" />
<div v-if="showForm">
<gl-form ref="form" novalidate>
<input :value="$options.csrf.token" type="hidden" name="authenticity_token" />
<slot name="form-fields"></slot>
<template v-if="emptyRepo">
<input type="hidden" name="branch_name" :value="originalBranch" class="js-branch-name" />
</template>
@ -354,6 +376,18 @@ export default {
</gl-form-checkbox>
</template>
</gl-form-group>
<template v-else>
<gl-alert v-if="branchAllowsCollaboration" :dismissible="false" class="gl-my-3">
<gl-sprintf :message="$options.i18n.COMMIT_IN_BRANCH_MESSAGE">
<template #branchName
><strong>{{ originalBranch }}</strong>
</template>
</gl-sprintf></gl-alert
>
<gl-alert v-else :dismissible="false" class="gl-my-3">{{
$options.i18n.BRANCH_IN_FORK_MESSAGE
}}</gl-alert>
</template>
</template>
</gl-form>
</div>

View File

@ -156,7 +156,7 @@ export default {
/>
<file-icon
class="file-row-icon"
:class="{ 'text-secondary': file.type === 'tree' }"
:class="{ 'gl-text-subtle': file.type === 'tree' }"
:file-name="file.name"
:loading="file.loading"
:folder="isTree"

View File

@ -603,6 +603,7 @@ table.code {
}
.diff-wrap-lines .line_content {
font-size: 13px;
white-space: pre-wrap;
}

View File

@ -48,7 +48,8 @@ class IssuesFinder < IssuableFinder
private
def filter_items(items)
issues = super
issues = by_service_desk(items) # Call before super because we remove params
issues = super(issues)
issues = by_due_date(issues)
issues = by_due_after_or_before(issues)
issues = by_confidential(issues)
@ -119,6 +120,18 @@ class IssuesFinder < IssuableFinder
items.with_issue_type(params[:issue_types])
end
def by_service_desk(items)
return items unless params[:author_username] == "support-bot"
# Delete param so we don't additionally filter by author username
params.delete(:author_username)
# Also delete from here because we pass original_params to
# Issuables::AuthorFilter in IssuableFinder
original_params.delete(:author_username)
items.service_desk
end
def by_negated_issue_types(items)
issue_type_params = Array(not_params[:issue_types]).map(&:to_s) & WorkItems::Type.base_types.keys
return items if issue_type_params.blank?

View File

@ -14,12 +14,12 @@ module Ci
end
def includes_group?(target_project)
allowlist_group_ids = group_links.pluck(:target_group_id)
target_project_group_path_ids = target_project.parent_groups.map(&:id)
group_links_for_target(target_project).any?
end
allowed_target_group_ids = allowlist_group_ids & target_project_group_path_ids
allowed_target_group_ids.any?
def nearest_scope_for_target_project(target_project)
source_links.with_target(target_project).first ||
group_links_for_target(target_project).first
end
def projects
@ -70,6 +70,15 @@ module Ci
.with_source(@source_project)
end
def group_links_for_target(target_project)
target_group_ids = target_project.parent_groups.pluck(:id)
group_links.where(target_group_id: target_group_ids).order(
Arel.sql(
"array_position(ARRAY#{target_group_ids}::bigint[], ci_job_token_group_scope_links.target_group_id)"
)
)
end
def target_project_ids
source_links
# pluck needed to avoid ci and main db join

View File

@ -34,6 +34,14 @@ module Ci
true
end
def policy_allowed?(accessed_project, policy)
return true if self_referential?(accessed_project)
return true unless accessed_project.ci_inbound_job_token_scope_enabled?
return false unless inbound_accessible?(accessed_project)
policy_allowed_for_accessed_project?(accessed_project, policy)
end
def outbound_projects
outbound_allowlist.projects
end
@ -83,6 +91,17 @@ module Ci
end
end
def policy_allowed_for_accessed_project?(accessed_project, policy)
scope = nearest_scope(accessed_project)
return true if scope.default_permissions?
policy.to_s.in?(scope.job_token_policies)
end
def nearest_scope(accessed_project)
inbound_accessible_projects(accessed_project).nearest_scope_for_target_project(current_project)
end
# We don't check the inbound allowlist here. That is because
# the access check starts from the current project but the inbound
# allowlist contains projects that can access the current project.

View File

@ -245,7 +245,14 @@ class Issue < ApplicationRecord
scope :counts_by_state, -> { reorder(nil).group(:state_id).count }
scope :service_desk, -> { where(author: ::Users::Internal.support_bot) }
scope :service_desk, -> {
where(
"(author_id = ? AND work_item_type_id = ?) OR work_item_type_id = ?",
Users::Internal.support_bot.id,
WorkItems::Type.default_issue_type.id,
WorkItems::Type.default_by_type(:ticket).id
)
}
scope :inc_relations_for_view, -> do
includes(author: :status, assignees: :status)
.allow_cross_joins_across_databases(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/422155')

View File

@ -124,7 +124,7 @@ module WorkItems
end
def self.allowed_types_for_issues
base_types.keys.excluding('objective', 'key_result', 'epic', 'ticket')
base_types.keys.excluding('objective', 'key_result', 'epic')
end
# method overridden in EE to perform the corresponding checks for the Epic type

View File

@ -1,4 +1,4 @@
- custom_settings_title = @integration.title == 'Beyond Identity' && Feature.enabled?(:beyond_identity_exclusions) ? s_('Integrations|Exclusions') : s_('Integrations|Projects using custom settings')
- custom_settings_title = @integration.title == 'Beyond Identity' ? s_('Integrations|Exclusions') : s_('Integrations|Projects using custom settings')
- if integration.instance_level?
.tabs.gl-tabs
%div

View File

@ -5,7 +5,7 @@
%h1.page-title.gl-text-size-h-display
= @integration.title
- if @integration.title == 'Beyond Identity' && Feature.enabled?(:beyond_identity_exclusions)
- if @integration.title == 'Beyond Identity'
.js-vue-beyond-identity-exclusions{ data: integration_overrides_data(@integration) }
- else

View File

@ -0,0 +1,21 @@
---
description: User changes require code owner approval protection.
internal_events: true
action: change_require_codeowner_approval
identifiers:
- project
- namespace
- user
product_group: source_code
milestone: '17.3'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160591
distributions:
- ce
- ee
tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: location where the event happened - repository_settings or branch_rule_details

View File

@ -7,7 +7,7 @@ identifiers:
- namespace
- user
additional_properties:
value:
label:
description: Position of the result.
property:
description: Set to 'open' if show more is activated and 'close' if it is closed again.

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -5,6 +5,9 @@ action: press_enter_to_advanced_search
identifiers:
- namespace
- user
additional_properties:
label:
description: Hardcoded value command_palette
product_group: global_search
milestone: '17.1'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151681

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -18,4 +18,8 @@ tiers:
- ultimate
additional_properties:
label:
description: location where the event happened - repository_settings or branch_rule_details
description: location where the event happened - repository_settings or branch_rule_details
property:
description: branch rules
value:
description: branch value

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -1,16 +0,0 @@
---
description: Tracks click on licence-compliance full report button
internal_events: true
action: click_full_report_license_compliance
identifiers:
- project
- user
- namespace
product_group: composition_analysis
milestone: '17.0'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150952
distributions:
- ee
tiers:
- premium
- ultimate

View File

@ -11,3 +11,10 @@ tiers:
- free
- premium
- ultimate
additional_properties:
label:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
property:
description: not actually used - to be fixed in https://gitlab.com/gitlab-org/gitlab/-/issues/501387
variant:
description: external or internal

View File

@ -1,9 +0,0 @@
---
name: beyond_identity_exclusions
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/454372
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150664
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/457893
milestone: '17.0'
group: group::source code
type: beta
default_enabled: true

View File

@ -0,0 +1,9 @@
---
name: enforce_job_token_policies
feature_issue_url: https://gitlab.com/gitlab-org/govern/authorization/team-tasks/-/issues/67
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169264
rollout_issue_url:
milestone: "17.7"
group: group::authorization
type: wip
default_enabled: false

View File

@ -15,7 +15,6 @@ Gitlab::SidekiqSharding::Router.migrated_shards
# can't be referred to.
#
# We do not need the custom command builder since Sidekiq will handle the typing of Redis arguments.
queues_config_hash = Gitlab::Redis::Queues.params.except(:command_builder)
queue_instance = ENV.fetch('SIDEKIQ_SHARD_NAME', Gitlab::Redis::Queues::SIDEKIQ_MAIN_SHARD_INSTANCE_NAME)
queues_config_hash = Gitlab::Redis::Queues.instances[queue_instance].params.except(:command_builder)

View File

@ -0,0 +1,9 @@
# frozen_string_literal: true
class AddDefaultPermissionsToGroupScopeLinks < Gitlab::Database::Migration[2.2]
milestone '17.7'
def change
add_column :ci_job_token_group_scope_links, :default_permissions, :boolean, default: true, null: false
end
end

View File

@ -0,0 +1,9 @@
# frozen_string_literal: true
class AddDefaultPermissionsToProjectScopeLinks < Gitlab::Database::Migration[2.2]
milestone '17.7'
def change
add_column :ci_job_token_project_scope_links, :default_permissions, :boolean, default: true, null: false
end
end

View File

@ -0,0 +1 @@
f09fcc2a54666828923787854ec7b5e0184a258016b85aea260740f7bb972ab5

View File

@ -0,0 +1 @@
1994f25e32eb8a3fbb3c3357ab075a0db24a730e5bd434afda4dfc8e629ad05e

View File

@ -9006,7 +9006,8 @@ CREATE TABLE ci_job_token_group_scope_links (
target_group_id bigint NOT NULL,
added_by_id bigint,
created_at timestamp with time zone NOT NULL,
job_token_policies jsonb DEFAULT '[]'::jsonb
job_token_policies jsonb DEFAULT '[]'::jsonb,
default_permissions boolean DEFAULT true NOT NULL
);
CREATE SEQUENCE ci_job_token_group_scope_links_id_seq
@ -9025,7 +9026,8 @@ CREATE TABLE ci_job_token_project_scope_links (
added_by_id bigint,
created_at timestamp with time zone NOT NULL,
direction smallint DEFAULT 0 NOT NULL,
job_token_policies jsonb DEFAULT '[]'::jsonb
job_token_policies jsonb DEFAULT '[]'::jsonb,
default_permissions boolean DEFAULT true NOT NULL
);
CREATE SEQUENCE ci_job_token_project_scope_links_id_seq

View File

@ -327,6 +327,7 @@ enqueued
enqueues
enricher
enrichers
Entra
enum
enums
Enviroments

View File

@ -10056,6 +10056,30 @@ Input type: `UpdateComplianceFrameworkInput`
| <a id="mutationupdatecomplianceframeworkcomplianceframework"></a>`complianceFramework` | [`ComplianceFramework`](#complianceframework) | Compliance framework after mutation. |
| <a id="mutationupdatecomplianceframeworkerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
### `Mutation.updateComplianceRequirement`
DETAILS:
**Introduced** in GitLab 17.7.
**Status**: Experiment.
Input type: `UpdateComplianceRequirementInput`
#### Arguments
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationupdatecompliancerequirementclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| <a id="mutationupdatecompliancerequirementid"></a>`id` | [`ComplianceManagementComplianceFrameworkComplianceRequirementID!`](#compliancemanagementcomplianceframeworkcompliancerequirementid) | Global ID of the compliance requirement to update. |
| <a id="mutationupdatecompliancerequirementparams"></a>`params` | [`ComplianceRequirementInput!`](#compliancerequirementinput) | Parameters to update the compliance requirement with. |
#### Fields
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationupdatecompliancerequirementclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| <a id="mutationupdatecompliancerequirementerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
| <a id="mutationupdatecompliancerequirementrequirement"></a>`requirement` | [`ComplianceRequirement`](#compliancerequirement) | Compliance requirement after updation. |
### `Mutation.updateContainerExpirationPolicy`
Input type: `UpdateContainerExpirationPolicyInput`
@ -39281,6 +39305,7 @@ Issue type.
| <a id="issuetyperequirement"></a>`REQUIREMENT` | Requirement issue type. |
| <a id="issuetypetask"></a>`TASK` | Task issue type. |
| <a id="issuetypetest_case"></a>`TEST_CASE` | Test Case issue type. |
| <a id="issuetypeticket"></a>`TICKET` | Ticket issue type. |
### `IterationSearchableField`

View File

@ -228,7 +228,7 @@ rule { custom_role_enables_read_dependency }.enable(:read_dependency)
```ruby
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, :in_group) }
let_it_be(:role) { create(:member_role, :guest, namespace: project.group, custom_permission: true) }
let_it_be(:role) { create(:member_role, :guest, :custom_permission, namespace: project.group) }
let_it_be(:membership) { create(:project_member, :guest, member_role: role, user: user, project: project) }
before do
@ -254,7 +254,7 @@ rule { custom_role_enables_read_dependency }.enable(:read_dependency)
```ruby
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, :in_group) }
let_it_be(:role) { create(:member_role, :guest, namespace: project.group, custom_permission: true) }
let_it_be(:role) { create(:member_role, :guest, :custom_permission, namespace: project.group) }
let_it_be(:membership) { create(:project_member, :guest, member_role: role, user: user, project: project) }
before do

View File

@ -196,6 +196,7 @@ Audit event types belong to the following product categories.
| [`smartcard_authentication_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/8120) | Triggered when a user authenticates with smartcard | **{check-circle}** Yes | GitLab [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/726) | User |
| [`update_approval_rules`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89939) | Event triggered on updating a merge approval rule | **{check-circle}** Yes | GitLab [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363092) | Project |
| [`update_compliance_framework`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74292) | Triggered when a compliance framework is updated | **{check-circle}** Yes | GitLab [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/340649) | Group |
| [`update_compliance_requirement`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169485) | Triggered when a compliance framework requirement is updated. | **{check-circle}** Yes | GitLab [17.7](https://gitlab.com/gitlab-org/gitlab/-/issues/470695) | Group |
| [`update_status_check`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Event triggered when an external status check is updated | **{check-circle}** Yes | GitLab [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | Project |
### Container registry

View File

@ -71,11 +71,7 @@ To skip the push check for [service accounts](../../profile/service_accounts.md)
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/454372) in GitLab 17.0 [with a flag](../../../administration/feature_flags.md) named `beyond_identity_exclusions`. Enabled by default.
> - Ability to exclude groups [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/454372) in GitLab 17.1.
FLAG:
The availability of this feature is controlled by a feature flag.
For more information, see the history.
This feature is available for testing, but not ready for production use.
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/457893) in GitLab 17.7. Feature flag `beyond_identity_exclusions` removed.
Prerequisites:

View File

@ -418,8 +418,8 @@ Prerequisites:
To configure a custom Service Desk email address with Google Workspace:
1. [Configure a Google Workspace account](#configure-a-google-workspace-account).
1. [Configure email forwarding](#configure-email-forwarding).
1. [Configure custom email address](#configure-custom-email-address).
1. [Configure email forwarding in Google Workspace](#configure-email-forwarding-in-google-workspace).
1. [Configure custom email address using a Google Workspace account](#configure-custom-email-address-using-a-google-workspace-account).
#### Configure a Google Workspace account
@ -434,9 +434,9 @@ In Google Workspace:
SMTP password.
Store it in a secure place and remove spaces between the characters.
Next, you must [configure email forwarding](#configure-email-forwarding).
Next, you must [configure email forwarding in Google Workspace](#configure-email-forwarding-in-google-workspace).
#### Configure email forwarding
#### Configure email forwarding in Google Workspace
The following steps require moving between GitLab and Google Workspace.
@ -470,9 +470,10 @@ In Google Workspace:
from the dropdown list.
1. At the bottom of the page, select **Save Changes**.
Next, [configure a custom email address](#configure-a-custom-email-address) to use with Service Desk.
Next, [configure custom email address using a Google Workspace account](#configure-custom-email-address-using-a-google-workspace-account)
to use with Service Desk.
#### Configure custom email address
#### Configure custom email address using a Google Workspace account
In GitLab:
@ -490,16 +491,144 @@ In GitLab:
1. After the [verification process](#verification) you should be able to
[enable the custom email address](#enable-or-disable-the-custom-email-address).
### Use Microsoft 365 (Exchange online) with your own domain
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/496396) in GitLab 17.5.
Set up a custom email address for Service Desk when using Microsoft 365 (Exchange) with your own domain.
Prerequisites:
- You already have a Microsoft 365 account.
- You can create new accounts for your tenant.
To configure a custom Service Desk email address with Microsoft 365:
1. [Configure a Microsoft 365 account](#configure-a-microsoft-365-account).
1. [Configure email forwarding in Microsoft 365](#configure-email-forwarding-in-microsoft-365).
1. [Configure custom email address using a Microsoft 365 account](#configure-custom-email-address-using-a-microsoft-365-account).
#### Configure a Microsoft 365 account
First, you must create and configure a Microsoft 365 account.
In this guide, use a licensed user for the custom email mailbox.
You can also experiment with other configuration options.
In [Microsoft 365 admin center](https://admin.microsoft.com/Adminportal/Home#/homepage):
1. Create a new account for the custom email address you'd like to use (for example, `support@example.com`).
1. Expand the **Users** section and select **Active users** from the menu.
1. Select **Add a user** and follow the instructions on the screen.
1. In Microsoft Entra (previously named Active Directory), enable two-factor authentication for the account.
1. [Allow users to create app passwords](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-mfa-app-passwords).
1. Enable **Authenticated SMTP** for the account.
1. Select the account from the list.
1. In the drawer select **Mail**.
1. Below **Email apps** select **Manage email apps**.
1. Check **Authenticated SMTP** and select **Save changes**.
1. Depending on your overall Exchange online configuration you might need to configure the following:
1. Use Azure Cloud Shell to allow SMTP client authentication:
```powershell
Set-TransportConfig -SmtpClientAuthenticationDisabled $false
```
1. Use Azure Cloud Shell to allow
[legacy TLS clients using SMTP AUTH](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/opt-in-exchange-online-endpoint-for-legacy-tls-using-smtp-auth):
```powershell
Set-TransportConfig -AllowLegacyTLSClients $true
```
1. If you want to forward to an external recipient, please see this guide on how to enable
[external email forwarding](https://learn.microsoft.com/en-gb/defender-office-365/outbound-spam-policies-external-email-forwarding).
You might also want to [create an outbound anti-spam policy](https://security.microsoft.com/antispam)
to allow forwarding to external recipients only for users who need it.
1. Sign in to that account and activate two-factor authentication.
<!-- vale gitlab_base.SubstitutionWarning = NO -->
1. From the menu in the upper-right corner, select **View account** and [browse to **Security Info**](https://mysignins.microsoft.com/security-info).
<!-- vale gitlab_base.SubstitutionWarning = YES -->
1. Select **Add sign-in method** and select a method that works for you (authenticator app, phone or email).
1. Follow the instructions on the screen.
<!-- vale gitlab_base.SubstitutionWarning = NO -->
1. On the [**Security Info**](https://mysignins.microsoft.com/security-info) page,
create an app password that you can use as your SMTP password.
<!-- vale gitlab_base.SubstitutionWarning = YES -->
1. Select **Add sign-in method** and select **App password** from the dropdown list.
1. Set a descriptive name for the app password, such as `GitLab SD`.
1. Select **Next**.
1. Copy the displayed password and store it in a secure place.
1. Optional. Ensure you can send emails using SMTP using the [`swaks` command line tool](https://www.jetmore.org/john/code/swaks/).
1. Run the following command with your credentials and use the app password as the `auth-password`:
```shell
swaks --to your-email@example.com \
--from custom-email@example.com \
--auth-user custom-email@example.com \
--server smtp.office365.com:587 \
-tls-optional \
--auth-password <your_app_password>
```
Next, you must [configure email forwarding in Microsoft 365](#configure-email-forwarding-in-microsoft-365).
#### Configure email forwarding in Microsoft 365
The following steps require moving between GitLab and Microsoft 365 admin center.
In GitLab:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**
1. Expand **Service Desk**.
1. Note the email address below **Service Desk email address to forward emails to** without the
sub-address part.
Emails aren't forwarded if the recipient address contains a sub-address (for example reply
addresses generated by GitLab) and the forwarding email address contains a sub-address
(the **Service Desk email address to forward emails to**).
For example, `incoming+group-project-12346426-issue-@incoming.gitlab.com` becomes `incoming@incoming.gitlab.com`.
That's okay because Exchange online preserves the custom email address in the `To` header
after forwarding and GitLab can assign the correct project based on the custom email address.
In [Microsoft 365 admin center](https://admin.microsoft.com/Adminportal/Home#/homepage):
<!-- vale gitlab_base.SubstitutionWarning = NO -->
1. Expand the **Users** section and select **Active users** from the menu.
<!-- vale gitlab_base.SubstitutionWarning = YES -->
1. Select the account you'd like to use for the custom email from the list.
1. In the drawer select **Mail**.
1. Below **Email forwarding** select **Manage email forwarding**.
1. Check **Forward all emails sent to this mailbox**.
1. Enter the Service Desk address from the custom email form in **Forwarding email address** without the sub-address part.
1. Select **Save changes**.
Next, [configure a custom email address using a Microsoft 365 account](#configure-custom-email-address-using-a-microsoft-365-account)
to use with Service Desk.
#### Configure custom email address using a Microsoft 365 account
In GitLab:
1. On the left sidebar, select **Search or go to** and find your project.
1. Select **Settings > General**
1. Expand **Service Desk** and find the custom email settings.
1. Complete the fields:
- **Custom email address**: Your custom email address.
- **SMTP host**: `smtp.office365.com`.
- **SMTP port**: `587`.
- **SMTP username**: Prefilled with the custom email address.
- **SMTP password**: The app password you previously created for the custom email account.
- **SMTP authentication method**: Login
1. Select **Save and test connection**
1. After the [verification process](#verification) you should be able to
[enable the custom email address](#enable-or-disable-the-custom-email-address).
### Known issues
- Some service providers don't allow SMTP connections any more.
Often you can enable them on a per user basis and create an app password.
- Microsoft Exchange doesn't preserve the `From` header, so you cannot use a custom email from the same tenant.
As a workaround:
- On GitLab SaaS, use a transport rule to forward emails from the custom email address to the Service Desk email
from GitLab SaaS. Forwarding to an email address outside the current tenant preserves the original `From` header.
- On GitLab self-managed, use a subdomain or a different domain from another service provider for the
custom email address or the GitLab instance `incoming_email` or `service_desk_email`.
## Use an additional Service Desk alias email

View File

@ -39,6 +39,7 @@ module API
mutually_exclusive :name, :search, message: 'cannot be used together'
end
route_setting :authentication, job_token_allowed: true
route_setting :authorization, job_token_policy: :read_environments
get ':id/environments' do
authorize! :read_environment, user_project

View File

@ -169,6 +169,8 @@ module API
return handle_job_token_failure!(project)
end
return forbidden!(job_token_policy_unauthorized_message(project)) unless job_token_policy_authorized?(project)
if project_moved?(id, project)
return not_allowed!('Non GET methods are not allowed for moved projects') unless request.get?
@ -995,6 +997,28 @@ module API
not_found!('Project')
end
end
def job_token_policy_authorized?(project)
return true unless current_user&.from_ci_job_token?
return true unless Feature.enabled?(:enforce_job_token_policies, current_user)
current_user.ci_job_token_scope.policy_allowed?(project, job_token_policy)
end
def job_token_policy_unauthorized_message(project)
policy = job_token_policy
if policy.present?
format("The %{permission} permission on %{project} is not authorized for this CI/CD job token.", permission: policy, project: project.path)
else
'This action is not authorized for CI/CD job tokens.'
end
end
def job_token_policy
return unless respond_to?(:route_setting)
route_setting(:authorization).try(:fetch, :job_token_policy, nil)
end
end
end

View File

@ -9,7 +9,7 @@ module Gitlab
include Gitlab::Utils::StrongMemoize
include BlobActiveModel
attr_reader :project, :content_match, :blob_path, :highlight_line, :matched_lines_count, :group_level_blob, :group
attr_reader :project, :content_match, :blob_path, :highlight_line, :group_level_blob, :group
PATH_REGEXP = /\A(?<ref>[^:]*):(?<path>[^\x00]*)\x00/
CONTENT_REGEXP = /^(?<ref>[^:]*):(?<path>[^\x00]*)\x00(?<startline>\d+)\x00/
@ -25,7 +25,6 @@ module Gitlab
@binary_path = opts.fetch(:path, nil)
@binary_basename = opts.fetch(:basename, nil)
@ref = opts.fetch(:ref, nil)
@matched_lines_count = opts.fetch(:matched_lines_count, nil)
@startline = opts.fetch(:startline, nil)
@highlight_line = opts.fetch(:highlight_line, nil)
@binary_data = opts.fetch(:data, nil)

View File

@ -3899,6 +3899,9 @@ msgstr ""
msgid "AdminSelfHostedModels|An error occurred while loading self-hosted models. Please try again."
msgstr ""
msgid "AdminSelfHostedModels|An error occurred while loading the self-hosted model. Please try again."
msgstr ""
msgid "AdminSelfHostedModels|An error occurred while updating the sefl-hosted model, please try again."
msgstr ""
@ -23046,6 +23049,9 @@ msgstr ""
msgid "Failed to update branch!"
msgstr ""
msgid "Failed to update compliance requirement"
msgstr ""
msgid "Failed to update environment!"
msgstr ""
@ -36538,6 +36544,9 @@ msgstr ""
msgid "Not permitted to reset user feed token"
msgstr ""
msgid "Not permitted to update requirement"
msgstr ""
msgid "Not ready yet. Try again later."
msgstr ""
@ -64339,6 +64348,9 @@ msgstr ""
msgid "Your browser doesn't support WebAuthn. Please use a supported browser, e.g. Chrome (67+) or Firefox (60+)."
msgstr ""
msgid "Your changes can be committed to %{branchName} because a merge request is open."
msgstr ""
msgid "Your changes can be committed to %{branch_name} because a merge request is open."
msgstr ""

View File

@ -36,7 +36,6 @@ ee/spec/frontend/boards/components/epic_board_content_sidebar_spec.js
ee/spec/frontend/boards/components/epics_swimlanes_spec.js
ee/spec/frontend/ci/pipeline_details/header/pipeline_header_spec.js
ee/spec/frontend/ci/runner/components/runner_details_spec.js
ee/spec/frontend/ci/runner/components/runner_header_spec.js
ee/spec/frontend/ci/runner/components/stat/runner_upgrade_status_stats_spec.js
ee/spec/frontend/ci/secrets/components/secrets_app_spec.js
ee/spec/frontend/ci/secrets/components/secrets_breadcrumbs_spec.js
@ -91,7 +90,6 @@ ee/spec/frontend/projects/settings/components/shared_runners_toggle_spec.js
ee/spec/frontend/protected_environments/protected_environment_edit_spec.js
ee/spec/frontend/related_items_tree/components/related_items_tree_body_spec.js
ee/spec/frontend/related_items_tree/components/tree_root_spec.js
ee/spec/frontend/repository/components/blob_button_group_spec.js
ee/spec/frontend/requirements/components/requirement_item_spec.js
ee/spec/frontend/requirements/components/requirements_root_spec.js
ee/spec/frontend/roadmap/components/roadmap_shell_spec.js

View File

@ -1,9 +1,60 @@
import fs from 'fs/promises';
import yaml from 'js-yaml';
import { InternalEvents } from '~/tracking';
async function loadYamlFile(path) {
try {
const fileData = await fs.readFile(path, 'utf8');
return yaml.safeLoad(fileData);
} catch (err) {
if (err.code === 'ENOENT') {
return null;
}
throw new Error(`Error reading event definition file at ${path}: ${err.message}`);
}
}
export async function readEventDefinition(eventName) {
const isEE = expect.getState().testPath.includes('/ee/');
const eePath = `./ee/config/events/${eventName}.yml`;
const cePath = `./config/events/${eventName}.yml`;
let eventDefinition;
if (isEE) {
eventDefinition = (await loadYamlFile(eePath)) || (await loadYamlFile(cePath));
} else {
eventDefinition = await loadYamlFile(cePath);
}
if (!eventDefinition) {
throw new Error(`Event definition file not found for ${eventName}`);
}
return eventDefinition;
}
export function useMockInternalEventsTracking() {
let originalSnowplow;
let trackEventSpy;
let disposables = [];
let eventDefinition;
const validateEvent = async (eventName, properties) => {
eventDefinition = await readEventDefinition(eventName);
if (eventDefinition.action !== eventName) {
throw new Error(`Event "${eventName}" is not defined in event definitions.`);
}
const definedProperties = eventDefinition.additional_properties || {};
Object.keys(properties).forEach((prop) => {
if (!definedProperties[prop]) {
throw new Error(
`Property "${prop}" is not defined for event "${eventName} in event definition file".`,
);
}
});
};
const bindInternalEventDocument = (parent = document) => {
const dispose = InternalEvents.bindInternalEventDocument(parent);
@ -21,15 +72,18 @@ export function useMockInternalEventsTracking() {
};
beforeEach(() => {
trackEventSpy = jest.spyOn(InternalEvents, 'trackEvent');
trackEventSpy = jest
.spyOn(InternalEvents, 'trackEvent')
.mockImplementation(async (eventName, properties = {}) => {
await validateEvent(eventName, properties);
});
originalSnowplow = window.snowplow;
window.snowplow = () => {};
});
afterEach(() => {
disposables.forEach((dispose) => {
if (dispose) dispose();
});
afterEach(async () => {
await Promise.all(disposables.map((dispose) => dispose && dispose()));
disposables = [];
window.snowplow = originalSnowplow;
});

View File

@ -17,7 +17,7 @@ import CommitWidget from '~/diffs/components/commit_widget.vue';
import CompareVersions from '~/diffs/components/compare_versions.vue';
import DiffFile from '~/diffs/components/diff_file.vue';
import NoChanges from '~/diffs/components/no_changes.vue';
import FindingsDrawer from '~/diffs/components/shared/findings_drawer.vue';
import FindingsDrawer from 'ee_component/diffs/components/shared/findings_drawer.vue';
import DiffsFileTree from '~/diffs/components/diffs_file_tree.vue';
import DiffAppControls from '~/diffs/components/diff_app_controls.vue';

View File

@ -55,9 +55,9 @@ describe('Diff File Row component', () => {
it.each`
fileType | isViewed | expected
${'blob'} | ${false} | ${'gl-font-bold'}
${'blob'} | ${true} | ${''}
${'tree'} | ${false} | ${''}
${'tree'} | ${true} | ${''}
${'blob'} | ${true} | ${'gl-text-subtle'}
${'tree'} | ${false} | ${'gl-text-subtle'}
${'tree'} | ${true} | ${'gl-text-subtle'}
`(
'with (fileType="$fileType", isViewed=$isViewed), sets fileClasses="$expected"',
({ fileType, isViewed, expected }) => {

View File

@ -1,129 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Findings Drawer Details General Rendering matches the snapshot with detected badge 1`] = `
<ul
class="!gl-pb-0 gl-border-b-initial gl-list-none gl-mb-0"
>
<drawer-item-stub
data-testid="findings-drawer-title"
description="Name"
value="mockedtitle"
/>
<drawer-item-stub
description="Status"
value=""
>
<gl-badge-stub
class="text-capitalize"
iconsize="md"
tag="span"
target="_self"
variant="warning"
>
detected
</gl-badge-stub>
</drawer-item-stub>
<drawer-item-stub
description="Description"
value="fakedesc"
/>
<drawer-item-stub
description="Project"
value=""
>
<gl-link-stub
href="/testpath"
>
testname
</gl-link-stub>
</drawer-item-stub>
<drawer-item-stub
description="File"
value=""
/>
<drawer-item-stub
description="Identifiers"
value=""
>
<span>
<gl-link-stub
href="https://semgrep.dev/r/gitlab.eslint.detect-disable-mustache-escape"
>
eslint.detect-disable-mustache-escape
</gl-link-stub>
</span>
</drawer-item-stub>
<drawer-item-stub
description="Tool"
value="SAST"
/>
<drawer-item-stub
description="Engine"
value="testengine name"
/>
</ul>
`;
exports[`Findings Drawer Details General Rendering matches the snapshot with dismissed badge 1`] = `
<ul
class="!gl-pb-0 gl-border-b-initial gl-list-none gl-mb-0"
>
<drawer-item-stub
data-testid="findings-drawer-title"
description="Name"
value="mockedtitle"
/>
<drawer-item-stub
description="Status"
value=""
>
<gl-badge-stub
class="text-capitalize"
iconsize="md"
tag="span"
target="_self"
variant="warning"
>
detected
</gl-badge-stub>
</drawer-item-stub>
<drawer-item-stub
description="Description"
value="fakedesc"
/>
<drawer-item-stub
description="Project"
value=""
>
<gl-link-stub
href="/testpath"
>
testname
</gl-link-stub>
</drawer-item-stub>
<drawer-item-stub
description="File"
value=""
/>
<drawer-item-stub
description="Identifiers"
value=""
>
<span>
<gl-link-stub
href="https://semgrep.dev/r/gitlab.eslint.detect-disable-mustache-escape"
>
eslint.detect-disable-mustache-escape
</gl-link-stub>
</span>
</drawer-item-stub>
<drawer-item-stub
description="Tool"
value="SAST"
/>
<drawer-item-stub
description="Engine"
value="testengine name"
/>
</ul>
`;

View File

@ -1,449 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`FindingsDrawer General Rendering matches the snapshot with detected badge 1`] = `
<transition-stub
class="findings-drawer"
name="gl-drawer"
>
<aside
class="gl-drawer gl-drawer-default"
style="top: 0px; z-index: 252;"
>
<div
class="gl-drawer-header"
>
<div
class="gl-drawer-title"
>
<h2
class="drawer-heading gl-mb-0 gl-mt-0 gl-text-base gl-w-28"
>
<svg
aria-hidden="true"
class="!gl-align-baseline gl-fill-current gl-icon gl-text-orange-300 inline-findings-severity-icon s12"
data-testid="severity-low-icon"
role="img"
>
<use
href="file-mock#severity-low"
/>
</svg>
<span
class="drawer-heading-severity"
>
low
</span>
SAST Finding
</h2>
<button
aria-label="Close drawer"
class="btn btn-default btn-default-tertiary btn-icon btn-sm gl-button gl-drawer-close-button"
type="button"
>
<svg
aria-hidden="true"
class="gl-button-icon gl-fill-current gl-icon s16"
data-testid="close-icon"
role="img"
>
<use
href="file-mock#close"
/>
</svg>
</button>
</div>
</div>
<div
class="gl-drawer-body gl-drawer-body-scrim"
>
<ul
class="!gl-pb-0 gl-border-b-initial gl-list-none gl-mb-0"
>
<li
class="gl-mb-4"
data-testid="findings-drawer-title"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Name
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
mockedtitle
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Status
</span>
<span
class="badge badge-pill badge-warning gl-badge text-capitalize"
>
<span
class="gl-badge-content"
>
detected
</span>
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Description
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
fakedesc
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Project
</span>
<a
class="gl-link"
href="/testpath"
>
testname
</a>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
File
</span>
<span
data-testid="findings-drawer-item-value-prop"
/>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Identifiers
</span>
<span>
<a
class="gl-link"
href="https://semgrep.dev/r/gitlab.eslint.detect-disable-mustache-escape"
>
eslint.detect-disable-mustache-escape
</a>
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Tool
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
SAST
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Engine
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
testengine name
</span>
</p>
</li>
</ul>
</div>
</aside>
</transition-stub>
`;
exports[`FindingsDrawer General Rendering matches the snapshot with dismissed badge 1`] = `
<transition-stub
class="findings-drawer"
name="gl-drawer"
>
<aside
class="gl-drawer gl-drawer-default"
style="top: 0px; z-index: 252;"
>
<div
class="gl-drawer-header"
>
<div
class="gl-drawer-title"
>
<h2
class="drawer-heading gl-mb-0 gl-mt-0 gl-text-base gl-w-28"
>
<svg
aria-hidden="true"
class="!gl-align-baseline gl-fill-current gl-icon gl-text-orange-300 inline-findings-severity-icon s12"
data-testid="severity-low-icon"
role="img"
>
<use
href="file-mock#severity-low"
/>
</svg>
<span
class="drawer-heading-severity"
>
low
</span>
SAST Finding
</h2>
<button
aria-label="Close drawer"
class="btn btn-default btn-default-tertiary btn-icon btn-sm gl-button gl-drawer-close-button"
type="button"
>
<svg
aria-hidden="true"
class="gl-button-icon gl-fill-current gl-icon s16"
data-testid="close-icon"
role="img"
>
<use
href="file-mock#close"
/>
</svg>
</button>
</div>
</div>
<div
class="gl-drawer-body gl-drawer-body-scrim"
>
<ul
class="!gl-pb-0 gl-border-b-initial gl-list-none gl-mb-0"
>
<li
class="gl-mb-4"
data-testid="findings-drawer-title"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Name
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
mockedtitle
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Status
</span>
<span
class="badge badge-pill badge-warning gl-badge text-capitalize"
>
<span
class="gl-badge-content"
>
detected
</span>
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Description
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
fakedesc
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Project
</span>
<a
class="gl-link"
href="/testpath"
>
testname
</a>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
File
</span>
<span
data-testid="findings-drawer-item-value-prop"
/>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Identifiers
</span>
<span>
<a
class="gl-link"
href="https://semgrep.dev/r/gitlab.eslint.detect-disable-mustache-escape"
>
eslint.detect-disable-mustache-escape
</a>
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Tool
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
SAST
</span>
</p>
</li>
<li
class="gl-mb-4"
>
<p
class="gl-leading-20"
>
<span
class="gl-block gl-font-bold gl-mb-1"
data-testid="findings-drawer-item-description"
>
Engine
</span>
<span
data-testid="findings-drawer-item-value-prop"
>
testengine name
</span>
</p>
</li>
</ul>
</div>
</aside>
</transition-stub>
`;

Some files were not shown because too many files have changed in this diff Show More