Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
608c0cfc68
commit
94ea6c59ff
|
|
@ -93,7 +93,7 @@ docs-lint links:
|
|||
stage: lint
|
||||
needs: []
|
||||
script:
|
||||
- lychee --offline --include-fragments doc
|
||||
- lychee --offline --no-progress --include-fragments doc
|
||||
|
||||
ui-docs-links lint:
|
||||
extends:
|
||||
|
|
|
|||
|
|
@ -16,4 +16,4 @@ variables:
|
|||
QA_OMNIBUS_MR_TESTS: "only-smoke"
|
||||
# Retry failed specs in separate process
|
||||
QA_RETRY_FAILED_SPECS: "true"
|
||||
GITLAB_HELM_CHART_REF: "4ca6dd7bf66eec66f2903721e109a0716558e940" # helm chart ref used by test-on-cng pipeline
|
||||
GITLAB_HELM_CHART_REF: "ec4eb83b98572fd2721516df00799858512b0538" # helm chart ref used by test-on-cng pipeline
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ Gitlab/AvoidGitlabInstanceChecks:
|
|||
- 'ee/app/controllers/ee/admin/users_controller.rb'
|
||||
- 'ee/app/controllers/ee/application_controller.rb'
|
||||
- 'ee/app/controllers/ee/dashboard/projects_controller.rb'
|
||||
- 'ee/app/controllers/ee/groups/group_members_controller.rb'
|
||||
- 'ee/app/controllers/ee/search_controller.rb'
|
||||
- 'ee/app/controllers/sitemap_controller.rb'
|
||||
- 'ee/app/finders/groups_with_templates_finder.rb'
|
||||
|
|
@ -48,14 +47,12 @@ Gitlab/AvoidGitlabInstanceChecks:
|
|||
- 'ee/app/helpers/ee/namespaces_helper.rb'
|
||||
- 'ee/app/helpers/ee/projects_helper.rb'
|
||||
- 'ee/app/helpers/ee/search_helper.rb'
|
||||
- 'ee/app/helpers/ee/sidebars_helper.rb'
|
||||
- 'ee/app/helpers/ee/subscribable_banner_helper.rb'
|
||||
- 'ee/app/helpers/ee/users/callouts_helper.rb'
|
||||
- 'ee/app/helpers/ee/users_helper.rb'
|
||||
- 'ee/app/helpers/gitlab_subscriptions/upcoming_reconciliation_helper.rb'
|
||||
- 'ee/app/helpers/license_helper.rb'
|
||||
- 'ee/app/helpers/license_monitoring_helper.rb'
|
||||
- 'ee/app/helpers/users/identity_verification_helper.rb'
|
||||
- 'ee/app/mailers/emails/in_product_marketing.rb'
|
||||
- 'ee/app/models/ci/minutes/additional_pack.rb'
|
||||
- 'ee/app/models/ee/application_setting.rb'
|
||||
|
|
|
|||
|
|
@ -2279,9 +2279,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/finders/member_roles/roles_finder.rb'
|
||||
- 'ee/app/finders/okrs/checkin_reminder_key_result_finder.rb'
|
||||
- 'ee/app/finders/productivity_analytics_finder.rb'
|
||||
- 'ee/app/finders/sbom/dependencies_finder.rb'
|
||||
- 'ee/app/finders/sbom/dependency_locations_finder.rb'
|
||||
- 'ee/app/finders/sbom/possibly_affected_occurrences_finder.rb'
|
||||
- 'ee/app/finders/scim_finder.rb'
|
||||
- 'ee/app/graphql/ee/gitlab_schema.rb'
|
||||
- 'ee/app/graphql/ee/graphql_triggers.rb'
|
||||
|
|
@ -2483,7 +2480,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/graphql/resolvers/product_analytics/visualizations_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/requirements_management/test_reports_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/sbom/dependencies_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/security_orchestration/approval_policy_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/security_orchestration/pipeline_execution_policy_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/security_orchestration/policy_violations_resolver.rb'
|
||||
|
|
@ -2664,11 +2660,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/graphql/types/requirements_management/requirement_type.rb'
|
||||
- 'ee/app/graphql/types/requirements_management/test_report_state_enum.rb'
|
||||
- 'ee/app/graphql/types/requirements_management/test_report_type.rb'
|
||||
- 'ee/app/graphql/types/sbom/dependency_sort_enum.rb'
|
||||
- 'ee/app/graphql/types/sbom/dependency_type.rb'
|
||||
- 'ee/app/graphql/types/sbom/license_type.rb'
|
||||
- 'ee/app/graphql/types/sbom/location_type.rb'
|
||||
- 'ee/app/graphql/types/sbom/package_manager_enum.rb'
|
||||
- 'ee/app/graphql/types/scan_status_enum.rb'
|
||||
- 'ee/app/graphql/types/scan_type.rb'
|
||||
- 'ee/app/graphql/types/scanned_resource_type.rb'
|
||||
|
|
@ -3103,13 +3094,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/models/resource_weight_event.rb'
|
||||
- 'ee/app/models/saml_group_link.rb'
|
||||
- 'ee/app/models/saml_provider.rb'
|
||||
- 'ee/app/models/sbom.rb'
|
||||
- 'ee/app/models/sbom/component.rb'
|
||||
- 'ee/app/models/sbom/component_version.rb'
|
||||
- 'ee/app/models/sbom/occurrence.rb'
|
||||
- 'ee/app/models/sbom/occurrences_vulnerability.rb'
|
||||
- 'ee/app/models/sbom/source.rb'
|
||||
- 'ee/app/models/sbom/source_package.rb'
|
||||
- 'ee/app/models/sca.rb'
|
||||
- 'ee/app/models/sca/license_compliance.rb'
|
||||
- 'ee/app/models/sca/license_policy.rb'
|
||||
|
|
@ -3183,7 +3167,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/policies/resource_iteration_event_policy.rb'
|
||||
- 'ee/app/policies/resource_weight_event_policy.rb'
|
||||
- 'ee/app/policies/saml_provider_policy.rb'
|
||||
- 'ee/app/policies/sbom/occurrence_policy.rb'
|
||||
- 'ee/app/policies/vulnerability_policy.rb'
|
||||
- 'ee/app/services/admin/email_service.rb'
|
||||
- 'ee/app/services/alert_management/extract_alert_payload_fields_service.rb'
|
||||
|
|
@ -3593,24 +3576,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/services/requirements_management/process_test_reports_service.rb'
|
||||
- 'ee/app/services/resource_events/change_iteration_service.rb'
|
||||
- 'ee/app/services/resource_events/change_weight_service.rb'
|
||||
- 'ee/app/services/sbom/export_serializers/json_service.rb'
|
||||
- 'ee/app/services/sbom/ingestion/delete_not_present_occurrences_service.rb'
|
||||
- 'ee/app/services/sbom/ingestion/ingest_report_service.rb'
|
||||
- 'ee/app/services/sbom/ingestion/ingest_report_slice_service.rb'
|
||||
- 'ee/app/services/sbom/ingestion/ingest_reports_service.rb'
|
||||
- 'ee/app/services/sbom/ingestion/occurrence_map.rb'
|
||||
- 'ee/app/services/sbom/ingestion/occurrence_map_collection.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/base.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/ingest_component_versions.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/ingest_components.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/ingest_occurrences.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/ingest_occurrences_vulnerabilities.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/ingest_source_packages.rb'
|
||||
- 'ee/app/services/sbom/ingestion/tasks/ingest_sources.rb'
|
||||
- 'ee/app/services/sbom/ingestion/vulnerabilities.rb'
|
||||
- 'ee/app/services/sbom/merge_reports_service.rb'
|
||||
- 'ee/app/services/sbom/sync_archived_status_service.rb'
|
||||
- 'ee/app/services/sbom/sync_traversal_ids_service.rb'
|
||||
- 'ee/app/services/sitemap/create_service.rb'
|
||||
- 'ee/app/services/software_license_policies/bulk_create_scan_result_policy_service.rb'
|
||||
- 'ee/app/services/software_license_policies/create_service.rb'
|
||||
|
|
@ -3800,10 +3765,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/app/workers/repository_update_mirror_worker.rb'
|
||||
- 'ee/app/workers/requirements_management/import_requirements_csv_worker.rb'
|
||||
- 'ee/app/workers/requirements_management/process_requirements_reports_worker.rb'
|
||||
- 'ee/app/workers/sbom/ingest_reports_worker.rb'
|
||||
- 'ee/app/workers/sbom/process_transfer_events_worker.rb'
|
||||
- 'ee/app/workers/sbom/sync_archived_status_worker.rb'
|
||||
- 'ee/app/workers/sbom/sync_project_traversal_ids_worker.rb'
|
||||
- 'ee/app/workers/scan_security_report_secrets_worker.rb'
|
||||
- 'ee/app/workers/set_user_status_based_on_user_cap_setting_worker.rb'
|
||||
- 'ee/app/workers/store_security_reports_worker.rb'
|
||||
|
|
@ -3985,7 +3946,6 @@ Gitlab/BoundedContexts:
|
|||
- 'ee/lib/quality/seeders/dependencies.rb'
|
||||
- 'ee/lib/quality/seeders/insights/issues.rb'
|
||||
- 'ee/lib/quality/seeders/vulnerabilities.rb'
|
||||
- 'ee/lib/sbom/occurrence_uuid.rb'
|
||||
- 'ee/lib/sidebars/admin/menus/ai_powered_features_menu.rb'
|
||||
- 'ee/lib/sidebars/admin/menus/code_suggestions_menu.rb'
|
||||
- 'ee/lib/sidebars/admin/menus/credentials_menu.rb'
|
||||
|
|
@ -4265,14 +4225,6 @@ Gitlab/BoundedContexts:
|
|||
- 'lib/safe_zip/entry.rb'
|
||||
- 'lib/safe_zip/extract.rb'
|
||||
- 'lib/safe_zip/extract_params.rb'
|
||||
- 'lib/sbom/package_url.rb'
|
||||
- 'lib/sbom/package_url/argument_validator.rb'
|
||||
- 'lib/sbom/package_url/decoder.rb'
|
||||
- 'lib/sbom/package_url/encoder.rb'
|
||||
- 'lib/sbom/package_url/normalizer.rb'
|
||||
- 'lib/sbom/package_url/string_utils.rb'
|
||||
- 'lib/sbom/purl_type/converter.rb'
|
||||
- 'lib/sbom/source_helper.rb'
|
||||
- 'lib/serializers/unsafe_json.rb'
|
||||
- 'lib/sidebars/admin/base_menu.rb'
|
||||
- 'lib/sidebars/admin/menus/abuse_reports_menu.rb'
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ Gitlab/FeatureFlagWithoutActor:
|
|||
- 'app/models/ci/secure_file.rb'
|
||||
- 'app/models/clusters/instance.rb'
|
||||
- 'app/models/concerns/counter_attribute.rb'
|
||||
- 'app/models/concerns/protected_ref_access.rb'
|
||||
- 'app/models/concerns/reset_on_column_errors.rb'
|
||||
- 'app/models/concerns/web_hooks/auto_disabling.rb'
|
||||
- 'app/models/integration.rb'
|
||||
|
|
@ -105,7 +104,6 @@ Gitlab/FeatureFlagWithoutActor:
|
|||
- 'ee/app/controllers/groups/billings_controller.rb'
|
||||
- 'ee/app/controllers/users/base_identity_verification_controller.rb'
|
||||
- 'ee/app/finders/ee/merge_requests_finder.rb'
|
||||
- 'ee/app/graphql/mutations/ai/action.rb'
|
||||
- 'ee/app/graphql/resolvers/ai/code_suggestions_access_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/ai/user_chat_access_resolver.rb'
|
||||
- 'ee/app/graphql/types/epic_type.rb'
|
||||
|
|
@ -126,9 +124,7 @@ Gitlab/FeatureFlagWithoutActor:
|
|||
- 'ee/app/services/ee/users/build_service.rb'
|
||||
- 'ee/app/services/geo/framework_repository_sync_service.rb'
|
||||
- 'ee/app/services/gitlab_subscriptions/fetch_subscription_plans_service.rb'
|
||||
- 'ee/app/services/llm/base_service.rb'
|
||||
- 'ee/app/services/llm/chat_service.rb'
|
||||
- 'ee/app/services/llm/internal/completion_service.rb'
|
||||
- 'ee/app/services/phone_verification/telesign_client/risk_score_service.rb'
|
||||
- 'ee/app/services/phone_verification/users/rate_limit_service.rb'
|
||||
- 'ee/app/services/phone_verification/users/record_user_data_service.rb'
|
||||
|
|
@ -170,7 +166,6 @@ Gitlab/FeatureFlagWithoutActor:
|
|||
- 'ee/lib/gitlab/elastic/indexer.rb'
|
||||
- 'ee/lib/gitlab/geo/replication/blob_downloader.rb'
|
||||
- 'ee/lib/gitlab/geo/replicator.rb'
|
||||
- 'ee/lib/gitlab/llm/feature_authorizer.rb'
|
||||
- 'ee/lib/gitlab/llm/tanuki_bot.rb'
|
||||
- 'ee/lib/gitlab/search/index_curator.rb'
|
||||
- 'ee/lib/gitlab/search/zoekt/client.rb'
|
||||
|
|
|
|||
|
|
@ -12,9 +12,7 @@ Gitlab/ServiceResponse:
|
|||
- 'app/services/ci/build_unschedule_service.rb'
|
||||
- 'app/services/ci/prometheus_metrics/observe_histograms_service.rb'
|
||||
- 'app/services/ci/retry_pipeline_service.rb'
|
||||
- 'app/services/ci/runners/assign_runner_service.rb'
|
||||
- 'app/services/ci/runners/register_runner_service.rb'
|
||||
- 'app/services/ci/runners/set_runner_associated_projects_service.rb'
|
||||
- 'app/services/concerns/alert_management/responses.rb'
|
||||
- 'app/services/concerns/services/return_service_responses.rb'
|
||||
- 'app/services/container_expiration_policies/update_service.rb'
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ GraphQL/ExtractType:
|
|||
- 'app/graphql/types/packages/conan/file_metadatum_type.rb'
|
||||
- 'app/graphql/types/packages/conan/metadatum_type.rb'
|
||||
- 'app/graphql/types/packages/maven/metadatum_type.rb'
|
||||
- 'app/graphql/types/packages/package_base_type.rb'
|
||||
- 'app/graphql/types/packages/package_details_type.rb'
|
||||
- 'app/graphql/types/packages/package_file_type.rb'
|
||||
- 'app/graphql/types/packages/protection/rule_type.rb'
|
||||
|
|
|
|||
|
|
@ -28,4 +28,3 @@ Graphql/ResourceNotAvailableError:
|
|||
- 'ee/app/graphql/mutations/issues/set_escalation_policy.rb'
|
||||
- 'ee/app/graphql/mutations/projects/set_locked.rb'
|
||||
- 'ee/app/graphql/resolvers/incident_management/oncall_shifts_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/product_analytics/visualization_resolver.rb'
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ Layout/ArgumentAlignment:
|
|||
- 'app/graphql/mutations/work_items/update.rb'
|
||||
- 'app/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver.rb'
|
||||
- 'ee/app/services/ee/issues/clone_service.rb'
|
||||
- 'ee/app/services/ee/issues/move_service.rb'
|
||||
- 'ee/app/services/ee/keys/create_service.rb'
|
||||
- 'ee/app/services/ee/projects/create_from_template_service.rb'
|
||||
- 'ee/app/services/ee/projects/gitlab_projects_import_service.rb'
|
||||
|
|
@ -42,22 +41,3 @@ Layout/ArgumentAlignment:
|
|||
- 'spec/lib/gitlab/conan_token_spec.rb'
|
||||
- 'spec/lib/gitlab/config_checker/external_database_checker_spec.rb'
|
||||
- 'spec/lib/gitlab/cross_project_access/class_methods_spec.rb'
|
||||
- 'spec/lib/gitlab/suggestions/commit_message_spec.rb'
|
||||
- 'spec/lib/gitlab/suggestions/file_suggestion_spec.rb'
|
||||
- 'spec/lib/gitlab/suggestions/suggestion_set_spec.rb'
|
||||
- 'spec/lib/gitlab/tracking/destinations/snowplow_spec.rb'
|
||||
- 'spec/lib/gitlab/utils/lazy_attributes_spec.rb'
|
||||
- 'spec/lib/gitlab/workhorse_spec.rb'
|
||||
- 'spec/lib/google_api/cloud_platform/client_spec.rb'
|
||||
- 'spec/lib/peek/views/detailed_view_spec.rb'
|
||||
- 'spec/lib/security/weak_passwords_spec.rb'
|
||||
- 'spec/lib/sidebars/projects/menus/repository_menu_spec.rb'
|
||||
- 'spec/lib/uploaded_file_spec.rb'
|
||||
- 'spec/tasks/cache_rake_spec.rb'
|
||||
- 'spec/tasks/gitlab/cleanup_rake_spec.rb'
|
||||
- 'spec/tasks/gitlab/db/decomposition/rollback/bump_ci_sequences_rake_spec.rb'
|
||||
- 'spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb'
|
||||
- 'spec/tasks/gitlab/sidekiq_rake_spec.rb'
|
||||
- 'spec/tooling/danger/sidekiq_queues_spec.rb'
|
||||
- 'spec/tooling/graphql/docs/renderer_spec.rb'
|
||||
- 'tooling/danger/suggestor.rb'
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ Layout/FirstHashElementIndentation:
|
|||
- 'lib/gitlab/ci/config/entry/processable.rb'
|
||||
- 'lib/gitlab/database/migrations/observers/query_details.rb'
|
||||
- 'lib/gitlab/database/migrations/observers/transaction_duration.rb'
|
||||
- 'lib/gitlab/hook_data/issue_builder.rb'
|
||||
- 'lib/gitlab/hook_data/release_builder.rb'
|
||||
- 'lib/gitlab/quick_actions/issuable_actions.rb'
|
||||
- 'qa/qa/resource/snippet.rb'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
# Cop supports --autocorrect.
|
||||
Layout/LineBreakAfterFinalMixin:
|
||||
Details: grace period
|
||||
Exclude:
|
||||
- 'app/controllers/admin/clusters_controller.rb'
|
||||
- 'app/controllers/admin/dashboard_controller.rb'
|
||||
|
|
@ -71,7 +70,6 @@ Layout/LineBreakAfterFinalMixin:
|
|||
- 'ee/app/models/approval_project_rules_protected_branch.rb'
|
||||
- 'ee/app/models/approval_rules/approval_group_rule.rb'
|
||||
- 'ee/app/models/approval_rules/approval_group_rules_protected_branch.rb'
|
||||
- 'ee/app/models/ldap_group_link.rb'
|
||||
- 'ee/app/models/namespace_limit.rb'
|
||||
- 'ee/app/models/vulnerabilities/scanner.rb'
|
||||
- 'ee/app/models/vulnerabilities/statistic.rb'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ Layout/LineContinuationSpacing:
|
|||
Exclude:
|
||||
- 'app/controllers/concerns/controller_with_cross_project_access_check.rb'
|
||||
- 'app/controllers/projects/google_cloud/databases_controller.rb'
|
||||
- 'app/graphql/gitlab_schema.rb'
|
||||
- 'app/graphql/mutations/boards/issues/issue_move_list.rb'
|
||||
- 'app/graphql/types/environment_type.rb'
|
||||
- 'app/helpers/application_settings_helper.rb'
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ Layout/LineEndStringConcatenationIndentation:
|
|||
- 'app/controllers/import/github_controller.rb'
|
||||
- 'app/controllers/projects/google_cloud/databases_controller.rb'
|
||||
- 'app/controllers/projects/merge_requests/conflicts_controller.rb'
|
||||
- 'app/graphql/gitlab_schema.rb'
|
||||
- 'app/graphql/mutations/achievements/update_user_achievement_priorities.rb'
|
||||
- 'app/graphql/mutations/award_emojis/toggle.rb'
|
||||
- 'app/graphql/mutations/boards/issues/issue_move_list.rb'
|
||||
|
|
@ -100,7 +99,6 @@ Layout/LineEndStringConcatenationIndentation:
|
|||
- 'app/services/import/github_service.rb'
|
||||
- 'app/services/integrations/slack_interactions/incident_management/incident_modal_submit_service.rb'
|
||||
- 'app/services/issues/build_service.rb'
|
||||
- 'app/services/issues/convert_to_ticket_service.rb'
|
||||
- 'app/services/jira_connect_subscriptions/create_service.rb'
|
||||
- 'app/services/merge_requests/merge_service.rb'
|
||||
- 'app/services/packages/debian/process_package_file_service.rb'
|
||||
|
|
@ -265,9 +263,7 @@ Layout/LineEndStringConcatenationIndentation:
|
|||
- 'ee/lib/gitlab/checks/secrets_check.rb'
|
||||
- 'ee/lib/gitlab/email/message/account_validation.rb'
|
||||
- 'ee/lib/gitlab/licenses/submit_license_usage_data_banner.rb'
|
||||
- 'ee/lib/gitlab/llm/chain/tools/epic_reader/executor.rb'
|
||||
- 'ee/lib/gitlab/llm/chain/tools/explain_code/executor.rb'
|
||||
- 'ee/lib/gitlab/llm/chain/tools/issue_reader/executor.rb'
|
||||
- 'ee/lib/gitlab/llm/chain/tools/refactor_code/executor.rb'
|
||||
- 'ee/lib/gitlab/llm/chain/tools/summarize_comments/executor.rb'
|
||||
- 'ee/lib/gitlab/llm/chain/tools/write_tests/executor.rb'
|
||||
|
|
|
|||
|
|
@ -770,7 +770,6 @@ Layout/LineLength:
|
|||
- 'ee/app/helpers/ee/subscribable_banner_helper.rb'
|
||||
- 'ee/app/helpers/epics_helper.rb'
|
||||
- 'ee/app/helpers/gitlab_subscriptions/upcoming_reconciliation_helper.rb'
|
||||
- 'ee/app/helpers/groups/security_features_helper.rb'
|
||||
- 'ee/app/helpers/license_helper.rb'
|
||||
- 'ee/app/helpers/projects/on_demand_scans_helper.rb'
|
||||
- 'ee/app/helpers/projects/security/api_fuzzing_configuration_helper.rb'
|
||||
|
|
@ -1115,7 +1114,6 @@ Layout/LineLength:
|
|||
- 'ee/lib/elastic/latest/config.rb'
|
||||
- 'ee/lib/elastic/latest/custom_language_analyzers.rb'
|
||||
- 'ee/lib/elastic/latest/git_instance_proxy.rb'
|
||||
- 'ee/lib/elastic/latest/issue_class_proxy.rb'
|
||||
- 'ee/lib/elastic/latest/issue_instance_proxy.rb'
|
||||
- 'ee/lib/elastic/latest/note_class_proxy.rb'
|
||||
- 'ee/lib/elastic/latest/project_class_proxy.rb'
|
||||
|
|
@ -1401,7 +1399,6 @@ Layout/LineLength:
|
|||
- 'ee/spec/graphql/types/incident_management/escalation_rule_input_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/issue_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/project_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/security_scanner_type_enum_spec.rb'
|
||||
- 'ee/spec/graphql/types/vulnerability_details/file_location_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/vulnerability_evidence_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/vulnerability_report_type_enum_spec.rb'
|
||||
|
|
@ -1965,7 +1962,6 @@ Layout/LineLength:
|
|||
- 'ee/spec/services/ee/issue_links/create_service_spec.rb'
|
||||
- 'ee/spec/services/ee/issues/clone_service_spec.rb'
|
||||
- 'ee/spec/services/ee/issues/create_service_spec.rb'
|
||||
- 'ee/spec/services/ee/issues/move_service_spec.rb'
|
||||
- 'ee/spec/services/ee/issues/update_service_spec.rb'
|
||||
- 'ee/spec/services/ee/members/destroy_service_spec.rb'
|
||||
- 'ee/spec/services/ee/merge_requests/post_merge_service_spec.rb'
|
||||
|
|
@ -4179,7 +4175,6 @@ Layout/LineLength:
|
|||
- 'spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb'
|
||||
- 'spec/services/ci/register_job_service_spec.rb'
|
||||
- 'spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb'
|
||||
- 'spec/services/ci/runners/register_runner_service_spec.rb'
|
||||
- 'spec/services/ci/test_failure_history_service_spec.rb'
|
||||
- 'spec/services/ci/unlock_artifacts_service_spec.rb'
|
||||
- 'spec/services/ci/update_pending_build_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
---
|
||||
Lint/EmptyBlock:
|
||||
Exclude:
|
||||
- 'app/controllers/groups/boards_controller.rb'
|
||||
- 'app/controllers/projects/boards_controller.rb'
|
||||
- 'config/application.rb'
|
||||
- 'ee/spec/factories/incident_management/escalation_rules.rb'
|
||||
- 'ee/spec/finders/snippets_finder_spec.rb'
|
||||
|
|
|
|||
|
|
@ -112,8 +112,6 @@ Lint/MissingCopEnableDirective:
|
|||
- 'ee/app/workers/groups/export_memberships_worker.rb'
|
||||
- 'ee/lib/api/ldap_group_links.rb'
|
||||
- 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb'
|
||||
- 'ee/spec/helpers/groups/security_features_helper_spec.rb'
|
||||
- 'ee/spec/helpers/projects/security/discover_helper_spec.rb'
|
||||
- 'ee/spec/lib/ee/gitlab/background_migration/delete_invalid_epic_issues_spec.rb'
|
||||
- 'lib/gitlab/audit/null_author.rb'
|
||||
- 'lib/gitlab/auth/ldap/dn.rb'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
# Cop supports --autocorrect.
|
||||
Lint/RedundantCopDisableDirective:
|
||||
# Offense count: 567
|
||||
# Temporarily disabled due to too many offenses
|
||||
Enabled: false
|
||||
Exclude:
|
||||
|
|
@ -25,6 +26,7 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'app/graphql/gitlab_schema.rb'
|
||||
- 'app/graphql/resolvers/ci/pipeline_job_artifacts_resolver.rb'
|
||||
- 'app/graphql/resolvers/concerns/caching_array_resolver.rb'
|
||||
- 'app/graphql/resolvers/work_item_references_resolver.rb'
|
||||
- 'app/graphql/types/base_enum.rb'
|
||||
- 'app/graphql/types/board_list_type.rb'
|
||||
- 'app/graphql/types/ci/catalog/resources/components/input_type.rb'
|
||||
|
|
@ -54,6 +56,7 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'app/presenters/dev_ops_report/metric_presenter.rb'
|
||||
- 'app/serializers/diffs_entity.rb'
|
||||
- 'app/serializers/fork_namespace_entity.rb'
|
||||
- 'app/services/boards/base_items_list_service.rb'
|
||||
- 'app/services/ci/job_artifacts/destroy_batch_service.rb'
|
||||
- 'app/services/ci/register_job_service.rb'
|
||||
- 'app/services/ci/retry_job_service.rb'
|
||||
|
|
@ -116,6 +119,7 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'db/post_migrate/20240424103758_prepare_async_index_for_builds_part6.rb'
|
||||
- 'db/post_migrate/20240430015450_sync_index_for_builds_user_id_bigint.rb'
|
||||
- 'db/post_migrate/20240430015514_swap_columns_for_p_ci_builds_user_id.rb'
|
||||
- 'ee/app/controllers/concerns/ee/groups/params.rb'
|
||||
- 'ee/app/controllers/ee/admin/application_settings_controller.rb'
|
||||
- 'ee/app/controllers/ee/groups/group_members_controller.rb'
|
||||
- 'ee/app/controllers/ee/projects/settings/ci_cd_controller.rb'
|
||||
|
|
@ -132,6 +136,7 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'ee/app/graphql/types/incident_management/oncall_rotation_active_period_input_type.rb'
|
||||
- 'ee/app/graphql/types/product_analytics/category_enum.rb'
|
||||
- 'ee/app/graphql/types/product_analytics/state_enum.rb'
|
||||
- 'ee/app/graphql/types/sbom/source_type_enum.rb'
|
||||
- 'ee/app/graphql/types/scan_type.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_request_type.rb'
|
||||
- 'ee/app/helpers/ee/boards_helper.rb'
|
||||
|
|
@ -164,6 +169,7 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'ee/app/services/security/ingestion/tasks/ingest_vulnerabilities/mark_resolved_as_detected.rb'
|
||||
- 'ee/app/services/security/security_orchestration_policies/process_scan_result_policy_service.rb'
|
||||
- 'ee/app/services/security/token_revocation_service.rb'
|
||||
- 'ee/app/services/software_license_policies/bulk_create_scan_result_policy_service.rb'
|
||||
- 'ee/app/workers/ee/issuable_export_csv_worker.rb'
|
||||
- 'ee/app/workers/members_destroyer/clean_up_group_protected_branch_rules_worker.rb'
|
||||
- 'ee/app/workers/scan_security_report_secrets_worker.rb'
|
||||
|
|
@ -214,19 +220,11 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_security_scans_metric_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/count_user_merge_requests_for_projects_with_applied_scan_result_policies_metric_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/usage/metrics/instrumentations/protected_environment_approval_rules_required_approvals_average_metric_spec.rb'
|
||||
- 'ee/spec/lib/remote_development/agent_config/main_spec.rb'
|
||||
- 'ee/spec/lib/remote_development/namespace_cluster_agent_mappings/create/main_spec.rb'
|
||||
- 'ee/spec/lib/remote_development/namespace_cluster_agent_mappings/delete/main_spec.rb'
|
||||
- 'ee/spec/lib/remote_development/workspaces/create/creator_spec.rb'
|
||||
- 'ee/spec/lib/remote_development/workspaces/reconcile/main_spec.rb'
|
||||
- 'ee/spec/lib/remote_development/workspaces/update/main_spec.rb'
|
||||
- 'ee/spec/policies/remote_development/group_policy_spec.rb'
|
||||
- 'ee/spec/requests/api/conan_project_packages_spec.rb'
|
||||
- 'ee/spec/requests/api/vulnerability_findings_spec.rb'
|
||||
- 'ee/spec/requests/git_http_geo_spec.rb'
|
||||
- 'ee/spec/serializers/vulnerabilities/external_issue_link_entity_spec.rb'
|
||||
- 'ee/spec/services/security/merge_reports_service_spec.rb'
|
||||
- 'ee/spec/support/shared_contexts/remote_development/remote_development_shared_contexts.rb'
|
||||
- 'ee/spec/support/shared_examples/features/dashboard_saml_reauth_banner_shared_examples.rb'
|
||||
- 'ee/spec/support/shared_examples/models/elasticsearch_indexed_container_shared_examples.rb'
|
||||
- 'ee/spec/support/shared_examples/models/geo_verifiable_registry_shared_examples.rb'
|
||||
|
|
@ -348,7 +346,6 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'lib/gitlab/verify/ci_secure_files.rb'
|
||||
- 'lib/gitlab/web_ide/extensions_marketplace.rb'
|
||||
- 'lib/gitlab/x509/signature.rb'
|
||||
- 'lib/remote_development/settings/current_settings_reader.rb'
|
||||
- 'lib/tasks/gitlab/cleanup.rake'
|
||||
- 'lib/tasks/gitlab/seed/group_seed.rake'
|
||||
- 'qa/qa/resource/user_runners.rb'
|
||||
|
|
@ -448,6 +445,8 @@ Lint/RedundantCopDisableDirective:
|
|||
- 'spec/support/shared_examples/lib/gitlab/regex_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/boards/listable_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/concerns/incident_management/escalatable_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/concerns/protected_ref_access_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/concerns/protected_ref_deploy_key_access_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/packages/debian/distribution_key_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/rubygems_packages_shared_examples.rb'
|
||||
- 'tooling/danger/ignored_model_columns.rb'
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ Lint/SymbolConversion:
|
|||
- 'ee/spec/features/groups/analytics/cycle_analytics/charts_spec.rb'
|
||||
- 'ee/spec/features/groups/analytics/cycle_analytics/filters_and_data_spec.rb'
|
||||
- 'ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb'
|
||||
- 'ee/spec/helpers/billing_plans_helper_spec.rb'
|
||||
- 'ee/spec/helpers/push_rules_helper_spec.rb'
|
||||
- 'ee/spec/models/concerns/elastic/repository_spec.rb'
|
||||
- 'ee/spec/models/plan_spec.rb'
|
||||
|
|
|
|||
|
|
@ -258,8 +258,6 @@ Lint/UnusedBlockArgument:
|
|||
- 'spec/factories/ci/pipelines.rb'
|
||||
- 'spec/factories/ci/processable.rb'
|
||||
- 'spec/factories/ci/reports/sbom/reports.rb'
|
||||
- 'spec/factories/ci/runner_namespaces.rb'
|
||||
- 'spec/factories/ci/runner_projects.rb'
|
||||
- 'spec/factories/ci/runners.rb'
|
||||
- 'spec/factories/clusters/clusters.rb'
|
||||
- 'spec/factories/clusters/platforms/kubernetes.rb'
|
||||
|
|
|
|||
|
|
@ -247,7 +247,6 @@ Lint/UnusedMethodArgument:
|
|||
- 'ee/app/services/projects/update_mirror_service.rb'
|
||||
- 'ee/app/workers/gitlab_subscriptions/refresh_seats_worker.rb'
|
||||
- 'ee/db/fixtures/development/20_burndown.rb'
|
||||
- 'ee/lib/audit/compliance_framework_changes_auditor.rb'
|
||||
- 'ee/lib/compliance_management/compliance_report/commit_loader.rb'
|
||||
- 'ee/lib/ee/api/ci/helpers/runner.rb'
|
||||
- 'ee/lib/ee/api/entities/project.rb'
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ Metrics/CyclomaticComplexity:
|
|||
- 'app/helpers/button_helper.rb'
|
||||
- 'app/models/concerns/issuable.rb'
|
||||
- 'app/services/projects/create_service.rb'
|
||||
- 'ee/app/controllers/ee/groups_controller.rb'
|
||||
- 'ee/lib/gitlab/ci/parsers/security/formatters/dependency_list.rb'
|
||||
- 'lib/banzai/filter/references/abstract_reference_filter.rb'
|
||||
- 'lib/gitlab/conflict/file.rb'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ Metrics/PerceivedComplexity:
|
|||
- 'app/finders/deployments_finder.rb'
|
||||
- 'app/helpers/button_helper.rb'
|
||||
- 'app/services/projects/create_service.rb'
|
||||
- 'ee/app/controllers/ee/groups_controller.rb'
|
||||
- 'lib/banzai/filter/references/abstract_reference_filter.rb'
|
||||
- 'lib/banzai/renderer.rb'
|
||||
- 'lib/gitlab/conflict/file.rb'
|
||||
|
|
|
|||
|
|
@ -74,13 +74,11 @@ Performance/MapCompact:
|
|||
- 'ee/spec/requests/api/search_spec.rb'
|
||||
- 'haml_lint/linter/no_plain_nodes.rb'
|
||||
- 'lib/api/entities/feature.rb'
|
||||
- 'lib/api/entities/project.rb'
|
||||
- 'lib/api/helpers/common_helpers.rb'
|
||||
- 'lib/atlassian/jira_connect/client.rb'
|
||||
- 'lib/atlassian/jira_connect/serializers/feature_flag_entity.rb'
|
||||
- 'lib/banzai/filter/image_link_filter.rb'
|
||||
- 'lib/banzai/filter/references/design_reference_filter.rb'
|
||||
- 'lib/banzai/filter/references/label_reference_filter.rb'
|
||||
- 'lib/banzai/reference_parser/issuable_parser.rb'
|
||||
- 'lib/error_tracking/sentry_client/pagination_parser.rb'
|
||||
- 'lib/gitaly/server.rb'
|
||||
|
|
|
|||
|
|
@ -91,7 +91,6 @@ Rails/Pluck:
|
|||
- 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb'
|
||||
- 'ee/spec/support/shared_examples/requests/api/graphql/incident_management/escalation_policies_shared_examples.rb'
|
||||
- 'lib/atlassian/jira_connect/client.rb'
|
||||
- 'lib/banzai/filter/references/label_reference_filter.rb'
|
||||
- 'lib/banzai/renderer.rb'
|
||||
- 'lib/gitlab/access.rb'
|
||||
- 'lib/gitlab/analytics/cycle_analytics/default_stages.rb'
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ Rails/RequireDependency:
|
|||
- 'config/initializers/query_limiting.rb'
|
||||
- 'config/initializers/zz_metrics.rb'
|
||||
- 'ee/app/finders/status_page/incident_comments_finder.rb'
|
||||
- 'ee/app/models/compliance_management/compliance_framework/project_settings.rb'
|
||||
- 'ee/app/services/group_saml/saml_provider/create_service.rb'
|
||||
- 'ee/app/services/group_saml/saml_provider/update_service.rb'
|
||||
- 'ee/app/services/vulnerabilities/confirm_service.rb'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
# Cop supports --autocorrect.
|
||||
Rails/StrongParams:
|
||||
Details: grace period
|
||||
Exclude:
|
||||
- 'app/controllers/abuse_reports_controller.rb'
|
||||
- 'app/controllers/acme_challenges_controller.rb'
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ Rails/TimeZone:
|
|||
- 'ee/lib/gitlab/geo/event_gap_tracking.rb'
|
||||
- 'ee/lib/gitlab/geo/log_cursor/logger.rb'
|
||||
- 'ee/lib/gitlab/geo/oauth/login_state.rb'
|
||||
- 'ee/spec/lib/gitlab/geo/base_request_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb'
|
||||
|
|
|
|||
|
|
@ -189,7 +189,6 @@ RSpec/AnyInstanceOf:
|
|||
- 'spec/lib/mattermost/team_spec.rb'
|
||||
- 'spec/lib/system_check/simple_executor_spec.rb'
|
||||
- 'spec/models/ci/build_spec.rb'
|
||||
- 'spec/models/ci/runner_spec.rb'
|
||||
- 'spec/models/environment_spec.rb'
|
||||
- 'spec/models/hooks/service_hook_spec.rb'
|
||||
- 'spec/models/hooks/system_hook_spec.rb'
|
||||
|
|
|
|||
|
|
@ -655,7 +655,6 @@ RSpec/BeforeAllRoleAssignment:
|
|||
- 'ee/spec/support/shared_examples/policies/dast_on_demand_scans_shared_examples.rb'
|
||||
- 'ee/spec/support/shared_examples/serializers/report_status_shared_examples.rb'
|
||||
- 'ee/spec/views/shared/promotions/_promotion_link_project.html.haml_spec.rb'
|
||||
- 'ee/spec/workers/abuse/new_abuse_report_worker_spec.rb'
|
||||
- 'ee/spec/workers/app_sec/dast/profile_schedule_worker_spec.rb'
|
||||
- 'ee/spec/workers/compliance_management/update_default_framework_worker_spec.rb'
|
||||
- 'ee/spec/workers/ee/ci/build_finished_worker_spec.rb'
|
||||
|
|
|
|||
|
|
@ -818,10 +818,8 @@ RSpec/ContextWording:
|
|||
- 'ee/spec/views/admin/application_settings/_elasticsearch_form.html.haml_spec.rb'
|
||||
- 'ee/spec/views/admin/users/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/groups/edit.html.haml_spec.rb'
|
||||
- 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb'
|
||||
- 'ee/spec/views/profiles/preferences/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/shared/_clone_panel.html.haml_spec.rb'
|
||||
- 'ee/spec/views/shared/_kerberos_clone_button.html.haml_spec.rb'
|
||||
- 'ee/spec/views/shared/_mirror_update_button.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -252,7 +252,6 @@ RSpec/ExpectInHook:
|
|||
- 'spec/models/ci/build_spec.rb'
|
||||
- 'spec/models/ci/namespace_mirror_spec.rb'
|
||||
- 'spec/models/ci/pipeline_spec.rb'
|
||||
- 'spec/models/ci/runner_spec.rb'
|
||||
- 'spec/models/clusters/platforms/kubernetes_spec.rb'
|
||||
- 'spec/models/clusters/providers/aws_spec.rb'
|
||||
- 'spec/models/clusters/providers/gcp_spec.rb'
|
||||
|
|
|
|||
|
|
@ -366,7 +366,6 @@ RSpec/FeatureCategory:
|
|||
- 'ee/spec/helpers/analytics/code_review_helper_spec.rb'
|
||||
- 'ee/spec/helpers/application_helper_spec.rb'
|
||||
- 'ee/spec/helpers/boards_helper_spec.rb'
|
||||
- 'ee/spec/helpers/container_registry/container_registry_helper_spec.rb'
|
||||
- 'ee/spec/helpers/credentials_inventory_helper_spec.rb'
|
||||
- 'ee/spec/helpers/ee/access_tokens_helper_spec.rb'
|
||||
- 'ee/spec/helpers/ee/admin/identities_helper_spec.rb'
|
||||
|
|
@ -441,7 +440,6 @@ RSpec/FeatureCategory:
|
|||
- 'ee/spec/lib/audit/compliance_framework_changes_auditor_spec.rb'
|
||||
- 'ee/spec/lib/audit/external_status_check_changes_auditor_spec.rb'
|
||||
- 'ee/spec/lib/audit/group_changes_auditor_spec.rb'
|
||||
- 'ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb'
|
||||
- 'ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb'
|
||||
- 'ee/spec/lib/banzai/filter/jira_private_image_link_filter_spec.rb'
|
||||
- 'ee/spec/lib/banzai/filter/references/iteration_reference_filter_spec.rb'
|
||||
|
|
@ -817,7 +815,6 @@ RSpec/FeatureCategory:
|
|||
- 'ee/spec/models/ee/analytics/usage_trends/measurement_spec.rb'
|
||||
- 'ee/spec/models/ee/appearance_spec.rb'
|
||||
- 'ee/spec/models/ee/approvable_spec.rb'
|
||||
- 'ee/spec/models/ee/award_emoji_spec.rb'
|
||||
- 'ee/spec/models/ee/ci/build_dependencies_spec.rb'
|
||||
- 'ee/spec/models/ee/ci/pipeline_artifact_spec.rb'
|
||||
- 'ee/spec/models/ee/ci/secure_file_spec.rb'
|
||||
|
|
@ -1084,7 +1081,6 @@ RSpec/FeatureCategory:
|
|||
- 'ee/spec/services/audit_events/runner_custom_audit_event_service_spec.rb'
|
||||
- 'ee/spec/services/audit_events/streaming/headers/base_spec.rb'
|
||||
- 'ee/spec/services/audit_events/user_impersonation_group_audit_event_service_spec.rb'
|
||||
- 'ee/spec/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_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'
|
||||
|
|
@ -1099,7 +1095,6 @@ RSpec/FeatureCategory:
|
|||
- 'ee/spec/services/boards/epic_lists/update_service_spec.rb'
|
||||
- 'ee/spec/services/boards/epic_user_preferences/update_service_spec.rb'
|
||||
- 'ee/spec/services/boards/epics/create_service_spec.rb'
|
||||
- 'ee/spec/services/boards/epics/list_service_spec.rb'
|
||||
- 'ee/spec/services/boards/epics/move_service_spec.rb'
|
||||
- 'ee/spec/services/boards/lists/update_service_spec.rb'
|
||||
- 'ee/spec/services/boards/update_service_spec.rb'
|
||||
|
|
@ -1442,7 +1437,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/finders/packages/pypi/package_finder_spec.rb'
|
||||
- 'spec/finders/packages/pypi/packages_finder_spec.rb'
|
||||
- 'spec/finders/packages/tags_finder_spec.rb'
|
||||
- 'spec/finders/pending_todos_finder_spec.rb'
|
||||
- 'spec/finders/projects/export_job_finder_spec.rb'
|
||||
- 'spec/finders/projects/groups_finder_spec.rb'
|
||||
- 'spec/finders/projects/members/effective_access_level_finder_spec.rb'
|
||||
|
|
@ -1798,7 +1792,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/graphql/types/issue_sort_enum_spec.rb'
|
||||
- 'spec/graphql/types/issue_state_enum_spec.rb'
|
||||
- 'spec/graphql/types/issue_status_count_type_spec.rb'
|
||||
- 'spec/graphql/types/issue_type_spec.rb'
|
||||
- 'spec/graphql/types/jira_import_type_spec.rb'
|
||||
- 'spec/graphql/types/jira_user_type_spec.rb'
|
||||
- 'spec/graphql/types/kas/agent_configuration_type_spec.rb'
|
||||
|
|
@ -1946,7 +1939,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/helpers/commits_helper_spec.rb'
|
||||
- 'spec/helpers/components_helper_spec.rb'
|
||||
- 'spec/helpers/container_expiration_policies_helper_spec.rb'
|
||||
- 'spec/helpers/container_registry/container_registry_helper_spec.rb'
|
||||
- 'spec/helpers/cookies_helper_spec.rb'
|
||||
- 'spec/helpers/dashboard_helper_spec.rb'
|
||||
- 'spec/helpers/dev_ops_report_helper_spec.rb'
|
||||
|
|
@ -2120,8 +2112,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb'
|
||||
- 'spec/lib/bitbucket/collection_spec.rb'
|
||||
- 'spec/lib/bitbucket/page_spec.rb'
|
||||
- 'spec/lib/bitbucket/representation/comment_spec.rb'
|
||||
- 'spec/lib/bitbucket/representation/user_spec.rb'
|
||||
- 'spec/lib/bitbucket_server/collection_spec.rb'
|
||||
- 'spec/lib/bitbucket_server/page_spec.rb'
|
||||
- 'spec/lib/bitbucket_server/paginator_spec.rb'
|
||||
|
|
@ -2315,7 +2305,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/build/rules/rule_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/build/status/reason_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/charts_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/edge_stages_injector_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/entry/allow_failure_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/entry/artifacts_spec.rb'
|
||||
|
|
@ -2390,7 +2379,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/lib/gitlab/ci/pipeline/chain/seed_block_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/skip_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/validate/repository_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb'
|
||||
|
|
@ -3127,7 +3115,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/lib/gitlab/qa_spec.rb'
|
||||
- 'spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb'
|
||||
- 'spec/lib/gitlab/query_limiting/middleware_spec.rb'
|
||||
- 'spec/lib/gitlab/query_limiting_spec.rb'
|
||||
- 'spec/lib/gitlab/quick_actions/command_definition_spec.rb'
|
||||
- 'spec/lib/gitlab/quick_actions/dsl_spec.rb'
|
||||
- 'spec/lib/gitlab/quick_actions/substitution_definition_spec.rb'
|
||||
|
|
@ -3391,7 +3378,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/lib/grafana/validator_spec.rb'
|
||||
- 'spec/lib/initializer_connections_spec.rb'
|
||||
- 'spec/lib/json_web_token/hmac_token_spec.rb'
|
||||
- 'spec/lib/json_web_token/rsa_token_spec.rb'
|
||||
- 'spec/lib/json_web_token/token_spec.rb'
|
||||
- 'spec/lib/kramdown/kramdown_spec.rb'
|
||||
- 'spec/lib/kramdown/parser/atlassian_document_format_spec.rb'
|
||||
|
|
@ -3861,7 +3847,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/policies/issuable_policy_spec.rb'
|
||||
- 'spec/policies/namespace/root_storage_statistics_policy_spec.rb'
|
||||
- 'spec/policies/packages/package_policy_spec.rb'
|
||||
- 'spec/policies/packages/policies/group_policy_spec.rb'
|
||||
- 'spec/policies/personal_access_token_policy_spec.rb'
|
||||
- 'spec/policies/personal_snippet_policy_spec.rb'
|
||||
- 'spec/policies/project_snippet_policy_spec.rb'
|
||||
|
|
@ -4355,7 +4340,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb'
|
||||
- 'spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb'
|
||||
- 'spec/views/dashboard/projects/_nav.html.haml_spec.rb'
|
||||
- 'spec/views/dashboard/projects/index.html.haml_spec.rb'
|
||||
- 'spec/views/devise/confirmations/almost_there.html.haml_spec.rb'
|
||||
- 'spec/views/errors/access_denied.html.haml_spec.rb'
|
||||
- 'spec/views/errors/omniauth_error.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
---
|
||||
RSpec/NamedSubject:
|
||||
Details: grace period
|
||||
Exclude:
|
||||
- 'ee/spec/controllers/admin/audit_log_reports_controller_spec.rb'
|
||||
- 'ee/spec/controllers/admin/emails_controller_spec.rb'
|
||||
|
|
@ -440,9 +439,11 @@ RSpec/NamedSubject:
|
|||
- 'ee/spec/lib/gitlab/llm/concerns/exponential_backoff_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/templates/categorize_question_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/templates/explain_vulnerability_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/templates/fill_in_merge_request_template_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/templates/generate_commit_message_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/templates/summarize_review_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/vertex_ai/completions/analyze_ci_job_failure_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/vertex_ai/completions/fill_in_merge_request_template_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/vertex_ai/completions/generate_commit_message_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/vertex_ai/completions/summarize_review_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/llm/vertex_ai/model_configurations/chat_spec.rb'
|
||||
|
|
@ -1133,7 +1134,6 @@ RSpec/NamedSubject:
|
|||
- 'ee/spec/workers/elastic/migration_worker_spec.rb'
|
||||
- 'ee/spec/workers/elastic/namespace_update_worker_spec.rb'
|
||||
- 'ee/spec/workers/elastic_association_indexer_worker_spec.rb'
|
||||
- 'ee/spec/workers/elastic_cluster_reindexing_cron_worker_spec.rb'
|
||||
- 'ee/spec/workers/elastic_commit_indexer_worker_spec.rb'
|
||||
- 'ee/spec/workers/elastic_full_index_worker_spec.rb'
|
||||
- 'ee/spec/workers/elastic_indexing_control_worker_spec.rb'
|
||||
|
|
@ -2751,7 +2751,6 @@ RSpec/NamedSubject:
|
|||
- 'spec/requests/api/ci/runner/jobs_artifacts_spec.rb'
|
||||
- 'spec/requests/api/ci/runner/runners_delete_spec.rb'
|
||||
- 'spec/requests/api/commit_statuses_spec.rb'
|
||||
- 'spec/requests/api/commits_spec.rb'
|
||||
- 'spec/requests/api/composer_packages_spec.rb'
|
||||
- 'spec/requests/api/container_repositories_spec.rb'
|
||||
- 'spec/requests/api/deploy_keys_spec.rb'
|
||||
|
|
@ -3351,7 +3350,6 @@ RSpec/NamedSubject:
|
|||
- 'spec/services/topics/merge_service_spec.rb'
|
||||
- 'spec/services/two_factor/destroy_service_spec.rb'
|
||||
- 'spec/services/update_container_registry_info_service_spec.rb'
|
||||
- 'spec/services/upload_service_spec.rb'
|
||||
- 'spec/services/uploads/destroy_service_spec.rb'
|
||||
- 'spec/services/user_agent_detail_service_spec.rb'
|
||||
- 'spec/services/users/activity_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ RSpec/ReturnFromStub:
|
|||
- 'spec/controllers/projects/issues_controller_spec.rb'
|
||||
- 'spec/controllers/projects/jobs_controller_spec.rb'
|
||||
- 'spec/controllers/projects/merge_requests/creations_controller_spec.rb'
|
||||
- 'spec/controllers/projects/merge_requests_controller_spec.rb'
|
||||
- 'spec/controllers/projects_controller_spec.rb'
|
||||
- 'spec/features/groups/clusters/user_spec.rb'
|
||||
- 'spec/features/groups/container_registry_spec.rb'
|
||||
|
|
|
|||
|
|
@ -698,7 +698,6 @@ RSpec/VerifiedDoubles:
|
|||
- 'spec/models/packages/package_spec.rb'
|
||||
- 'spec/models/plan_limits_spec.rb'
|
||||
- 'spec/models/project_spec.rb'
|
||||
- 'spec/models/ref_matcher_spec.rb'
|
||||
- 'spec/models/release_highlight_spec.rb'
|
||||
- 'spec/models/repository_spec.rb'
|
||||
- 'spec/models/shard_spec.rb'
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ Style/ArgumentsForwarding:
|
|||
- 'app/models/network/commit.rb'
|
||||
- 'app/models/project.rb'
|
||||
- 'app/models/system/broadcast_message.rb'
|
||||
- 'app/models/wiki.rb'
|
||||
- 'app/presenters/gitlab/blame_presenter.rb'
|
||||
- 'app/services/base_count_service.rb'
|
||||
- 'app/services/concerns/projects/remove_refs.rb'
|
||||
|
|
|
|||
|
|
@ -251,7 +251,6 @@ Style/GuardClause:
|
|||
- 'ee/app/models/app_sec/fuzzing/coverage/corpus.rb'
|
||||
- 'ee/app/models/approval_merge_request_rule_source.rb'
|
||||
- 'ee/app/models/concerns/app_sec/dast/buildable.rb'
|
||||
- 'ee/app/models/concerns/ee/protected_ref_access.rb'
|
||||
- 'ee/app/models/concerns/elastic/application_versioned_search.rb'
|
||||
- 'ee/app/models/concerns/geo/verifiable_replicator.rb'
|
||||
- 'ee/app/models/dast/profile.rb'
|
||||
|
|
@ -371,7 +370,6 @@ Style/GuardClause:
|
|||
- 'lib/api/helpers/projects_helpers.rb'
|
||||
- 'lib/api/helpers/snippets_helpers.rb'
|
||||
- 'lib/api/helpers/version.rb'
|
||||
- 'lib/api/projects.rb'
|
||||
- 'lib/banzai/filter/external_link_filter.rb'
|
||||
- 'lib/banzai/filter/gollum_tags_filter.rb'
|
||||
- 'lib/banzai/filter/references/merge_request_reference_filter.rb'
|
||||
|
|
|
|||
|
|
@ -268,7 +268,6 @@ Style/IfUnlessModifier:
|
|||
- 'config/initializers_before_autoloader/002_sidekiq.rb'
|
||||
- 'config/routes.rb'
|
||||
- 'danger/database/Dangerfile'
|
||||
- 'danger/pipeline/Dangerfile'
|
||||
- 'ee/app/controllers/admin/elasticsearch_controller.rb'
|
||||
- 'ee/app/controllers/admin/emails_controller.rb'
|
||||
- 'ee/app/controllers/admin/geo/application_controller.rb'
|
||||
|
|
@ -278,8 +277,6 @@ Style/IfUnlessModifier:
|
|||
- 'ee/app/controllers/concerns/ee/membership_actions.rb'
|
||||
- 'ee/app/controllers/concerns/group_invite_members.rb'
|
||||
- 'ee/app/controllers/ee/admin/application_settings_controller.rb'
|
||||
- 'ee/app/controllers/ee/groups/group_members_controller.rb'
|
||||
- 'ee/app/controllers/ee/groups_controller.rb'
|
||||
- 'ee/app/controllers/ee/projects/issues_controller.rb'
|
||||
- 'ee/app/controllers/ee/projects/settings/operations_controller.rb'
|
||||
- 'ee/app/controllers/ee/projects_controller.rb'
|
||||
|
|
@ -311,7 +308,6 @@ Style/IfUnlessModifier:
|
|||
- 'ee/app/helpers/ee/projects_helper.rb'
|
||||
- 'ee/app/models/allowed_email_domain.rb'
|
||||
- 'ee/app/models/app_sec/fuzzing/coverage/corpus.rb'
|
||||
- 'ee/app/models/concerns/ee/protected_ref_access.rb'
|
||||
- 'ee/app/models/concerns/elastic/application_versioned_search.rb'
|
||||
- 'ee/app/models/concerns/geo/verifiable_replicator.rb'
|
||||
- 'ee/app/models/concerns/security/scan_execution_policy.rb'
|
||||
|
|
@ -543,7 +539,6 @@ Style/IfUnlessModifier:
|
|||
- 'lib/api/projects.rb'
|
||||
- 'lib/api/projects_relation_builder.rb'
|
||||
- 'lib/api/protected_branches.rb'
|
||||
- 'lib/api/remote_mirrors.rb'
|
||||
- 'lib/api/repositories.rb'
|
||||
- 'lib/api/rubygem_packages.rb'
|
||||
- 'lib/api/settings.rb'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
---
|
||||
Style/InlineDisableAnnotation:
|
||||
Details: grace period
|
||||
Exclude:
|
||||
- 'Gemfile'
|
||||
- 'Guardfile'
|
||||
|
|
@ -1188,7 +1187,6 @@ Style/InlineDisableAnnotation:
|
|||
- 'ee/app/finders/projects/integrations/jira/issues_finder.rb'
|
||||
- 'ee/app/finders/security/approval_groups_finder.rb'
|
||||
- 'ee/app/finders/security/findings_finder.rb'
|
||||
- 'ee/app/finders/security/pure_findings_finder.rb'
|
||||
- 'ee/app/finders/security/scan_policy_base_finder.rb'
|
||||
- 'ee/app/finders/status_page/incident_comments_finder.rb'
|
||||
- 'ee/app/finders/status_page/incidents_finder.rb'
|
||||
|
|
@ -1811,7 +1809,6 @@ Style/InlineDisableAnnotation:
|
|||
- '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/merge_trains/user_adds_to_merge_train_when_pipeline_succeeds_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'
|
||||
|
|
@ -1825,8 +1822,6 @@ Style/InlineDisableAnnotation:
|
|||
- 'ee/spec/helpers/analytics/analytics_dashboards_helper_spec.rb'
|
||||
- 'ee/spec/helpers/ee/dashboard_helper_spec.rb'
|
||||
- 'ee/spec/helpers/ee/releases_helper_spec.rb'
|
||||
- 'ee/spec/helpers/groups/security_features_helper_spec.rb'
|
||||
- 'ee/spec/helpers/projects/security/discover_helper_spec.rb'
|
||||
- 'ee/spec/initializers/fog_google_https_private_urls_spec.rb'
|
||||
- 'ee/spec/lib/audit/push_rules/group_push_rules_changes_auditor_spec.rb'
|
||||
- 'ee/spec/lib/audit/push_rules/project_push_rules_changes_auditor_spec.rb'
|
||||
|
|
@ -1881,7 +1876,6 @@ Style/InlineDisableAnnotation:
|
|||
- 'ee/spec/models/members/member_role_spec.rb'
|
||||
- 'ee/spec/models/package_metadata/affected_package_spec.rb'
|
||||
- 'ee/spec/models/package_metadata/package_spec.rb'
|
||||
- 'ee/spec/models/product_analytics/dashboard_spec.rb'
|
||||
- 'ee/spec/models/security/training_spec.rb'
|
||||
- 'ee/spec/models/upload_spec.rb'
|
||||
- 'ee/spec/models/vulnerabilities/read_spec.rb'
|
||||
|
|
@ -2361,7 +2355,6 @@ Style/InlineDisableAnnotation:
|
|||
- 'lib/gitlab/pagination/keyset/iterator.rb'
|
||||
- 'lib/gitlab/pagination/keyset/order.rb'
|
||||
- 'lib/gitlab/pagination/keyset/pager.rb'
|
||||
- 'lib/gitlab/pagination/keyset/paginator.rb'
|
||||
- 'lib/gitlab/pagination/offset_pagination.rb'
|
||||
- 'lib/gitlab/pagination_delegate.rb'
|
||||
- 'lib/gitlab/patch/action_cable_subscription_adapter_identifier.rb'
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ Style/RedundantRegexpEscape:
|
|||
- 'ee/app/models/ee/epic.rb'
|
||||
- 'ee/app/models/ee/vulnerability.rb'
|
||||
- 'ee/lib/ee/gitlab/path_regex.rb'
|
||||
- 'ee/lib/elastic/latest/merge_request_class_proxy.rb'
|
||||
- 'ee/lib/gitlab/geo/git_ssh_proxy.rb'
|
||||
- 'ee/lib/gitlab/return_to_location.rb'
|
||||
- 'ee/spec/features/read_only_spec.rb'
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ Style/SoleNestedConditional:
|
|||
- 'ee/app/workers/ee/post_receive.rb'
|
||||
- 'ee/lib/ee/gitlab/auth/o_auth/auth_hash.rb'
|
||||
- 'ee/lib/ee/gitlab/checks/push_rules/commit_check.rb'
|
||||
- 'ee/lib/elastic/latest/issue_class_proxy.rb'
|
||||
- 'lib/api/deploy_keys.rb'
|
||||
- 'lib/api/helpers/label_helpers.rb'
|
||||
- 'lib/api/maven_packages.rb'
|
||||
|
|
|
|||
|
|
@ -117,7 +117,6 @@ Style/StringConcatenation:
|
|||
- 'lib/tasks/tanuki_emoji.rake'
|
||||
- 'qa/qa/page/component/snippet.rb'
|
||||
- 'qa/qa/page/milestone/new.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb'
|
||||
- 'qa/qa/tools/generate_perf_testdata.rb'
|
||||
- 'scripts/perf/gc/print_gc_stats.rb'
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ export default {
|
|||
this.branchProtection = branchRule?.branchProtection;
|
||||
this.statusChecks = branchRule?.externalStatusChecks?.nodes || [];
|
||||
this.matchingBranchesCount = branchRule?.matchingBranchesCount;
|
||||
this.groupId = getIdFromGraphQLId(group?.id) || '';
|
||||
this.groupId = getIdFromGraphQLId(group?.id) || null;
|
||||
if (!this.showApprovers) return;
|
||||
// The approval rules app uses a separate endpoint to fetch the list of approval rules.
|
||||
// In future, we will update the GraphQL request to include the approval rules data.
|
||||
|
|
@ -122,6 +122,7 @@ export default {
|
|||
groupId: null,
|
||||
matchingBranchesCount: null,
|
||||
isAllowedToMergeDrawerOpen: false,
|
||||
isAllowedToPushAndMergeDrawerOpen: false,
|
||||
isRuleUpdating: false,
|
||||
isAllowForcePushLoading: false,
|
||||
isCodeOwnersLoading: false,
|
||||
|
|
@ -204,6 +205,14 @@ export default {
|
|||
hasPushAccessLevelSet() {
|
||||
return this.pushAccessLevels?.total > 0;
|
||||
},
|
||||
accessLevelsDrawerTitle() {
|
||||
return this.isAllowedToMergeDrawerOpen
|
||||
? s__('BranchRules|Edit allowed to merge')
|
||||
: s__('BranchRules|Edit allowed to push and merge');
|
||||
},
|
||||
accessLevelsDrawerData() {
|
||||
return this.isAllowedToMergeDrawerOpen ? this.mergeAccessLevels : this.pushAccessLevels;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['setRulesFilter', 'fetchRules']),
|
||||
|
|
@ -242,8 +251,12 @@ export default {
|
|||
openAllowedToMergeDrawer() {
|
||||
this.isAllowedToMergeDrawerOpen = true;
|
||||
},
|
||||
closeAllowedToMergeDrawer() {
|
||||
closeAccessLevelsDrawer() {
|
||||
this.isAllowedToMergeDrawerOpen = false;
|
||||
this.isAllowedToPushAndMergeDrawerOpen = false;
|
||||
},
|
||||
openAllowedToPushAndMergeDrawer() {
|
||||
this.isAllowedToPushAndMergeDrawerOpen = true;
|
||||
},
|
||||
onEnableForcePushToggle(isChecked) {
|
||||
this.isAllowForcePushLoading = true;
|
||||
|
|
@ -267,12 +280,20 @@ export default {
|
|||
toastMessage,
|
||||
});
|
||||
},
|
||||
onEditAllowedToMerge(allowedToMerge) {
|
||||
onEditAccessLevels(accessLevels) {
|
||||
this.isRuleUpdating = true;
|
||||
this.editBranchRule({
|
||||
branchProtection: { mergeAccessLevels: allowedToMerge },
|
||||
toastMessage: s__('BranchRules|Allowed to merge updated'),
|
||||
});
|
||||
|
||||
if (this.isAllowedToMergeDrawerOpen) {
|
||||
this.editBranchRule({
|
||||
branchProtection: { mergeAccessLevels: accessLevels },
|
||||
toastMessage: s__('BranchRules|Allowed to merge updated'),
|
||||
});
|
||||
} else if (this.isAllowedToPushAndMergeDrawerOpen) {
|
||||
this.editBranchRule({
|
||||
branchProtection: { pushAccessLevels: accessLevels },
|
||||
toastMessage: s__('BranchRules|Allowed to push and merge updated'),
|
||||
});
|
||||
}
|
||||
},
|
||||
editBranchRule({ name = this.branchRule.name, branchProtection = null, toastMessage = '' }) {
|
||||
this.$apollo
|
||||
|
|
@ -296,12 +317,17 @@ export default {
|
|||
},
|
||||
},
|
||||
})
|
||||
.then(() => {
|
||||
.then(({ data: { branchRuleUpdate } }) => {
|
||||
if (branchRuleUpdate.errors.length) {
|
||||
createAlert({ message: this.$options.i18n.updateBranchRuleError });
|
||||
return;
|
||||
}
|
||||
|
||||
const isRedirectNeeded = !branchProtection;
|
||||
if (isRedirectNeeded) {
|
||||
visitUrl(setUrlParams({ branch: name }));
|
||||
} else {
|
||||
this.closeAllowedToMergeDrawer();
|
||||
this.closeAccessLevelsDrawer();
|
||||
this.$toast.show(toastMessage);
|
||||
}
|
||||
})
|
||||
|
|
@ -385,15 +411,15 @@ export default {
|
|||
/>
|
||||
|
||||
<rule-drawer
|
||||
:is-open="isAllowedToMergeDrawerOpen"
|
||||
:roles="mergeAccessLevels.roles"
|
||||
:users="mergeAccessLevels.users"
|
||||
:groups="mergeAccessLevels.groups"
|
||||
:is-open="isAllowedToMergeDrawerOpen || isAllowedToPushAndMergeDrawerOpen"
|
||||
:roles="accessLevelsDrawerData.roles"
|
||||
:users="accessLevelsDrawerData.users"
|
||||
:groups="accessLevelsDrawerData.groups"
|
||||
:is-loading="isRuleUpdating"
|
||||
:group-id="groupId"
|
||||
:title="s__('BranchRules|Edit allowed to merge')"
|
||||
@editRule="onEditAllowedToMerge"
|
||||
@close="closeAllowedToMergeDrawer"
|
||||
:title="accessLevelsDrawerTitle"
|
||||
@editRule="onEditAccessLevels"
|
||||
@close="closeAccessLevelsDrawer"
|
||||
/>
|
||||
|
||||
<!-- Allowed to push -->
|
||||
|
|
@ -407,7 +433,9 @@ export default {
|
|||
:groups="pushAccessLevels.groups"
|
||||
:empty-state-copy="$options.i18n.allowedToPushEmptyState"
|
||||
:help-text="$options.i18n.allowedToPushDescription"
|
||||
is-edit-available
|
||||
data-testid="allowed-to-push-content"
|
||||
@edit="openAllowedToPushAndMergeDrawer"
|
||||
/>
|
||||
|
||||
<!-- Force push -->
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ export default {
|
|||
return {
|
||||
updatedGroups: this.groups,
|
||||
updatedUsers: this.users,
|
||||
isAdminSelected: this.roles.includes(ACCESS_LEVEL_ADMIN_INTEGER),
|
||||
isMaintainersSelected: this.roles.includes(ACCESS_LEVEL_MAINTAINER_INTEGER),
|
||||
isDevelopersAndMaintainersSelected: this.roles.includes(ACCESS_LEVEL_DEVELOPER_INTEGER),
|
||||
isAdminSelected: null,
|
||||
isMaintainersSelected: null,
|
||||
isDevelopersAndMaintainersSelected: null,
|
||||
isRuleUpdated: false,
|
||||
};
|
||||
},
|
||||
|
|
@ -81,6 +81,16 @@ export default {
|
|||
);
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
isOpen() {
|
||||
this.isAdminSelected = this.roles.includes(ACCESS_LEVEL_ADMIN_INTEGER);
|
||||
this.isMaintainersSelected = this.roles.includes(ACCESS_LEVEL_MAINTAINER_INTEGER);
|
||||
this.isDevelopersAndMaintainersSelected = this.roles.includes(ACCESS_LEVEL_DEVELOPER_INTEGER);
|
||||
|
||||
this.updatedGroups = this.groups;
|
||||
this.updatedUsers = this.users;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleRuleDataUpdate(namespace, items) {
|
||||
this.isRuleUpdated = true;
|
||||
|
|
|
|||
|
|
@ -47,10 +47,12 @@ export const getAccessLevelInputFromEdges = (edges) => {
|
|||
|
||||
if (node.group?.id !== undefined) {
|
||||
result.groupId = node.group.id;
|
||||
delete result.accessLevel; // backend only expects groupId
|
||||
}
|
||||
|
||||
if (node.user?.id !== undefined) {
|
||||
result.userId = node.user.id;
|
||||
delete result.accessLevel; // backend only expects userId
|
||||
}
|
||||
|
||||
return Object.keys(result).length > 0 ? [result] : [];
|
||||
|
|
|
|||
|
|
@ -8,16 +8,22 @@ module Analytics
|
|||
validates :hash_sha256, presence: true
|
||||
|
||||
# Creates or queries the id of the corresponding stage event hash code
|
||||
def self.record_id_by_hash_sha256(hash)
|
||||
casted_hash_code = Arel::Nodes.build_quoted(hash, Analytics::CycleAnalytics::StageEventHash.arel_table[:hash_sha256]).to_sql
|
||||
def self.record_id_by_hash_sha256(organization_id, hash)
|
||||
casted_organization_id = Arel::Nodes
|
||||
.build_quoted(organization_id, Analytics::CycleAnalytics::StageEventHash.arel_table[:organization_id])
|
||||
.to_sql
|
||||
|
||||
casted_hash_code = Arel::Nodes
|
||||
.build_quoted(hash, Analytics::CycleAnalytics::StageEventHash.arel_table[:hash_sha256])
|
||||
.to_sql
|
||||
|
||||
# Atomic, safe insert without retrying
|
||||
query = <<~SQL
|
||||
WITH insert_cte AS MATERIALIZED (
|
||||
INSERT INTO #{quoted_table_name} (hash_sha256) VALUES (#{casted_hash_code}) ON CONFLICT DO NOTHING RETURNING ID
|
||||
INSERT INTO #{quoted_table_name} (organization_id, hash_sha256) VALUES (#{casted_organization_id}, #{casted_hash_code}) ON CONFLICT DO NOTHING RETURNING ID
|
||||
)
|
||||
SELECT ids.id FROM (
|
||||
(SELECT id FROM #{quoted_table_name} WHERE hash_sha256=#{casted_hash_code} LIMIT 1)
|
||||
(SELECT id FROM #{quoted_table_name} WHERE organization_id=#{casted_organization_id} AND hash_sha256=#{casted_hash_code} LIMIT 1)
|
||||
UNION ALL
|
||||
(SELECT id FROM insert_cte LIMIT 1)
|
||||
) AS ids LIMIT 1
|
||||
|
|
|
|||
|
|
@ -135,7 +135,9 @@ module Analytics
|
|||
|
||||
return unless previous_stage_event_hash.blank? || events_hash_code != previous_stage_event_hash
|
||||
|
||||
self.stage_event_hash_id = Analytics::CycleAnalytics::StageEventHash.record_id_by_hash_sha256(events_hash_code)
|
||||
organization_id = namespace.organization_id
|
||||
self.stage_event_hash_id = Analytics::CycleAnalytics::StageEventHash.record_id_by_hash_sha256(organization_id,
|
||||
events_hash_code)
|
||||
end
|
||||
|
||||
def cleanup_old_stage_event_hash
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
description: Audit event triggered
|
||||
internal_events: true
|
||||
action: trigger_audit_event
|
||||
label_description: Name of the triggered audit event
|
||||
additional_properties:
|
||||
label:
|
||||
description: Name of the triggered audit event
|
||||
identifiers:
|
||||
product_group: compliance
|
||||
milestone: '17.2'
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134223
|
|||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/428258
|
||||
milestone: '16.5'
|
||||
type: development
|
||||
group: group::subscription management
|
||||
group: group::provision
|
||||
default_enabled: false
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136858
|
|||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/431365
|
||||
milestone: '16.7'
|
||||
type: development
|
||||
group: group::subscription management
|
||||
group: group::provision
|
||||
default_enabled: false
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138490
|
|||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432983
|
||||
milestone: '16.7'
|
||||
type: development
|
||||
group: group::subscription management
|
||||
group: group::provision
|
||||
default_enabled: true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
name: use_sonnet_35
|
||||
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/468334
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157696
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/469499
|
||||
milestone: '17.2'
|
||||
group: group::ai framework
|
||||
type: gitlab_com_derisk
|
||||
default_enabled: false
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
migration_job_name: BackfillPackagesDebianGroupComponentsGroupId
|
||||
description: Backfills sharding key `packages_debian_group_components.group_id` from `packages_debian_group_distributions`.
|
||||
feature_category: package_registry
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157905
|
||||
milestone: '17.2'
|
||||
queued_migration_version: 20240701074852
|
||||
finalize_after: '2024-08-22'
|
||||
finalized_by: # version of the migration that finalized this BBM
|
||||
|
|
@ -19,3 +19,4 @@ desired_sharding_key:
|
|||
table: packages_debian_group_distributions
|
||||
sharding_key: group_id
|
||||
belongs_to: distribution
|
||||
desired_sharding_key_migration_job_name: BackfillPackagesDebianGroupComponentsGroupId
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddOrganizationIdColumnToStageEventHashes < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
|
||||
def change
|
||||
add_column :analytics_cycle_analytics_stage_event_hashes, :organization_id, :bigint, null: false, default: 1
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddStageEventHashesOrganizationIdIndex < Gitlab::Database::Migration[2.2]
|
||||
disable_ddl_transaction!
|
||||
|
||||
milestone '17.2'
|
||||
|
||||
INDEX = 'index_cycle_analytics_stage_event_hashes_on_org_id_sha_256'
|
||||
|
||||
def up
|
||||
add_concurrent_index :analytics_cycle_analytics_stage_event_hashes, %i[organization_id hash_sha256], name: INDEX,
|
||||
unique: true
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :analytics_cycle_analytics_stage_event_hashes, name: INDEX
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddGroupIdToPackagesDebianGroupComponents < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
|
||||
def change
|
||||
add_column :packages_debian_group_components, :group_id, :bigint
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoveStageEventHashesUniqueIndex < Gitlab::Database::Migration[2.2]
|
||||
disable_ddl_transaction!
|
||||
|
||||
milestone '17.2'
|
||||
|
||||
INDEX = 'index_cycle_analytics_stage_event_hashes_on_hash_sha_256'
|
||||
|
||||
def up
|
||||
remove_concurrent_index_by_name :analytics_cycle_analytics_stage_event_hashes, name: INDEX
|
||||
end
|
||||
|
||||
def down
|
||||
add_concurrent_index :analytics_cycle_analytics_stage_event_hashes, :hash_sha256,
|
||||
name: INDEX,
|
||||
unique: true
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class FkToCiPipelinesFromPCiPipelineVariablesOnPartitionIdAndPipelineId < Gitlab::Database::Migration[2.2]
|
||||
include Gitlab::Database::PartitioningMigrationHelpers::ForeignKeyHelpers
|
||||
|
||||
milestone '17.2'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
SOURCE_TABLE_NAME = :p_ci_pipeline_variables
|
||||
TARGET_TABLE_NAME = :ci_pipelines
|
||||
COLUMN = :pipeline_id
|
||||
TARGET_COLUMN = :id
|
||||
FK_NAME = :fk_f29c5f4380_p
|
||||
PARTITION_COLUMN = :partition_id
|
||||
|
||||
def up
|
||||
add_concurrent_partitioned_foreign_key(
|
||||
SOURCE_TABLE_NAME,
|
||||
TARGET_TABLE_NAME,
|
||||
column: [PARTITION_COLUMN, COLUMN],
|
||||
target_column: [PARTITION_COLUMN, TARGET_COLUMN],
|
||||
validate: false,
|
||||
reverse_lock_order: true,
|
||||
on_update: :cascade,
|
||||
on_delete: :cascade,
|
||||
name: FK_NAME
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
Gitlab::Database::PostgresPartitionedTable.each_partition(SOURCE_TABLE_NAME) do |partition|
|
||||
with_lock_retries do
|
||||
remove_foreign_key_if_exists(
|
||||
partition.identifier,
|
||||
TARGET_TABLE_NAME,
|
||||
name: FK_NAME,
|
||||
reverse_lock_order: true
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ValidateAsyncFkOnPCiPipelineVariablesPartitionIdAndPipelineId < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
|
||||
TABLE_NAME = :p_ci_pipeline_variables
|
||||
FK_NAME = :fk_f29c5f4380_p
|
||||
COLUMNS = [:partition_id, :pipeline_id]
|
||||
|
||||
def up
|
||||
prepare_partitioned_async_foreign_key_validation(TABLE_NAME, COLUMNS, name: FK_NAME)
|
||||
end
|
||||
|
||||
def down
|
||||
unprepare_partitioned_async_foreign_key_validation(TABLE_NAME, COLUMNS, name: FK_NAME)
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class IndexPackagesDebianGroupComponentsOnGroupId < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
disable_ddl_transaction!
|
||||
|
||||
INDEX_NAME = 'index_packages_debian_group_components_on_group_id'
|
||||
|
||||
def up
|
||||
add_concurrent_index :packages_debian_group_components, :group_id, name: INDEX_NAME
|
||||
end
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :packages_debian_group_components, INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddPackagesDebianGroupComponentsGroupIdFk < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_concurrent_foreign_key :packages_debian_group_components, :namespaces, column: :group_id, on_delete: :cascade
|
||||
end
|
||||
|
||||
def down
|
||||
with_lock_retries do
|
||||
remove_foreign_key :packages_debian_group_components, column: :group_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddPackagesDebianGroupComponentsGroupIdTrigger < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
|
||||
def up
|
||||
install_sharding_key_assignment_trigger(
|
||||
table: :packages_debian_group_components,
|
||||
sharding_key: :group_id,
|
||||
parent_table: :packages_debian_group_distributions,
|
||||
parent_sharding_key: :group_id,
|
||||
foreign_key: :distribution_id
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
remove_sharding_key_assignment_trigger(
|
||||
table: :packages_debian_group_components,
|
||||
sharding_key: :group_id,
|
||||
parent_table: :packages_debian_group_distributions,
|
||||
parent_sharding_key: :group_id,
|
||||
foreign_key: :distribution_id
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class QueueBackfillPackagesDebianGroupComponentsGroupId < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.2'
|
||||
restrict_gitlab_migration gitlab_schema: :gitlab_main_cell
|
||||
|
||||
MIGRATION = "BackfillPackagesDebianGroupComponentsGroupId"
|
||||
DELAY_INTERVAL = 2.minutes
|
||||
BATCH_SIZE = 1000
|
||||
SUB_BATCH_SIZE = 100
|
||||
|
||||
def up
|
||||
queue_batched_background_migration(
|
||||
MIGRATION,
|
||||
:packages_debian_group_components,
|
||||
:id,
|
||||
:group_id,
|
||||
:packages_debian_group_distributions,
|
||||
:group_id,
|
||||
:distribution_id,
|
||||
job_interval: DELAY_INTERVAL,
|
||||
batch_size: BATCH_SIZE,
|
||||
sub_batch_size: SUB_BATCH_SIZE
|
||||
)
|
||||
end
|
||||
|
||||
def down
|
||||
delete_batched_background_migration(
|
||||
MIGRATION,
|
||||
:packages_debian_group_components,
|
||||
:id,
|
||||
[
|
||||
:group_id,
|
||||
:packages_debian_group_distributions,
|
||||
:group_id,
|
||||
:distribution_id
|
||||
]
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
29b9a182ff9db53b705923a817f41a4893ca54df4184d326c1ff9f0103083bc1
|
||||
|
|
@ -0,0 +1 @@
|
|||
4cc2959bb2b6198e0d7fc0f23484d5957cc76b73a38b82a23cac63468b71bf78
|
||||
|
|
@ -0,0 +1 @@
|
|||
c763d1d0c22d293e42b6e03b5c98dbbbe5cf27521653d891a8fcf33866fd3ea7
|
||||
|
|
@ -0,0 +1 @@
|
|||
74ade0f03dd229f96ca0bb2e48d7c3b871efdefbc35d6dbad042c209bd06907a
|
||||
|
|
@ -0,0 +1 @@
|
|||
8685ba2cb4bc067058261bdc71defb338fb13013f917eabe5fd897ba59d41a55
|
||||
|
|
@ -0,0 +1 @@
|
|||
581c79b6e0faa4a2e17211a1732514ed3e0fab959a8ac541cc1431bafc461a73
|
||||
|
|
@ -0,0 +1 @@
|
|||
0021e3a5f6b67e11435a04c2d585abb37f7026dd647d0814c9b3b11f6d334a69
|
||||
|
|
@ -0,0 +1 @@
|
|||
3642e9ba86c2060b2938eaa81b19b76a7000ce9a76eab03bd4b5093b170804c4
|
||||
|
|
@ -0,0 +1 @@
|
|||
2d77cf72555aa598191c1764ebe14f2be6da97737761d3adb9131207589eea85
|
||||
|
|
@ -0,0 +1 @@
|
|||
40ebb133d35e36ea503f1ac50770d863d8d9d433f4c45ac64501c169021a37aa
|
||||
|
|
@ -1329,6 +1329,22 @@ RETURN NEW;
|
|||
END
|
||||
$$;
|
||||
|
||||
CREATE FUNCTION trigger_8d002f38bdef() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
BEGIN
|
||||
IF NEW."group_id" IS NULL THEN
|
||||
SELECT "group_id"
|
||||
INTO NEW."group_id"
|
||||
FROM "packages_debian_group_distributions"
|
||||
WHERE "packages_debian_group_distributions"."id" = NEW."distribution_id";
|
||||
END IF;
|
||||
|
||||
RETURN NEW;
|
||||
|
||||
END
|
||||
$$;
|
||||
|
||||
CREATE FUNCTION trigger_8d17725116fe() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
|
|
@ -4968,7 +4984,8 @@ ALTER SEQUENCE analytics_cycle_analytics_group_value_streams_id_seq OWNED BY ana
|
|||
|
||||
CREATE TABLE analytics_cycle_analytics_stage_event_hashes (
|
||||
id bigint NOT NULL,
|
||||
hash_sha256 bytea
|
||||
hash_sha256 bytea,
|
||||
organization_id bigint DEFAULT 1 NOT NULL
|
||||
);
|
||||
|
||||
CREATE SEQUENCE analytics_cycle_analytics_stage_event_hashes_id_seq
|
||||
|
|
@ -13954,6 +13971,7 @@ CREATE TABLE packages_debian_group_components (
|
|||
updated_at timestamp with time zone NOT NULL,
|
||||
distribution_id bigint NOT NULL,
|
||||
name text NOT NULL,
|
||||
group_id bigint,
|
||||
CONSTRAINT check_a9bc7d85be CHECK ((char_length(name) <= 255))
|
||||
);
|
||||
|
||||
|
|
@ -26689,7 +26707,7 @@ CREATE INDEX index_customer_relations_contacts_on_organization_id ON customer_re
|
|||
|
||||
CREATE UNIQUE INDEX index_customer_relations_contacts_on_unique_email_per_group ON customer_relations_contacts USING btree (group_id, lower(email), id);
|
||||
|
||||
CREATE UNIQUE INDEX index_cycle_analytics_stage_event_hashes_on_hash_sha_256 ON analytics_cycle_analytics_stage_event_hashes USING btree (hash_sha256);
|
||||
CREATE UNIQUE INDEX index_cycle_analytics_stage_event_hashes_on_org_id_sha_256 ON analytics_cycle_analytics_stage_event_hashes USING btree (organization_id, hash_sha256);
|
||||
|
||||
CREATE UNIQUE INDEX index_daily_build_group_report_results_unique_columns ON ci_daily_build_group_report_results USING btree (project_id, ref_path, date, group_name);
|
||||
|
||||
|
|
@ -28111,6 +28129,8 @@ CREATE INDEX index_packages_conan_metadata_on_project_id ON packages_conan_metad
|
|||
|
||||
CREATE INDEX index_packages_debian_group_component_files_on_component_id ON packages_debian_group_component_files USING btree (component_id);
|
||||
|
||||
CREATE INDEX index_packages_debian_group_components_on_group_id ON packages_debian_group_components USING btree (group_id);
|
||||
|
||||
CREATE INDEX index_packages_debian_group_distribution_keys_on_group_id ON packages_debian_group_distribution_keys USING btree (group_id);
|
||||
|
||||
CREATE INDEX index_packages_debian_group_distributions_on_creator_id ON packages_debian_group_distributions USING btree (creator_id);
|
||||
|
|
@ -31529,6 +31549,8 @@ CREATE TRIGGER trigger_8a38ce2327de BEFORE INSERT OR UPDATE ON boards_epic_user_
|
|||
|
||||
CREATE TRIGGER trigger_8ac78f164b2d BEFORE INSERT OR UPDATE ON design_management_repositories FOR EACH ROW EXECUTE FUNCTION trigger_8ac78f164b2d();
|
||||
|
||||
CREATE TRIGGER trigger_8d002f38bdef BEFORE INSERT OR UPDATE ON packages_debian_group_components FOR EACH ROW EXECUTE FUNCTION trigger_8d002f38bdef();
|
||||
|
||||
CREATE TRIGGER trigger_8d17725116fe BEFORE INSERT OR UPDATE ON merge_request_reviewers FOR EACH ROW EXECUTE FUNCTION trigger_8d17725116fe();
|
||||
|
||||
CREATE TRIGGER trigger_8e66b994e8f0 BEFORE INSERT OR UPDATE ON audit_events_streaming_event_type_filters FOR EACH ROW EXECUTE FUNCTION trigger_8e66b994e8f0();
|
||||
|
|
@ -32936,6 +32958,9 @@ ALTER TABLE ONLY abuse_events
|
|||
ALTER TABLE ONLY user_preferences
|
||||
ADD CONSTRAINT fk_e5e029c10b FOREIGN KEY (home_organization_id) REFERENCES organizations(id) ON DELETE SET NULL;
|
||||
|
||||
ALTER TABLE ONLY packages_debian_group_components
|
||||
ADD CONSTRAINT fk_e63e8ee3b1 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY merge_requests
|
||||
ADD CONSTRAINT fk_e719a85f8a FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL;
|
||||
|
||||
|
|
@ -33038,6 +33063,9 @@ ALTER TABLE ONLY epic_user_mentions
|
|||
ALTER TABLE p_ci_pipeline_variables
|
||||
ADD CONSTRAINT fk_f29c5f4380 FOREIGN KEY (pipeline_id) REFERENCES ci_pipelines(id) ON DELETE CASCADE;
|
||||
|
||||
ALTER TABLE ONLY ci_pipeline_variables
|
||||
ADD CONSTRAINT fk_f29c5f4380_p FOREIGN KEY (partition_id, pipeline_id) REFERENCES ci_pipelines(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
|
||||
|
||||
ALTER TABLE ONLY zoekt_indices
|
||||
ADD CONSTRAINT fk_f34800a202 FOREIGN KEY (zoekt_node_id) REFERENCES zoekt_nodes(id) ON DELETE CASCADE;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,10 @@
|
|||
{{- $e := 0 -}}
|
||||
{{- $w := 0 -}}
|
||||
{{- $s := 0 -}}
|
||||
{{- $f := 0 -}}
|
||||
|
||||
{{- /* Range over the linted files */ -}}
|
||||
|
||||
{{- range .Files}}
|
||||
|
||||
{{- $f = add1 $f -}}
|
||||
{{- $path := .Path | underline -}}
|
||||
|
||||
{{- /* Range over the file's alerts */ -}}
|
||||
|
|
@ -48,4 +45,4 @@
|
|||
{{end -}}
|
||||
{{end -}}
|
||||
|
||||
{{- $e}} {{"errors" | red}}, {{$w}} {{"warnings" | yellow}}, and {{$s}} {{"suggestions" | blue}} found.
|
||||
{{- $e}} {{"errors" | red}}, {{$w}} {{"warnings" | yellow}}, and {{$s}} {{"suggestions" | blue}} found in {{.LintedTotal}} {{.LintedTotal | int | plural "file" "files"}}.
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ random, fully up-to-date replica of the repository on another healthy Gitaly nod
|
|||
replication job is scheduled only if there are no other replication jobs pending for the target
|
||||
repository.
|
||||
|
||||
The reconciliation frequency can be changed via the configuration. The value can be any valid
|
||||
The reconciliation frequency can be changed through the configuration. The value can be any valid
|
||||
[Go duration value](https://pkg.go.dev/time#ParseDuration). Values below 0 disable the feature.
|
||||
|
||||
Examples:
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ DETAILS:
|
|||
**Tier:** Free, Premium, Ultimate
|
||||
**Offering:** Self-managed
|
||||
|
||||
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/350748) in GitLab 15.7. Feature flag `ci_secure_files` removed.
|
||||
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/350748) and feature flag `ci_secure_files` removed in GitLab 15.7.
|
||||
|
||||
You can securely store up to 100 files for use in CI/CD pipelines as secure files.
|
||||
These files are stored securely outside of your project's repository and are not version controlled.
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ DETAILS:
|
|||
**Tier:** Free, Premium, Ultimate
|
||||
**Offering:** GitLab.com, Self-managed, GitLab Dedicated
|
||||
|
||||
There are two primary ways to incorporate [Docker](https://www.docker.com) into your CI/CD workflow:
|
||||
You can incorporate [Docker](https://www.docker.com) into your CI/CD workflow in two primary ways:
|
||||
|
||||
- **[Run your CI/CD jobs](using_docker_images.md) in Docker containers.**
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ DETAILS:
|
|||
**Tier:** Free, Premium, Ultimate
|
||||
**Offering:** GitLab.com, Self-managed, GitLab Dedicated
|
||||
|
||||
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/350748) in GitLab 15.7. Feature flag `ci_secure_files` removed.
|
||||
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/350748) and feature flag `ci_secure_files` removed in GitLab 15.7.
|
||||
|
||||
This feature is part of [Mobile DevOps](../mobile_devops.md) developed by [GitLab Incubation Engineering](https://handbook.gitlab.com/handbook/engineering/development/incubation/).
|
||||
The feature is still in development, but you can:
|
||||
|
|
|
|||
|
|
@ -475,7 +475,7 @@ test:
|
|||
|
||||
In this example, GitLab checks for the existence of `file.md` in the current project.
|
||||
|
||||
There is a known issue if you configure `include` with `rules:exists` in an include file
|
||||
Review your configuration carefully if you use `include` with `rules:exists` in an include file
|
||||
from a different project. GitLab checks for the existence of the file in the _other_ project.
|
||||
For example:
|
||||
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ We don't have a specific number, but we need to have better numbers for flaky te
|
|||
|
||||
## Faster feedback for some merge requests
|
||||
|
||||
### Broken Master Fixes
|
||||
### Broken `master` Fixes
|
||||
|
||||
When you need to [fix a broken `master`](https://handbook.gitlab.com/handbook/engineering/workflow/#resolution-of-broken-master), you can add the `pipeline::expedited` label to expedite the pipelines that run on the merge request.
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 8.4 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB |
|
|
@ -11,21 +11,29 @@ DETAILS:
|
|||
**Offering:** GitLab.com, Self-managed, GitLab Dedicated
|
||||
|
||||
FLAG:
|
||||
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flag](../administration/feature_flags.md) named `sourcegraph`.
|
||||
On self-managed GitLab, by default this feature is available. To hide the feature,
|
||||
an administrator can [disable the feature flag](../administration/feature_flags.md) named `sourcegraph`.
|
||||
On GitLab.com, this feature is available for public projects only.
|
||||
|
||||
[Sourcegraph](https://sourcegraph.com) provides code intelligence features, natively integrated into the GitLab UI.
|
||||
[Sourcegraph](https://sourcegraph.com) provides code intelligence features in the GitLab UI.
|
||||
When enabled, participating projects display a code intelligence popover in
|
||||
these code views:
|
||||
|
||||
For GitLab.com users, see [Sourcegraph for GitLab.com](#sourcegraph-for-gitlabcom).
|
||||
- Merge request diffs
|
||||
- Commit view
|
||||
- File view
|
||||
|
||||

|
||||
When visiting one of these views, hover over a code reference to see a popover with:
|
||||
|
||||
- Details on how this reference was defined.
|
||||
- **Go to definition**, which goes to the line of code where this reference was defined.
|
||||
- **Find references**, which goes to the configured Sourcegraph instance, showing a list of references to the highlighted code.
|
||||
|
||||
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
|
||||
For an overview, watch the video [Sourcegraph's new GitLab native integration](https://www.youtube.com/watch?v=LjVxkt4_sEA).
|
||||
<!-- Video published on 2019-11-12 -->
|
||||
|
||||
NOTE:
|
||||
This feature requires user opt-in. After Sourcegraph has been enabled for your GitLab instance,
|
||||
you can choose to enable Sourcegraph [through your user preferences](#enable-sourcegraph-in-user-preferences).
|
||||
For more information, see [epic 2201](https://gitlab.com/groups/gitlab-org/-/epics/2201).
|
||||
|
||||
## Set up for self-managed GitLab instances
|
||||
|
||||
|
|
@ -33,79 +41,67 @@ DETAILS:
|
|||
**Tier:** Free, Premium, Ultimate
|
||||
**Offering:** Self-managed, GitLab Dedicated
|
||||
|
||||
Before you can enable Sourcegraph code intelligence in GitLab you must:
|
||||
configure a Sourcegraph instance with your GitLab instance as an external service.
|
||||
Prerequisites:
|
||||
|
||||
### Set up a self-managed Sourcegraph instance
|
||||
- You must have a Sourcegraph instance [configured and running](https://docs.sourcegraph.com/admin)
|
||||
with your GitLab instance as an external service.
|
||||
- If your Sourcegraph instance uses a HTTPS connection to GitLab, you must
|
||||
[configure HTTPS](https://docs.sourcegraph.com/admin/http_https_configuration)
|
||||
for your Sourcegraph instance.
|
||||
|
||||
DETAILS:
|
||||
**Tier:** Free, Premium, Ultimate
|
||||
**Offering:** Self-managed, GitLab Dedicated
|
||||
In Sourcegraph:
|
||||
|
||||
If you are new to Sourcegraph, head over to the [Sourcegraph installation documentation](https://docs.sourcegraph.com/admin) and get your instance up and running.
|
||||
1. Go to the site Admin Area.
|
||||
1. Optional. [Configure your GitLab external service](https://docs.sourcegraph.com/admin/external_service/gitlab).
|
||||
If your GitLab repositories are already searchable in Sourcegraph, you can skip this step.
|
||||
1. Confirm that you can search your repositories from GitLab in your Sourcegraph instance by running a test query.
|
||||
1. Add your GitLab instance URL to the [`corsOrigin` setting](https://docs.sourcegraph.com/admin/config/site_config#corsOrigin)
|
||||
in your Sourcegraph configuration.
|
||||
|
||||
If you are using an HTTPS connection to GitLab, you must [configure HTTPS](https://docs.sourcegraph.com/admin/http_https_configuration) for your Sourcegraph instance.
|
||||
|
||||
### Connect your Sourcegraph instance to your GitLab instance
|
||||
|
||||
1. Go to the site Admin Area in Sourcegraph.
|
||||
1. [Configure your GitLab external service](https://docs.sourcegraph.com/admin/external_service/gitlab).
|
||||
You can skip this step if you already have your GitLab repositories searchable in Sourcegraph.
|
||||
1. Validate that you can search your repositories from GitLab in your Sourcegraph instance by running a test query.
|
||||
1. Add your GitLab instance URL to the [`corsOrigin` setting](https://docs.sourcegraph.com/admin/config/site_config#corsOrigin) in your site configuration.
|
||||
Next, configure your GitLab instance to connect to your Sourcegraph instance.
|
||||
|
||||
### Configure your GitLab instance with Sourcegraph
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- You must be an administrator.
|
||||
|
||||
1. On the left sidebar, at the bottom, select **Admin Area**.
|
||||
1. Select **Settings > General**.
|
||||
1. Expand the **Sourcegraph** configuration section.
|
||||
1. Check **Enable Sourcegraph**.
|
||||
1. Set the Sourcegraph URL to your Sourcegraph instance, such as `https://sourcegraph.example.com`.
|
||||
|
||||

|
||||
1. Expand **Sourcegraph**.
|
||||
1. Select **Enable Sourcegraph**.
|
||||
1. Optional. Select **Block on private and internal projects**.
|
||||
1. Set the **Sourcegraph URL** to your Sourcegraph instance, such as `https://sourcegraph.example.com`.
|
||||
1. Select **Save changes**.
|
||||
|
||||
## Enable Sourcegraph in user preferences
|
||||
|
||||
If a GitLab administrator has enabled Sourcegraph, you can enable this feature in your user preferences.
|
||||
Users on self-managed instances must also configure their user settings to use the
|
||||
Sourcegraph integration.
|
||||
|
||||
In GitLab:
|
||||
On GitLab.com, the integration is available for all public projects.
|
||||
Private projects are not supported.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- If on a self-managed instance, Sourcegraph must be enabled.
|
||||
|
||||
To enable this feature in your GitLab user preferences:
|
||||
|
||||
1. On the left sidebar, select your avatar.
|
||||
1. Select **Preferences**.
|
||||
1. In the **Integrations** section, select the checkbox under **Sourcegraph**.
|
||||
1. Scroll to the **Integrations** section. Under **Sourcegraph**, select **Enable integrated code intelligence on code views**.
|
||||
1. Select **Save changes**.
|
||||
|
||||

|
||||
## References
|
||||
|
||||
## Using Sourcegraph code intelligence
|
||||
|
||||
Once enabled, participating projects display a code intelligence popover available in
|
||||
the following code views:
|
||||
|
||||
- Merge request diffs
|
||||
- Commit view
|
||||
- File view
|
||||
|
||||
When visiting one of these views, you can now hover over a code reference to see a popover with:
|
||||
|
||||
- Details on how this reference was defined.
|
||||
- **Go to definition**, which goes to the line of code where this reference was defined.
|
||||
- **Find references**, which goes to the configured Sourcegraph instance, showing a list of references to the highlighted code.
|
||||
|
||||

|
||||
|
||||
## Sourcegraph for GitLab.com
|
||||
|
||||
Sourcegraph is available for all public projects on GitLab.com.
|
||||
Private projects are not supported.
|
||||
For more information, see [epic 2201](https://gitlab.com/groups/gitlab-org/-/epics/2201).
|
||||
|
||||
## Sourcegraph and privacy
|
||||
|
||||
See the [Sourcegraph browser extension documentation](https://docs.sourcegraph.com/integration/browser_extension/references/privacy).
|
||||
- [Privacy information](https://sourcegraph.com/docs/integration/browser_extension/references/privacy) in the Sourcegraph documentation
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Sourcegraph isn't working
|
||||
### Sourcegraph is not working
|
||||
|
||||
If you enabled Sourcegraph for your project but it isn't working, Sourcegraph may not have indexed the project yet. You can check if Sourcegraph is available for your project by visiting `https://sourcegraph.com/gitlab.com/<project-path>`replacing `<project-path>` with the path to your GitLab project.
|
||||
If you enabled Sourcegraph for your project but it is not working, Sourcegraph might not
|
||||
have indexed the project yet. You can check if Sourcegraph is available for your project
|
||||
by visiting `https://sourcegraph.com/gitlab.com/<project-path>`, replacing `<project-path>`
|
||||
with the path to your GitLab project.
|
||||
|
|
|
|||
|
|
@ -79,6 +79,11 @@ pre-push:
|
|||
files: git diff --name-only --diff-filter=d $(git merge-base origin/master HEAD)..HEAD
|
||||
glob: 'data/deprecations/*.yml'
|
||||
run: echo "Changes to deprecation files detected. Checking deprecations..\n"; bundle exec rake gitlab:docs:check_deprecations
|
||||
docs-link-check:
|
||||
tags: documentation
|
||||
files: git diff --name-only $(git merge-base origin/master HEAD)..HEAD
|
||||
glob: 'doc/*.md'
|
||||
run: scripts/lint-docs-link-check.sh
|
||||
db-schema-changes:
|
||||
tags: database
|
||||
files: git diff --name-only --diff-filter=d $(git merge-base origin/master HEAD)..HEAD
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Gitlab
|
||||
module BackgroundMigration
|
||||
class BackfillPackagesDebianGroupComponentsGroupId < BackfillDesiredShardingKeyJob
|
||||
operation_name :backfill_packages_debian_group_components_group_id
|
||||
feature_category :package_registry
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -6026,9 +6026,6 @@ msgstr ""
|
|||
msgid "Analytics|Dashboards are created by editing the projects dashboard files."
|
||||
msgstr ""
|
||||
|
||||
msgid "Analytics|Data"
|
||||
msgstr ""
|
||||
|
||||
msgid "Analytics|Data table"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -6146,9 +6143,6 @@ msgstr ""
|
|||
msgid "Analytics|Refresh the page to try again or see %{linkStart}troubleshooting documentation%{linkEnd}."
|
||||
msgstr ""
|
||||
|
||||
msgid "Analytics|Resulting Data"
|
||||
msgstr ""
|
||||
|
||||
msgid "Analytics|Save and add to Dashboard"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -9222,6 +9216,9 @@ msgstr ""
|
|||
msgid "BranchRules|Allowed to push and merge (%{total})"
|
||||
msgstr ""
|
||||
|
||||
msgid "BranchRules|Allowed to push and merge updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "BranchRules|Allows force push"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -9300,6 +9297,9 @@ msgstr ""
|
|||
msgid "BranchRules|Edit allowed to merge"
|
||||
msgstr ""
|
||||
|
||||
msgid "BranchRules|Edit allowed to push and merge"
|
||||
msgstr ""
|
||||
|
||||
msgid "BranchRules|From users with push access."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -150,6 +150,7 @@ fi
|
|||
if [ -n "$1" ]
|
||||
then
|
||||
MD_DOC_PATH="$@"
|
||||
MD_DOC_PATH_VALE="$@"
|
||||
# shellcheck disable=2059
|
||||
printf "${COLOR_GREEN}INFO: List of files specified on command line. Running Markdownlint and Vale for only those files...${COLOR_RESET}\n"
|
||||
elif [ -n "${CI_MERGE_REQUEST_IID}" ]
|
||||
|
|
@ -164,10 +165,12 @@ then
|
|||
if grep -E "\.vale|\.markdownlint|lint-doc\.sh|docs\.gitlab-ci\.yml" < $DOC_CHANGES_FILE
|
||||
then
|
||||
MD_DOC_PATH=${MD_DOC_PATH:-'doc/{*,**/*}.md'}
|
||||
MD_DOC_PATH_VALE=${MD_DOC_PATH_VALE:-'doc/'}
|
||||
# shellcheck disable=2059
|
||||
printf "${COLOR_GREEN}INFO: Vale, Markdownlint, lint-doc.sh, or pipeline configuration changed. Testing all files.${COLOR_RESET}\n"
|
||||
else
|
||||
MD_DOC_PATH=$(cat $DOC_CHANGES_FILE)
|
||||
MD_DOC_PATH_VALE=$(cat $DOC_CHANGES_FILE)
|
||||
if [ -n "${MD_DOC_PATH}" ]
|
||||
then
|
||||
# shellcheck disable=2059
|
||||
|
|
@ -177,6 +180,7 @@ then
|
|||
rm $DOC_CHANGES_FILE
|
||||
else
|
||||
MD_DOC_PATH=${MD_DOC_PATH:-'doc/{*,**/*}.md'}
|
||||
MD_DOC_PATH_VALE=${MD_DOC_PATH_VALE:-'doc/'}
|
||||
# shellcheck disable=2059
|
||||
printf "${COLOR_GREEN}INFO: No merge request pipeline detected. Running Markdownlint and Vale on all files...${COLOR_RESET}\n"
|
||||
fi
|
||||
|
|
@ -235,7 +239,7 @@ fi
|
|||
|
||||
# shellcheck disable=2059
|
||||
printf "${COLOR_GREEN}INFO: Looking for Vale to lint prose, either installed locally or available in documentation linting image...${COLOR_RESET}\n"
|
||||
run_locally_or_in_container 'vale' "--minAlertLevel error --output=doc/.vale/vale.tmpl" "${MD_DOC_PATH}"
|
||||
run_locally_or_in_container 'vale' "--minAlertLevel error --output=doc/.vale/vale.tmpl" "${MD_DOC_PATH_VALE}"
|
||||
|
||||
if [ "$ERRORCODE" -ne 0 ]
|
||||
then
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
|
||||
COLOR_ERROR="\e[31m"
|
||||
COLOR_INFO="\e[32m"
|
||||
COLOR_WARN="\e[33m"
|
||||
COLOR_RESET="\e[39m"
|
||||
|
||||
# shellcheck disable=2059
|
||||
if command -v lychee > /dev/null; then
|
||||
printf "${COLOR_INFO}INFO: Lychee found! Checking documentation links...${COLOR_RESET}\n"
|
||||
if lychee --offline --no-progress --include-fragments doc; then
|
||||
printf "${COLOR_INFO}INFO: Documentation link test passed!${COLOR_RESET}\n"
|
||||
else
|
||||
printf "${COLOR_ERROR}ERROR: Documentation link test failed!${COLOR_RESET}\n"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
printf "${COLOR_WARN}WARN: Lychee not found! For more information, see <https://lychee.cli.rs/installation/>.${COLOR_RESET}\n"
|
||||
fi
|
||||
|
|
@ -18,6 +18,7 @@ RSpec.describe 'Database schema', feature_category: :database do
|
|||
notes: %w[namespace_id], # this index is added in an async manner, hence it needs to be ignored in the first phase.
|
||||
users: [%w[accepted_term_id]],
|
||||
ci_builds: [%w[partition_id stage_id], %w[partition_id execution_config_id], %w[partition_id upstream_pipeline_id], %w[auto_canceled_by_partition_id auto_canceled_by_id], %w[partition_id commit_id]], # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142804#note_1745483081
|
||||
ci_pipeline_variables: [%w[partition_id pipeline_id]], # index on pipeline_id is sufficient
|
||||
p_ci_builds: [%w[partition_id stage_id], %w[partition_id execution_config_id]], # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142804#note_1745483081
|
||||
ai_testing_terms_acceptances: %w[user_id], # testing terms only have 1 entry, and if the user is deleted the record should remain
|
||||
snippets: %w[organization_id] # this index is added in an async manner, hence it needs to be ignored in the first phase.
|
||||
|
|
@ -44,6 +45,7 @@ RSpec.describe 'Database schema', feature_category: :database do
|
|||
analytics_cycle_analytics_aggregations: %w[last_full_issues_id last_full_merge_requests_id last_incremental_issues_id last_full_run_issues_id last_full_run_merge_requests_id last_incremental_merge_requests_id last_consistency_check_issues_stage_event_hash_id last_consistency_check_issues_issuable_id last_consistency_check_merge_requests_stage_event_hash_id last_consistency_check_merge_requests_issuable_id],
|
||||
analytics_cycle_analytics_merge_request_stage_events: %w[author_id group_id merge_request_id milestone_id project_id stage_event_hash_id state_id],
|
||||
analytics_cycle_analytics_issue_stage_events: %w[author_id group_id issue_id milestone_id project_id stage_event_hash_id state_id sprint_id],
|
||||
analytics_cycle_analytics_stage_event_hashes: %w[organization_id],
|
||||
audit_events: %w[author_id entity_id target_id],
|
||||
user_audit_events: %w[author_id user_id target_id],
|
||||
group_audit_events: %w[author_id group_id target_id],
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
FactoryBot.define do
|
||||
factory :cycle_analytics_aggregation, class: 'Analytics::CycleAnalytics::Aggregation' do
|
||||
namespace { association(:group) }
|
||||
namespace { association(:group, :with_organization) }
|
||||
|
||||
enabled { true }
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ FactoryBot.define do
|
|||
start_event_identifier { Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestCreated.identifier }
|
||||
end_event_identifier { Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestMerged.identifier }
|
||||
|
||||
namespace { association(:group) }
|
||||
namespace { association(:group, :with_organization) }
|
||||
value_stream { association(:cycle_analytics_value_stream, namespace: namespace) }
|
||||
|
||||
after(:build) do |stage, evaluator|
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import MockAdapter from 'axios-mock-adapter';
|
||||
import { GlDrawer } from '@gitlab/ui';
|
||||
import { GlDrawer, GlFormGroup, GlFormSelect } from '@gitlab/ui';
|
||||
import { nextTick } from 'vue';
|
||||
import axios from '~/lib/utils/axios_utils';
|
||||
import {
|
||||
|
|
@ -7,9 +7,10 @@ import {
|
|||
HTTP_STATUS_UNPROCESSABLE_ENTITY,
|
||||
HTTP_STATUS_INTERNAL_SERVER_ERROR,
|
||||
} from '~/lib/utils/http_status';
|
||||
import { mountExtended } from 'helpers/vue_test_utils_helper';
|
||||
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
|
||||
import waitForPromises from 'helpers/wait_for_promises';
|
||||
import ReportActions from '~/admin/abuse_report/components/report_actions.vue';
|
||||
import { stubComponent } from 'helpers/stub_component';
|
||||
import {
|
||||
ACTIONS_I18N,
|
||||
SUCCESS_ALERT,
|
||||
|
|
@ -38,53 +39,73 @@ describe('ReportActions', () => {
|
|||
|
||||
const clickActionsButton = () => wrapper.findByTestId('actions-button').vm.$emit('click');
|
||||
const isDrawerOpen = () => wrapper.findComponent(GlDrawer).props('open');
|
||||
const findErrorFor = (id) => wrapper.findByTestId(id).find('.d-block.invalid-feedback');
|
||||
const findErrorFor = (id) => wrapper.findByTestId(id).attributes('invalid-feedback');
|
||||
const findUserActionOptions = () => wrapper.findByTestId('action-select');
|
||||
const setCloseReport = (close) => wrapper.findByTestId('close').find('input').setChecked(close);
|
||||
const setSelectOption = (id, value) =>
|
||||
wrapper.findByTestId(`${id}-select`).find(`option[value=${value}]`).setSelected();
|
||||
const setCloseReport = (close) => {
|
||||
wrapper.findByTestId('close').vm.$emit('change', close);
|
||||
wrapper.findByTestId('close').vm.$emit('input', close);
|
||||
};
|
||||
const setSelectOption = (id, value) => {
|
||||
wrapper.findByTestId(`${id}-select`).vm.$emit('change', value);
|
||||
wrapper.findByTestId(`${id}-select`).vm.$emit('input', value);
|
||||
};
|
||||
const selectAction = (chosenAction) => setSelectOption('action', chosenAction);
|
||||
const selectReason = (reason) => setSelectOption('reason', reason);
|
||||
const setComment = (comment) => wrapper.findByTestId('comment').find('input').setValue(comment);
|
||||
const setComment = (comment) => wrapper.findByTestId('comment').vm.$emit('input', comment);
|
||||
const submitForm = () => wrapper.findByTestId('submit-button').vm.$emit('click');
|
||||
const findReasonOptions = () => wrapper.findByTestId('reason-select');
|
||||
|
||||
const createComponent = (props = {}) => {
|
||||
wrapper = mountExtended(ReportActions, {
|
||||
wrapper = shallowMountExtended(ReportActions, {
|
||||
propsData: {
|
||||
user,
|
||||
report,
|
||||
...props,
|
||||
},
|
||||
stubs: {
|
||||
GlFormSelect: stubComponent(GlFormSelect, {
|
||||
props: ['options'],
|
||||
}),
|
||||
GlFormGroup: stubComponent(GlFormGroup, {
|
||||
props: ['state'],
|
||||
}),
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
axiosMock = new MockAdapter(axios);
|
||||
createComponent();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
axiosMock.restore();
|
||||
});
|
||||
|
||||
it('initially hides the drawer', () => {
|
||||
expect(isDrawerOpen()).toBe(false);
|
||||
describe('Initial state', () => {
|
||||
beforeEach(() => {
|
||||
createComponent();
|
||||
});
|
||||
|
||||
it('initially hides the drawer', () => {
|
||||
expect(isDrawerOpen()).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('actions', () => {
|
||||
describe('when logged in user is not the user being reported', () => {
|
||||
beforeEach(() => {
|
||||
createComponent();
|
||||
|
||||
clickActionsButton();
|
||||
});
|
||||
|
||||
it('shows "No action", "Block user", "Ban user" and "Delete user" options', () => {
|
||||
const options = findUserActionOptions().findAll('option');
|
||||
const options = findUserActionOptions().props('options');
|
||||
|
||||
expect(options).toHaveLength(USER_ACTION_OPTIONS.length);
|
||||
|
||||
USER_ACTION_OPTIONS.forEach((userAction, index) => {
|
||||
expect(options.at(index).text()).toBe(userAction.text);
|
||||
expect(options[index].text).toBe(userAction.text);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -92,29 +113,33 @@ describe('ReportActions', () => {
|
|||
describe('when logged in user is the user being reported', () => {
|
||||
beforeEach(() => {
|
||||
gon.current_username = user.username;
|
||||
|
||||
createComponent();
|
||||
clickActionsButton();
|
||||
});
|
||||
|
||||
it('only shows "No action" option', () => {
|
||||
const options = findUserActionOptions().findAll('option');
|
||||
const options = findUserActionOptions().props('options');
|
||||
|
||||
expect(options).toHaveLength(1);
|
||||
expect(options.at(0).text()).toBe(NO_ACTION.text);
|
||||
expect(options[0].text).toBe(NO_ACTION.text);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('reasons', () => {
|
||||
beforeEach(() => {
|
||||
createComponent();
|
||||
|
||||
clickActionsButton();
|
||||
});
|
||||
|
||||
it('shows all non-trust reasons by default', () => {
|
||||
const reasons = findReasonOptions().findAll('option');
|
||||
const reasons = findReasonOptions().props('options');
|
||||
expect(reasons).toHaveLength(REASON_OPTIONS.length);
|
||||
|
||||
REASON_OPTIONS.forEach((reason, index) => {
|
||||
expect(reasons.at(index).text()).toBe(reason.text);
|
||||
expect(reasons[index].text).toBe(reason.text);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -127,7 +152,7 @@ describe('ReportActions', () => {
|
|||
if (userAction !== TRUST_ACTION && userAction !== NO_ACTION) {
|
||||
selectAction(userAction.value);
|
||||
|
||||
reasons = findReasonOptions().findAll('option');
|
||||
reasons = findReasonOptions().props('options');
|
||||
expect(reasons).toHaveLength(reasonLength);
|
||||
}
|
||||
});
|
||||
|
|
@ -135,22 +160,25 @@ describe('ReportActions', () => {
|
|||
});
|
||||
|
||||
describe('when user selects "Trust user"', () => {
|
||||
beforeEach(() => {
|
||||
selectAction(TRUST_ACTION.value);
|
||||
beforeEach(async () => {
|
||||
await selectAction(TRUST_ACTION.value);
|
||||
await nextTick();
|
||||
});
|
||||
|
||||
it('only shows "Confirmed trusted user" reason', () => {
|
||||
const reasons = findReasonOptions().findAll('option');
|
||||
const reasons = findReasonOptions().props('options');
|
||||
|
||||
expect(reasons).toHaveLength(1);
|
||||
|
||||
expect(reasons.at(0).text()).toBe(TRUST_REASON.text);
|
||||
expect(reasons[0].text).toBe(TRUST_REASON.text);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('when clicking the actions button', () => {
|
||||
beforeEach(() => {
|
||||
createComponent();
|
||||
|
||||
clickActionsButton();
|
||||
});
|
||||
|
||||
|
|
@ -183,15 +211,21 @@ describe('ReportActions', () => {
|
|||
|
||||
it(`${messageShown ? 'shows' : 'hides'} ${errorFor} error message`, () => {
|
||||
if (messageShown) {
|
||||
expect(findErrorFor(errorFor).text()).toBe(ACTIONS_I18N.requiredFieldFeedback);
|
||||
expect(findErrorFor(errorFor)).toBe(ACTIONS_I18N.requiredFieldFeedback);
|
||||
} else {
|
||||
expect(findErrorFor(errorFor).exists()).toBe(false);
|
||||
expect(wrapper.findByTestId(errorFor).props('state')).toBe(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('when submitting a valid form', () => {
|
||||
beforeEach(() => {
|
||||
createComponent();
|
||||
|
||||
clickActionsButton();
|
||||
});
|
||||
|
||||
describe.each`
|
||||
response | success | responseStatus | responseData | alertType | alertMessage
|
||||
${'successful'} | ${true} | ${HTTP_STATUS_OK} | ${{ message: 'success!' }} | ${SUCCESS_ALERT} | ${'success!'}
|
||||
|
|
|
|||
|
|
@ -130,7 +130,6 @@ describe('View branch rules', () => {
|
|||
const findStatusChecksTitle = () => wrapper.findByText(I18N.statusChecksTitle);
|
||||
const findDeleteRuleButton = () => wrapper.findByTestId('delete-rule-button');
|
||||
const findEditRuleNameButton = () => wrapper.findByTestId('edit-rule-name-button');
|
||||
const findEditRuleButton = () => wrapper.findByTestId('edit-rule-button');
|
||||
const findDeleteRuleModal = () => wrapper.findComponent(GlModal);
|
||||
const findBranchRuleModal = () => wrapper.findComponent(BranchRuleModal);
|
||||
const findBranchRuleListbox = () => wrapper.findComponent(GlCollapsibleListbox);
|
||||
|
|
@ -285,6 +284,27 @@ describe('View branch rules', () => {
|
|||
'/project/Project/-/settings/repository/branch_rules?branch=main',
|
||||
);
|
||||
});
|
||||
|
||||
it('shows an alert if response contains an error', async () => {
|
||||
const mockResponse = { branchRuleUpdate: { errors: ['some error'], branchRule: null } };
|
||||
const editMutationHandler = jest
|
||||
.fn()
|
||||
.mockResolvedValue({ ...editBranchRuleMockResponse, data: mockResponse });
|
||||
|
||||
await createComponent({
|
||||
glFeatures: { editBranchRules: true },
|
||||
branchRulesQueryHandler: branchRulesMockRequestHandler,
|
||||
editMutationHandler,
|
||||
});
|
||||
|
||||
findBranchRuleModal().vm.$emit('primary', 'main');
|
||||
await nextTick();
|
||||
await waitForPromises();
|
||||
|
||||
expect(createAlert).toHaveBeenCalledWith({
|
||||
message: 'Something went wrong while updating branch rule.',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Deleting branch rule', () => {
|
||||
|
|
@ -363,36 +383,52 @@ describe('View branch rules', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('Allowed to merge editing', () => {
|
||||
it('renders the edit button', () => {
|
||||
expect(findEditRuleButton().text()).toBe('Edit');
|
||||
describe.each`
|
||||
drawerType | title | findProtection | accessLevels
|
||||
${'merge'} | ${'Edit allowed to merge'} | ${findAllowedToMerge} | ${{ mergeAccessLevels: [{ accessLevel: 30 }] }}
|
||||
${'push and merge'} | ${'Edit allowed to push and merge'} | ${findAllowedToPush} | ${{ pushAccessLevels: [{ accessLevel: 30 }] }}
|
||||
`('allowed to $drawerType drawer', ({ title, findProtection, accessLevels }) => {
|
||||
const openEditRuleDrawer = () => {
|
||||
findProtection().vm.$emit('edit');
|
||||
return nextTick();
|
||||
};
|
||||
|
||||
it('rule drawer is closed by default', () => {
|
||||
expect(findRuleDrawer().props('isOpen')).toBe(false);
|
||||
});
|
||||
it('passes expected props to rule drawer', () => {
|
||||
expect(findRuleDrawer().props()).toMatchObject(allowedToMergeDrawerProps);
|
||||
});
|
||||
it('when edit button is clicked it opens rule drawer', async () => {
|
||||
findEditRuleButton().vm.$emit('click');
|
||||
await nextTick();
|
||||
expect(findRuleDrawer().props('isOpen')).toBe(true);
|
||||
|
||||
it('passes expected props to rule drawer', async () => {
|
||||
await openEditRuleDrawer();
|
||||
|
||||
expect(findRuleDrawer().props()).toMatchObject({
|
||||
...allowedToMergeDrawerProps,
|
||||
isOpen: true,
|
||||
title,
|
||||
});
|
||||
});
|
||||
|
||||
it('when save button is clicked it calls edit rule mutation', async () => {
|
||||
findRuleDrawer().vm.$emit('editRule', { accessLevel: 30 });
|
||||
await openEditRuleDrawer();
|
||||
findRuleDrawer().vm.$emit('editRule', [{ accessLevel: 30 }]);
|
||||
await nextTick();
|
||||
|
||||
expect(findRuleDrawer().props('isLoading')).toEqual(true);
|
||||
|
||||
await waitForPromises();
|
||||
|
||||
expect(editBranchRuleSuccessHandler).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
input: {
|
||||
branchProtection: expect.objectContaining({
|
||||
mergeAccessLevels: {
|
||||
accessLevel: 30,
|
||||
},
|
||||
allowForcePush: false,
|
||||
...accessLevels,
|
||||
}),
|
||||
id: 'gid://gitlab/Projects/BranchRule/1',
|
||||
name: 'main',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
expect(findRuleDrawer().props('isLoading')).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ describe('Utils', () => {
|
|||
expect(result).toEqual([{ userId: 2 }]);
|
||||
});
|
||||
|
||||
it('returns an array with accessLevel, groupId, and userId when node has all properties', () => {
|
||||
it('returns an array with groupId, and userId when node has all properties', () => {
|
||||
const edges = [
|
||||
{
|
||||
node: {
|
||||
|
|
@ -76,7 +76,7 @@ describe('Utils', () => {
|
|||
];
|
||||
const result = getAccessLevelInputFromEdges(edges);
|
||||
|
||||
expect(result).toEqual([{ accessLevel: 30, groupId: 1, userId: 2 }]);
|
||||
expect(result).toEqual([{ groupId: 1, userId: 2 }]);
|
||||
});
|
||||
|
||||
it('returns an array with multiple objects when given multiple edges', () => {
|
||||
|
|
@ -87,7 +87,7 @@ describe('Utils', () => {
|
|||
];
|
||||
const result = getAccessLevelInputFromEdges(edges);
|
||||
|
||||
expect(result).toEqual([{ accessLevel: 30, groupId: 1 }, { userId: 2 }, { accessLevel: 40 }]);
|
||||
expect(result).toEqual([{ groupId: 1 }, { userId: 2 }, { accessLevel: 40 }]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::Analytics::CycleAnalytics::Aggregated::BaseQueryBuilder do
|
||||
let_it_be(:group) { create(:group) }
|
||||
let_it_be(:project) { create(:project, group: group) }
|
||||
let_it_be(:group) { create(:group, :with_organization) }
|
||||
let_it_be(:project) { create(:project, namespace: group) }
|
||||
let_it_be(:milestone) { create(:milestone, project: project) }
|
||||
let_it_be(:user_1) { create(:user) }
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::Analytics::CycleAnalytics::Aggregated::RecordsFetcher, feature_category: :value_stream_management do
|
||||
let_it_be(:default_organization) { create(:organization, :default) }
|
||||
let_it_be(:project, refind: true) { create(:project, :public) }
|
||||
let_it_be(:issue_1) { create(:issue, project: project) }
|
||||
let_it_be(:issue_2) { create(:issue, :confidential, project: project) }
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue