Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2022-08-10 15:11:53 +00:00
parent 70eb0cf751
commit 0a412bceb9
87 changed files with 894 additions and 629 deletions

View File

@ -601,7 +601,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/operations/feature_flags.md @rdickenson
/doc/operations/product_analytics.md @claytoncornell
/doc/policy/alpha-beta-support.md @axil
/doc/policy/maintenance.md @axil
/doc/policy/maintenance.md @axil @gitlab-org/delivery
/doc/raketasks/ @axil
/doc/raketasks/generate_sample_prometheus_data.md @msedlakjakubowski
/doc/raketasks/migrate_snippets.md @aqualls

View File

@ -129,10 +129,13 @@ linters:
- Rails/RequestReferer
- Style/ColonMethodCall
- Style/ConditionalAssignment
- Style/FormatString
- Style/HashSyntax
- Style/IfInsideElse
- Style/IdenticalConditionalBranches
- Style/NegatedIf
- Style/NestedTernaryOperator
- Style/RedundantInterpolation
- Style/SelfAssignment
- Style/StringConcatenation
- Style/TernaryParentheses

View File

@ -435,6 +435,10 @@ Naming/PredicateName:
- 'spec/**/*'
- 'ee/spec/**/*'
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93828#note_1050812797
Naming/RescuedExceptionsVariableName:
Enabled: false
RSpec/FactoriesInMigrationSpecs:
Enabled: true
Include:

View File

@ -1,197 +0,0 @@
---
# Cop supports --auto-correct.
Naming/RescuedExceptionsVariableName:
Exclude:
- 'app/models/ci/pipeline_artifact.rb'
- 'app/models/concerns/database_event_tracking.rb'
- 'app/services/branches/delete_service.rb'
- 'app/services/branches/validate_new_service.rb'
- 'app/services/ci/job_artifacts/create_service.rb'
- 'app/services/ci/parse_dotenv_artifact_service.rb'
- 'app/services/ci/register_job_service.rb'
- 'app/services/ci/stuck_builds/drop_helpers.rb'
- 'app/services/clusters/applications/prometheus_update_service.rb'
- 'app/services/commits/change_service.rb'
- 'app/services/commits/create_service.rb'
- 'app/services/dependency_proxy/head_manifest_service.rb'
- 'app/services/dependency_proxy/request_token_service.rb'
- 'app/services/design_management/copy_design_collection/copy_service.rb'
- 'app/services/git/base_hooks_service.rb'
- 'app/services/google_cloud/create_cloudsql_instance_service.rb'
- 'app/services/google_cloud/setup_cloudsql_instance_service.rb'
- 'app/services/grafana/proxy_service.rb'
- 'app/services/groups/update_shared_runners_service.rb'
- 'app/services/issues/relative_position_rebalancing_service.rb'
- 'app/services/jira/requests/base.rb'
- 'app/services/jira_import/start_import_service.rb'
- 'app/services/jira_import/users_importer.rb'
- 'app/services/lfs/lock_file_service.rb'
- 'app/services/lfs/locks_finder_service.rb'
- 'app/services/lfs/push_service.rb'
- 'app/services/lfs/unlock_file_service.rb'
- 'app/services/merge_requests/merge_to_ref_service.rb'
- 'app/services/merge_requests/mergeability_check_service.rb'
- 'app/services/metrics/dashboard/base_service.rb'
- 'app/services/metrics/dashboard/panel_preview_service.rb'
- 'app/services/projects/cleanup_service.rb'
- 'app/services/projects/destroy_service.rb'
- 'app/services/projects/hashed_storage/base_repository_service.rb'
- 'app/services/projects/transfer_service.rb'
- 'app/services/prometheus/proxy_service.rb'
- 'app/services/quick_actions/interpret_service.rb'
- 'app/services/resource_access_tokens/revoke_service.rb'
- 'app/services/tags/create_service.rb'
- 'app/services/tags/destroy_service.rb'
- 'app/services/users/validate_manual_otp_service.rb'
- 'app/services/users/validate_push_otp_service.rb'
- 'app/services/verify_pages_domain_service.rb'
- 'app/services/web_hooks/log_destroy_service.rb'
- 'app/validators/js_regex_validator.rb'
- 'app/workers/concerns/limited_capacity/worker.rb'
- 'app/workers/concerns/packages/cleanup_artifact_worker.rb'
- 'app/workers/gitlab/jira_import/import_issue_worker.rb'
- 'app/workers/gitlab_service_ping_worker.rb'
- 'app/workers/issuable_export_csv_worker.rb'
- 'app/workers/namespaces/root_statistics_worker.rb'
- 'app/workers/namespaces/schedule_aggregation_worker.rb'
- 'app/workers/packages/go/sync_packages_worker.rb'
- 'app/workers/project_destroy_worker.rb'
- 'app/workers/projects/git_garbage_collect_worker.rb'
- 'app/workers/projects/inactive_projects_deletion_notification_worker.rb'
- 'app/workers/remove_expired_members_worker.rb'
- 'app/workers/users/create_statistics_worker.rb'
- 'config/initializers/enumerator_next_patch.rb'
- 'config/initializers/rspec_profiling.rb'
- 'config/initializers/wikicloth_redos_patch.rb'
- 'db/post_migrate/20210606143426_add_index_for_container_registry_access_level.rb'
- 'db/post_migrate/20211206162601_cleanup_after_add_primary_email_to_emails_if_user_confirmed.rb'
- 'db/post_migrate/20220318111729_cleanup_after_fixing_issue_when_admin_changed_primary_email.rb'
- 'db/post_migrate/20220504083836_cleanup_after_fixing_regression_with_new_users_emails.rb'
- 'ee/app/finders/projects/integrations/jira/by_ids_finder.rb'
- 'ee/app/graphql/mutations/issues/promote_to_epic.rb'
- 'ee/app/graphql/mutations/issues/set_epic.rb'
- 'ee/app/helpers/ee/kerberos_spnego_helper.rb'
- 'ee/app/models/concerns/geo/replicable_model.rb'
- 'ee/app/models/integrations/github.rb'
- 'ee/app/services/app_sec/dast/profiles/create_service.rb'
- 'ee/app/services/app_sec/dast/profiles/update_service.rb'
- 'ee/app/services/app_sec/dast/scans/create_service.rb'
- 'ee/app/services/app_sec/dast/site_validations/find_or_create_service.rb'
- 'ee/app/services/app_sec/dast/site_validations/revoke_service.rb'
- 'ee/app/services/app_sec/fuzzing/coverage/corpuses/create_service.rb'
- 'ee/app/services/arkose/user_verification_service.rb'
- 'ee/app/services/ci/sync_reports_to_approval_rules_service.rb'
- 'ee/app/services/elastic/process_bookkeeping_service.rb'
- 'ee/app/services/geo/file_registry_removal_service.rb'
- 'ee/app/services/geo/framework_repository_sync_service.rb'
- 'ee/app/services/geo/move_repository_service.rb'
- 'ee/app/services/geo/repository_base_sync_service.rb'
- 'ee/app/services/gitlab_subscriptions/preview_billable_user_change_service.rb'
- 'ee/app/services/incident_management/oncall_rotations/create_service.rb'
- 'ee/app/services/incident_management/oncall_rotations/edit_service.rb'
- 'ee/app/services/namespaces/free_user_cap/deactivate_members_over_limit_service.rb'
- 'ee/app/services/namespaces/free_user_cap/remove_group_group_links_outside_hierarchy_service.rb'
- 'ee/app/services/namespaces/free_user_cap/remove_project_group_links_outside_hierarchy_service.rb'
- 'ee/app/services/namespaces/free_user_cap/update_prevent_sharing_outside_hierarchy_service.rb'
- 'ee/app/services/projects/licenses/create_policy_service.rb'
- 'ee/app/services/projects/licenses/update_policy_service.rb'
- 'ee/app/services/security/ingestion/ingest_report_service.rb'
- 'ee/app/services/security/ingestion/tasks/update_vulnerability_uuids.rb'
- 'ee/app/services/security/orchestration/assign_service.rb'
- 'ee/app/services/security/store_grouped_scans_service.rb'
- 'ee/app/services/security/store_scan_service.rb'
- 'ee/app/services/security/token_revocation_service.rb'
- 'ee/app/services/software_license_policies/create_service.rb'
- 'ee/app/services/software_license_policies/update_service.rb'
- 'ee/app/workers/adjourned_project_deletion_worker.rb'
- 'ee/app/workers/geo/file_removal_worker.rb'
- 'ee/app/workers/geo/repositories_clean_up_worker.rb'
- 'ee/app/workers/geo/scheduler/scheduler_worker.rb'
- 'ee/app/workers/namespaces/free_user_cap/remediation_worker.rb'
- 'ee/app/workers/refresh_license_compliance_checks_worker.rb'
- 'ee/app/workers/repository_update_mirror_worker.rb'
- 'ee/app/workers/sync_seat_link_request_worker.rb'
- 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb'
- 'ee/lib/elastic/instance_proxy_util.rb'
- 'ee/lib/gitlab/audit/auditor.rb'
- 'ee/lib/gitlab/auth/smartcard/base.rb'
- 'ee/lib/gitlab/ci/parsers/license_compliance/license_scanning.rb'
- 'ee/lib/gitlab/elastic/bulk_indexer.rb'
- 'ee/lib/gitlab/spdx/catalogue_gateway.rb'
- 'ee/lib/tasks/gitlab/seed/metrics.rake'
- 'lib/api/helpers.rb'
- 'lib/api/helpers/label_helpers.rb'
- 'lib/api/issues.rb'
- 'lib/api/project_milestones.rb'
- 'lib/api/projects.rb'
- 'lib/api/repositories.rb'
- 'lib/api/v3/github.rb'
- 'lib/gitaly/server.rb'
- 'lib/gitlab/auth/ldap/adapter.rb'
- 'lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp.rb'
- 'lib/gitlab/auth/otp/strategies/forti_authenticator/push_otp.rb'
- 'lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid.rb'
- 'lib/gitlab/background_task.rb'
- 'lib/gitlab/ci/config/external/file/artifact.rb'
- 'lib/gitlab/ci/pipeline/chain/config/process.rb'
- 'lib/gitlab/ci/pipeline/chain/validate/external.rb'
- 'lib/gitlab/ci/reports/codequality_reports.rb'
- 'lib/gitlab/database/background_migration/batched_job.rb'
- 'lib/gitlab/database/background_migration/batched_migration_wrapper.rb'
- 'lib/gitlab/database/batch_counter.rb'
- 'lib/gitlab/database/load_balancing/load_balancer.rb'
- 'lib/gitlab/database/load_balancing/service_discovery.rb'
- 'lib/gitlab/database/lock_writes_manager.rb'
- 'lib/gitlab/database/reindexing/grafana_notifier.rb'
- 'lib/gitlab/git/keep_around.rb'
- 'lib/gitlab/gitaly_client/call.rb'
- 'lib/gitlab/gitaly_client/commit_service.rb'
- 'lib/gitlab/gitaly_client/operation_service.rb'
- 'lib/gitlab/gitaly_client/ref_service.rb'
- 'lib/gitlab/gitaly_client/repository_service.rb'
- 'lib/gitlab/hashed_storage/migrator.rb'
- 'lib/gitlab/health_checks/base_abstract_check.rb'
- 'lib/gitlab/import_export/merge_request_parser.rb'
- 'lib/gitlab/instrumentation/redis_interceptor.rb'
- 'lib/gitlab/issuables_count_for_state.rb'
- 'lib/gitlab/jira_import/issues_importer.rb'
- 'lib/gitlab/json.rb'
- 'lib/gitlab/jwt_token.rb'
- 'lib/gitlab/kubernetes/namespace.rb'
- 'lib/gitlab/metrics/dashboard/stages/panel_ids_inserter.rb'
- 'lib/gitlab/metrics/rack_middleware.rb'
- 'lib/gitlab/middleware/handle_ip_spoof_attack_error.rb'
- 'lib/gitlab/prometheus/queries/validate_query.rb'
- 'lib/gitlab/prometheus_client.rb'
- 'lib/gitlab/sanitizers/exif.rb'
- 'lib/gitlab/sidekiq_logging/structured_logger.rb'
- 'lib/gitlab/tcp_checker.rb'
- 'lib/gitlab/template_parser/parser.rb'
- 'lib/gitlab/tracking.rb'
- 'lib/gitlab/url_blocker.rb'
- 'lib/gitlab/usage/metrics/aggregates/aggregate.rb'
- 'lib/gitlab/usage/service_ping/instrumented_payload.rb'
- 'lib/gitlab/usage_data.rb'
- 'lib/gitlab/utils/usage_data.rb'
- 'lib/gitlab/verify/batch_verifier.rb'
- 'lib/gitlab/wiki_pages/front_matter_parser.rb'
- 'lib/microsoft_teams/notifier.rb'
- 'lib/system_check/incoming_email/imap_authentication_check.rb'
- 'lib/tasks/gitlab/db/validate_config.rake'
- 'lib/tasks/gitlab/setup.rake'
- 'lib/tasks/gitlab/storage.rake'
- 'lib/tasks/lint.rake'
- 'qa/qa/resource/user_gpg.rb'
- 'scripts/review_apps/automated_cleanup.rb'
- 'scripts/trigger-build.rb'
- 'spec/commands/metrics_server/metrics_server_spec.rb'
- 'spec/db/docs_spec.rb'
- 'spec/lib/bulk_imports/network_error_spec.rb'
- 'spec/lib/gitlab/database/load_balancing/host_spec.rb'
- 'spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb'
- 'spec/lib/gitlab/error_tracking_spec.rb'
- 'spec/lib/gitlab/sanitizers/exception_message_spec.rb'
- 'spec/support/capybara.rb'
- 'spec/support/helpers/capybara_helpers.rb'
- 'tooling/lib/tooling/helm3_client.rb'
- 'tooling/lib/tooling/kubernetes_client.rb'

View File

@ -1,9 +1,6 @@
---
# Cop supports --auto-correct.
Style/EmptyElse:
# Offense count: 59
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/controllers/concerns/issuable_collections_action.rb'
- 'app/controllers/concerns/sends_blob.rb'
@ -15,8 +12,8 @@ Style/EmptyElse:
- 'app/graphql/mutations/concerns/mutations/spam_protection.rb'
- 'app/graphql/resolvers/group_milestones_resolver.rb'
- 'app/graphql/types/ci/detailed_status_type.rb'
- 'app/graphql/types/packages/package_base_type.rb'
- 'app/graphql/types/packages/package_file_type.rb'
- 'app/graphql/types/packages/package_type.rb'
- 'app/helpers/submodule_helper.rb'
- 'app/models/commit.rb'
- 'app/models/legacy_diff_discussion.rb'
@ -27,6 +24,7 @@ Style/EmptyElse:
- 'app/models/resource_timebox_event.rb'
- 'app/services/award_emojis/add_service.rb'
- 'app/services/merge_requests/update_service.rb'
- 'app/workers/gitlab/github_import/stage/import_issue_events_worker.rb'
- 'app/workers/post_receive.rb'
- 'config/initializers/doorkeeper_openid_connect.rb'
- 'ee/app/controllers/admin/audit_logs_controller.rb'
@ -38,13 +36,14 @@ Style/EmptyElse:
- 'ee/app/services/epics/tree_reorder_service.rb'
- 'ee/app/services/gitlab_subscriptions/check_future_renewal_service.rb'
- 'ee/app/services/projects/update_mirror_service.rb'
- 'ee/app/workers/audit_events/audit_event_streaming_worker.rb'
- 'ee/app/workers/gitlab_subscriptions/notify_seats_exceeded_worker.rb'
- 'ee/db/fixtures/development/20_vulnerabilities.rb'
- 'ee/lib/elastic/latest/note_instance_proxy.rb'
- 'ee/lib/gitlab/analytics/cycle_analytics/summary/change_failure_rate.rb'
- 'ee/lib/gitlab/geo/oauth/logout_token.rb'
- 'lib/api/subscriptions.rb'
- 'lib/gitlab/auth/o_auth/provider.rb'
- 'lib/gitlab/ci/variables/collection.rb'
- 'lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb'
- 'lib/gitlab/database/sha256_attribute.rb'
- 'lib/gitlab/diff/parser.rb'

View File

@ -1,9 +1,6 @@
---
# Cop supports --auto-correct.
Style/FormatString:
# Offense count: 769
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/components/diffs/overflow_warning_component.rb'
- 'app/controllers/admin/application_settings_controller.rb'
@ -21,6 +18,7 @@ Style/FormatString:
- 'app/controllers/concerns/membership_actions.rb'
- 'app/controllers/concerns/redirects_for_missing_path_on_tree.rb'
- 'app/controllers/concerns/spammable_actions/akismet_mark_as_spam_action.rb'
- 'app/controllers/concerns/verifies_with_email.rb'
- 'app/controllers/groups/settings/ci_cd_controller.rb'
- 'app/controllers/import/bitbucket_server_controller.rb'
- 'app/controllers/import/bulk_imports_controller.rb'
@ -37,6 +35,8 @@ Style/FormatString:
- 'app/controllers/profiles/preferences_controller.rb'
- 'app/controllers/profiles/two_factor_auths_controller.rb'
- 'app/controllers/profiles_controller.rb'
- 'app/controllers/projects/google_cloud/deployments_controller.rb'
- 'app/controllers/projects/google_cloud/service_accounts_controller.rb'
- 'app/controllers/projects/issues_controller.rb'
- 'app/controllers/projects/merge_requests_controller.rb'
- 'app/controllers/projects/performance_monitoring/dashboards_controller.rb'
@ -56,15 +56,18 @@ Style/FormatString:
- 'app/helpers/colors_helper.rb'
- 'app/helpers/emails_helper.rb'
- 'app/helpers/form_helper.rb'
- 'app/helpers/groups/group_members_helper.rb'
- 'app/helpers/groups_helper.rb'
- 'app/helpers/import_helper.rb'
- 'app/helpers/invite_members_helper.rb'
- 'app/helpers/issuables_helper.rb'
- 'app/helpers/issues_helper.rb'
- 'app/helpers/members_helper.rb'
- 'app/helpers/merge_requests_helper.rb'
- 'app/helpers/mirror_helper.rb'
- 'app/helpers/preferences_helper.rb'
- 'app/helpers/profiles_helper.rb'
- 'app/helpers/projects/project_members_helper.rb'
- 'app/helpers/projects_helper.rb'
- 'app/helpers/registrations_helper.rb'
- 'app/helpers/reminder_emails_helper.rb'
@ -83,6 +86,7 @@ Style/FormatString:
- 'app/mailers/emails/profile.rb'
- 'app/models/application_setting.rb'
- 'app/models/application_setting_implementation.rb'
- 'app/models/concerns/integrations/has_issue_tracker_fields.rb'
- 'app/models/concerns/limitable.rb'
- 'app/models/concerns/metric_image_uploading.rb'
- 'app/models/concerns/spammable.rb'
@ -108,6 +112,7 @@ Style/FormatString:
- 'app/models/integrations/external_wiki.rb'
- 'app/models/integrations/flowdock.rb'
- 'app/models/integrations/hangouts_chat.rb'
- 'app/models/integrations/irker.rb'
- 'app/models/integrations/jenkins.rb'
- 'app/models/integrations/jira.rb'
- 'app/models/integrations/mattermost.rb'
@ -119,6 +124,8 @@ Style/FormatString:
- 'app/models/integrations/webex_teams.rb'
- 'app/models/integrations/youtrack.rb'
- 'app/models/integrations/zentao.rb'
- 'app/models/merge_request.rb'
- 'app/models/merge_request_diff.rb'
- 'app/models/milestone.rb'
- 'app/models/pages_domain.rb'
- 'app/models/project.rb'
@ -129,6 +136,7 @@ Style/FormatString:
- 'app/models/user.rb'
- 'app/models/wiki.rb'
- 'app/models/wiki_page.rb'
- 'app/models/work_items/parent_link.rb'
- 'app/presenters/ci/pipeline_presenter.rb'
- 'app/presenters/merge_request_presenter.rb'
- 'app/presenters/project_presenter.rb'
@ -152,6 +160,7 @@ Style/FormatString:
- 'app/services/gravatar_service.rb'
- 'app/services/groups/transfer_service.rb'
- 'app/services/import/bitbucket_server_service.rb'
- 'app/services/import/fogbugz_service.rb'
- 'app/services/import/github_service.rb'
- 'app/services/issuable_links/create_service.rb'
- 'app/services/issues/clone_service.rb'
@ -169,7 +178,10 @@ Style/FormatString:
- 'app/services/projects/create_from_template_service.rb'
- 'app/services/projects/import_service.rb'
- 'app/services/system_notes/design_management_service.rb'
- 'app/services/timelogs/create_service.rb'
- 'app/services/users/banned_user_base_service.rb'
- 'app/services/work_items/parent_links/create_service.rb'
- 'app/services/work_items/widgets/hierarchy_service/base_service.rb'
- 'app/validators/addressable_url_validator.rb'
- 'app/validators/any_field_validator.rb'
- 'app/validators/array_members_validator.rb'
@ -180,6 +192,13 @@ Style/FormatString:
- 'config/initializers/rack_lineprof.rb'
- 'danger/roulette/Dangerfile'
- 'ee/app/components/billing/plan_component.rb'
- 'ee/app/components/namespaces/free_user_cap/alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/personable.rb'
- 'ee/app/components/namespaces/free_user_cap/personal_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/personal_preview_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/personal_usage_quota_limitations_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/preview_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/usage_quota_alert_component.rb'
- 'ee/app/controllers/admin/elasticsearch_controller.rb'
- 'ee/app/controllers/admin/geo/application_controller.rb'
- 'ee/app/controllers/admin/geo/projects_controller.rb'
@ -190,6 +209,7 @@ Style/FormatString:
- 'ee/app/controllers/ee/repositories/git_http_client_controller.rb'
- 'ee/app/controllers/ee/repositories/lfs_api_controller.rb'
- 'ee/app/controllers/groups/saml_group_links_controller.rb'
- 'ee/app/controllers/groups/settings/reporting_controller.rb'
- 'ee/app/controllers/groups/sso_controller.rb'
- 'ee/app/controllers/projects/requirements_management/requirements_controller.rb'
- 'ee/app/controllers/subscriptions/groups_controller.rb'
@ -197,9 +217,11 @@ Style/FormatString:
- 'ee/app/helpers/billing_plans_helper.rb'
- 'ee/app/helpers/ee/application_helper.rb'
- 'ee/app/helpers/ee/geo_helper.rb'
- 'ee/app/helpers/ee/groups/reporting_helper.rb'
- 'ee/app/helpers/ee/groups/settings_helper.rb'
- 'ee/app/helpers/ee/groups_helper.rb'
- 'ee/app/helpers/ee/import_helper.rb'
- 'ee/app/helpers/ee/members_helper.rb'
- 'ee/app/helpers/ee/profiles_helper.rb'
- 'ee/app/helpers/ee/projects_helper.rb'
- 'ee/app/helpers/ee/timeboxes_helper.rb'
@ -207,6 +229,7 @@ Style/FormatString:
- 'ee/app/helpers/groups/sso_helper.rb'
- 'ee/app/helpers/trial_registrations/reassurances_helper.rb'
- 'ee/app/helpers/vulnerabilities_helper.rb'
- 'ee/app/mailers/ee/emails/admin_notification.rb'
- 'ee/app/mailers/emails/namespace_storage_usage_mailer.rb'
- 'ee/app/models/ci/minutes/notification.rb'
- 'ee/app/models/dast/profile.rb'
@ -214,8 +237,10 @@ Style/FormatString:
- 'ee/app/models/dast_site_profile.rb'
- 'ee/app/models/dast_site_validation.rb'
- 'ee/app/models/ee/member.rb'
- 'ee/app/models/ee/namespace/storage/notification.rb'
- 'ee/app/models/geo/upload_registry.rb'
- 'ee/app/models/integrations/github.rb'
- 'ee/app/models/iterations/cadence.rb'
- 'ee/app/models/namespace_limit.rb'
- 'ee/app/models/users_security_dashboard_project.rb'
- 'ee/app/services/app_sec/dast/profiles/build_config_service.rb'
@ -227,6 +252,7 @@ Style/FormatString:
- 'ee/app/services/concerns/incident_management/oncall_rotations/shared_rotation_logic.rb'
- 'ee/app/services/dora/aggregate_metrics_service.rb'
- 'ee/app/services/ee/projects/create_from_template_service.rb'
- 'ee/app/services/group_saml/saml_group_links/create_service.rb'
- 'ee/app/services/incident_management/escalation_policies/base_service.rb'
- 'ee/app/services/issues/build_from_vulnerability_service.rb'
- 'ee/app/services/merge_requests/create_from_vulnerability_data_service.rb'
@ -236,15 +262,18 @@ Style/FormatString:
- 'ee/app/services/vulnerabilities/destroy_dismissal_feedback_service.rb'
- 'ee/app/services/vulnerabilities/dismiss_service.rb'
- 'ee/app/services/vulnerabilities/finding_dismiss_service.rb'
- 'ee/app/services/vulnerabilities/findings/create_from_security_finding_service.rb'
- 'ee/app/services/vulnerabilities/historical_statistics/adjustment_service.rb'
- 'ee/app/services/vulnerabilities/statistics/adjustment_service.rb'
- 'ee/app/services/vulnerability_external_issue_links/create_service.rb'
- 'ee/app/validators/user_existence_validator.rb'
- 'ee/lib/audit/details.rb'
- 'ee/lib/ee/audit/project_changes_auditor.rb'
- 'ee/lib/ee/audit/project_setting_changes_auditor.rb'
- 'ee/lib/ee/gitlab/checks/push_rules/branch_check.rb'
- 'ee/lib/ee/gitlab/checks/push_rules/commit_check.rb'
- 'ee/lib/ee/gitlab/ci/pipeline/chain/validate/security_orchestration_policy.rb'
- 'ee/lib/ee/gitlab/namespace_storage_size_error_message.rb'
- 'ee/lib/ee/gitlab/quick_actions/epic_actions.rb'
- 'ee/lib/ee/gitlab/quick_actions/issue_actions.rb'
- 'ee/lib/ee/gitlab/quick_actions/issue_and_merge_request_actions.rb'
@ -256,11 +285,13 @@ Style/FormatString:
- 'ee/lib/gitlab/auth/group_saml/response_check.rb'
- 'ee/lib/gitlab/expiring_subscription_message.rb'
- 'ee/lib/gitlab/geo.rb'
- 'ee/lib/gitlab/licenses/submit_license_usage_data_banner.rb'
- 'ee/lib/gitlab/manual_quarterly_co_term_banner.rb'
- 'ee/lib/gitlab/vulnerabilities/container_scanning_vulnerability.rb'
- 'ee/lib/tasks/gitlab/elastic.rake'
- 'ee/spec/controllers/admin/licenses_controller_spec.rb'
- 'ee/spec/controllers/groups/security/policies_controller_spec.rb'
- 'ee/spec/features/admin/admin_settings_spec.rb'
- 'ee/spec/features/admin/admin_users_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'
@ -273,6 +304,7 @@ Style/FormatString:
- 'lib/gitlab/ci/ansi2json/line.rb'
- 'lib/gitlab/ci/badge/coverage/template.rb'
- 'lib/gitlab/ci/config/entry/tags.rb'
- 'lib/gitlab/ci/parsers/sbom/cyclonedx.rb'
- 'lib/gitlab/ci/status/build/waiting_for_approval.rb'
- 'lib/gitlab/config_checker/external_database_checker.rb'
- 'lib/gitlab/config_checker/puma_rugged_checker.rb'
@ -293,6 +325,7 @@ Style/FormatString:
- 'lib/gitlab/email/message/in_product_marketing/verify.rb'
- 'lib/gitlab/exceptions_app.rb'
- 'lib/gitlab/github_import/importer/pull_request_merged_by_importer.rb'
- 'lib/gitlab/github_import/importer/single_endpoint_issue_events_importer.rb'
- 'lib/gitlab/github_import/issuable_finder.rb'
- 'lib/gitlab/github_import/label_finder.rb'
- 'lib/gitlab/github_import/milestone_finder.rb'
@ -307,6 +340,7 @@ Style/FormatString:
- 'lib/gitlab/log_timestamp_formatter.rb'
- 'lib/gitlab/metrics/dashboard/errors.rb'
- 'lib/gitlab/metrics/dashboard/validator/errors.rb'
- 'lib/gitlab/pages/cache_control.rb'
- 'lib/gitlab/quick_actions/command_definition.rb'
- 'lib/gitlab/quick_actions/commit_actions.rb'
- 'lib/gitlab/quick_actions/issuable_actions.rb'
@ -318,11 +352,11 @@ Style/FormatString:
- 'lib/gitlab/version_info.rb'
- 'lib/peek/views/detailed_view.rb'
- 'lib/tasks/test.rake'
- 'qa/qa/service/docker_run/gitlab_runner.rb'
- 'spec/controllers/graphql_controller_spec.rb'
- 'spec/factories/lfs_objects.rb'
- 'spec/features/admin/admin_users_spec.rb'
- 'spec/features/groups/import_export/connect_instance_spec.rb'
- 'spec/features/issues/form_spec.rb'
- 'spec/finders/serverless_domain_finder_spec.rb'
- 'spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb'
- 'spec/helpers/profiles_helper_spec.rb'
@ -345,6 +379,7 @@ Style/FormatString:
- 'spec/support/shared_examples/services/jira/requests/base_shared_examples.rb'
- 'spec/support/shared_examples/views/registration_features_prompt_shared_examples.rb'
- 'spec/validators/any_field_validator_spec.rb'
- 'spec/views/errors/omniauth_error.html.haml_spec.rb'
- 'spec/views/groups/edit.html.haml_spec.rb'
- 'spec/views/profiles/keys/_form.html.haml_spec.rb'
- 'spec/views/profiles/notifications/show.html.haml_spec.rb'

View File

@ -1,8 +1,5 @@
---
Style/GuardClause:
# Offense count: 1014
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/controllers/admin/users_controller.rb'
- 'app/controllers/application_controller.rb'
@ -28,6 +25,7 @@ Style/GuardClause:
- 'app/controllers/dashboard/todos_controller.rb'
- 'app/controllers/groups/application_controller.rb'
- 'app/controllers/groups_controller.rb'
- 'app/controllers/ide_controller.rb'
- 'app/controllers/import/gitea_controller.rb'
- 'app/controllers/import/github_controller.rb'
- 'app/controllers/import/gitlab_controller.rb'
@ -46,12 +44,14 @@ Style/GuardClause:
- 'app/controllers/projects/google_cloud/base_controller.rb'
- 'app/controllers/projects/imports_controller.rb'
- 'app/controllers/projects/issues_controller.rb'
- 'app/controllers/projects/pipelines/tests_controller.rb'
- 'app/controllers/projects/repositories_controller.rb'
- 'app/controllers/projects/settings/operations_controller.rb'
- 'app/controllers/projects/tree_controller.rb'
- 'app/controllers/registrations_controller.rb'
- 'app/controllers/repositories/git_http_controller.rb'
- 'app/controllers/repositories/lfs_api_controller.rb'
- 'app/controllers/repositories/lfs_storage_controller.rb'
- 'app/controllers/search_controller.rb'
- 'app/controllers/sessions_controller.rb'
- 'app/controllers/users/terms_controller.rb'
@ -65,6 +65,7 @@ Style/GuardClause:
- 'app/graphql/mutations/design_management/delete.rb'
- 'app/graphql/mutations/notes/create/note.rb'
- 'app/graphql/mutations/notes/reposition_image_diff_note.rb'
- 'app/graphql/mutations/packages/destroy_files.rb'
- 'app/graphql/resolvers/blobs_resolver.rb'
- 'app/graphql/resolvers/board_list_issues_resolver.rb'
- 'app/graphql/resolvers/concerns/board_item_filterable.rb'
@ -72,8 +73,8 @@ Style/GuardClause:
- 'app/graphql/resolvers/concerns/time_frame_arguments.rb'
- 'app/graphql/resolvers/projects/jira_projects_resolver.rb'
- 'app/graphql/types/ci/job_type.rb'
- 'app/graphql/types/permission_types/base_permission_type.rb'
- 'app/helpers/admin/user_actions_helper.rb'
- 'app/helpers/appearances_helper.rb'
- 'app/helpers/application_helper.rb'
- 'app/helpers/events_helper.rb'
- 'app/helpers/issues_helper.rb'
@ -121,17 +122,18 @@ Style/GuardClause:
- 'app/models/design_management/design_collection.rb'
- 'app/models/diff_viewer/base.rb'
- 'app/models/environment.rb'
- 'app/models/error_tracking/error_event.rb'
- 'app/models/error_tracking/project_error_tracking_setting.rb'
- 'app/models/experiment_subject.rb'
- 'app/models/external_pull_request.rb'
- 'app/models/generic_commit_status.rb'
- 'app/models/grafana_integration.rb'
- 'app/models/integrations/bamboo.rb'
- 'app/models/integrations/base_issue_tracker.rb'
- 'app/models/integrations/base_third_party_wiki.rb'
- 'app/models/integrations/confluence.rb'
- 'app/models/integrations/datadog.rb'
- 'app/models/integrations/emails_on_push.rb'
- 'app/models/integrations/field.rb'
- 'app/models/integrations/harbor.rb'
- 'app/models/integrations/jenkins.rb'
- 'app/models/integrations/jira.rb'
@ -142,8 +144,6 @@ Style/GuardClause:
- 'app/models/member.rb'
- 'app/models/members/project_member.rb'
- 'app/models/merge_request.rb'
- 'app/models/merge_request_assignee.rb'
- 'app/models/merge_request_reviewer.rb'
- 'app/models/namespace.rb'
- 'app/models/namespace_setting.rb'
- 'app/models/operations/feature_flags/strategy.rb'
@ -161,6 +161,7 @@ Style/GuardClause:
- 'app/models/project_import_state.rb'
- 'app/models/project_label.rb'
- 'app/models/project_setting.rb'
- 'app/models/protected_branch.rb'
- 'app/models/protected_branch/push_access_level.rb'
- 'app/models/repository.rb'
- 'app/models/sent_notification.rb'
@ -170,6 +171,8 @@ Style/GuardClause:
- 'app/models/user.rb'
- 'app/models/users/in_product_marketing_email.rb'
- 'app/models/wiki.rb'
- 'app/models/work_item.rb'
- 'app/models/work_items/parent_link.rb'
- 'app/presenters/ci/pipeline_presenter.rb'
- 'app/presenters/merge_request_presenter.rb'
- 'app/presenters/project_presenter.rb'
@ -177,15 +180,19 @@ Style/GuardClause:
- 'app/services/bulk_imports/file_download_service.rb'
- 'app/services/ci/create_web_ide_terminal_service.rb'
- 'app/services/ci/daily_build_group_report_result_service.rb'
- 'app/services/ci/job_artifacts/destroy_batch_service.rb'
- 'app/services/ci/parse_dotenv_artifact_service.rb'
- 'app/services/ci/pipelines/add_job_service.rb'
- 'app/services/ci/play_build_service.rb'
- 'app/services/ci/retry_job_service.rb'
- 'app/services/ci/runners/reconcile_existing_runner_versions_service.rb'
- 'app/services/ci/runners/register_runner_service.rb'
- 'app/services/ci/update_build_queue_service.rb'
- 'app/services/clusters/agent_tokens/track_usage_service.rb'
- 'app/services/clusters/aws/fetch_credentials_service.rb'
- 'app/services/commits/commit_patch_service.rb'
- 'app/services/commits/create_service.rb'
- 'app/services/concerns/alert_management/alert_processing.rb'
- 'app/services/concerns/ci/job_token_scope/edit_scope_validations.rb'
- 'app/services/concerns/rate_limited_service.rb'
- 'app/services/concerns/update_repository_storage_methods.rb'
@ -205,12 +212,12 @@ Style/GuardClause:
- 'app/services/import/gitlab_projects/file_acquisition_strategies/remote_file.rb'
- 'app/services/import/validate_remote_git_endpoint_service.rb'
- 'app/services/issuable/bulk_update_service.rb'
- 'app/services/issuable/clone/base_service.rb'
- 'app/services/issuable/common_system_notes_service.rb'
- 'app/services/issuable_base_service.rb'
- 'app/services/issues/clone_service.rb'
- 'app/services/issues/move_service.rb'
- 'app/services/issues/update_service.rb'
- 'app/services/markdown_content_rewriter_service.rb'
- 'app/services/merge_requests/add_spent_time_service.rb'
- 'app/services/merge_requests/base_service.rb'
- 'app/services/merge_requests/build_service.rb'
@ -238,10 +245,10 @@ Style/GuardClause:
- 'app/services/projects/import_export/export_service.rb'
- 'app/services/projects/import_service.rb'
- 'app/services/projects/lfs_pointers/lfs_object_download_list_service.rb'
- 'app/services/projects/update_pages_service.rb'
- 'app/services/projects/update_repository_storage_service.rb'
- 'app/services/projects/update_service.rb'
- 'app/services/protected_branches/legacy_api_update_service.rb'
- 'app/services/repositories/changelog_service.rb'
- 'app/services/snippets/repository_validation_service.rb'
- 'app/services/todo_service.rb'
- 'app/services/users/build_service.rb'
@ -268,20 +275,24 @@ Style/GuardClause:
- 'app/validators/rsa_key_validator.rb'
- 'app/validators/top_level_group_validator.rb'
- 'app/validators/x509_certificate_credentials_validator.rb'
- 'app/workers/cleanup_container_repository_worker.rb'
- 'app/workers/clusters/agents/delete_expired_events_worker.rb'
- 'app/workers/concerns/application_worker.rb'
- 'app/workers/container_registry/migration/guard_worker.rb'
- 'app/workers/deployments/hooks_worker.rb'
- 'app/workers/deployments/link_merge_request_worker.rb'
- 'app/workers/gitlab/github_import/refresh_import_jid_worker.rb'
- 'app/workers/google_cloud/create_cloudsql_instance_worker.rb'
- 'app/workers/packages/cleanup/execute_policy_worker.rb'
- 'app/workers/packages/maven/metadata/sync_worker.rb'
- 'app/workers/projects/import_export/relation_export_worker.rb'
- 'app/workers/repository_update_remote_mirror_worker.rb'
- 'app/workers/terraform/states/destroy_worker.rb'
- 'config/initializers/0_inject_enterprise_edition_module.rb'
- 'config/initializers/carrierwave_patch.rb'
- 'config/initializers/devise_dynamic_password_length_validation.rb'
- 'config/initializers/google_api_client_patch.rb'
- 'config/initializers/postgresql_cte.rb'
- 'config/initializers/wikicloth_redos_patch.rb'
- 'config/object_store_settings.rb'
- 'danger/feature_flag/Dangerfile'
- 'db/migrate/20210302212623_rename_vuln_fingerprints_indexes.rb'
@ -315,6 +326,7 @@ Style/GuardClause:
- 'ee/app/finders/ee/template_finder.rb'
- 'ee/app/finders/iterations_finder.rb'
- 'ee/app/finders/security/vulnerabilities_finder.rb'
- 'ee/app/graphql/mutations/concerns/mutations/shared_epic_arguments.rb'
- 'ee/app/graphql/mutations/iterations/create.rb'
- 'ee/app/graphql/mutations/iterations/update.rb'
- 'ee/app/graphql/mutations/projects/set_locked.rb'
@ -322,13 +334,16 @@ Style/GuardClause:
- 'ee/app/graphql/resolvers/epics_resolver.rb'
- 'ee/app/graphql/resolvers/iterations_resolver.rb'
- 'ee/app/helpers/ee/application_helper.rb'
- 'ee/app/helpers/ee/auth_helper.rb'
- 'ee/app/helpers/ee/award_emoji_helper.rb'
- 'ee/app/helpers/ee/nav/new_dropdown_helper.rb'
- 'ee/app/helpers/ee/nav/top_nav_helper.rb'
- 'ee/app/helpers/ee/projects/pipeline_helper.rb'
- '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/approval_merge_request_rule_source.rb'
- 'ee/app/models/audit_events/external_audit_event_destination.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'
@ -338,6 +353,7 @@ Style/GuardClause:
- 'ee/app/models/dast_site_profile.rb'
- 'ee/app/models/ee/application_setting.rb'
- 'ee/app/models/ee/epic.rb'
- 'ee/app/models/ee/group_group_link.rb'
- 'ee/app/models/ee/group_member.rb'
- 'ee/app/models/ee/incident_management/issuable_escalation_status.rb'
- 'ee/app/models/ee/issue.rb'
@ -347,6 +363,7 @@ Style/GuardClause:
- 'ee/app/models/ee/merge_request.rb'
- 'ee/app/models/ee/namespace.rb'
- 'ee/app/models/ee/project.rb'
- 'ee/app/models/ee/project_group_link.rb'
- 'ee/app/models/ee/project_member.rb'
- 'ee/app/models/ee/user.rb'
- 'ee/app/models/elasticsearch_indexed_project.rb'
@ -361,6 +378,7 @@ Style/GuardClause:
- 'ee/app/models/namespace_limit.rb'
- 'ee/app/models/preloaders/environments/protected_environment_preloader.rb'
- 'ee/app/models/protected_environment.rb'
- 'ee/app/models/sbom/occurrence.rb'
- 'ee/app/models/users_security_dashboard_project.rb'
- 'ee/app/models/vulnerabilities/feedback.rb'
- 'ee/app/presenters/ee/merge_request_presenter.rb'
@ -384,8 +402,8 @@ Style/GuardClause:
- 'ee/app/services/ee/groups/update_service.rb'
- 'ee/app/services/ee/issuable/common_system_notes_service.rb'
- 'ee/app/services/ee/issues/base_service.rb'
- 'ee/app/services/ee/issues/clone_service.rb'
- 'ee/app/services/ee/merge_requests/merge_base_service.rb'
- 'ee/app/services/ee/merge_requests/post_merge_service.rb'
- 'ee/app/services/ee/merge_requests/refresh_service.rb'
- 'ee/app/services/ee/namespace_settings/update_service.rb'
- 'ee/app/services/ee/projects/create_service.rb'
@ -409,11 +427,12 @@ Style/GuardClause:
- 'ee/app/services/merge_trains/refresh_merge_request_service.rb'
- 'ee/app/services/merge_trains/refresh_service.rb'
- 'ee/app/services/namespaces/storage/email_notification_service.rb'
- 'ee/app/services/projects/slack_application_install_service.rb'
- 'ee/app/services/projects/update_mirror_service.rb'
- 'ee/app/services/security/override_uuids_service.rb'
- 'ee/app/services/timebox_report_service.rb'
- 'ee/app/services/vulnerabilities/security_finding/create_issue_service.rb'
- 'ee/app/validators/host_validator.rb'
- 'ee/app/validators/user_existence_validator.rb'
- 'ee/app/workers/ee/ci/build_finished_worker.rb'
- 'ee/app/workers/ee/post_receive.rb'
- 'ee/app/workers/elastic/migration_worker.rb'
@ -462,6 +481,7 @@ Style/GuardClause:
- 'ee/lib/omni_auth/strategies/group_saml.rb'
- 'ee/spec/features/billings/billing_plans_spec.rb'
- 'ee/spec/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_spec.rb'
- 'ee/spec/support/ci/minutes_helpers.rb'
- 'ee/spec/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker_spec.rb'
- 'haml_lint/linter/documentation_links.rb'
- 'lib/api/commits.rb'
@ -481,6 +501,7 @@ Style/GuardClause:
- 'lib/banzai/filter/wiki_link_filter/rewriter.rb'
- 'lib/bulk_imports/clients/graphql.rb'
- 'lib/bulk_imports/clients/http.rb'
- 'lib/bulk_imports/pipeline/runner.rb'
- 'lib/bulk_imports/projects/pipelines/project_pipeline.rb'
- 'lib/container_registry/client.rb'
- 'lib/feature/definition.rb'
@ -525,21 +546,24 @@ Style/GuardClause:
- 'lib/gitlab/ci/reports/codequality_reports_comparer.rb'
- 'lib/gitlab/ci/reports/security/vulnerability_reports_comparer.rb'
- 'lib/gitlab/ci/runner/backoff.rb'
- 'lib/gitlab/ci/runner_upgrade_check.rb'
- 'lib/gitlab/ci/trace.rb'
- 'lib/gitlab/ci/trace/archive.rb'
- 'lib/gitlab/ci/trace/stream.rb'
- 'lib/gitlab/ci/yaml_processor.rb'
- 'lib/gitlab/config/entry/validators.rb'
- 'lib/gitlab/daemon.rb'
- 'lib/gitlab/database/background_migration/batch_optimizer.rb'
- 'lib/gitlab/database/background_migration/batched_migration_wrapper.rb'
- 'lib/gitlab/database/consistency_checker.rb'
- 'lib/gitlab/database/load_balancing/configuration.rb'
- 'lib/gitlab/database/load_balancing/load_balancer.rb'
- 'lib/gitlab/database/lock_writes_manager.rb'
- 'lib/gitlab/database/migration_helpers.rb'
- 'lib/gitlab/database/migration_helpers/v2.rb'
- 'lib/gitlab/database/partitioning/partition_manager.rb'
- 'lib/gitlab/database/partitioning/sliding_list_strategy.rb'
- 'lib/gitlab/database/postgresql_adapter/force_disconnectable_mixin.rb'
- 'lib/gitlab/database/query_analyzers/gitlab_schemas_validate_connection.rb'
- 'lib/gitlab/database/query_analyzers/restrict_allowed_schemas.rb'
- 'lib/gitlab/diff/file.rb'
- 'lib/gitlab/diff/highlight.rb'
@ -550,7 +574,6 @@ Style/GuardClause:
- 'lib/gitlab/email/hook/email_template_interceptor.rb'
- 'lib/gitlab/email/receiver.rb'
- 'lib/gitlab/endpoint_attributes/config.rb'
- 'lib/gitlab/error_tracking.rb'
- 'lib/gitlab/event_store/event.rb'
- 'lib/gitlab/event_store/store.rb'
- 'lib/gitlab/exception_log_formatter.rb'
@ -571,10 +594,7 @@ Style/GuardClause:
- 'lib/gitlab/github_import/object_counter.rb'
- 'lib/gitlab/gitlab_import/client.rb'
- 'lib/gitlab/gitlab_import/importer.rb'
- 'lib/gitlab/graphql/pagination/keyset/conditions/not_null_condition.rb'
- 'lib/gitlab/graphql/pagination/keyset/conditions/null_condition.rb'
- 'lib/gitlab/graphql/pagination/keyset/order_info.rb'
- 'lib/gitlab/graphql/pagination/keyset/query_builder.rb'
- 'lib/gitlab/graphql/query_analyzers/ast/recursion_analyzer.rb'
- 'lib/gitlab/i18n/metadata_entry.rb'
- 'lib/gitlab/i18n/po_linter.rb'
- 'lib/gitlab/import_export/after_export_strategies/web_upload_strategy.rb'
@ -583,14 +603,19 @@ Style/GuardClause:
- 'lib/gitlab/import_export/command_line_util.rb'
- 'lib/gitlab/import_export/group/tree_restorer.rb'
- 'lib/gitlab/import_export/importer.rb'
- 'lib/gitlab/import_export/project/relation_factory.rb'
- 'lib/gitlab/import_export/repo_restorer.rb'
- 'lib/gitlab/import_export/snippet_repo_restorer.rb'
- 'lib/gitlab/import_export/version_checker.rb'
- 'lib/gitlab/instrumentation/global_search_api.rb'
- 'lib/gitlab/instrumentation/rate_limiting_gates.rb'
- 'lib/gitlab/instrumentation/redis_cluster_validator.rb'
- 'lib/gitlab/instrumentation/uploads.rb'
- 'lib/gitlab/issuable/clone/copy_resource_events_service.rb'
- 'lib/gitlab/legacy_github_import/client.rb'
- 'lib/gitlab/legacy_github_import/issuable_formatter.rb'
- 'lib/gitlab/marginalia.rb'
- 'lib/gitlab/memory/watchdog.rb'
- 'lib/gitlab/metrics/samplers/ruby_sampler.rb'
- 'lib/gitlab/metrics/subscribers/action_cable.rb'
- 'lib/gitlab/metrics/subscribers/active_record.rb'
@ -598,6 +623,7 @@ Style/GuardClause:
- 'lib/gitlab/metrics/subscribers/rails_cache.rb'
- 'lib/gitlab/metrics/web_transaction.rb'
- 'lib/gitlab/middleware/read_only/controller.rb'
- 'lib/gitlab/pages/deployment_update.rb'
- 'lib/gitlab/pagination/gitaly_keyset_pager.rb'
- 'lib/gitlab/pagination/keyset/column_order_definition.rb'
- 'lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns.rb'
@ -626,6 +652,7 @@ Style/GuardClause:
- 'lib/gitlab/ssh_public_key.rb'
- 'lib/gitlab/url_blocker.rb'
- 'lib/gitlab/usage/metric_definition.rb'
- 'lib/gitlab/usage/metrics/instrumentations/count_bulk_imports_entities_metric.rb'
- 'lib/gitlab/usage_data_counters/ci_template_unique_counter.rb'
- 'lib/gitlab/utils.rb'
- 'lib/gitlab/utils/override.rb'
@ -633,6 +660,7 @@ Style/GuardClause:
- 'lib/mattermost/session.rb'
- 'lib/release_highlights/validator/entry.rb'
- 'lib/safe_zip/entry.rb'
- 'lib/service_ping/devops_report.rb'
- 'lib/system_check/app/systemd_unit_files_or_init_script_up_to_date_check.rb'
- 'lib/system_check/incoming_email/mail_room_running_check.rb'
- 'lib/tasks/config_lint.rake'
@ -647,22 +675,22 @@ Style/GuardClause:
- 'qa/qa/page/component/snippet.rb'
- 'qa/qa/page/mattermost/login.rb'
- 'qa/qa/page/page_concern.rb'
- 'qa/qa/page/project/settings/deploy_tokens.rb'
- 'qa/qa/resource/api_fabricator.rb'
- 'qa/qa/resource/package.rb'
- 'qa/qa/resource/project.rb'
- 'qa/qa/resource/registry_repository.rb'
- 'qa/qa/resource/reusable.rb'
- 'qa/qa/resource/user_gpg.rb'
- 'qa/qa/runtime/feature.rb'
- 'qa/qa/runtime/search.rb'
- 'qa/qa/service/cluster_provider/gcloud.rb'
- 'qa/qa/service/docker_run/gitlab_runner.rb'
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/11_fulfillment/purchase/free_trial_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/3_create/repository/group_file_template_spec.rb'
- 'qa/qa/specs/helpers/feature_flag.rb'
- 'qa/qa/support/page_error_checker.rb'
- 'qa/qa/vendor/jenkins/job.rb'
- 'rubocop/cop/api/grape_array_missing_coerce.rb'
- 'rubocop/cop/gitlab/duplicate_spec_location.rb'
- 'rubocop/cop/gitlab/event_store_subscriber.rb'
@ -702,6 +730,7 @@ Style/GuardClause:
- 'spec/support/import_export/export_file_helper.rb'
- 'spec/support/shared_examples/features/packages_shared_examples.rb'
- 'spec/support/shared_examples/services/packages/debian/generate_distribution_shared_examples.rb'
- 'spec/tooling/lib/tooling/find_codeowners_spec.rb'
- 'spec/workers/container_expiration_policies/cleanup_container_repository_worker_spec.rb'
- 'tooling/lib/tooling/helm3_client.rb'
- 'tooling/lib/tooling/image.rb'

View File

@ -1,17 +1,13 @@
---
Style/IfInsideElse:
# Offense count: 43
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/controllers/application_controller.rb'
- 'app/controllers/passwords_controller.rb'
- 'app/finders/projects_finder.rb'
- 'app/finders/user_recent_events_finder.rb'
- 'app/helpers/diff_helper.rb'
- 'app/helpers/issuables_helper.rb'
- 'app/helpers/members_helper.rb'
- 'app/helpers/search_helper.rb'
- 'app/models/ci/build.rb'
- 'app/models/namespace.rb'
- 'app/presenters/project_presenter.rb'
- 'app/services/system_notes/commit_service.rb'
@ -22,6 +18,7 @@ Style/IfInsideElse:
- 'ee/app/controllers/ee/registrations/welcome_controller.rb'
- 'ee/app/controllers/groups/omniauth_callbacks_controller.rb'
- 'ee/app/models/ee/namespace.rb'
- 'ee/app/models/iterations/cadence.rb'
- 'ee/app/models/protected_environments/authorizable.rb'
- 'ee/app/policies/ee/group_policy.rb'
- 'ee/app/services/app_sec/dast/site_profiles/audit/update_service.rb'
@ -30,12 +27,15 @@ Style/IfInsideElse:
- 'ee/app/services/geo/repository_base_sync_service.rb'
- 'ee/app/services/gitlab_subscriptions/fetch_subscription_plans_service.rb'
- 'ee/app/services/vulnerability_external_issue_links/create_service.rb'
- 'ee/app/workers/elastic/project_transfer_worker.rb'
- 'ee/app/workers/project_import_schedule_worker.rb'
- 'ee/lib/gitlab/geo/base_batcher.rb'
- 'lib/api/projects.rb'
- 'lib/gitlab/auth.rb'
- 'lib/gitlab/conflict/file.rb'
- 'lib/gitlab/sql/pattern.rb'
- 'lib/gitlab/usage/service_ping/payload_keys_processor.rb'
- 'lib/service_ping/build_payload.rb'
- 'lib/tasks/gitlab/cleanup.rake'
- 'lib/tasks/gitlab/shell.rake'
- 'qa/qa/resource/protected_branch.rb'

View File

@ -1,14 +1,10 @@
---
# Cop supports --auto-correct.
Style/IfUnlessModifier:
# Offense count: 1937
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/channels/graphql_channel.rb'
- 'app/controllers/admin/application_settings_controller.rb'
- 'app/controllers/admin/projects_controller.rb'
- 'app/controllers/admin/runners_controller.rb'
- 'app/controllers/admin/users_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/concerns/controller_with_cross_project_access_check.rb'
@ -25,6 +21,8 @@ Style/IfUnlessModifier:
- 'app/controllers/concerns/paginated_collection.rb'
- 'app/controllers/concerns/record_user_last_activity.rb'
- 'app/controllers/concerns/sorting_preference.rb'
- 'app/controllers/concerns/uploads_actions.rb'
- 'app/controllers/concerns/verifies_with_email.rb'
- 'app/controllers/concerns/wiki_actions.rb'
- 'app/controllers/concerns/with_performance_bar.rb'
- 'app/controllers/explore/projects_controller.rb'
@ -33,9 +31,9 @@ Style/IfUnlessModifier:
- 'app/controllers/groups_controller.rb'
- 'app/controllers/import/fogbugz_controller.rb'
- 'app/controllers/import/gitea_controller.rb'
- 'app/controllers/import/github_controller.rb'
- 'app/controllers/import/gitlab_controller.rb'
- 'app/controllers/import/manifest_controller.rb'
- 'app/controllers/jira_connect/application_controller.rb'
- 'app/controllers/jwt_controller.rb'
- 'app/controllers/omniauth_callbacks_controller.rb'
- 'app/controllers/profiles/emails_controller.rb'
@ -53,12 +51,15 @@ Style/IfUnlessModifier:
- 'app/controllers/projects/issues_controller.rb'
- 'app/controllers/projects/merge_requests/diffs_controller.rb'
- 'app/controllers/projects/merge_requests_controller.rb'
- 'app/controllers/projects/pipelines/tests_controller.rb'
- 'app/controllers/projects/protected_refs_controller.rb'
- 'app/controllers/projects/releases_controller.rb'
- 'app/controllers/projects/runners_controller.rb'
- 'app/controllers/projects_controller.rb'
- 'app/controllers/registrations_controller.rb'
- 'app/controllers/repositories/git_http_controller.rb'
- 'app/controllers/repositories/lfs_api_controller.rb'
- 'app/controllers/repositories/lfs_storage_controller.rb'
- 'app/controllers/sessions_controller.rb'
- 'app/controllers/users/terms_controller.rb'
- 'app/finders/autocomplete/users_finder.rb'
@ -92,7 +93,6 @@ Style/IfUnlessModifier:
- 'app/graphql/mutations/release_asset_links/delete.rb'
- 'app/graphql/mutations/release_asset_links/update.rb'
- 'app/graphql/mutations/todos/mark_all_done.rb'
- 'app/graphql/mutations/work_items/create.rb'
- 'app/graphql/resolvers/blobs_resolver.rb'
- 'app/graphql/resolvers/ci/runner_jobs_resolver.rb'
- 'app/graphql/resolvers/concerns/board_item_filterable.rb'
@ -105,7 +105,6 @@ Style/IfUnlessModifier:
- 'app/graphql/resolvers/timelog_resolver.rb'
- 'app/graphql/types/ci/job_type.rb'
- 'app/helpers/admin/user_actions_helper.rb'
- 'app/helpers/appearances_helper.rb'
- 'app/helpers/blob_helper.rb'
- 'app/helpers/button_helper.rb'
- 'app/helpers/ci/status_helper.rb'
@ -116,7 +115,6 @@ Style/IfUnlessModifier:
- 'app/helpers/events_helper.rb'
- 'app/helpers/form_helper.rb'
- 'app/helpers/groups_helper.rb'
- 'app/helpers/issuables_description_templates_helper.rb'
- 'app/helpers/issuables_helper.rb'
- 'app/helpers/issues_helper.rb'
- 'app/helpers/lazy_image_tag_helper.rb'
@ -135,6 +133,7 @@ Style/IfUnlessModifier:
- 'app/helpers/selects_helper.rb'
- 'app/helpers/snippets_helper.rb'
- 'app/helpers/sorting_helper.rb'
- 'app/helpers/storage_helper.rb'
- 'app/helpers/submodule_helper.rb'
- 'app/helpers/tab_helper.rb'
- 'app/helpers/timeboxes_helper.rb'
@ -153,6 +152,7 @@ Style/IfUnlessModifier:
- 'app/models/ci/build.rb'
- 'app/models/ci/build_trace_chunk.rb'
- 'app/models/ci/job_artifact.rb'
- 'app/models/ci/pending_build.rb'
- 'app/models/ci/pipeline.rb'
- 'app/models/ci/runner.rb'
- 'app/models/ci/running_build.rb'
@ -170,7 +170,6 @@ Style/IfUnlessModifier:
- 'app/models/concerns/ci/artifactable.rb'
- 'app/models/concerns/counter_attribute.rb'
- 'app/models/concerns/deprecated_assignee.rb'
- 'app/models/concerns/diff_positionable_note.rb'
- 'app/models/concerns/group_descendant.rb'
- 'app/models/concerns/has_wiki_page_meta_attributes.rb'
- 'app/models/concerns/id_in_ordered.rb'
@ -178,10 +177,10 @@ Style/IfUnlessModifier:
- 'app/models/concerns/issuable.rb'
- 'app/models/concerns/issuable_link.rb'
- 'app/models/concerns/issue_available_features.rb'
- 'app/models/concerns/limitable.rb'
- 'app/models/concerns/mentionable.rb'
- 'app/models/concerns/noteable.rb'
- 'app/models/concerns/routable.rb'
- 'app/models/concerns/sha_attribute.rb'
- 'app/models/concerns/timebox.rb'
- 'app/models/concerns/token_authenticatable_strategies/base.rb'
- 'app/models/concerns/token_authenticatable_strategies/digest.rb'
@ -195,6 +194,7 @@ Style/IfUnlessModifier:
- 'app/models/error_tracking/project_error_tracking_setting.rb'
- 'app/models/external_pull_request.rb'
- 'app/models/generic_commit_status.rb'
- 'app/models/grafana_integration.rb'
- 'app/models/group.rb'
- 'app/models/integrations/asana.rb'
- 'app/models/integrations/bamboo.rb'
@ -205,6 +205,7 @@ Style/IfUnlessModifier:
- 'app/models/integrations/jira.rb'
- 'app/models/integrations/pushover.rb'
- 'app/models/integrations/teamcity.rb'
- 'app/models/issue.rb'
- 'app/models/issue_email_participant.rb'
- 'app/models/label_note.rb'
- 'app/models/list.rb'
@ -217,7 +218,6 @@ Style/IfUnlessModifier:
- 'app/models/namespace.rb'
- 'app/models/namespace_setting.rb'
- 'app/models/namespaces/traversal/linear.rb'
- 'app/models/namespaces/traversal/linear_scopes.rb'
- 'app/models/network/graph.rb'
- 'app/models/note.rb'
- 'app/models/notification_setting.rb'
@ -239,7 +239,6 @@ Style/IfUnlessModifier:
- 'app/models/remote_mirror.rb'
- 'app/models/repository.rb'
- 'app/models/route.rb'
- 'app/models/sent_notification.rb'
- 'app/models/service_desk_setting.rb'
- 'app/models/snippet_input_action.rb'
- 'app/models/state_note.rb'
@ -247,6 +246,8 @@ Style/IfUnlessModifier:
- 'app/models/synthetic_note.rb'
- 'app/models/user.rb'
- 'app/models/wiki.rb'
- 'app/models/work_items/parent_link.rb'
- 'app/policies/project_policy.rb'
- 'app/presenters/blob_presenter.rb'
- 'app/presenters/ci/pipeline_presenter.rb'
- 'app/presenters/merge_request_presenter.rb'
@ -266,7 +267,6 @@ Style/IfUnlessModifier:
- 'app/services/boards/lists/base_create_service.rb'
- 'app/services/boards/lists/list_service.rb'
- 'app/services/branches/validate_new_service.rb'
- 'app/services/bulk_imports/file_decompression_service.rb'
- 'app/services/ci/create_pipeline_service.rb'
- 'app/services/ci/create_web_ide_terminal_service.rb'
- 'app/services/ci/job_token_scope/remove_project_service.rb'
@ -276,6 +276,8 @@ Style/IfUnlessModifier:
- 'app/services/ci/register_job_service.rb'
- 'app/services/ci/retry_job_service.rb'
- 'app/services/ci/run_scheduled_build_service.rb'
- 'app/services/ci/runners/reconcile_existing_runner_versions_service.rb'
- 'app/services/ci/runners/register_runner_service.rb'
- 'app/services/ci/update_build_state_service.rb'
- 'app/services/clusters/applications/base_service.rb'
- 'app/services/clusters/applications/prometheus_update_service.rb'
@ -299,6 +301,7 @@ Style/IfUnlessModifier:
- 'app/services/error_tracking/collect_error_service.rb'
- 'app/services/git/process_ref_changes_service.rb'
- 'app/services/google_cloud/generate_pipeline_service.rb'
- 'app/services/google_cloud/setup_cloudsql_instance_service.rb'
- 'app/services/groups/create_service.rb'
- 'app/services/groups/transfer_service.rb'
- 'app/services/groups/update_statistics_service.rb'
@ -314,7 +317,6 @@ Style/IfUnlessModifier:
- 'app/services/issues/relative_position_rebalancing_service.rb'
- 'app/services/issues/update_service.rb'
- 'app/services/lfs/lock_file_service.rb'
- 'app/services/members/approve_access_request_service.rb'
- 'app/services/members/destroy_service.rb'
- 'app/services/members/update_service.rb'
- 'app/services/merge_requests/add_context_service.rb'
@ -322,7 +324,6 @@ Style/IfUnlessModifier:
- 'app/services/merge_requests/build_service.rb'
- 'app/services/merge_requests/handle_assignees_change_service.rb'
- 'app/services/merge_requests/merge_base_service.rb'
- 'app/services/merge_requests/mergeability/run_checks_service.rb'
- 'app/services/merge_requests/mergeability_check_service.rb'
- 'app/services/merge_requests/push_options_handler_service.rb'
- 'app/services/merge_requests/refresh_service.rb'
@ -371,8 +372,8 @@ Style/IfUnlessModifier:
- 'app/services/projects/overwrite_project_service.rb'
- 'app/services/projects/participants_service.rb'
- 'app/services/projects/transfer_service.rb'
- 'app/services/projects/update_pages_service.rb'
- 'app/services/projects/update_repository_storage_service.rb'
- 'app/services/protected_branches/cache_service.rb'
- 'app/services/resource_access_tokens/create_service.rb'
- 'app/services/resource_events/change_labels_service.rb'
- 'app/services/snippets/create_service.rb'
@ -388,6 +389,8 @@ Style/IfUnlessModifier:
- 'app/services/users/respond_to_terms_service.rb'
- 'app/services/wikis/create_attachment_service.rb'
- 'app/services/work_items/create_service.rb'
- 'app/services/work_items/parent_links/create_service.rb'
- 'app/services/work_items/task_list_reference_removal_service.rb'
- 'app/services/work_items/task_list_reference_replacement_service.rb'
- 'app/uploaders/file_mover.rb'
- 'app/uploaders/object_storage.rb'
@ -408,17 +411,20 @@ Style/IfUnlessModifier:
- 'app/views/projects/merge_requests/index.atom.builder'
- 'app/workers/authorized_project_update/user_refresh_from_replica_worker.rb'
- 'app/workers/auto_devops/disable_worker.rb'
- 'app/workers/cleanup_container_repository_worker.rb'
- 'app/workers/concerns/application_worker.rb'
- 'app/workers/concerns/packages/cleanup_artifact_worker.rb'
- 'app/workers/concerns/project_start_import.rb'
- 'app/workers/concerns/waitable_worker.rb'
- 'app/workers/concerns/worker_attributes.rb'
- 'app/workers/database/batched_background_migration/single_database_worker.rb'
- 'app/workers/delete_container_repository_worker.rb'
- 'app/workers/file_hook_worker.rb'
- 'app/workers/google_cloud/create_cloudsql_instance_worker.rb'
- 'app/workers/issues/rebalancing_worker.rb'
- 'app/workers/merge_request_mergeability_check_worker.rb'
- 'app/workers/object_storage/migrate_uploads_worker.rb'
- 'app/workers/process_commit_worker.rb'
- 'app/workers/projects/import_export/relation_export_worker.rb'
- 'app/workers/remove_expired_members_worker.rb'
- 'app/workers/repository_fork_worker.rb'
- 'app/workers/repository_update_remote_mirror_worker.rb'
@ -429,11 +435,10 @@ Style/IfUnlessModifier:
- 'config/initializers/1_settings.rb'
- 'config/initializers/6_validations.rb'
- 'config/initializers/8_devise.rb'
- 'config/initializers/active_record_data_types.rb'
- 'config/initializers/active_record_transaction_patches.rb'
- 'config/initializers/content_security_policy.rb'
- 'config/initializers/default_url_options.rb'
- 'config/initializers/direct_upload_support.rb'
- 'config/initializers/doorkeeper.rb'
- 'config/initializers/geo.rb'
- 'config/initializers/google_api_client.rb'
- 'config/initializers/google_api_client_patch.rb'
@ -449,7 +454,6 @@ Style/IfUnlessModifier:
- 'config/initializers/zz_metrics.rb'
- 'config/initializers_before_autoloader/002_sidekiq.rb'
- 'config/routes.rb'
- 'config/settings.rb'
- 'danger/database/Dangerfile'
- 'danger/pipeline/Dangerfile'
- 'danger/specs/Dangerfile'
@ -465,7 +469,8 @@ Style/IfUnlessModifier:
- 'db/post_migrate/20211021140426_remove_geo_upload_deprecated_fields.rb'
- 'db/post_migrate/20220128155814_fix_approval_rules_code_owners_rule_type_index.rb'
- 'db/post_migrate/20220131000001_schedule_trace_expiry_removal.rb'
- 'ee/app/controllers/admin/audit_logs_controller.rb'
- 'db/post_migrate/20220523171107_drop_deploy_tokens_token_column.rb'
- 'ee/app/components/namespaces/storage/limit_alert.rb'
- 'ee/app/controllers/admin/elasticsearch_controller.rb'
- 'ee/app/controllers/admin/emails_controller.rb'
- 'ee/app/controllers/admin/geo/application_controller.rb'
@ -495,10 +500,11 @@ Style/IfUnlessModifier:
- 'ee/app/finders/merge_trains_finder.rb'
- 'ee/app/finders/security/pipeline_vulnerabilities_finder.rb'
- 'ee/app/finders/security/vulnerabilities_finder.rb'
- 'ee/app/graphql/ee/mutations/issues/create.rb'
- 'ee/app/graphql/ee/resolvers/base_issues_resolver.rb'
- 'ee/app/graphql/mutations/audit_events/external_audit_event_destinations/create.rb'
- 'ee/app/graphql/mutations/audit_events/external_audit_event_destinations/destroy.rb'
- 'ee/app/graphql/mutations/boards/scoped_board_mutation.rb'
- 'ee/app/graphql/mutations/dast_site_profiles/create.rb'
- 'ee/app/graphql/mutations/iterations/update.rb'
- 'ee/app/graphql/mutations/projects/set_locked.rb'
- 'ee/app/graphql/resolvers/analytics/devops_adoption/enabled_namespaces_resolver.rb'
@ -506,38 +512,37 @@ Style/IfUnlessModifier:
- 'ee/app/graphql/resolvers/boards/epic_lists_resolver.rb'
- 'ee/app/graphql/resolvers/iterations/cadences_resolver.rb'
- 'ee/app/helpers/billing_plans_helper.rb'
- 'ee/app/helpers/ee/application_helper.rb'
- 'ee/app/helpers/ee/dashboard_helper.rb'
- 'ee/app/helpers/ee/environments_helper.rb'
- 'ee/app/helpers/ee/integrations_helper.rb'
- 'ee/app/helpers/ee/issues_helper.rb'
- 'ee/app/helpers/ee/labels_helper.rb'
- 'ee/app/helpers/ee/merge_requests_helper.rb'
- 'ee/app/helpers/ee/notes_helper.rb'
- 'ee/app/helpers/ee/personal_access_tokens_helper.rb'
- 'ee/app/helpers/ee/projects/pipeline_helper.rb'
- '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/approval_project_rule.rb'
- 'ee/app/models/concerns/ee/protected_ref_access.rb'
- 'ee/app/models/concerns/elastic/application_versioned_search.rb'
- 'ee/app/models/concerns/geo/replicable_model.rb'
- 'ee/app/models/concerns/geo/verifiable_replicator.rb'
- 'ee/app/models/concerns/security/scan_execution_policy.rb'
- 'ee/app/models/dast_site_profile.rb'
- 'ee/app/models/ee/application_setting.rb'
- 'ee/app/models/ee/ci/job_artifact.rb'
- 'ee/app/models/ee/group.rb'
- 'ee/app/models/ee/group_member.rb'
- 'ee/app/models/ee/issue.rb'
- 'ee/app/models/ee/iteration.rb'
- 'ee/app/models/ee/key.rb'
- 'ee/app/models/ee/list.rb'
- 'ee/app/models/ee/member.rb'
- 'ee/app/models/ee/milestone_release.rb'
- 'ee/app/models/ee/namespace.rb'
- 'ee/app/models/ee/project.rb'
- 'ee/app/models/ee/project_feature.rb'
- 'ee/app/models/ee/project_team.rb'
- 'ee/app/models/ee/user.rb'
- 'ee/app/models/ee/vulnerability.rb'
- 'ee/app/models/geo/project_registry.rb'
- 'ee/app/models/geo/tracking_base.rb'
- 'ee/app/models/incident_management/escalation_rule.rb'
@ -553,6 +558,7 @@ Style/IfUnlessModifier:
- 'ee/app/serializers/vulnerabilities/finding_serializer.rb'
- 'ee/app/services/analytics/cycle_analytics/aggregator_service.rb'
- 'ee/app/services/analytics/cycle_analytics/validations.rb'
- 'ee/app/services/app_sec/dast/pipelines/find_latest_service.rb'
- 'ee/app/services/app_sec/dast/profiles/build_config_service.rb'
- 'ee/app/services/app_sec/dast/profiles/create_associations_service.rb'
- 'ee/app/services/app_sec/dast/scan_configs/build_service.rb'
@ -563,7 +569,6 @@ Style/IfUnlessModifier:
- 'ee/app/services/app_sec/dast/site_profiles/destroy_service.rb'
- 'ee/app/services/app_sec/dast/site_profiles/update_service.rb'
- 'ee/app/services/app_sec/fuzzing/api/ci_configuration_create_service.rb'
- 'ee/app/services/audit_events/runner_audit_event_service.rb'
- 'ee/app/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service.rb'
- 'ee/app/services/billable_members/destroy_service.rb'
- 'ee/app/services/boards/epic_boards/create_service.rb'
@ -571,6 +576,7 @@ Style/IfUnlessModifier:
- 'ee/app/services/boards/epics/create_service.rb'
- 'ee/app/services/ci/minutes/update_project_and_namespace_usage_service.rb'
- 'ee/app/services/ci/subscribe_bridge_service.rb'
- 'ee/app/services/ci/sync_reports_to_approval_rules_service.rb'
- 'ee/app/services/compliance_management/frameworks/create_service.rb'
- 'ee/app/services/compliance_management/merge_requests/create_compliance_violations_service.rb'
- 'ee/app/services/deployments/auto_rollback_service.rb'
@ -580,15 +586,13 @@ Style/IfUnlessModifier:
- 'ee/app/services/ee/audit_event_service.rb'
- 'ee/app/services/ee/boards/base_service.rb'
- 'ee/app/services/ee/boards/issues/move_service.rb'
- 'ee/app/services/ee/ci/runners/reset_registration_token_service.rb'
- 'ee/app/services/ee/commits/create_service.rb'
- 'ee/app/services/ee/deploy_keys/create_service.rb'
- 'ee/app/services/ee/groups/update_service.rb'
- 'ee/app/services/ee/ip_restrictions/update_service.rb'
- 'ee/app/services/ee/issuable_base_service.rb'
- 'ee/app/services/ee/issues/base_service.rb'
- 'ee/app/services/ee/issues/clone_service.rb'
- 'ee/app/services/ee/issues/move_service.rb'
- 'ee/app/services/ee/merge_requests/base_service.rb'
- 'ee/app/services/ee/merge_requests/refresh_service.rb'
- 'ee/app/services/ee/merge_requests/update_service.rb'
- 'ee/app/services/ee/milestones/update_service.rb'
@ -597,16 +601,18 @@ Style/IfUnlessModifier:
- 'ee/app/services/ee/projects/destroy_service.rb'
- 'ee/app/services/ee/projects/gitlab_projects_import_service.rb'
- 'ee/app/services/ee/protected_branches/create_service.rb'
- 'ee/app/services/ee/resource_events/change_labels_service.rb'
- 'ee/app/services/ee/todo_service.rb'
- 'ee/app/services/ee/users/update_service.rb'
- 'ee/app/services/elastic/indexing_control_service.rb'
- 'ee/app/services/elastic/process_bookkeeping_service.rb'
- 'ee/app/services/epics/base_service.rb'
- 'ee/app/services/epics/create_service.rb'
- 'ee/app/services/epics/epic_links/create_service.rb'
- 'ee/app/services/epics/epic_links/update_service.rb'
- 'ee/app/services/epics/update_dates_service.rb'
- 'ee/app/services/epics/update_service.rb'
- 'ee/app/services/external_status_checks/create_service.rb'
- 'ee/app/services/geo/file_registry_removal_service.rb'
- 'ee/app/services/geo/metrics_update_service.rb'
- 'ee/app/services/geo/move_repository_service.rb'
- 'ee/app/services/geo/prune_event_log_service.rb'
@ -624,7 +630,6 @@ Style/IfUnlessModifier:
- 'ee/app/services/merge_requests/update_blocks_service.rb'
- 'ee/app/services/merge_trains/refresh_merge_request_service.rb'
- 'ee/app/services/projects/mark_for_deletion_service.rb'
- 'ee/app/services/projects/slack_application_install_service.rb'
- 'ee/app/services/projects/update_mirror_service.rb'
- 'ee/app/services/resource_events/change_weight_service.rb'
- 'ee/app/services/security/dependency_list_service.rb'
@ -648,17 +653,18 @@ Style/IfUnlessModifier:
- 'ee/app/services/vulnerability_feedback/destroy_service.rb'
- 'ee/app/services/vulnerability_feedback_module/update_service.rb'
- 'ee/app/validators/host_validator.rb'
- 'ee/app/validators/password/complexity_validator.rb'
- 'ee/app/workers/app_sec/dast/profile_schedule_worker.rb'
- 'ee/app/workers/audit_events/audit_event_streaming_worker.rb'
- 'ee/app/workers/concerns/elastic/migration_helper.rb'
- 'ee/app/workers/ee/ci/build_finished_worker.rb'
- 'ee/app/workers/ee/post_receive.rb'
- 'ee/app/workers/elastic/project_transfer_worker.rb'
- 'ee/app/workers/epics/new_epic_issue_worker.rb'
- 'ee/app/workers/geo/secondary/registry_consistency_worker.rb'
- 'ee/app/workers/security/orchestration_policy_rule_schedule_namespace_worker.rb'
- 'ee/db/geo/migrate/20170627195211_add_index_to_project_registry.rb'
- 'ee/db/geo/migrate/20180402170913_add_missing_on_primary_to_job_artifact_registry..rb'
- 'ee/lib/analytics/devops_adoption/snapshot_calculator.rb'
- 'ee/elastic/migrate/20220119120500_populate_commit_permissions_in_main_index.rb'
- 'ee/lib/api/epics.rb'
- 'ee/lib/api/merge_request_approval_rules.rb'
- 'ee/lib/api/protected_environments.rb'
@ -678,7 +684,6 @@ Style/IfUnlessModifier:
- 'ee/lib/ee/container_registry/client.rb'
- 'ee/lib/ee/gitlab/auth/ldap/access.rb'
- 'ee/lib/ee/gitlab/auth/ldap/group.rb'
- 'ee/lib/ee/gitlab/background_migration/drop_invalid_remediations.rb'
- 'ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules_check_progress.rb'
- 'ee/lib/ee/gitlab/checks/diff_check.rb'
- 'ee/lib/ee/gitlab/checks/push_rules/tag_check.rb'
@ -712,7 +717,7 @@ Style/IfUnlessModifier:
- 'ee/lib/gitlab/geo/replication/blob_downloader.rb'
- 'ee/lib/gitlab/geo/replicator.rb'
- 'ee/lib/gitlab/graphql/aggregations/epics/lazy_epic_aggregate.rb'
- 'ee/lib/gitlab/graphql/aggregations/issues/lazy_links_aggregate.rb'
- 'ee/lib/gitlab/graphql/aggregations/issuables/lazy_links_aggregate.rb'
- 'ee/lib/gitlab/graphql/aggregations/security_orchestration_policies/lazy_dast_profile_aggregate.rb'
- 'ee/lib/gitlab/graphql/aggregations/vulnerabilities/lazy_user_notes_count_aggregate.rb'
- 'ee/lib/gitlab/graphql/aggregations/vulnerability_statistics/lazy_aggregate.rb'
@ -740,7 +745,6 @@ Style/IfUnlessModifier:
- 'ee/spec/graphql/types/pipeline_security_report_finding_type_spec.rb'
- 'ee/spec/helpers/ee/users/callouts_helper_spec.rb'
- 'ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb'
- 'ee/spec/lib/gitlab/elastic/project_search_results_spec.rb'
- 'ee/spec/lib/gitlab/elastic/search_results_spec.rb'
- 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb'
- 'ee/spec/models/concerns/elastic/note_spec.rb'
@ -765,7 +769,6 @@ Style/IfUnlessModifier:
- 'lib/api/ci/pipeline_schedules.rb'
- 'lib/api/ci/runner.rb'
- 'lib/api/ci/runners.rb'
- 'lib/api/ci/secure_files.rb'
- 'lib/api/commits.rb'
- 'lib/api/debian_project_packages.rb'
- 'lib/api/deployments.rb'
@ -774,7 +777,6 @@ Style/IfUnlessModifier:
- 'lib/api/entities/member_access.rb'
- 'lib/api/entities/project_import_status.rb'
- 'lib/api/feature_flags.rb'
- 'lib/api/feature_flags_user_lists.rb'
- 'lib/api/files.rb'
- 'lib/api/groups.rb'
- 'lib/api/helm_packages.rb'
@ -790,14 +792,15 @@ Style/IfUnlessModifier:
- 'lib/api/helpers/projects_helpers.rb'
- 'lib/api/helpers/users_helpers.rb'
- 'lib/api/helpers/version.rb'
- 'lib/api/helpers/web_hooks_helpers.rb'
- 'lib/api/internal/base.rb'
- 'lib/api/internal/container_registry/migration.rb'
- 'lib/api/internal/error_tracking.rb'
- 'lib/api/invitations.rb'
- 'lib/api/maven_packages.rb'
- 'lib/api/merge_requests.rb'
- 'lib/api/nuget_project_packages.rb'
- 'lib/api/pages_domains.rb'
- 'lib/api/project_clusters.rb'
- 'lib/api/project_snippets.rb'
- 'lib/api/projects.rb'
- 'lib/api/projects_relation_builder.rb'
@ -839,6 +842,7 @@ Style/IfUnlessModifier:
- 'lib/generators/gitlab/usage_metric_generator.rb'
- 'lib/gitlab/analytics/cycle_analytics/aggregated/records_fetcher.rb'
- 'lib/gitlab/analytics/cycle_analytics/request_params.rb'
- 'lib/gitlab/application_context.rb'
- 'lib/gitlab/auth.rb'
- 'lib/gitlab/auth/auth_finders.rb'
- 'lib/gitlab/auth/ldap/adapter.rb'
@ -860,6 +864,7 @@ Style/IfUnlessModifier:
- 'lib/gitlab/checks/matching_merge_request.rb'
- 'lib/gitlab/checks/push_check.rb'
- 'lib/gitlab/checks/push_file_count_check.rb'
- 'lib/gitlab/checks/tag_check.rb'
- 'lib/gitlab/ci/ansi2html.rb'
- 'lib/gitlab/ci/ansi2json/converter.rb'
- 'lib/gitlab/ci/ansi2json/style.rb'
@ -875,7 +880,6 @@ Style/IfUnlessModifier:
- 'lib/gitlab/ci/config/entry/jobs.rb'
- 'lib/gitlab/ci/config/entry/needs.rb'
- 'lib/gitlab/ci/config/entry/policy.rb'
- 'lib/gitlab/ci/config/entry/processable.rb'
- 'lib/gitlab/ci/config/entry/product/matrix.rb'
- 'lib/gitlab/ci/config/extendable/entry.rb'
- 'lib/gitlab/ci/config/external/file/base.rb'
@ -911,6 +915,7 @@ Style/IfUnlessModifier:
- 'lib/gitlab/content_security_policy/config_loader.rb'
- 'lib/gitlab/cross_project_access/check_info.rb'
- 'lib/gitlab/data_builder/deployment.rb'
- 'lib/gitlab/data_builder/pipeline.rb'
- 'lib/gitlab/database/as_with_materialized.rb'
- 'lib/gitlab/database/background_migration/batched_job.rb'
- 'lib/gitlab/database/background_migration/batched_migration_wrapper.rb'
@ -931,8 +936,6 @@ Style/IfUnlessModifier:
- 'lib/gitlab/database/reindexing/reindex_concurrently.rb'
- 'lib/gitlab/database/transaction/observer.rb'
- 'lib/gitlab/database/with_lock_retries.rb'
- 'lib/gitlab/diff/formatters/base_formatter.rb'
- 'lib/gitlab/diff/rendered/notebook/diff_file.rb'
- 'lib/gitlab/email/handler/service_desk_handler.rb'
- 'lib/gitlab/email/message/in_product_marketing/base.rb'
- 'lib/gitlab/email/message/repository_push.rb'
@ -941,7 +944,6 @@ Style/IfUnlessModifier:
- 'lib/gitlab/encrypted_command_base.rb'
- 'lib/gitlab/encrypted_configuration.rb'
- 'lib/gitlab/endpoint_attributes/config.rb'
- 'lib/gitlab/error_tracking.rb'
- 'lib/gitlab/error_tracking/context_payload_generator.rb'
- 'lib/gitlab/error_tracking/processor/sidekiq_processor.rb'
- 'lib/gitlab/etag_caching/middleware.rb'
@ -959,7 +961,6 @@ Style/IfUnlessModifier:
- 'lib/gitlab/git_access.rb'
- 'lib/gitlab/git_access_project.rb'
- 'lib/gitlab/git_access_snippet.rb'
- 'lib/gitlab/git_access_wiki.rb'
- 'lib/gitlab/gitaly_client.rb'
- 'lib/gitlab/gitaly_client/blob_service.rb'
- 'lib/gitlab/gitaly_client/operation_service.rb'
@ -970,15 +971,11 @@ Style/IfUnlessModifier:
- 'lib/gitlab/gitlab_import/client.rb'
- 'lib/gitlab/gitlab_import/importer.rb'
- 'lib/gitlab/golang.rb'
- 'lib/gitlab/graphql/pagination/keyset/conditions/base_condition.rb'
- 'lib/gitlab/graphql/pagination/keyset/conditions/not_null_condition.rb'
- 'lib/gitlab/graphql/pagination/keyset/connection.rb'
- 'lib/gitlab/graphql/pagination/keyset/generic_keyset_pagination.rb'
- 'lib/gitlab/graphql/pagination/keyset/order_info.rb'
- 'lib/gitlab/graphql/pagination/keyset/query_builder.rb'
- 'lib/gitlab/graphql/queries.rb'
- 'lib/gitlab/hashed_storage/rake_helper.rb'
- 'lib/gitlab/hotlinking_detector.rb'
- 'lib/gitlab/http.rb'
- 'lib/gitlab/http_io.rb'
- 'lib/gitlab/i18n/po_linter.rb'
- 'lib/gitlab/import/import_failure_service.rb'
@ -986,12 +983,13 @@ Style/IfUnlessModifier:
- 'lib/gitlab/import_export/after_export_strategies/web_upload_strategy.rb'
- 'lib/gitlab/import_export/base/relation_factory.rb'
- 'lib/gitlab/import_export/fast_hash_serializer.rb'
- 'lib/gitlab/import_export/file_importer.rb'
- 'lib/gitlab/import_export/group/tree_restorer.rb'
- 'lib/gitlab/import_export/json/legacy_writer.rb'
- 'lib/gitlab/import_export/merge_request_parser.rb'
- 'lib/gitlab/import_export/project/export_task.rb'
- 'lib/gitlab/import_export/project/relation_factory.rb'
- 'lib/gitlab/import_export/project/tree_restorer.rb'
- 'lib/gitlab/instrumentation/rate_limiting_gates.rb'
- 'lib/gitlab/instrumentation/redis_interceptor.rb'
- 'lib/gitlab/jira_import.rb'
- 'lib/gitlab/jira_import/base_importer.rb'
@ -999,6 +997,7 @@ Style/IfUnlessModifier:
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/legacy_github_import/issuable_formatter.rb'
- 'lib/gitlab/legacy_github_import/project_creator.rb'
- 'lib/gitlab/lograge/custom_options.rb'
- 'lib/gitlab/mail_room.rb'
- 'lib/gitlab/mail_room/authenticator.rb'
- 'lib/gitlab/manifest_import/manifest.rb'
@ -1010,19 +1009,19 @@ Style/IfUnlessModifier:
- 'lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter.rb'
- 'lib/gitlab/metrics/dashboard/stages/variable_endpoint_inserter.rb'
- 'lib/gitlab/metrics/methods.rb'
- 'lib/gitlab/metrics/rails_slis.rb'
- 'lib/gitlab/metrics/subscribers/rack_attack.rb'
- 'lib/gitlab/metrics/web_transaction.rb'
- 'lib/gitlab/middleware/compressed_json.rb'
- 'lib/gitlab/middleware/multipart.rb'
- 'lib/gitlab/middleware/same_site_cookies.rb'
- 'lib/gitlab/object_hierarchy.rb'
- 'lib/gitlab/omniauth_initializer.rb'
- 'lib/gitlab/pages/deployment_update.rb'
- 'lib/gitlab/pagination/keyset/in_operator_optimization/query_builder.rb'
- 'lib/gitlab/patch/database_config.rb'
- 'lib/gitlab/patch/prependable.rb'
- 'lib/gitlab/popen.rb'
- 'lib/gitlab/query_limiting/active_support_subscriber.rb'
- 'lib/gitlab/quick_actions/command_definition.rb'
- 'lib/gitlab/quick_actions/extractor.rb'
- 'lib/gitlab/quick_actions/issuable_actions.rb'
- 'lib/gitlab/quick_actions/issue_and_merge_request_actions.rb'
@ -1043,11 +1042,9 @@ Style/IfUnlessModifier:
- 'lib/gitlab/sidekiq_middleware/server_metrics.rb'
- 'lib/gitlab/slash_commands/presenters/issue_show.rb'
- 'lib/gitlab/suggestions/suggestion_set.rb'
- 'lib/gitlab/template/gitlab_ci_yml_template.rb'
- 'lib/gitlab/template_parser/eval_state.rb'
- 'lib/gitlab/untrusted_regexp.rb'
- 'lib/gitlab/url_blocker.rb'
- 'lib/gitlab/usage/metrics/aggregates/aggregate.rb'
- 'lib/gitlab/usage_data.rb'
- 'lib/gitlab/usage_data_counters/base_counter.rb'
- 'lib/gitlab/usage_data_counters/hll_redis_counter.rb'
@ -1083,13 +1080,12 @@ Style/IfUnlessModifier:
- 'qa/qa/ee/page/merge_request/show.rb'
- 'qa/qa/ee/resource/settings/elasticsearch.rb'
- 'qa/qa/flow/sign_up.rb'
- 'qa/qa/git/repository.rb'
- 'qa/qa/page/component/design_management.rb'
- 'qa/qa/page/component/select2.rb'
- 'qa/qa/page/component/snippet.rb'
- 'qa/qa/page/element.rb'
- 'qa/qa/page/mattermost/login.rb'
- 'qa/qa/page/page_concern.rb'
- 'qa/qa/page/project/settings/deploy_tokens.rb'
- 'qa/qa/page/project/web_ide/edit.rb'
- 'qa/qa/page/view.rb'
- 'qa/qa/resource/registry_repository.rb'
@ -1098,21 +1094,17 @@ Style/IfUnlessModifier:
- 'qa/qa/resource/runner.rb'
- 'qa/qa/resource/snippet.rb'
- 'qa/qa/runtime/application_settings.rb'
- 'qa/qa/runtime/browser.rb'
- 'qa/qa/runtime/gpg.rb'
- 'qa/qa/runtime/ip_address.rb'
- 'qa/qa/scenario/bootable.rb'
- 'qa/qa/scenario/template.rb'
- 'qa/qa/service/docker_run/gitlab_runner.rb'
- 'qa/qa/service/docker_run/jenkins.rb'
- 'qa/qa/service/praefect_manager.rb'
- 'qa/qa/specs/features/api/3_create/gitaly/distributed_reads_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/merge_request/merge_when_pipeline_succeeds_spec.rb'
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/web_terminal_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/nuget/nuget_group_level_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/package_registry/nuget/nuget_project_level_spec.rb'
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/advanced_global_advanced_syntax_search_spec.rb'
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/elasticsearch_api_spec.rb'
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/index_tests/commit_index/commit_index_spec.rb'
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/index_tests/issues_index/issue_index_spec.rb'
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/index_tests/main_index/blob_index_spec.rb'
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/index_tests/merge_request_index/merge_request_index_spec.rb'
@ -1120,15 +1112,13 @@ Style/IfUnlessModifier:
- 'qa/qa/specs/features/ee/api/9_enablement/elasticsearch/nightly_elasticsearch_test_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/12_geo/geo_replication_maven_package_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/9_enablement/elasticsearch/elasticsearch_reindexing_spec.rb'
- 'qa/qa/specs/helpers/context_selector.rb'
- 'qa/qa/specs/parallel_runner.rb'
- 'qa/qa/support/loglinking.rb'
- 'qa/qa/support/page_error_checker.rb'
- 'qa/qa/support/wait_for_requests.rb'
- 'qa/qa/tools/delete_projects.rb'
- 'qa/qa/tools/delete_user_projects.rb'
- 'qa/qa/tools/generate_perf_testdata.rb'
- 'qa/qa/tools/test_resources_handler.rb'
- 'rubocop/cop/api/grape_array_missing_coerce.rb'
- 'rubocop/cop/avoid_keyword_arguments_in_sidekiq_workers.rb'
- 'rubocop/cop/gitlab/event_store_subscriber.rb'
@ -1148,8 +1138,11 @@ Style/IfUnlessModifier:
- 'scripts/setup/find-jh-branch.rb'
- 'scripts/static-analysis'
- 'sidekiq_cluster/cli.rb'
- 'spec/components/previews/pajamas/alert_component_preview.rb'
- 'spec/components/previews/pajamas/card_component_preview.rb'
- 'spec/db/docs_spec.rb'
- 'spec/factories/ci/runners.rb'
- 'spec/factories/clusters/applications/helm.rb'
- 'spec/factories/container_repositories.rb'
- 'spec/factories/deployments.rb'
- 'spec/factories/labels.rb'
@ -1163,6 +1156,8 @@ Style/IfUnlessModifier:
- 'spec/features/merge_request/batch_comments_spec.rb'
- 'spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb'
- 'spec/features/projects/blobs/edit_spec.rb'
- 'spec/features/projects/tree/create_directory_spec.rb'
- 'spec/features/projects/tree/create_file_spec.rb'
- 'spec/graphql/mutations/releases/update_spec.rb'
- 'spec/helpers/application_settings_helper_spec.rb'
- 'spec/helpers/invite_members_helper_spec.rb'
@ -1172,6 +1167,7 @@ Style/IfUnlessModifier:
- 'spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb'
- 'spec/lib/gitlab/conflict/file_spec.rb'
- 'spec/lib/gitlab/database/load_balancing_spec.rb'
- 'spec/lib/gitlab/database/lock_writes_manager_spec.rb'
- 'spec/lib/gitlab/rack_attack/user_allowlist_spec.rb'
- 'spec/lib/gitlab/sidekiq_config/worker_router_spec.rb'
- 'spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb'
@ -1185,8 +1181,10 @@ Style/IfUnlessModifier:
- 'spec/policies/project_statistics_policy_spec.rb'
- 'spec/requests/api/ci/jobs_spec.rb'
- 'spec/requests/api/commit_statuses_spec.rb'
- 'spec/requests/api/commits_spec.rb'
- 'spec/requests/api/files_spec.rb'
- 'spec/requests/api/integrations_spec.rb'
- 'spec/requests/users_controller_spec.rb'
- 'spec/routing/import_routing_spec.rb'
- 'spec/serializers/issue_sidebar_basic_entity_spec.rb'
- 'spec/services/application_settings/update_service_spec.rb'
@ -1206,13 +1204,11 @@ Style/IfUnlessModifier:
- 'spec/support/external_authorization_service_helpers.rb'
- 'spec/support/flaky_tests.rb'
- 'spec/support/generate-seed-repo-rb'
- 'spec/support/helpers/cycle_analytics_helpers.rb'
- 'spec/support/helpers/filter_spec_helper.rb'
- 'spec/support/helpers/filtered_search_helpers.rb'
- 'spec/support/helpers/gitaly_setup.rb'
- 'spec/support/helpers/graphql_helpers.rb'
- 'spec/support/helpers/javascript_fixtures_helpers.rb'
- 'spec/support/helpers/kubernetes_helpers.rb'
- 'spec/support/helpers/lets_encrypt_helpers.rb'
- 'spec/support/helpers/live_debugger.rb'
- 'spec/support/helpers/modal_helpers.rb'
@ -1246,6 +1242,7 @@ Style/IfUnlessModifier:
- 'spec/views/shared/access_tokens/_table.html.haml_spec.rb'
- 'spec/workers/analytics/usage_trends/counter_job_worker_spec.rb'
- 'tooling/danger/product_intelligence.rb'
- 'tooling/lib/tooling/find_codeowners.rb'
- 'tooling/lib/tooling/image.rb'
- 'tooling/lib/tooling/test_map_packer.rb'
- 'tooling/rspec_flaky/flaky_example.rb'

View File

@ -1,8 +1,5 @@
---
Style/MissingRespondToMissing:
# Offense count: 21
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/controllers/projects/application_controller.rb'
- 'app/models/network/commit.rb'

View File

@ -1,10 +1,8 @@
---
# Cop supports --auto-correct.
Style/Next:
# Offense count: 41
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/models/concerns/integrations/slack_mattermost_notifier.rb'
- 'app/models/preloaders/environments/deployment_preloader.rb'
- 'app/models/route.rb'
- 'app/services/authorized_project_update/find_records_due_for_refresh_service.rb'
@ -16,6 +14,7 @@ Style/Next:
- 'ee/app/services/elastic/cluster_reindexing_service.rb'
- 'ee/app/services/gitlab_subscriptions/fetch_purchase_eligible_namespaces_service.rb'
- 'ee/app/services/security/auto_fix_service.rb'
- 'ee/app/services/security/ingestion/tasks/update_vulnerability_uuids.rb'
- 'ee/db/fixtures/development/20_vulnerabilities.rb'
- 'ee/lib/ee/audit/protected_branches_changes_auditor.rb'
- 'ee/lib/gitlab/elastic/search_results.rb'
@ -36,10 +35,9 @@ Style/Next:
- 'lib/gitlab/metrics/samplers/base_sampler.rb'
- 'lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy.rb'
- 'lib/gitlab/reference_extractor.rb'
- 'lib/gitlab/tree_summary.rb'
- 'lib/tasks/gitlab/assets.rake'
- 'lib/tasks/gitlab/db/validate_config.rake'
- 'rubocop/cop/static_translation_definition.rb'
- 'scripts/perf/query_limiting_report.rb'
- 'scripts/qa/quarantine-types-check'
- 'spec/lib/gitlab/import_export/import_test_coverage_spec.rb'
- 'spec/presenters/packages/npm/package_presenter_spec.rb'

View File

@ -1,9 +1,6 @@
---
# Cop supports --auto-correct.
Style/PercentLiteralDelimiters:
# Offense count: 3136
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'Guardfile'
- 'app/controllers/abuse_reports_controller.rb'
@ -85,6 +82,7 @@ Style/PercentLiteralDelimiters:
- 'app/models/concerns/clusters/agents/authorization_config_scopes.rb'
- 'app/models/concerns/diff_positionable_note.rb'
- 'app/models/concerns/enums/prometheus_metric.rb'
- 'app/models/concerns/integrations/base_data_fields.rb'
- 'app/models/concerns/issuable.rb'
- 'app/models/concerns/issue_available_features.rb'
- 'app/models/concerns/mentionable/reference_regexes.rb'
@ -98,11 +96,11 @@ Style/PercentLiteralDelimiters:
- 'app/models/diff_note.rb'
- 'app/models/discussion_note.rb'
- 'app/models/draft_note.rb'
- 'app/models/environment.rb'
- 'app/models/event.rb'
- 'app/models/instance_configuration.rb'
- 'app/models/integrations/asana.rb'
- 'app/models/integrations/assembla.rb'
- 'app/models/integrations/base_ci.rb'
- 'app/models/integrations/base_issue_tracker.rb'
- 'app/models/integrations/base_monitoring.rb'
- 'app/models/integrations/base_slash_commands.rb'
@ -125,6 +123,7 @@ Style/PercentLiteralDelimiters:
- 'app/models/issuable_severity.rb'
- 'app/models/issue.rb'
- 'app/models/lfs_download_object.rb'
- 'app/models/namespace.rb'
- 'app/models/namespace/root_storage_statistics.rb'
- 'app/models/note.rb'
- 'app/models/notification_setting.rb'
@ -153,6 +152,7 @@ Style/PercentLiteralDelimiters:
- 'app/services/feature_flags/base_service.rb'
- 'app/services/files/multi_service.rb'
- 'app/services/import/bitbucket_server_service.rb'
- 'app/services/import/fogbugz_service.rb'
- 'app/services/import/github_service.rb'
- 'app/services/import/gitlab_projects/file_acquisition_strategies/remote_file.rb'
- 'app/services/import/gitlab_projects/file_acquisition_strategies/remote_file_s3.rb'
@ -172,13 +172,13 @@ Style/PercentLiteralDelimiters:
- 'app/services/projects/update_service.rb'
- 'app/services/prometheus/proxy_service.rb'
- 'app/services/repositories/base_service.rb'
- 'app/services/repositories/destroy_service.rb'
- 'app/services/repository_archive_clean_up_service.rb'
- 'app/services/resource_access_tokens/create_service.rb'
- 'app/services/resource_access_tokens/revoke_service.rb'
- 'app/services/search/global_service.rb'
- 'app/services/search/project_service.rb'
- 'app/services/snippets/update_service.rb'
- 'app/services/todos/destroy/destroyed_issuable_service.rb'
- 'app/services/todos/destroy/entity_leave_service.rb'
- 'app/uploaders/design_management/design_v432x230_uploader.rb'
- 'app/uploaders/gitlab_uploader.rb'
@ -194,6 +194,7 @@ Style/PercentLiteralDelimiters:
- 'config/initializers/content_security_policy.rb'
- 'config/initializers/countries.rb'
- 'config/initializers/doorkeeper.rb'
- 'config/initializers/enumerator_next_patch.rb'
- 'config/initializers/fog_core_patch.rb'
- 'config/initializers/forbid_sidekiq_in_transactions.rb'
- 'config/initializers/health_check.rb'
@ -234,6 +235,8 @@ Style/PercentLiteralDelimiters:
- 'ee/app/controllers/ee/admin/application_settings_controller.rb'
- 'ee/app/controllers/ee/projects/service_desk_controller.rb'
- 'ee/app/controllers/ee/repositories/git_http_client_controller.rb'
- 'ee/app/controllers/groups/protected_environments_controller.rb'
- 'ee/app/controllers/projects/integrations/jira/issues_controller.rb'
- 'ee/app/controllers/projects/protected_environments_controller.rb'
- 'ee/app/controllers/trials_controller.rb'
- 'ee/app/finders/iterations_finder.rb'
@ -241,6 +244,7 @@ Style/PercentLiteralDelimiters:
- 'ee/app/helpers/credentials_inventory_helper.rb'
- 'ee/app/helpers/ee/auth_helper.rb'
- 'ee/app/helpers/ee/dashboard_helper.rb'
- 'ee/app/helpers/ee/integrations_helper.rb'
- 'ee/app/helpers/ee/issues_helper.rb'
- 'ee/app/helpers/ee/labels_helper.rb'
- 'ee/app/helpers/ee/nav_helper.rb'
@ -264,12 +268,13 @@ Style/PercentLiteralDelimiters:
- 'ee/app/models/geo/project_registry.rb'
- 'ee/app/models/geo/secondary_usage_data.rb'
- 'ee/app/models/geo_node_status.rb'
- 'ee/app/models/gitlab_subscription.rb'
- 'ee/app/models/incident_management/issuable_resource_link.rb'
- 'ee/app/models/integrations/github.rb'
- 'ee/app/models/integrations/gitlab_slack_application.rb'
- 'ee/app/models/merge_requests/status_check_response.rb'
- 'ee/app/models/saml_provider.rb'
- 'ee/app/models/security/orchestration_policy_configuration.rb'
- 'ee/app/models/software_license_policy.rb'
- 'ee/app/models/storage_shard.rb'
- 'ee/app/services/approval_rules/create_service.rb'
- 'ee/app/services/boards/epic_boards/update_service.rb'
@ -284,11 +289,13 @@ Style/PercentLiteralDelimiters:
- 'ee/app/services/requirements_management/export_csv_service.rb'
- 'ee/app/services/security/configuration/save_auto_fix_service.rb'
- 'ee/app/services/security/dependency_list_service.rb'
- 'ee/lib/api/managed_licenses.rb'
- 'ee/app/services/security/ingestion/tasks/update_vulnerability_uuids.rb'
- 'ee/elastic/migrate/20220613120500_migrate_commits_to_separate_index.rb'
- 'ee/lib/api/status_checks.rb'
- 'ee/lib/api/visual_review_discussions.rb'
- 'ee/lib/ee/api/helpers/members_helpers.rb'
- 'ee/lib/ee/api/helpers/projects_helpers.rb'
- 'ee/lib/ee/api/members.rb'
- 'ee/lib/ee/api/search.rb'
- 'ee/lib/ee/audit/group_changes_auditor.rb'
- 'ee/lib/ee/gitlab/alert_management/payload/generic.rb'
@ -320,6 +327,7 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/controllers/groups/scim_oauth_controller_spec.rb'
- 'ee/spec/controllers/groups/sso_controller_spec.rb'
- 'ee/spec/controllers/projects/issues_controller_spec.rb'
- 'ee/spec/controllers/projects/legacy_pipelines_controller_spec.rb'
- 'ee/spec/controllers/projects/pipelines_controller_spec.rb'
- 'ee/spec/controllers/projects/security/configuration_controller_spec.rb'
- 'ee/spec/elastic_integration/global_search_spec.rb'
@ -349,6 +357,7 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/graphql/types/vulnerable_projects_by_grade_type_spec.rb'
- 'ee/spec/helpers/ee/application_settings_helper_spec.rb'
- 'ee/spec/helpers/ee/auth_helper_spec.rb'
- 'ee/spec/helpers/ee/environments_helper_spec.rb'
- 'ee/spec/helpers/ee/geo_helper_spec.rb'
- 'ee/spec/helpers/ee/labels_helper_spec.rb'
- 'ee/spec/helpers/ee/security_orchestration_helper_spec.rb'
@ -359,6 +368,7 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/lib/banzai/filter/references/epic_reference_filter_spec.rb'
- 'ee/spec/lib/banzai/filter/references/iteration_reference_filter_spec.rb'
- 'ee/spec/lib/banzai/filter/references/vulnerability_reference_filters_spec.rb'
- 'ee/spec/lib/ee/backup/repositories_spec.rb'
- 'ee/spec/lib/ee/gitlab/alert_management/payload/generic_spec.rb'
- 'ee/spec/lib/ee/gitlab/auth/ldap/access_levels_spec.rb'
- 'ee/spec/lib/ee/gitlab/auth/ldap/config_spec.rb'
@ -367,7 +377,6 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb'
- 'ee/spec/lib/ee/gitlab/auth/ldap/sync/groups_spec.rb'
- 'ee/spec/lib/ee/gitlab/ci/reports/security/reports_spec.rb'
- 'ee/spec/lib/ee/gitlab/elastic/helper_spec.rb'
- 'ee/spec/lib/ee/gitlab/git_access_design_spec.rb'
- 'ee/spec/lib/ee/gitlab/git_access_snippet_spec.rb'
- 'ee/spec/lib/ee/gitlab/security/scan_configuration_spec.rb'
@ -380,6 +389,7 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/lib/gitlab/auth/group_saml/user_spec.rb'
- 'ee/spec/lib/gitlab/auth/ldap/adapter_spec.rb'
- 'ee/spec/lib/gitlab/auth/ldap/person_spec.rb'
- 'ee/spec/lib/gitlab/auth/saml/membership_updater_spec.rb'
- 'ee/spec/lib/gitlab/auth/saml/user_spec.rb'
- 'ee/spec/lib/gitlab/authority_analyzer_spec.rb'
- 'ee/spec/lib/gitlab/cache_spec.rb'
@ -387,7 +397,7 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/lib/gitlab/ci/templates/Jobs/dast_default_branch_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/sast_iac_latest_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/sast_iac_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/sast_latest_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/secret_detection_gitlab_ci_yaml_spec.rb'
- 'ee/spec/lib/gitlab/ci/templates/secret_detection_latest_gitlab_ci_yaml_spec.rb'
@ -411,11 +421,11 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/models/concerns/ee/issuable_spec.rb'
- 'ee/spec/models/concerns/ee/project_security_scanners_information_spec.rb'
- 'ee/spec/models/ee/ci/job_artifact_spec.rb'
- 'ee/spec/models/ee/ci/runner_spec.rb'
- 'ee/spec/models/ee/groups/feature_setting_spec.rb'
- 'ee/spec/models/ee/integration_spec.rb'
- 'ee/spec/models/ee/integrations/jira_spec.rb'
- 'ee/spec/models/ee/personal_access_token_spec.rb'
- 'ee/spec/models/gitlab_subscription_spec.rb'
- 'ee/spec/models/instance_security_dashboard_spec.rb'
- 'ee/spec/models/issue_spec.rb'
- 'ee/spec/models/project_feature_spec.rb'
@ -423,7 +433,6 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/models/push_rule_spec.rb'
- 'ee/spec/models/repository_spec.rb'
- 'ee/spec/models/saml_provider_spec.rb'
- 'ee/spec/models/security/orchestration_policy_configuration_spec.rb'
- 'ee/spec/models/security/scan_spec.rb'
- 'ee/spec/models/vulnerabilities/historical_statistic_spec.rb'
- 'ee/spec/models/vulnerabilities/stat_diff_spec.rb'
@ -435,6 +444,7 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/requests/admin/user_permission_exports_controller_spec.rb'
- 'ee/spec/requests/api/dependencies_spec.rb'
- 'ee/spec/requests/api/epics_spec.rb'
- 'ee/spec/requests/api/geo_spec.rb'
- 'ee/spec/requests/api/graphql/mutations/alert_management/http_integration/update_spec.rb'
- 'ee/spec/requests/api/graphql/project/alert_management/http_integrations_spec.rb'
- 'ee/spec/requests/api/internal/base_spec.rb'
@ -443,11 +453,13 @@ Style/PercentLiteralDelimiters:
- 'ee/spec/requests/api/merge_requests_spec.rb'
- 'ee/spec/requests/api/scim_spec.rb'
- 'ee/spec/requests/api/wikis_spec.rb'
- 'ee/spec/requests/lfs_locks_api_spec.rb'
- 'ee/spec/serializers/merge_request_widget_entity_spec.rb'
- 'ee/spec/services/admin/email_service_spec.rb'
- 'ee/spec/services/base_count_service_spec.rb'
- 'ee/spec/services/ci/compare_security_reports_service_spec.rb'
- 'ee/spec/services/ci/sync_reports_to_approval_rules_service_spec.rb'
- 'ee/spec/services/ee/auth/container_registry_authentication_service_spec.rb'
- 'ee/spec/services/ee/groups/autocomplete_service_spec.rb'
- 'ee/spec/services/ee/members/create_service_spec.rb'
- 'ee/spec/services/ee/protected_branches/create_service_spec.rb'
@ -507,6 +519,7 @@ Style/PercentLiteralDelimiters:
- 'lib/banzai/filter/table_of_contents_filter.rb'
- 'lib/banzai/pipeline/base_pipeline.rb'
- 'lib/banzai/pipeline/description_pipeline.rb'
- 'lib/banzai/pipeline/incident_management/timeline_event_pipeline.rb'
- 'lib/bitbucket/page.rb'
- 'lib/bitbucket/representation/issue.rb'
- 'lib/container_registry/path.rb'
@ -520,6 +533,7 @@ Style/PercentLiteralDelimiters:
- 'lib/gitlab/asciidoc/syntax_highlighter/html_pipeline_adapter.rb'
- 'lib/gitlab/auth/ldap/adapter.rb'
- 'lib/gitlab/auth/ldap/config.rb'
- 'lib/gitlab/background_migration/backfill_note_discussion_id.rb'
- 'lib/gitlab/bare_repository_import/importer.rb'
- 'lib/gitlab/ci/ansi2html.rb'
- 'lib/gitlab/ci/config/entry/bridge.rb'
@ -547,7 +561,7 @@ Style/PercentLiteralDelimiters:
- 'lib/gitlab/gitaly_client.rb'
- 'lib/gitlab/gitaly_client/diff.rb'
- 'lib/gitlab/gitaly_client/wiki_page.rb'
- 'lib/gitlab/graphql/pagination/keyset/order_info.rb'
- 'lib/gitlab/graphql/query_analyzers/ast/recursion_analyzer.rb'
- 'lib/gitlab/hotlinking_detector.rb'
- 'lib/gitlab/import_export/command_line_util.rb'
- 'lib/gitlab/import_export/file_importer.rb'
@ -568,9 +582,10 @@ Style/PercentLiteralDelimiters:
- 'lib/gitlab/metrics/transaction.rb'
- 'lib/gitlab/metrics/web_transaction.rb'
- 'lib/gitlab/middleware/read_only/controller.rb'
- 'lib/gitlab/process_supervisor.rb'
- 'lib/gitlab/project_search_results.rb'
- 'lib/gitlab/prometheus/query_variables.rb'
- 'lib/gitlab/query_limiting/transaction.rb'
- 'lib/gitlab/redis/multi_store.rb'
- 'lib/gitlab/reference_extractor.rb'
- 'lib/gitlab/regex.rb'
- 'lib/gitlab/sanitizers/exception_message.rb'
@ -584,11 +599,14 @@ Style/PercentLiteralDelimiters:
- 'lib/gitlab/task_helpers.rb'
- 'lib/gitlab/uploads/migration_helper.rb'
- 'lib/gitlab/url_blocker.rb'
- 'lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric.rb'
- 'lib/gitlab/usage/metrics/instrumentations/database_metric.rb'
- 'lib/gitlab/usage/metrics/instrumentations/numbers_metric.rb'
- 'lib/gitlab/usage_data.rb'
- 'lib/gitlab/usage_data/topology.rb'
- 'lib/gitlab/usage_data_counters/hll_redis_counter.rb'
- 'lib/gitlab/utils/sanitize_node_link.rb'
- 'lib/gitlab/web_hooks/rate_limiter.rb'
- 'lib/gitlab/workhorse.rb'
- 'lib/grafana/validator.rb'
- 'lib/omni_auth/strategies/jwt.rb'
@ -614,40 +632,37 @@ Style/PercentLiteralDelimiters:
- 'qa/qa/ee/page/project/show.rb'
- 'qa/qa/ee/page/project/snippet/index.rb'
- 'qa/qa/ee/page/project/wiki/show.rb'
- 'qa/qa/git/repository.rb'
- 'qa/qa/resource/events/project.rb'
- 'qa/qa/resource/members.rb'
- 'qa/qa/resource/personal_access_token_cache.rb'
- 'qa/qa/resource/visibility.rb'
- 'qa/qa/runtime/browser.rb'
- 'qa/qa/service/cluster_provider/gcloud.rb'
- 'qa/qa/service/praefect_manager.rb'
- 'qa/qa/specs/features/api/3_create/gitaly/praefect_repo_sync_spec.rb'
- 'qa/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb'
- 'qa/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/13_secure/enable_scanning_from_configuration_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb'
- 'qa/spec/git/repository_spec.rb'
- 'qa/spec/page/view_spec.rb'
- 'qa/spec/support/page_error_checker_spec.rb'
- 'rubocop/cop/migration/background_migrations.rb'
- 'rubocop/cop/rspec/httparty_basic_auth.rb'
- 'rubocop/migration_helpers.rb'
- 'scripts/qa/quarantine-types-check'
- 'scripts/qa/testcases-check'
- 'scripts/regenerate-schema'
- 'scripts/undercoverage'
- 'sidekiq_cluster/cli.rb'
- 'spec/benchmarks/banzai_benchmark.rb'
- 'spec/commands/sidekiq_cluster/cli_spec.rb'
- 'spec/components/pajamas/component_spec.rb'
- 'spec/config/mail_room_spec.rb'
- 'spec/controllers/admin/clusters_controller_spec.rb'
- 'spec/controllers/concerns/continue_params_spec.rb'
- 'spec/controllers/graphql_controller_spec.rb'
- 'spec/controllers/groups/clusters_controller_spec.rb'
- 'spec/controllers/groups/releases_controller_spec.rb'
- 'spec/controllers/jira_connect/app_descriptor_controller_spec.rb'
- 'spec/controllers/oauth/applications_controller_spec.rb'
- 'spec/controllers/profiles/two_factor_auths_controller_spec.rb'
- 'spec/controllers/projects/artifacts_controller_spec.rb'
- 'spec/controllers/projects/clusters_controller_spec.rb'
- 'spec/controllers/projects/deploy_keys_controller_spec.rb'
- 'spec/controllers/projects/environments/prometheus_api_controller_spec.rb'
- 'spec/controllers/projects/environments_controller_spec.rb'
@ -663,7 +678,6 @@ Style/PercentLiteralDelimiters:
- 'spec/controllers/search_controller_spec.rb'
- 'spec/controllers/snippets_controller_spec.rb'
- 'spec/db/docs_spec.rb'
- 'spec/db/schema_spec.rb'
- 'spec/experiments/ios_specific_templates_experiment_spec.rb'
- 'spec/factories/ci/builds.rb'
- 'spec/factories/ci/runners.rb'
@ -689,6 +703,8 @@ Style/PercentLiteralDelimiters:
- 'spec/features/projects/integrations/user_activates_jira_spec.rb'
- 'spec/features/projects/jobs_spec.rb'
- 'spec/features/projects/labels/issues_sorted_by_priority_spec.rb'
- 'spec/features/projects/pipelines/legacy_pipeline_spec.rb'
- 'spec/features/projects/pipelines/legacy_pipelines_spec.rb'
- 'spec/features/projects/pipelines/pipeline_spec.rb'
- 'spec/features/projects/pipelines/pipelines_spec.rb'
- 'spec/features/protected_branches_spec.rb'
@ -700,7 +716,6 @@ Style/PercentLiteralDelimiters:
- 'spec/finders/ci/runners_finder_spec.rb'
- 'spec/finders/environments/environments_finder_spec.rb'
- 'spec/finders/groups_finder_spec.rb'
- 'spec/finders/issues_finder_spec.rb'
- 'spec/finders/license_template_finder_spec.rb'
- 'spec/finders/merge_requests_finder_spec.rb'
- 'spec/finders/tags_finder_spec.rb'
@ -724,19 +739,24 @@ Style/PercentLiteralDelimiters:
- 'spec/helpers/clusters_helper_spec.rb'
- 'spec/helpers/diff_helper_spec.rb'
- 'spec/helpers/emails_helper_spec.rb'
- 'spec/helpers/issuables_description_templates_helper_spec.rb'
- 'spec/helpers/issues_helper_spec.rb'
- 'spec/helpers/nav_helper_spec.rb'
- 'spec/helpers/page_layout_helper_spec.rb'
- 'spec/helpers/profiles_helper_spec.rb'
- 'spec/helpers/releases_helper_spec.rb'
- 'spec/helpers/storage_helper_spec.rb'
- 'spec/helpers/tracking_helper_spec.rb'
- 'spec/initializers/direct_upload_support_spec.rb'
- 'spec/initializers/enumerator_next_patch_spec.rb'
- 'spec/initializers/rack_multipart_patch_spec.rb'
- 'spec/lib/api/ci/helpers/runner_helpers_spec.rb'
- 'spec/lib/api/entities/user_spec.rb'
- 'spec/lib/api/helpers/common_helpers_spec.rb'
- 'spec/lib/atlassian/jira_connect/client_spec.rb'
- 'spec/lib/backup/files_spec.rb'
- 'spec/lib/backup/manager_spec.rb'
- 'spec/lib/backup/repositories_spec.rb'
- 'spec/lib/banzai/filter/asset_proxy_filter_spec.rb'
- 'spec/lib/banzai/filter/autolink_filter_spec.rb'
- 'spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb'
@ -760,6 +780,7 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/banzai/pipeline/description_pipeline_spec.rb'
- 'spec/lib/banzai/pipeline/full_pipeline_spec.rb'
- 'spec/lib/banzai/pipeline/gfm_pipeline_spec.rb'
- 'spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb'
- 'spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb'
- 'spec/lib/banzai/reference_parser/base_parser_spec.rb'
- 'spec/lib/banzai/reference_parser/commit_parser_spec.rb'
@ -777,6 +798,8 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/gitlab/auth/o_auth/user_spec.rb'
- 'spec/lib/gitlab/auth/saml/auth_hash_spec.rb'
- 'spec/lib/gitlab/auth/saml/user_spec.rb'
- 'spec/lib/gitlab/background_migration/batched_migration_job_spec.rb'
- 'spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb'
- 'spec/lib/gitlab/bare_repository_import/importer_spec.rb'
- 'spec/lib/gitlab/batch_worker_context_spec.rb'
- 'spec/lib/gitlab/bitbucket_import/importer_spec.rb'
@ -784,6 +807,7 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/gitlab/ci/ansi2html_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/bridge_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/commands_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/environment_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/image_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/root_spec.rb'
- 'spec/lib/gitlab/ci/config/entry/service_spec.rb'
@ -793,6 +817,7 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/gitlab/ci/pipeline/chain/template_usage_spec.rb'
- 'spec/lib/gitlab/ci/pipeline/expression/lexeme/equals_spec.rb'
- 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb'
- 'spec/lib/gitlab/ci/pipeline/seed/deployment_spec.rb'
- 'spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/reports/accessibility_reports_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/reports_spec.rb'
@ -801,6 +826,7 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/gitlab/ci/status/stage/factory_spec.rb'
- 'spec/lib/gitlab/ci/templates/5_minute_production_app_ci_yaml_spec.rb'
- 'spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb'
- 'spec/lib/gitlab/ci/templates/Jobs/sast_iac_latest_gitlab_ci_yaml_spec.rb'
- 'spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb'
- 'spec/lib/gitlab/ci/variables/collection/item_spec.rb'
- 'spec/lib/gitlab/ci/yaml_processor/dag_spec.rb'
@ -844,7 +870,6 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/gitlab/favicon_spec.rb'
- 'spec/lib/gitlab/feature_categories_spec.rb'
- 'spec/lib/gitlab/file_detector_spec.rb'
- 'spec/lib/gitlab/form_builders/gitlab_ui_form_builder_spec.rb'
- 'spec/lib/gitlab/gfm/reference_rewriter_spec.rb'
- 'spec/lib/gitlab/git/merge_base_spec.rb'
- 'spec/lib/gitlab/git/repository_spec.rb'
@ -887,6 +912,7 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/gitlab/middleware/go_spec.rb'
- 'spec/lib/gitlab/middleware/multipart_spec.rb'
- 'spec/lib/gitlab/omniauth_initializer_spec.rb'
- 'spec/lib/gitlab/pagination/keyset/order_spec.rb'
- 'spec/lib/gitlab/pagination/offset_header_builder_spec.rb'
- 'spec/lib/gitlab/path_regex_spec.rb'
- 'spec/lib/gitlab/popen_spec.rb'
@ -939,6 +965,8 @@ Style/PercentLiteralDelimiters:
- 'spec/lib/system_check/orphans/repository_check_spec.rb'
- 'spec/lib/system_check/sidekiq_check_spec.rb'
- 'spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb'
- 'spec/lib/unnested_in_filters/dsl_spec.rb'
- 'spec/lib/unnested_in_filters/rewriter_spec.rb'
- 'spec/metrics_server/metrics_server_spec.rb'
- 'spec/migrations/add_new_trail_plans_spec.rb'
- 'spec/migrations/change_web_hook_events_default_spec.rb'
@ -984,7 +1012,6 @@ Style/PercentLiteralDelimiters:
- 'spec/models/issue_spec.rb'
- 'spec/models/members/member_task_spec.rb'
- 'spec/models/merge_request_diff_spec.rb'
- 'spec/models/namespace_spec.rb'
- 'spec/models/namespace_statistics_spec.rb'
- 'spec/models/packages/package_spec.rb'
- 'spec/models/packages/tag_spec.rb'
@ -1020,6 +1047,8 @@ Style/PercentLiteralDelimiters:
- 'spec/requests/api/ci/triggers_spec.rb'
- 'spec/requests/api/container_repositories_spec.rb'
- 'spec/requests/api/deployments_spec.rb'
- 'spec/requests/api/geo_spec.rb'
- 'spec/requests/api/graphql/ci/manual_variables_spec.rb'
- 'spec/requests/api/graphql/gitlab_schema_spec.rb'
- 'spec/requests/api/graphql/group/container_repositories_spec.rb'
- 'spec/requests/api/graphql/group/milestones_spec.rb'
@ -1045,6 +1074,7 @@ Style/PercentLiteralDelimiters:
- 'spec/requests/api/issues/put_projects_issues_spec.rb'
- 'spec/requests/api/members_spec.rb'
- 'spec/requests/api/merge_requests_spec.rb'
- 'spec/requests/api/metadata_spec.rb'
- 'spec/requests/api/project_container_repositories_spec.rb'
- 'spec/requests/api/project_templates_spec.rb'
- 'spec/requests/api/projects_spec.rb'
@ -1063,6 +1093,7 @@ Style/PercentLiteralDelimiters:
- 'spec/requests/lfs_locks_api_spec.rb'
- 'spec/requests/users_controller_spec.rb'
- 'spec/routing/uploads_routing_spec.rb'
- 'spec/rubocop/cop/migration/migration_record_spec.rb'
- 'spec/rubocop/cop/migration/prevent_index_creation_spec.rb'
- 'spec/rubocop/cop/migration/sidekiq_queue_migrate_spec.rb'
- 'spec/rubocop/cop/performance/readlines_each_spec.rb'
@ -1143,6 +1174,7 @@ Style/PercentLiteralDelimiters:
- 'spec/support/shared_examples/features/wiki/user_creates_wiki_page_shared_examples.rb'
- 'spec/support/shared_examples/features/wiki/user_updates_wiki_page_shared_examples.rb'
- 'spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb'
- 'spec/support/shared_examples/finders/issues_finder_shared_examples.rb'
- 'spec/support/shared_examples/lib/banzai/filters/sanitization_filter_shared_examples.rb'
- 'spec/support/shared_examples/lib/gitlab/middleware/multipart_shared_examples.rb'
- 'spec/support/shared_examples/metrics/transaction_metrics_with_labels_shared_examples.rb'
@ -1165,6 +1197,7 @@ Style/PercentLiteralDelimiters:
- 'spec/tasks/gitlab/db_rake_spec.rb'
- 'spec/tasks/gitlab/task_helpers_spec.rb'
- 'spec/tasks/gitlab/uploads/migrate_rake_spec.rb'
- 'spec/tooling/danger/customer_success_spec.rb'
- 'spec/tooling/danger/datateam_spec.rb'
- 'spec/tooling/danger/sidekiq_queues_spec.rb'
- 'spec/tooling/lib/tooling/test_map_generator_spec.rb'
@ -1186,7 +1219,6 @@ Style/PercentLiteralDelimiters:
- 'spec/uploaders/pages/deployment_uploader_spec.rb'
- 'spec/uploaders/personal_file_uploader_spec.rb'
- 'spec/validators/any_field_validator_spec.rb'
- 'spec/views/layouts/_flash.html.haml_spec.rb'
- 'spec/views/layouts/_head.html.haml_spec.rb'
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
- 'spec/views/projects/commit/branches.html.haml_spec.rb'

View File

@ -1,9 +1,6 @@
---
# Cop supports --auto-correct.
Style/RedundantInterpolation:
# Offense count: 285
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/components/diffs/stats_component.rb'
- 'app/helpers/blob_helper.rb'
@ -13,7 +10,10 @@ Style/RedundantInterpolation:
- 'app/helpers/environments_helper.rb'
- 'app/helpers/icons_helper.rb'
- 'app/helpers/issuables_helper.rb'
- 'app/helpers/nav_helper.rb'
- 'app/helpers/projects_helper.rb'
- 'app/helpers/search_helper.rb'
- 'app/helpers/tooling/visual_review_helper.rb'
- 'app/models/concerns/issuable.rb'
- 'app/models/integrations/base_chat_notification.rb'
- 'app/models/integrations/hangouts_chat.rb'
@ -24,6 +24,7 @@ Style/RedundantInterpolation:
- 'app/services/users/approve_service.rb'
- 'app/services/users/banned_user_base_service.rb'
- 'app/services/users/reject_service.rb'
- 'db/post_migrate/20220420214703_schedule_backfill_draft_status_on_merge_requests_corrected_regex.rb'
- 'ee/app/graphql/types/compliance_management/merge_requests/compliance_violation_reason_enum.rb'
- 'ee/app/graphql/types/incident_management/oncall_rotation_length_unit_enum.rb'
- 'ee/app/helpers/ee/ci/runners_helper.rb'
@ -31,23 +32,29 @@ Style/RedundantInterpolation:
- 'ee/app/services/geo/event_store.rb'
- 'ee/app/services/geo/repository_updated_service.rb'
- 'ee/app/services/security/security_orchestration_policies/create_pipeline_service.rb'
- 'ee/app/services/users/abuse/excessive_projects_download_ban_service.rb'
- 'ee/app/services/users/abuse/git_abuse/namespace_throttle_service.rb'
- 'ee/db/fixtures/development/31_devops_adoption.rb'
- 'ee/lib/gitlab/insights/serializers/chartjs/base_serializer.rb'
- 'ee/spec/features/epics/epic_issues_spec.rb'
- 'ee/spec/features/projects/requirements_management/requirements_list_spec.rb'
- 'ee/spec/features/registrations/one_trust_spec.rb'
- 'ee/spec/graphql/ee/mutations/boards/lists/create_spec.rb'
- 'ee/spec/lib/banzai/filter/issuable_reference_expansion_filter_spec.rb'
- 'ee/spec/lib/banzai/filter/references/iteration_reference_filter_spec.rb'
- 'ee/spec/lib/ee/audit/protected_branches_changes_auditor_spec.rb'
- 'ee/spec/lib/ee/gitlab/import_export/group/tree_saver_spec.rb'
- 'ee/spec/lib/gitlab/insights/serializers/chartjs/line_serializer_spec.rb'
- 'ee/spec/lib/gitlab/insights/serializers/chartjs/multi_series_serializer_spec.rb'
- 'ee/spec/mailers/ci_minutes_usage_mailer_spec.rb'
- 'ee/spec/mailers/emails/namespace_storage_usage_mailer_spec.rb'
- 'ee/spec/mailers/notify_spec.rb'
- 'ee/spec/models/incident_management/issuable_escalation_status_spec.rb'
- 'ee/spec/requests/api/issues_spec.rb'
- 'ee/spec/requests/api/search_spec.rb'
- 'ee/spec/services/analytics/cycle_analytics/consistency_check_service_spec.rb'
- 'ee/spec/services/search_service_spec.rb'
- 'ee/spec/services/timebox_report_service_spec.rb'
- 'ee/spec/support/shared_contexts/lib/gitlab/insights/serializers/serializers_shared_context.rb'
- 'ee/spec/support/shared_examples/lib/gitlab/elastic/standalone_indices_shared_examples.rb'
- 'ee/spec/tasks/gitlab/elastic_rake_spec.rb'
- 'lib/backup/manager.rb'
@ -72,15 +79,19 @@ Style/RedundantInterpolation:
- 'lib/gitlab/utils.rb'
- 'lib/kramdown/converter/commonmark.rb'
- 'lib/tasks/gettext.rake'
- 'lib/tasks/gitlab/seed/group_seed.rake'
- 'qa/qa/ee/page/component/secure_report.rb'
- 'qa/qa/ee/page/merge_request/new.rb'
- 'qa/qa/ee/page/project/issue/show.rb'
- 'qa/qa/ee/page/project/secure/vulnerability_details.rb'
- 'qa/qa/resource/events/base.rb'
- 'qa/qa/service/praefect_manager.rb'
- 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_multiple_files_from_a_project_spec.rb'
- 'qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/13_secure/scan_result_policy_vulnerabilities_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/3_create/repository/project_templates_spec.rb'
- 'qa/qa/specs/features/ee/browser_ui/4_verify/parent_child_pipelines_dependent_relationship_spec.rb'
- 'qa/qa/tools/generate_perf_testdata.rb'
- 'scripts/changed-feature-flags'
- 'scripts/perf/gc/print_gc_stats.rb'
- 'scripts/qa/testcases-check'
- 'spec/controllers/admin/integrations_controller_spec.rb'
@ -93,6 +104,7 @@ Style/RedundantInterpolation:
- 'spec/features/projects/jobs/user_browses_jobs_spec.rb'
- 'spec/graphql/resolvers/container_repositories_resolver_spec.rb'
- 'spec/helpers/environments_helper_spec.rb'
- 'spec/helpers/snippets_helper_spec.rb'
- 'spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb'
- 'spec/lib/api/validations/validators/git_ref_spec.rb'
- 'spec/lib/api/validations/validators/limit_spec.rb'
@ -116,7 +128,9 @@ Style/RedundantInterpolation:
- 'spec/lib/gitlab/database/batch_count_spec.rb'
- 'spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb'
- 'spec/lib/gitlab/import_export/group/tree_saver_spec.rb'
- 'spec/lib/gitlab/inactive_projects_deletion_warning_tracker_spec.rb'
- 'spec/lib/gitlab/metrics/dashboard/url_spec.rb'
- 'spec/lib/gitlab/redis/multi_store_spec.rb'
- 'spec/lib/grafana/client_spec.rb'
- 'spec/mailers/notify_spec.rb'
- 'spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb'
@ -134,7 +148,6 @@ Style/RedundantInterpolation:
- 'spec/requests/api/terraform/state_spec.rb'
- 'spec/requests/projects/google_cloud/deployments_controller_spec.rb'
- 'spec/requests/projects/google_cloud/service_accounts_controller_spec.rb'
- 'spec/requests/projects/google_cloud_controller_spec.rb'
- 'spec/routing/project_routing_spec.rb'
- 'spec/services/clusters/kubernetes/create_or_update_service_account_service_spec.rb'
- 'spec/services/groups/transfer_service_spec.rb'

View File

@ -1,9 +1,6 @@
---
# Cop supports --auto-correct.
Style/RedundantRegexpEscape:
# Offense count: 325
# Temporarily disabled due to too many offenses
Enabled: false
Exclude:
- 'app/controllers/help_controller.rb'
- 'app/controllers/import/bitbucket_server_controller.rb'
@ -16,6 +13,7 @@ Style/RedundantRegexpEscape:
- 'app/models/integrations/chat_message/base_message.rb'
- 'app/models/integrations/datadog.rb'
- 'app/models/integrations/teamcity.rb'
- 'app/models/issue.rb'
- 'app/models/label.rb'
- 'app/models/license_template.rb'
- 'app/models/milestone.rb'
@ -25,6 +23,7 @@ Style/RedundantRegexpEscape:
- 'app/models/snippet.rb'
- 'app/services/metrics/dashboard/grafana_metric_embed_service.rb'
- 'app/uploaders/file_uploader.rb'
- 'config/initializers/wikicloth_redos_patch.rb'
- 'config/routes/project.rb'
- 'config/routes/uploads.rb'
- 'ee/app/models/ee/epic.rb'
@ -37,18 +36,20 @@ Style/RedundantRegexpEscape:
- 'ee/spec/features/read_only_spec.rb'
- 'ee/spec/helpers/vulnerabilities_helper_spec.rb'
- 'ee/spec/lib/ee/gitlab/usage_data_counters/hll_redis_counter_spec.rb'
- 'ee/spec/mailers/ee/emails/admin_notification_spec.rb'
- 'ee/spec/mailers/ee/emails/profile_spec.rb'
- 'ee/spec/mailers/notify_spec.rb'
- 'ee/spec/models/release_highlight_spec.rb'
- 'ee/spec/support/shared_examples/services/group_saml/saml_provider/base_service_shared_examples.rb'
- 'lib/api/templates.rb'
- 'lib/banzai/filter/autolink_filter.rb'
- 'lib/banzai/filter/inline_diff_filter.rb'
- 'lib/banzai/filter/task_list_filter.rb'
- 'lib/bulk_imports/common/pipelines/uploads_pipeline.rb'
- 'lib/csv_builder.rb'
- 'lib/gitlab/background_migration/backfill_integrations_enable_ssl_verification.rb'
- 'lib/gitlab/ci/pipeline/expression/lexeme/not_matches.rb'
- 'lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb'
- 'lib/gitlab/diff/parser.rb'
- 'lib/gitlab/diff/suggestions_parser.rb'
- 'lib/gitlab/email/handler/create_issue_handler.rb'
- 'lib/gitlab/email/handler/create_merge_request_handler.rb'
@ -57,7 +58,8 @@ Style/RedundantRegexpEscape:
- 'lib/gitlab/email/reply_parser.rb'
- 'lib/gitlab/git/diff.rb'
- 'lib/gitlab/git/repository.rb'
- 'lib/gitlab/gitaly_client/operation_service.rb'
- 'lib/gitlab/gitaly_client.rb'
- 'lib/gitlab/harbor/query.rb'
- 'lib/gitlab/incoming_email.rb'
- 'lib/gitlab/jira/dvcs.rb'
- 'lib/gitlab/path_regex.rb'
@ -66,6 +68,7 @@ Style/RedundantRegexpEscape:
- 'lib/gitlab/quick_actions/extractor.rb'
- 'lib/gitlab/regex.rb'
- 'lib/gitlab/search/abuse_detection.rb'
- 'lib/gitlab/service_desk_email.rb'
- 'lib/gitlab/task_helpers.rb'
- 'lib/gitlab/url_sanitizer.rb'
- 'lib/gitlab/utils.rb'
@ -87,6 +90,7 @@ Style/RedundantRegexpEscape:
- 'spec/helpers/tab_helper_spec.rb'
- 'spec/lib/banzai/filter/references/reference_filter_spec.rb'
- 'spec/lib/banzai/filter/syntax_highlight_filter_spec.rb'
- 'spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb'
- 'spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb'
- 'spec/lib/gitlab/ci/config_spec.rb'
- 'spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb'
@ -96,6 +100,7 @@ Style/RedundantRegexpEscape:
- 'spec/lib/gitlab/usage/metrics/name_suggestion_spec.rb'
- 'spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb'
- 'spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb'
- 'spec/mailers/emails/profile_spec.rb'
- 'spec/models/release_highlight_spec.rb'
- 'spec/requests/api/graphql/mutations/merge_requests/set_draft_spec.rb'
- 'spec/requests/api/graphql_spec.rb'

View File

@ -418,10 +418,7 @@ end
# Gems required in omnibus-gitlab pipeline
group :development, :test, :omnibus do
# Using a fork until https://github.com/pivotal/LicenseFinder/pull/816 is
# resolved. For details, check discussion in
# https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74881
gem 'gitlab-license_finder', '~> 6.0', require: false
gem 'license_finder', '~> 7.0', require: false
end
group :test do

View File

@ -531,13 +531,6 @@ GEM
pg_query (~> 2.1)
redis (> 3.0.0, < 5.0.0)
gitlab-license (2.2.1)
gitlab-license_finder (6.14.2.1)
bundler
rubyzip (>= 1, < 3)
thor (~> 1.0)
tomlrb (>= 1.3, < 2.1)
with_env (= 1.1.0)
xml-simple (~> 1.1.5)
gitlab-mail_room (0.0.9)
gitlab-markup (1.8.0)
gitlab-net-dns (0.9.1)
@ -765,6 +758,13 @@ GEM
railties (>= 5.2)
rexml
libyajl2 (1.2.0)
license_finder (7.0.1)
bundler
rubyzip (>= 1, < 3)
thor (~> 1.2)
tomlrb (>= 1.3, < 2.1)
with_env (= 1.1.0)
xml-simple (~> 1.1.9)
licensee (9.14.1)
dotenv (~> 2.0)
octokit (~> 4.17)
@ -1471,7 +1471,8 @@ GEM
wisper (2.0.1)
with_env (1.1.0)
wmi-lite (1.0.5)
xml-simple (1.1.5)
xml-simple (1.1.9)
rexml
xpath (3.2.0)
nokogiri (~> 1.8)
yajl-ruby (1.4.3)
@ -1576,7 +1577,6 @@ DEPENDENCIES
gitlab-fog-azure-rm (~> 1.3.0)
gitlab-labkit (~> 0.24.0)
gitlab-license (~> 2.2.1)
gitlab-license_finder (~> 6.0)
gitlab-mail_room (~> 0.0.9)
gitlab-markup (~> 1.8.0)
gitlab-net-dns (~> 0.9.1)
@ -1626,6 +1626,7 @@ DEPENDENCIES
kubeclient (~> 4.9.2)
lefthook (~> 1.0.0)
letter_opener_web (~> 2.0.0)
license_finder (~> 7.0)
licensee (~> 9.14.1)
lockbox (~> 0.6.2)
lograge (~> 0.5)

View File

@ -147,6 +147,9 @@ export default {
showReferencePath() {
return !this.isProjectBoard && this.itemReferencePath;
},
avatarSize() {
return { default: 16, lg: 24 };
},
},
methods: {
...mapActions(['performSearch', 'setError']),
@ -359,17 +362,17 @@ export default {
</span>
</span>
</div>
<div class="board-card-assignee gl-display-flex">
<div class="board-card-assignee gl-display-flex gl-gap-3">
<user-avatar-link
v-for="assignee in cappedAssignees"
:key="assignee.id"
:link-href="assigneeUrl(assignee)"
:img-alt="avatarUrlTitle(assignee)"
:img-src="avatarUrl(assignee)"
:img-size="24"
img-css-classes="avatar gl-mr-0!"
:img-size="avatarSize"
class="js-no-trigger"
tooltip-placement="bottom"
:enforce-gl-avatar="true"
>
<span class="js-assignee-tooltip">
<span class="gl-font-weight-bold gl-display-block">{{ __('Assignee') }}</span>

View File

@ -150,7 +150,7 @@ export default {
} = await this.$apollo.mutate({
mutation: lintCiMutation,
variables: {
dry_run: true,
dry: true,
content: this.yaml,
endpoint: this.ciLintPath,
},

View File

@ -8,7 +8,7 @@ import createFlash from '~/flash';
import axios from '~/lib/utils/axios_utils';
import { isLoggedIn, handleLocationHash } from '~/lib/utils/common_utils';
import { __ } from '~/locale';
import { redirectTo } from '~/lib/utils/url_utility';
import { redirectTo, getLocationHash } from '~/lib/utils/url_utility';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import WebIdeLink from '~/vue_shared/components/web_ide_link.vue';
import CodeIntelligence from '~/code_navigation/components/app.vue';
@ -63,6 +63,28 @@ export default {
};
},
result() {
const urlHash = getLocationHash();
const plain = this.$route?.query?.plain;
// When the 'plain' URL param is present, its value determines which viewer to render:
// - when 0 and the rich viewer is available we render with it
// - otherwise we render the simple viewer
if (plain !== undefined) {
if (plain === '0' && this.hasRichViewer) {
this.switchViewer(RICH_BLOB_VIEWER);
} else {
this.switchViewer(SIMPLE_BLOB_VIEWER);
}
return;
}
// If there is a code line hash in the URL we render with the simple viewer
if (urlHash && urlHash.startsWith('L')) {
this.switchViewer(SIMPLE_BLOB_VIEWER);
return;
}
// By default, if present, use the rich viewer to render
this.switchViewer(this.hasRichViewer ? RICH_BLOB_VIEWER : SIMPLE_BLOB_VIEWER);
},
error() {
@ -173,6 +195,21 @@ export default {
return this.blobInfo.storedExternally && this.blobInfo.externalStorage === LFS_STORAGE;
},
},
watch: {
// Watch the URL 'plain' query value to know if the viewer needs changing.
// This is the case when the user switches the viewer and then goes back
// through the hystory.
'$route.query.plain': {
handler(plainValue) {
this.switchViewer(
this.hasRichViewer && (plainValue === undefined || plainValue === '0')
? RICH_BLOB_VIEWER
: SIMPLE_BLOB_VIEWER,
plainValue !== undefined,
);
},
},
},
methods: {
onError() {
this.useFallback = true;
@ -223,6 +260,22 @@ export default {
this.loadLegacyViewer();
}
},
updateRouteQuery() {
const plain = this.activeViewerType === SIMPLE_BLOB_VIEWER ? '1' : '0';
if (this.$route?.query?.plain === plain) {
return;
}
this.$router.push({
path: this.$route.path,
query: { ...this.$route.query, plain },
});
},
handleViewerChanged(newViewer) {
this.switchViewer(newViewer);
this.updateRouteQuery();
},
editBlob(target) {
if (this.showForkSuggestion) {
this.setForkTarget(target);
@ -254,7 +307,7 @@ export default {
:has-render-error="hasRenderError"
:show-path="false"
:override-copy="glFeatures.highlightJs"
@viewer-changed="switchViewer"
@viewer-changed="handleViewerChanged"
@copy="onCopy"
>
<template #actions>

View File

@ -1,12 +1,9 @@
<script>
import { GlLink, GlSafeHtmlDirective } from '@gitlab/ui';
import { GlSafeHtmlDirective } from '@gitlab/ui';
import { setAttributes } from '~/lib/utils/dom_utils';
import { BIDI_CHARS, BIDI_CHARS_CLASS_LIST, BIDI_CHAR_TOOLTIP } from '../constants';
export default {
components: {
GlLink,
},
directives: {
SafeHtml: GlSafeHtmlDirective,
},
@ -60,15 +57,16 @@ export default {
<template>
<div class="gl-display-flex">
<div class="gl-p-0! gl-absolute gl-z-index-3 gl-border-r diff-line-num line-numbers">
<gl-link
<a
:id="`L${number}`"
class="gl-user-select-none gl-ml-5 gl-pr-3 gl-shadow-none! file-line-num diff-line-num"
:class="firstLineClass"
:to="`#L${number}`"
:href="`#L${number}`"
:data-line-number="number"
data-testid="line-number-anchor"
>
{{ number }}
</gl-link>
</a>
</div>
<pre

View File

@ -50,7 +50,7 @@ export default {
default: __('user avatar'),
},
size: {
type: Number,
type: [Number, Object],
required: false,
default: 20,
},
@ -64,12 +64,19 @@ export default {
required: false,
default: 'top',
},
enforceGlAvatar: {
type: Boolean,
required: false,
},
},
};
</script>
<template>
<user-avatar-image-new v-if="glFeatures.glAvatarForAllUserAvatars" v-bind="$props">
<user-avatar-image-new
v-if="glFeatures.glAvatarForAllUserAvatars || enforceGlAvatar"
v-bind="$props"
>
<slot></slot>
</user-avatar-image-new>
<user-avatar-image-old v-else v-bind="$props">

View File

@ -16,6 +16,7 @@
*/
import { GlTooltip, GlAvatar } from '@gitlab/ui';
import { isObject } from 'lodash';
import defaultAvatarUrl from 'images/no_avatar.png';
import { __ } from '~/locale';
import { placeholderImage } from '~/lazy_loader';
@ -48,7 +49,7 @@ export default {
default: __('user avatar'),
},
size: {
type: Number,
type: [Number, Object],
required: false,
default: 20,
},
@ -71,9 +72,16 @@ export default {
let baseSrc = this.imgSrc === '' || this.imgSrc === null ? defaultAvatarUrl : this.imgSrc;
// Only adds the width to the URL if its not a base64 data image
if (!(baseSrc.indexOf('data:') === 0) && !baseSrc.includes('?'))
baseSrc += `?width=${this.size}`;
baseSrc += `?width=${this.maximumSize}`;
return baseSrc;
},
maximumSize() {
if (isObject(this.size)) {
return Math.max(...Object.values(this.size));
}
return this.size;
},
resultantSrcAttribute() {
return this.lazy ? placeholderImage : this.sanitizedSource;
},

View File

@ -55,7 +55,7 @@ export default {
default: '',
},
imgSize: {
type: Number,
type: [Number, Object],
required: false,
default: 20,
},
@ -74,12 +74,19 @@ export default {
required: false,
default: '',
},
enforceGlAvatar: {
type: Boolean,
required: false,
},
},
};
</script>
<template>
<user-avatar-link-new v-if="glFeatures.glAvatarForAllUserAvatars" v-bind="$props">
<user-avatar-link-new
v-if="glFeatures.glAvatarForAllUserAvatars || enforceGlAvatar"
v-bind="$props"
>
<slot></slot>
<template #avatar-badge>
<slot name="avatar-badge"></slot>

View File

@ -56,7 +56,7 @@ export default {
default: '',
},
imgSize: {
type: Number,
type: [Number, Object],
required: false,
default: 20,
},
@ -75,6 +75,10 @@ export default {
required: false,
default: '',
},
enforceGlAvatar: {
type: Boolean,
required: false,
},
},
computed: {
shouldShowUsername() {
@ -97,6 +101,7 @@ export default {
:tooltip-text="avatarTooltipText"
:tooltip-placement="tooltipPlacement"
:lazy="lazy"
:enforce-gl-avatar="enforceGlAvatar"
>
<slot></slot>
</user-avatar-image>

View File

@ -21,7 +21,7 @@ export default {
default: 10,
},
imgSize: {
type: Number,
type: [Number, Object],
required: false,
default: 20,
},

View File

@ -1,5 +1,5 @@
<script>
import { GlAlert, GlSkeletonLoader, GlIcon, GlButton } from '@gitlab/ui';
import { GlAlert, GlSkeletonLoader, GlIcon, GlButton, GlTooltipDirective } from '@gitlab/ui';
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
import {
@ -24,6 +24,9 @@ import WorkItemInformation from './work_item_information.vue';
export default {
i18n,
directives: {
GlTooltip: GlTooltipDirective,
},
components: {
GlAlert,
GlButton,
@ -156,17 +159,25 @@ export default {
<div class="gl-display-flex gl-align-items-center">
<ul
v-if="parentWorkItem"
class="list-unstyled gl-display-flex gl-mr-auto"
class="list-unstyled gl-display-flex gl-mr-auto gl-max-w-26 gl-md-max-w-50p gl-min-w-0 gl-mb-0"
data-testid="work-item-parent"
>
<li class="gl-ml-n4">
<gl-button icon="issues" category="tertiary" :href="parentUrl">{{
parentWorkItem.title
}}</gl-button>
<gl-icon name="chevron-right" :size="16" />
<li class="gl-ml-n4 gl-display-flex gl-align-items-center gl-overflow-hidden">
<gl-button
v-gl-tooltip.hover
class="gl-text-truncate gl-max-w-full"
icon="issues"
category="tertiary"
:href="parentUrl"
:title="parentWorkItem.title"
>{{ parentWorkItem.title }}</gl-button
>
<gl-icon name="chevron-right" :size="16" class="gl-flex-shrink-0" />
</li>
<li class="gl-px-4 gl-py-3 gl-line-height-0">
<gl-icon name="task-done" />
<li
class="gl-px-4 gl-py-3 gl-line-height-0 gl-display-flex gl-align-items-center gl-overflow-hidden gl-flex-shrink-0"
>
<gl-icon name="task-done" class="gl-mr-2 gl-flex-shrink-0" />
{{ workItemType }}
</li>
</ul>

View File

@ -6,7 +6,6 @@ module Integrations
LEGACY_FOREIGN_KEY_NAME = %w(
Integrations::IssueTrackerData
Integrations::JiraTrackerData
).freeze
included do

View File

@ -45,7 +45,7 @@ module Integrations
included do
has_one :issue_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::IssueTrackerData'
has_one :jira_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::JiraTrackerData'
has_one :jira_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :integration_id, class_name: 'Integrations::JiraTrackerData'
has_one :zentao_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :integration_id, class_name: 'Integrations::ZentaoTrackerData'
def data_fields

View File

@ -475,6 +475,7 @@ class Project < ApplicationRecord
delegate :job_token_scope_enabled, :job_token_scope_enabled=, to: :ci_cd_settings, prefix: :ci, allow_nil: true
delegate :keep_latest_artifact, :keep_latest_artifact=, to: :ci_cd_settings, allow_nil: true
delegate :opt_in_jwt, :opt_in_jwt=, to: :ci_cd_settings, prefix: :ci, allow_nil: true
delegate :allow_fork_pipelines_to_run_in_parent_project, :allow_fork_pipelines_to_run_in_parent_project=, to: :ci_cd_settings, prefix: :ci, allow_nil: true
delegate :restrict_user_defined_variables, :restrict_user_defined_variables=, to: :ci_cd_settings, allow_nil: true
delegate :separated_caches, :separated_caches=, to: :ci_cd_settings, prefix: :ci, allow_nil: true
delegate :runner_token_expiration_interval, :runner_token_expiration_interval=, :runner_token_expiration_interval_human_readable, :runner_token_expiration_interval_human_readable=, to: :ci_cd_settings, allow_nil: true
@ -2884,6 +2885,12 @@ class Project < ApplicationRecord
ci_cd_settings.forward_deployment_enabled?
end
def ci_allow_fork_pipelines_to_run_in_parent_project?
return false unless ci_cd_settings
ci_cd_settings.allow_fork_pipelines_to_run_in_parent_project?
end
def ci_job_token_scope_enabled?
return false unless ci_cd_settings

View File

@ -21,7 +21,8 @@ module Users
namespace_storage_limit_banner_info_threshold: 10, # EE-only
namespace_storage_limit_banner_warning_threshold: 11, # EE-only
namespace_storage_limit_banner_alert_threshold: 12, # EE-only
namespace_storage_limit_banner_error_threshold: 13 # EE-only
namespace_storage_limit_banner_error_threshold: 13, # EE-only
usage_quota_trial_alert: 14 # EE-only
}
validates :group, presence: true

View File

@ -33,7 +33,8 @@ module Ci
end
def runner_variables
variables.sort_and_expand_all(keep_undefined: true).to_runner_variables
stop_expanding_file_vars = ::Feature.enabled?(:ci_stop_expanding_file_vars_for_runners, project)
variables.sort_and_expand_all(keep_undefined: true, expand_file_vars: !stop_expanding_file_vars).to_runner_variables
end
def refspecs

View File

@ -50,7 +50,8 @@ module MergeRequests
end
def can_create_pipeline_in_target_project?(merge_request)
can?(current_user, :create_pipeline, merge_request.target_project) &&
merge_request.target_project.ci_allow_fork_pipelines_to_run_in_parent_project? &&
can?(current_user, :create_pipeline, merge_request.target_project) &&
can_update_source_branch_in_target_project?(merge_request)
end

View File

@ -7,14 +7,14 @@
%span.sidebar-context-title
= _('Admin Area')
%ul.sidebar-top-level-items{ data: { qa_selector: 'admin_sidebar_overview_submenu_content' } }
= nav_link(controller: %w(dashboard admin admin/projects users groups admin/topics jobs runners gitaly_servers cohorts), html_options: {class: 'home'}) do
= nav_link(controller: %w[dashboard admin admin/projects users groups admin/topics jobs runners gitaly_servers cohorts], html_options: {class: 'home'}) do
= link_to admin_root_path, class: 'has-sub-items' do
.nav-icon-container
= sprite_icon('overview')
%span.nav-item-name
= _('Overview')
%ul.sidebar-sub-level-items
= nav_link(controller: %w(dashboard admin admin/projects users groups jobs runners gitaly_servers cohorts), html_options: { class: "fly-out-top-item" } ) do
= nav_link(controller: %w[dashboard admin admin/projects users groups jobs runners gitaly_servers cohorts], html_options: { class: "fly-out-top-item" } ) do
= link_to admin_root_path do
%strong.fly-out-top-item-name
= _('Overview')
@ -27,7 +27,7 @@
= link_to admin_projects_path, title: _('Projects') do
%span
= _('Projects')
= nav_link(controller: %w(users cohorts)) do
= nav_link(controller: %w[users cohorts]) do
= link_to admin_users_path, title: _('Users'), data: { qa_selector: 'users_overview_link' } do
%span
= _('Users')

View File

@ -7,6 +7,12 @@
= page_title
%p
= _('SSH keys allow you to establish a secure connection between your computer and GitLab.')
%br
%h4.gl-mt-0
= _('SSH Fingerprints')
%p
- config_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_instance_configuration_url }
= html_escape(s_('SSH fingerprints verify that the client is connecting to the correct host. Check the %{config_link_start}current instance configuration%{config_link_end}.')) % { config_link_start: config_link_start, config_link_end: '</a>'.html_safe }
.col-lg-8
%h5.gl-mt-0
= _('Add an SSH key')

View File

@ -28,9 +28,9 @@
= _('This group does not have any group runners yet.')
- if can?(current_user, :admin_group_runners, @project.group)
- register_runners_path = group_runners_path(@project.group)
- group_link = link_to _("group's CI/CD settings."), register_runners_path
= _('Group owners can register group runners in the %{link}').html_safe % { link: group_link }
- group_link_start = "<a href='#{group_runners_path(@project.group)}'>".html_safe
- group_link_end = '</a>'.html_safe
= s_("Runners|To register them, go to the %{link_start}group's Runners page%{link_end}.").html_safe % { link_start: group_link_start, link_end: group_link_end }
- else
= _('Ask your group owner to set up a group runner.')

View File

@ -3,7 +3,7 @@
= render partial: 'search/results_status', locals: { search_service: @search_service } unless @search_objects.to_a.empty?
.results.gl-md-display-flex.gl-mt-3
- if %w(issues merge_requests).include?(@scope)
- if %w[issues merge_requests].include?(@scope)
#js-search-sidebar{ class: search_bar_classes }
.gl-w-full.gl-flex-grow-1.gl-overflow-x-hidden
- if @timeout

View File

@ -0,0 +1,8 @@
---
name: ci_stop_expanding_file_vars_for_runners
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94198
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/369907
milestone: '15.3'
type: development
group: group::pipeline authoring
default_enabled: false

View File

@ -0,0 +1,13 @@
# frozen_string_literal: true
class RenameJiraTrackerDataServiceIdToIntegrationId < Gitlab::Database::Migration[2.0]
disable_ddl_transaction!
def up
rename_column_concurrently :jira_tracker_data, :service_id, :integration_id
end
def down
undo_rename_column_concurrently :jira_tracker_data, :service_id, :integration_id
end
end

View File

@ -0,0 +1,27 @@
# frozen_string_literal: true
# See https://docs.gitlab.com/ee/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class UpdateDelayedDeletionPeriod < Gitlab::Database::Migration[2.0]
restrict_gitlab_migration gitlab_schema: :gitlab_main
# Before 15.1 the only way to disable delayed deletion was to set
# the period to 0, as of 15.1 zero is no longer a valid value (1-90).
# This migration sets the period to a valid value and disables
# delayed deletion using the delayed_* boolean attributes.
def up
execute <<~SQL
UPDATE application_settings SET
deletion_adjourned_period = 1,
delayed_group_deletion = 'f',
delayed_project_removal ='f'
WHERE deletion_adjourned_period = 0;
SQL
end
def down
# no-op
end
end

View File

@ -0,0 +1,8 @@
# frozen_string_literal: true
class AddAllowRunPipelinesInTheParentProjectSetting < Gitlab::Database::Migration[2.0]
def change
add_column :project_ci_cd_settings, :allow_fork_pipelines_to_run_in_parent_project, :boolean,
default: true, null: false
end
end

View File

@ -0,0 +1,13 @@
# frozen_string_literal: true
class CleanupJiraTrackerDataServiceId < Gitlab::Database::Migration[2.0]
disable_ddl_transaction!
def up
cleanup_concurrent_column_rename :jira_tracker_data, :service_id, :integration_id
end
def down
undo_cleanup_concurrent_column_rename :jira_tracker_data, :service_id, :integration_id
end
end

View File

@ -0,0 +1 @@
2d225c96f4fbc08b2443a1e6c723d2a337ed1e10412323ba816858db03299738

View File

@ -0,0 +1 @@
4e19d3306807b83e4dddd3c7212b662f39c0d852826df1d22fc29c251fa0d1da

View File

@ -0,0 +1 @@
71ac60c42a546f65329eb2028d2de1252da01909b866fcc5151b928ee69f26d6

View File

@ -0,0 +1 @@
6b6cb1cd97434e8d172257f9ef404ed31d07fb2b9a5e27a5bc0a9cf9a175b066

View File

@ -16795,7 +16795,6 @@ ALTER SEQUENCE jira_imports_id_seq OWNED BY jira_imports.id;
CREATE TABLE jira_tracker_data (
id bigint NOT NULL,
service_id integer NOT NULL,
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL,
encrypted_url character varying,
@ -16813,7 +16812,9 @@ CREATE TABLE jira_tracker_data (
vulnerabilities_issuetype text,
vulnerabilities_enabled boolean DEFAULT false NOT NULL,
jira_issue_transition_automatic boolean DEFAULT false NOT NULL,
integration_id integer,
CONSTRAINT check_0bf84b76e9 CHECK ((char_length(vulnerabilities_issuetype) <= 255)),
CONSTRAINT check_0fbd71d9f2 CHECK ((integration_id IS NOT NULL)),
CONSTRAINT check_214cf6a48b CHECK ((char_length(project_key) <= 255))
);
@ -19406,7 +19407,8 @@ CREATE TABLE project_ci_cd_settings (
job_token_scope_enabled boolean DEFAULT false NOT NULL,
runner_token_expiration_interval integer,
separated_caches boolean DEFAULT true NOT NULL,
opt_in_jwt boolean DEFAULT false NOT NULL
opt_in_jwt boolean DEFAULT false NOT NULL,
allow_fork_pipelines_to_run_in_parent_project boolean DEFAULT true NOT NULL
);
CREATE SEQUENCE project_ci_cd_settings_id_seq
@ -28737,7 +28739,7 @@ CREATE INDEX index_jira_imports_on_project_id_and_jira_project_key ON jira_impor
CREATE INDEX index_jira_imports_on_user_id ON jira_imports USING btree (user_id);
CREATE INDEX index_jira_tracker_data_on_service_id ON jira_tracker_data USING btree (service_id);
CREATE INDEX index_jira_tracker_data_on_integration_id ON jira_tracker_data USING btree (integration_id);
CREATE INDEX index_job_artifact_states_failed_verification ON ci_job_artifact_states USING btree (verification_retry_at NULLS FIRST) WHERE (verification_state = 3);
@ -32550,6 +32552,9 @@ ALTER TABLE ONLY agent_activity_events
ALTER TABLE ONLY issue_links
ADD CONSTRAINT fk_c900194ff2 FOREIGN KEY (source_id) REFERENCES issues(id) ON DELETE CASCADE;
ALTER TABLE ONLY jira_tracker_data
ADD CONSTRAINT fk_c98abcd54c FOREIGN KEY (integration_id) REFERENCES integrations(id) ON DELETE CASCADE;
ALTER TABLE ONLY external_approval_rules_protected_branches
ADD CONSTRAINT fk_c9a037a926 FOREIGN KEY (external_approval_rule_id) REFERENCES external_approval_rules(id) ON DELETE CASCADE;
@ -33786,9 +33791,6 @@ ALTER TABLE ONLY vulnerability_user_mentions
ALTER TABLE ONLY todos
ADD CONSTRAINT fk_rails_a27c483435 FOREIGN KEY (group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
ALTER TABLE ONLY jira_tracker_data
ADD CONSTRAINT fk_rails_a299066916 FOREIGN KEY (service_id) REFERENCES integrations(id) ON DELETE CASCADE;
ALTER TABLE ONLY protected_environments
ADD CONSTRAINT fk_rails_a354313d11 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE;

View File

@ -8,4 +8,4 @@ This document was moved to [another location](container_registry.md).
<!-- This redirect file can be deleted after <2022-10-29>. -->
<!-- Redirects that point to other docs in the same project expire in three months. -->
<!-- Redirects that point to docs in a different project or site (link is not relative and starts with `https:`) expire in one year. -->
<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->

View File

@ -452,6 +452,7 @@ Example response:
"open_issues_count":10,
"ci_default_git_depth":50,
"ci_forward_deployment_enabled":true,
"ci_allow_fork_pipelines_to_run_in_parent_project":true,
"public_jobs":true,
"build_timeout":3600,
"auto_cancel_pending_pipelines":"enabled",

View File

@ -222,6 +222,7 @@ When the user is authenticated and `simple` is not set this returns something li
"open_issues_count": 0,
"ci_default_git_depth": 20,
"ci_forward_deployment_enabled": true,
"ci_allow_fork_pipelines_to_run_in_parent_project": true,
"ci_job_token_scope_enabled": false,
"ci_separated_caches": true,
"public_jobs": true,
@ -403,6 +404,7 @@ GET /users/:user_id/projects
"runners_token": "b8547b1dc37721d05889db52fa2f02",
"ci_default_git_depth": 50,
"ci_forward_deployment_enabled": true,
"ci_allow_fork_pipelines_to_run_in_parent_project": true,
"ci_separated_caches": true,
"public_jobs": true,
"shared_with_groups": [],
@ -511,6 +513,7 @@ GET /users/:user_id/projects
"runners_token": "b8547b1dc37721d05889db52fa2f02",
"ci_default_git_depth": 0,
"ci_forward_deployment_enabled": true,
"ci_allow_fork_pipelines_to_run_in_parent_project": true,
"ci_separated_caches": true,
"public_jobs": true,
"shared_with_groups": [],
@ -918,6 +921,7 @@ GET /projects/:id
"runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
"ci_default_git_depth": 50,
"ci_forward_deployment_enabled": true,
"ci_allow_fork_pipelines_to_run_in_parent_project": true,
"ci_separated_caches": true,
"public_jobs": true,
"shared_with_groups": [
@ -1358,6 +1362,7 @@ Supported attributes:
| `ci_config_path` | string | **{dotted-circle}** No | The path to CI configuration file. |
| `ci_default_git_depth` | integer | **{dotted-circle}** No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone). |
| `ci_forward_deployment_enabled` | boolean | **{dotted-circle}** No | When a new deployment job starts, [skip older deployment jobs](../ci/pipelines/settings.md#skip-outdated-deployment-jobs) that are still pending |
| `ci_allow_fork_pipelines_to_run_in_parent_project` | boolean | **{dotted-circle}** No | Enable or disable [running pipelines in the parent project for merge requests from forks](../ci/pipelines/merge_request_pipelines.md#run-pipelines-in-the-parent-project). _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/325189) in GitLab 15.3.)_ |
| `ci_separated_caches` | boolean | **{dotted-circle}** No | Set whether or not caches should be [separated](../ci/caching/index.md#cache-key-names) by branch protection status. |
| `container_expiration_policy_attributes` | hash | **{dotted-circle}** No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). |
| `container_registry_access_level` | string | **{dotted-circle}** No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. |
@ -1934,6 +1939,7 @@ Example response:
"runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
"ci_default_git_depth": 50,
"ci_forward_deployment_enabled": true,
"ci_allow_fork_pipelines_to_run_in_parent_project": true,
"ci_separated_caches": true,
"public_jobs": true,
"shared_with_groups": [],
@ -2060,6 +2066,7 @@ Example response:
"runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
"ci_default_git_depth": 50,
"ci_forward_deployment_enabled": true,
"ci_allow_fork_pipelines_to_run_in_parent_project": true,
"ci_separated_caches": true,
"public_jobs": true,
"shared_with_groups": [],

View File

@ -153,7 +153,8 @@ Prerequisites:
- The parent project's [CI/CD configuration file](../yaml/index.md) must be configured to
[run jobs in merge request pipelines](#prerequisites).
- You must be a member of the parent project and have at least the [Developer role](../../user/permissions.md).
- You must be a member of the parent project with [permissions to run CI/CD pipelines](../../user/permissions.md#gitlab-cicd-permissions).
You might need additional permissions if the branch is protected.
- The fork project must be [visible](../../user/public_access.md) to the
user running the pipeline. Otherwise, the **Pipelines** tab does not display
in the merge request.
@ -163,6 +164,10 @@ To use the UI to run a pipeline in the parent project for a merge request from a
1. In the merge request, go to the **Pipelines** tab.
1. Select **Run pipeline**. You must read and accept the warning, or the pipeline does not run.
You can disable this feature by using [the projects API](../../api/projects.md#edit-project)
to disable the `ci_allow_fork_pipelines_to_run_in_parent_project` setting.
The setting is `enabled` by default.
## Available predefined variables
When you use merge request pipelines, you can use:

View File

@ -69,7 +69,7 @@ The steps can be summed up to:
If you want to use `dpkg`/`rpm` instead of `apt-get`/`yum`, go through the first
step to find the current GitLab version, then follow
[Update using a manually-downloaded package](index.md#upgrade-using-a-manually-downloaded-package),
and then [add your license](../../user/admin_area/license.md).
and then [add your license](../../user/admin_area/license.md).
1. Install the `gitlab-ee` package. The install automatically
uninstalls the `gitlab-ce` package on your GitLab server. `reconfigure`

View File

@ -60,14 +60,14 @@ To download a security scan output:
## Scan results
This shows a list of the combined results for all security report artifacts. The filters work like the
[Vulnerability Report filters](index.md#vulnerability-report-filters), but they are limited to **Severity** and **Tool**, with
[Vulnerability Report filters](index.md#vulnerability-report-filters), but they are limited to **Severity** and **Tool**, with
the addition of a **Hide dismissed** toggle.
When you review the vulnerability findings reported in the pipeline, you can select one or more entries for dismissal,
When you review the vulnerability findings reported in the pipeline, you can select one or more entries for dismissal,
similar to [Dismissing a vulnerability](index.md#dismissing-a-vulnerability) in the Vulnerability Report.
When you merge the branch corresponding to the pipeline into the default branch, all reported findings are combined into
the [Vulnerability Report](index.md). Scan results in pipelines executed on the default branch are
the [Vulnerability Report](index.md). Scan results in pipelines executed on the default branch are
incorporated once the pipeline finishes.
| Existing vulnerability status | Dismissed in pipeline? | New vulnerability status |

View File

@ -304,8 +304,10 @@ Verify that your SSH key was added correctly.
The following commands use the example hostname `gitlab.example.com`. Replace this example hostname with your GitLab instance's hostname, for example, `git@gitlab.com`.
1. For GitLab.com, to ensure you're connecting to the correct server, confirm the
[SSH host keys fingerprints](gitlab_com/index.md#ssh-host-keys-fingerprints).
1. To ensure you're connecting to the correct server, check the server's SSH host keys fingerprint. For:
- GitLab.com, see the [SSH host keys fingerprints](gitlab_com/index.md#ssh-host-keys-fingerprints) documentation.
- GitLab.com or another GitLab instance, see `gitlab.example.com/help/instance_configuration#ssh-host-keys-fingerprints` where `gitlab.example.com` is `gitlab.com` (for
GitLab.com) or the address of the GitLab instance.
1. Open a terminal and run this command, replacing `gitlab.example.com` with your
GitLab instance URL:

View File

@ -105,6 +105,7 @@ module API
expose :ci_job_token_scope_enabled
expose :ci_separated_caches
expose :ci_opt_in_jwt
expose :ci_allow_fork_pipelines_to_run_in_parent_project
expose :public_builds, as: :public_jobs
expose :build_git_strategy, if: lambda { |project, options| options[:user_can_admin_project] } do |project, options|
project.build_allow_git_fetch ? 'fetch' : 'clone'

View File

@ -96,6 +96,7 @@ module API
params :optional_update_params_ce do
optional :ci_forward_deployment_enabled, type: Boolean, desc: 'Skip older deployment jobs that are still pending'
optional :ci_allow_fork_pipelines_to_run_in_parent_project, type: Boolean, desc: 'Allow fork merge request pipelines to run in parent project'
optional :ci_separated_caches, type: Boolean, desc: 'Enable or disable separated caches based on branch protection.'
optional :restrict_user_defined_variables, type: Boolean, desc: 'Restrict use of user-defined variables when triggering a pipeline'
end
@ -130,6 +131,7 @@ module API
:builds_access_level,
:ci_config_path,
:ci_default_git_depth,
:ci_allow_fork_pipelines_to_run_in_parent_project,
:ci_forward_deployment_enabled,
:ci_separated_caches,
:container_registry_access_level,

View File

@ -91,7 +91,7 @@ module API
authorize_read_source_member!(source_type, source)
members = find_all_members(source)
members = find_all_members(source).order(access_level: :desc)
member = members.find_by!(user_id: params[:user_id])
present_members member

View File

@ -72,24 +72,32 @@ module Gitlab
Collection.new(@variables.reject(&block))
end
def expand_value(value, keep_undefined: false)
def expand_value(value, keep_undefined: false, expand_file_vars: true)
value.gsub(Item::VARIABLES_REGEXP) do
match = Regexp.last_match
if match[:key]
# we matched variable
if variable = self[match[:key]]
variable.value
elsif keep_undefined
match[0]
end
match = Regexp.last_match # it is either a valid variable definition or a ($$ / %%)
full_match = match[0]
variable_name = match[:key]
next full_match unless variable_name # it is a ($$ / %%), so we don't touch it
# now we know that it is a valid variable definition: $VARIABLE_NAME / %VARIABLE_NAME / ${VARIABLE_NAME}
# we are trying to find a variable with key VARIABLE_NAME
variable = self[variable_name]
if variable # VARIABLE_NAME is an existing variable
next variable.value unless variable.file?
expand_file_vars ? variable.value : full_match
elsif keep_undefined
full_match # we do not touch the variable definition
else
# we escape sequence
match[0]
nil # we remove the variable definition
end
end
end
def sort_and_expand_all(keep_undefined: false)
def sort_and_expand_all(keep_undefined: false, expand_file_vars: true)
sorted = Sort.new(self)
return self.class.new(self, sorted.errors) unless sorted.valid?
@ -103,7 +111,8 @@ module Gitlab
# expand variables as they are added
variable = item.to_runner_variable
variable[:value] = new_collection.expand_value(variable[:value], keep_undefined: keep_undefined)
variable[:value] = new_collection.expand_value(variable[:value], keep_undefined: keep_undefined,
expand_file_vars: expand_file_vars)
new_collection.append(variable)
end

View File

@ -25,6 +25,10 @@ module Gitlab
@variable.fetch(:raw)
end
def file?
@variable.fetch(:file)
end
def [](key)
@variable.fetch(key)
end

View File

@ -888,6 +888,9 @@ msgstr ""
msgid "%{over_limit_message} To get more members, an owner of the group can start a trial or upgrade to a paid tier."
msgstr ""
msgid "%{over_limit_message} To get more seats, %{link_start}upgrade to a paid tier%{link_end}."
msgstr ""
msgid "%{over_limit_message} To view and manage members, check the members page for each personal project. We recommend you %{link_start}move your projects to a group%{link_end} so you can easily manage users and features."
msgstr ""
@ -6172,6 +6175,9 @@ msgstr ""
msgid "Billings|Free groups are limited to %{number} seats."
msgstr ""
msgid "Billings|Free tier and trial groups can invite a maximum of 20 members per day."
msgstr ""
msgid "Billings|In a seat"
msgstr ""
@ -6220,9 +6226,6 @@ msgstr ""
msgid "Billings|Your account has been validated"
msgstr ""
msgid "Billing|%{overLimitMessage} To ensure all members (active and %{linkStart}over limit%{linkEnd}) can access the group, you can start a trial or upgrade to a paid tier."
msgstr ""
msgid "Billing|%{user} was successfully approved"
msgstr ""
@ -6268,17 +6271,14 @@ msgstr ""
msgid "Billing|Export list"
msgstr ""
msgid "Billing|Free groups on GitLab are limited to %{maxNamespaceSeats} seats"
msgstr ""
msgid "Billing|From October 19, 2022, free groups will be limited to 5 members"
msgstr ""
msgid "Billing|Group invite"
msgstr ""
msgid "Billing|If the group has over %d member, only those occupying a seat can access the group."
msgid_plural "Billing|If the group has over %d members, only those occupying a seat can access the group."
msgid "Billing|Groups in the Free tier are limited to %d seat"
msgid_plural "Billing|Groups in the Free tier are limited to %d seats"
msgstr[0] ""
msgstr[1] ""
@ -6297,6 +6297,9 @@ msgstr ""
msgid "Billing|Remove user %{username} from your subscription"
msgstr ""
msgid "Billing|To ensure all members can access the group when your trial ends, you can upgrade to a paid tier."
msgstr ""
msgid "Billing|Toggle seat details"
msgstr ""
@ -18346,9 +18349,6 @@ msgstr ""
msgid "Group overview content"
msgstr ""
msgid "Group owners can register group runners in the %{link}"
msgstr ""
msgid "Group path is already taken. We've suggested one that is available."
msgstr ""
@ -26907,6 +26907,11 @@ msgstr ""
msgid "On"
msgstr ""
msgid "On %{end_date}, your trial will end and %{namespace_name} will be limited to %{free_user_limit} member"
msgid_plural "On %{end_date}, your trial will end and %{namespace_name} will be limited to %{free_user_limit} members"
msgstr[0] ""
msgstr[1] ""
msgid "On track"
msgstr ""
@ -34019,6 +34024,9 @@ msgstr ""
msgid "Runners|To install Runner in a container follow the instructions described in the GitLab documentation"
msgstr ""
msgid "Runners|To register them, go to the %{link_start}group's Runners page%{link_end}."
msgstr ""
msgid "Runners|Up to date"
msgstr ""
@ -34154,6 +34162,9 @@ msgstr ""
msgid "SHA256"
msgstr ""
msgid "SSH Fingerprints"
msgstr ""
msgid "SSH Key"
msgstr ""
@ -34163,6 +34174,9 @@ msgstr ""
msgid "SSH Keys Help"
msgstr ""
msgid "SSH fingerprints verify that the client is connecting to the correct host. Check the %{config_link_start}current instance configuration%{config_link_end}."
msgstr ""
msgid "SSH host key fingerprints"
msgstr ""
@ -43952,6 +43966,11 @@ msgstr ""
msgid "When you transfer your project to a group, you can easily manage multiple projects, view usage quotas for storage, pipeline minutes, and users, and start a trial or upgrade to a paid tier."
msgstr ""
msgid "When your trial ends, you'll move to the Free tier, which has a limit of %{free_user_limit} seat. %{free_user_limit} seat will remain active, and members not occupying a seat will have the %{link_start}Over limit status%{link_end} and lose access to this group."
msgid_plural "When your trial ends, you'll move to the Free tier, which has a limit of %{free_user_limit} seats. %{free_user_limit} seats will remain active, and members not occupying a seat will have the %{link_start}Over limit status%{link_end} and lose access to this group."
msgstr[0] ""
msgstr[1] ""
msgid "When:"
msgstr ""
@ -45093,7 +45112,7 @@ msgstr ""
msgid "Your %{spammable_entity_type} has been recognized as spam. Please, change the content or solve the reCAPTCHA to proceed."
msgstr ""
msgid "Your %{strong}%{plan_name}%{strong_close} subscription expires on %{strong}%{expires_on}%{strong_close}. After that date, you cannot create issues or merge requests, or use many other features."
msgid "Your %{strong}%{plan_name}%{strong_close} subscription expires on %{strong}%{expires_on}%{strong_close}. If you do not renew, you will lose access to your paid features on %{strong}%{downgrades_on}%{strong_close}. After that date, you can't create issues or merge requests, or use many other features."
msgstr ""
msgid "Your %{strong}%{plan_name}%{strong_close} subscription for %{strong}%{namespace_name}%{strong_close} will expire on %{strong}%{expires_on}%{strong_close}."
@ -45396,10 +45415,8 @@ msgid_plural "Your subscription has %{remaining_seat_count} out of %{total_seat_
msgstr[0] ""
msgstr[1] ""
msgid "Your subscription will expire in %{remaining_days} day."
msgid_plural "Your subscription will expire in %{remaining_days} days."
msgstr[0] ""
msgstr[1] ""
msgid "Your subscription will expire on %{expires_on}"
msgstr ""
msgid "Your update failed. You can only upload one design when dropping onto an existing design."
msgstr ""
@ -46282,9 +46299,6 @@ msgstr ""
msgid "group members"
msgstr ""
msgid "group's CI/CD settings."
msgstr ""
msgid "groups"
msgstr ""

View File

@ -5,6 +5,7 @@ FactoryBot.define do
sequence(:key) { |n| "VARIABLE_#{n}" }
value { 'VARIABLE_VALUE' }
masked { false }
variable_type { :env_var }
trait(:protected) do
add_attribute(:protected) { true }

View File

@ -275,7 +275,7 @@ RSpec.describe 'Project issue boards', :js do
context 'issue card' do
it 'shows assignee' do
page.within(find('.board:nth-child(2)')) do
expect(page).to have_selector('.avatar', count: 1)
expect(page).to have_selector('.gl-avatar', count: 1)
end
end

View File

@ -268,7 +268,7 @@ RSpec.describe 'Runners' do
it 'group runners are not available' do
visit project_runners_path(project)
expect(page).not_to have_content 'Group owners can register group runners in the group\'s CI/CD settings.'
expect(page).not_to have_content 'To register them, go to the group\'s Runners page.'
expect(page).to have_content 'Ask your group owner to set up a group runner'
end
end
@ -287,7 +287,7 @@ RSpec.describe 'Runners' do
expect(page).to have_content 'This group does not have any group runners yet.'
expect(page).to have_content 'Group owners can register group runners in the group\'s CI/CD settings.'
expect(page).to have_content 'To register them, go to the group\'s Runners page.'
expect(page).not_to have_content 'Ask your group owner to set up a group runner'
end
end
@ -313,7 +313,7 @@ RSpec.describe 'Runners' do
expect(page).to have_content 'This group does not have any group runners yet.'
expect(page).not_to have_content 'Group owners can register group runners in the group\'s CI/CD settings.'
expect(page).not_to have_content 'To register them, go to the group\'s Runners page.'
expect(page).to have_content 'Ask your group owner to set up a group runner.'
end
end

View File

@ -87,7 +87,7 @@ describe('AddContextCommitsModal', () => {
it('enabled ok button when atleast one row is selected', async () => {
wrapper.vm.$store.state.selectedCommits = [{ ...commit, isSelected: true }];
await nextTick();
expect(findModal().attributes('ok-disabled')).toBeFalsy();
expect(findModal().attributes('ok-disabled')).toBe(undefined);
});
});
@ -102,7 +102,7 @@ describe('AddContextCommitsModal', () => {
it('an enabled ok button when atleast one row is selected', async () => {
wrapper.vm.$store.state.selectedCommits = [{ ...commit, isSelected: true }];
await nextTick();
expect(findModal().attributes('ok-disabled')).toBeFalsy();
expect(findModal().attributes('ok-disabled')).toBe(undefined);
});
it('a disabled ok button in first tab, when row is selected in second tab', () => {

View File

@ -238,7 +238,7 @@ describe('Board card component', () => {
});
it('renders assignee', () => {
expect(wrapper.find('.board-card-assignee .avatar').exists()).toBe(true);
expect(wrapper.find('.board-card-assignee .gl-avatar').exists()).toBe(true);
});
it('sets title', () => {
@ -336,7 +336,7 @@ describe('Board card component', () => {
});
it('renders all three assignees', () => {
expect(wrapper.findAll('.board-card-assignee .avatar').length).toEqual(3);
expect(wrapper.findAll('.board-card-assignee .gl-avatar').length).toEqual(3);
});
describe('more than three assignees', () => {
@ -362,7 +362,7 @@ describe('Board card component', () => {
});
it('renders two assignees', () => {
expect(wrapper.findAll('.board-card-assignee .avatar').length).toEqual(2);
expect(wrapper.findAll('.board-card-assignee .gl-avatar').length).toEqual(2);
});
it('renders 99+ avatar counter', async () => {

View File

@ -90,7 +90,7 @@ describe('IntegrationOverrides', () => {
const table = findGlTable();
expect(table.exists()).toBe(true);
expect(table.attributes('busy')).toBeFalsy();
expect(table.attributes('busy')).toBeUndefined();
});
it('renders IntegrationTabs with count', async () => {

View File

@ -508,7 +508,7 @@ describe.skip('Old Notes (~/deprecated_notes.js)', () => {
notes.putEditFormInPlace($el);
expect(notes.glForm.enableGFM).toBeTruthy();
expect(notes.glForm.enableGFM).toBe('');
});
});
@ -781,21 +781,21 @@ describe.skip('Old Notes (~/deprecated_notes.js)', () => {
const sampleComment = '/wip\n/milestone %1.0\n/merge\n/unassign Merging this';
const hasQuickActions = notes.hasQuickActions(sampleComment);
expect(hasQuickActions).toBeTruthy();
expect(hasQuickActions).toBe(true);
});
it('should return false when comment does NOT begin with a quick action', () => {
const sampleComment = 'Hey, /unassign Merging this';
const hasQuickActions = notes.hasQuickActions(sampleComment);
expect(hasQuickActions).toBeFalsy();
expect(hasQuickActions).toBe(false);
});
it('should return false when comment does NOT have any quick actions', () => {
const sampleComment = 'Looking good, Awesome!';
const hasQuickActions = notes.hasQuickActions(sampleComment);
expect(hasQuickActions).toBeFalsy();
expect(hasQuickActions).toBe(false);
});
});
@ -885,14 +885,14 @@ describe.skip('Old Notes (~/deprecated_notes.js)', () => {
expect($tempNote.prop('nodeName')).toEqual('LI');
expect($tempNote.attr('id')).toEqual(uniqueId);
expect($tempNote.hasClass('being-posted')).toBeTruthy();
expect($tempNote.hasClass('fade-in-half')).toBeTruthy();
expect($tempNote.hasClass('being-posted')).toBe(true);
expect($tempNote.hasClass('fade-in-half')).toBe(true);
$tempNote.find('.timeline-icon > a, .note-header-info > a').each((i, el) => {
expect(el.getAttribute('href')).toEqual(`/${currentUsername}`);
});
expect($tempNote.find('.timeline-icon .avatar').attr('src')).toEqual(currentUserAvatar);
expect($tempNote.find('.timeline-content').hasClass('discussion')).toBeFalsy();
expect($tempNote.find('.timeline-content').hasClass('discussion')).toBe(false);
expect($tempNoteHeader.find('.d-none.d-sm-inline-block').text().trim()).toEqual(
currentUserFullname,
);
@ -914,7 +914,7 @@ describe.skip('Old Notes (~/deprecated_notes.js)', () => {
});
expect($tempNote.prop('nodeName')).toEqual('LI');
expect($tempNote.find('.timeline-content').hasClass('discussion')).toBeTruthy();
expect($tempNote.find('.timeline-content').hasClass('discussion')).toBe(true);
});
it('should return a escaped user name', () => {
@ -952,8 +952,8 @@ describe.skip('Old Notes (~/deprecated_notes.js)', () => {
expect($tempNote.prop('nodeName')).toEqual('LI');
expect($tempNote.attr('id')).toEqual(uniqueId);
expect($tempNote.hasClass('being-posted')).toBeTruthy();
expect($tempNote.hasClass('fade-in-half')).toBeTruthy();
expect($tempNote.hasClass('being-posted')).toBe(true);
expect($tempNote.hasClass('fade-in-half')).toBe(true);
expect($tempNote.find('.timeline-content i').text().trim()).toEqual(sampleCommandDescription);
});
});

View File

@ -163,8 +163,8 @@ describe('Code Coverage', () => {
await nextTick();
expect(findFirstDropdownItem().attributes('ischecked')).toBeFalsy();
expect(findSecondDropdownItem().attributes('ischecked')).toBeTruthy();
expect(findFirstDropdownItem().attributes('ischecked')).toBe(undefined);
expect(findSecondDropdownItem().attributes('ischecked')).toBe('true');
});
it('updates the graph data when selecting a different option in dropdown', async () => {

View File

@ -159,7 +159,7 @@ describe('Pipeline Editor Validate Tab', () => {
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalledWith({
mutation: lintCIMutation,
variables: {
dry_run: true,
dry: true,
content: mockCiYml,
endpoint: mockCiLintPath,
},
@ -243,7 +243,7 @@ describe('Pipeline Editor Validate Tab', () => {
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalledWith({
mutation: lintCIMutation,
variables: {
dry_run: true,
dry: true,
content: 'new yaml content',
endpoint: mockCiLintPath,
},

View File

@ -21,12 +21,13 @@ import blobInfoQuery from '~/repository/queries/blob_info.query.graphql';
import userInfoQuery from '~/repository/queries/user_info.query.graphql';
import applicationInfoQuery from '~/repository/queries/application_info.query.graphql';
import CodeIntelligence from '~/code_navigation/components/app.vue';
import { redirectTo } from '~/lib/utils/url_utility';
import * as urlUtility from '~/lib/utils/url_utility';
import { isLoggedIn, handleLocationHash } from '~/lib/utils/common_utils';
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
import httpStatusCodes from '~/lib/utils/http_status';
import LineHighlighter from '~/blob/line_highlighter';
import { LEGACY_FILE_TYPES } from '~/repository/constants';
import { SIMPLE_BLOB_VIEWER, RICH_BLOB_VIEWER } from '~/blob/components/constants';
import {
simpleViewerMock,
richViewerMock,
@ -53,7 +54,12 @@ const mockAxios = new MockAdapter(axios);
const createMockStore = () =>
new Vuex.Store({ actions: { fetchData: jest.fn, setInitialData: jest.fn() } });
const createComponent = async (mockData = {}, mountFn = shallowMount) => {
const mockRouterPush = jest.fn();
const mockRouter = {
push: mockRouterPush,
};
const createComponent = async (mockData = {}, mountFn = shallowMount, mockRoute = {}) => {
Vue.use(VueApollo);
const {
@ -106,6 +112,10 @@ const createComponent = async (mockData = {}, mountFn = shallowMount) => {
apolloProvider: fakeApollo,
propsData: propsMock,
mixins: [{ data: () => ({ ref: refMock }) }],
mocks: {
$route: mockRoute,
$router: mockRouter,
},
provide: {
targetBranch: 'test',
originalBranch: 'default-ref',
@ -158,10 +168,11 @@ describe('Blob content viewer component', () => {
it('renders a BlobHeader component', async () => {
await createComponent();
expect(findBlobHeader().props('activeViewerType')).toEqual('simple');
expect(findBlobHeader().props('activeViewerType')).toEqual(SIMPLE_BLOB_VIEWER);
expect(findBlobHeader().props('hasRenderError')).toEqual(false);
expect(findBlobHeader().props('hideViewerSwitcher')).toEqual(true);
expect(findBlobHeader().props('blob')).toEqual(simpleViewerMock);
expect(mockRouterPush).not.toHaveBeenCalled();
});
it('copies blob text to clipboard', async () => {
@ -179,7 +190,7 @@ describe('Blob content viewer component', () => {
expect(findBlobContent().props('activeViewer')).toEqual({
fileType: 'text',
tooLarge: false,
type: 'simple',
type: SIMPLE_BLOB_VIEWER,
renderError: null,
});
});
@ -247,10 +258,11 @@ describe('Blob content viewer component', () => {
it('renders a BlobHeader component', async () => {
await createComponent({ blob: richViewerMock });
expect(findBlobHeader().props('activeViewerType')).toEqual('rich');
expect(findBlobHeader().props('activeViewerType')).toEqual(RICH_BLOB_VIEWER);
expect(findBlobHeader().props('hasRenderError')).toEqual(false);
expect(findBlobHeader().props('hideViewerSwitcher')).toEqual(false);
expect(findBlobHeader().props('blob')).toEqual(richViewerMock);
expect(mockRouterPush).not.toHaveBeenCalled();
});
it('renders a BlobContent component', async () => {
@ -260,30 +272,49 @@ describe('Blob content viewer component', () => {
expect(findBlobContent().props('activeViewer')).toEqual({
fileType: 'markup',
tooLarge: false,
type: 'rich',
type: RICH_BLOB_VIEWER,
renderError: null,
});
});
it('updates viewer type when viewer changed is clicked', async () => {
it('changes to simple viewer when URL has code line hash', async () => {
jest.spyOn(urlUtility, 'getLocationHash').mockReturnValueOnce('L5');
await createComponent({ blob: richViewerMock });
expect(findBlobContent().props('activeViewer')).toEqual(
expect.objectContaining({
type: 'rich',
type: SIMPLE_BLOB_VIEWER,
}),
);
expect(findBlobHeader().props('activeViewerType')).toEqual('rich');
expect(findBlobHeader().props('activeViewerType')).toEqual(SIMPLE_BLOB_VIEWER);
});
findBlobHeader().vm.$emit('viewer-changed', 'simple');
await nextTick();
it('updates viewer type when viewer changed is clicked', async () => {
await createComponent({ blob: richViewerMock }, shallowMount, { path: '/mock_path' });
expect(findBlobHeader().props('activeViewerType')).toEqual('simple');
expect(findBlobContent().props('activeViewer')).toEqual(
expect.objectContaining({
type: 'simple',
type: RICH_BLOB_VIEWER,
}),
);
expect(findBlobHeader().props('activeViewerType')).toEqual(RICH_BLOB_VIEWER);
findBlobHeader().vm.$emit('viewer-changed', SIMPLE_BLOB_VIEWER);
await nextTick();
expect(findBlobHeader().props('activeViewerType')).toEqual(SIMPLE_BLOB_VIEWER);
expect(findBlobContent().props('activeViewer')).toEqual(
expect.objectContaining({
type: SIMPLE_BLOB_VIEWER,
}),
);
expect(mockRouterPush).toHaveBeenCalledWith({
path: '/mock_path',
query: {
plain: '1',
},
});
});
});
@ -503,12 +534,12 @@ describe('Blob content viewer component', () => {
it('simple edit redirects to the simple editor', () => {
findWebIdeLink().vm.$emit('edit', 'simple');
expect(redirectTo).toHaveBeenCalledWith(simpleViewerMock.editBlobPath);
expect(urlUtility.redirectTo).toHaveBeenCalledWith(simpleViewerMock.editBlobPath);
});
it('IDE edit redirects to the IDE editor', () => {
findWebIdeLink().vm.$emit('edit', 'ide');
expect(redirectTo).toHaveBeenCalledWith(simpleViewerMock.ideEditPath);
expect(urlUtility.redirectTo).toHaveBeenCalledWith(simpleViewerMock.ideEditPath);
});
it.each`
@ -543,4 +574,32 @@ describe('Blob content viewer component', () => {
},
);
});
describe('active viewer based on plain attribute', () => {
it.each`
hasRichViewer | plain | activeViewerType
${true} | ${'0'} | ${RICH_BLOB_VIEWER}
${true} | ${'1'} | ${SIMPLE_BLOB_VIEWER}
${false} | ${'0'} | ${SIMPLE_BLOB_VIEWER}
${false} | ${'1'} | ${SIMPLE_BLOB_VIEWER}
`(
'activeViewerType is `$activeViewerType` when hasRichViewer is $hasRichViewer and plain is set to $plain',
async ({ hasRichViewer, plain, activeViewerType }) => {
await createComponent(
{ blob: hasRichViewer ? richViewerMock : simpleViewerMock },
shallowMount,
{ query: { plain } },
);
await nextTick();
expect(findBlobContent().props('activeViewer')).toEqual(
expect.objectContaining({
type: activeViewerType,
}),
);
expect(findBlobHeader().props('activeViewerType')).toEqual(activeViewerType);
},
);
});
});

View File

@ -1,4 +1,3 @@
import { GlLink } from '@gitlab/ui';
import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
import ChunkLine from '~/vue_shared/components/source_viewer/components/chunk_line.vue';
import {
@ -20,7 +19,7 @@ describe('Chunk Line component', () => {
wrapper = shallowMountExtended(ChunkLine, { propsData: { ...DEFAULT_PROPS, ...props } });
};
const findLink = () => wrapper.findComponent(GlLink);
const findLink = () => wrapper.findByTestId('line-number-anchor');
const findContent = () => wrapper.findByTestId('content');
const findWrappedBidiChars = () => wrapper.findAllByTestId('bidi-wrapper');
@ -50,7 +49,7 @@ describe('Chunk Line component', () => {
it('renders a line number', () => {
expect(findLink().attributes()).toMatchObject({
'data-line-number': `${DEFAULT_PROPS.number}`,
to: `#L${DEFAULT_PROPS.number}`,
href: `#L${DEFAULT_PROPS.number}`,
id: `L${DEFAULT_PROPS.number}`,
});

View File

@ -18,6 +18,8 @@ const PROVIDED_PROPS = {
describe('User Avatar Image Component', () => {
let wrapper;
const findAvatar = () => wrapper.findComponent(GlAvatar);
afterEach(() => {
wrapper.destroy();
});
@ -28,21 +30,14 @@ describe('User Avatar Image Component', () => {
propsData: {
...PROVIDED_PROPS,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: true,
},
},
});
});
it('should render `GlAvatar` and provide correct properties to it', () => {
const avatar = wrapper.findComponent(GlAvatar);
expect(avatar.attributes('data-src')).toBe(
expect(findAvatar().attributes('data-src')).toBe(
`${PROVIDED_PROPS.imgSrc}?width=${PROVIDED_PROPS.size}`,
);
expect(avatar.props()).toMatchObject({
expect(findAvatar().props()).toMatchObject({
src: `${PROVIDED_PROPS.imgSrc}?width=${PROVIDED_PROPS.size}`,
alt: PROVIDED_PROPS.imgAlt,
size: PROVIDED_PROPS.size,
@ -63,23 +58,28 @@ describe('User Avatar Image Component', () => {
...PROVIDED_PROPS,
lazy: true,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: true,
},
},
});
});
it('should add lazy attributes', () => {
const avatar = wrapper.findComponent(GlAvatar);
expect(avatar.classes()).toContain('lazy');
expect(avatar.attributes()).toMatchObject({
expect(findAvatar().classes()).toContain('lazy');
expect(findAvatar().attributes()).toMatchObject({
src: placeholderImage,
'data-src': `${PROVIDED_PROPS.imgSrc}?width=${PROVIDED_PROPS.size}`,
});
});
it('should use maximum number when size is provided as an object', () => {
wrapper = shallowMount(UserAvatarImage, {
propsData: {
...PROVIDED_PROPS,
size: { default: 16, md: 64, lg: 24 },
lazy: true,
},
});
expect(findAvatar().attributes('data-src')).toBe(`${PROVIDED_PROPS.imgSrc}?width=${64}`);
});
});
describe('Initialization without src', () => {
@ -89,18 +89,11 @@ describe('User Avatar Image Component', () => {
...PROVIDED_PROPS,
imgSrc: null,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: true,
},
},
});
});
it('should have default avatar image', () => {
const avatar = wrapper.findComponent(GlAvatar);
expect(avatar.props('src')).toBe(`${defaultAvatarUrl}?width=${PROVIDED_PROPS.size}`);
expect(findAvatar().props('src')).toBe(`${defaultAvatarUrl}?width=${PROVIDED_PROPS.size}`);
});
});

View File

@ -15,47 +15,37 @@ const PROVIDED_PROPS = {
describe('User Avatar Image Component', () => {
let wrapper;
const createWrapper = (props = {}, { glAvatarForAllUserAvatars } = {}) => {
wrapper = shallowMount(UserAvatarImage, {
propsData: {
...PROVIDED_PROPS,
...props,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars,
},
},
});
};
afterEach(() => {
wrapper.destroy();
});
describe('when `glAvatarForAllUserAvatars` feature flag enabled', () => {
beforeEach(() => {
wrapper = shallowMount(UserAvatarImage, {
propsData: {
...PROVIDED_PROPS,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: true,
},
},
describe.each([
[false, true, true],
[true, false, true],
[true, true, true],
[false, false, false],
])(
'when glAvatarForAllUserAvatars=%s and enforceGlAvatar=%s',
(glAvatarForAllUserAvatars, enforceGlAvatar, isUsingNewVersion) => {
it(`will render ${isUsingNewVersion ? 'new' : 'old'} version`, () => {
createWrapper({ enforceGlAvatar }, { glAvatarForAllUserAvatars });
expect(wrapper.findComponent(UserAvatarImageNew).exists()).toBe(isUsingNewVersion);
expect(wrapper.findComponent(UserAvatarImageOld).exists()).toBe(!isUsingNewVersion);
});
});
it('should render `UserAvatarImageNew` component', () => {
expect(wrapper.findComponent(UserAvatarImageNew).exists()).toBe(true);
expect(wrapper.findComponent(UserAvatarImageOld).exists()).toBe(false);
});
});
describe('when `glAvatarForAllUserAvatars` feature flag disabled', () => {
beforeEach(() => {
wrapper = shallowMount(UserAvatarImage, {
propsData: {
...PROVIDED_PROPS,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: false,
},
},
});
});
it('should render `UserAvatarImageOld` component', () => {
expect(wrapper.findComponent(UserAvatarImageNew).exists()).toBe(false);
expect(wrapper.findComponent(UserAvatarImageOld).exists()).toBe(true);
});
});
},
);
});

View File

@ -54,6 +54,7 @@ describe('User Avatar Link Component', () => {
size: defaultProps.imgSize,
tooltipPlacement: defaultProps.tooltipPlacement,
tooltipText: '',
enforceGlAvatar: false,
});
});

View File

@ -54,6 +54,7 @@ describe('User Avatar Link Component', () => {
size: defaultProps.imgSize,
tooltipPlacement: defaultProps.tooltipPlacement,
tooltipText: '',
enforceGlAvatar: false,
});
});

View File

@ -15,47 +15,37 @@ const PROVIDED_PROPS = {
describe('User Avatar Link Component', () => {
let wrapper;
const createWrapper = (props = {}, { glAvatarForAllUserAvatars } = {}) => {
wrapper = shallowMount(UserAvatarLink, {
propsData: {
...PROVIDED_PROPS,
...props,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars,
},
},
});
};
afterEach(() => {
wrapper.destroy();
});
describe('when `glAvatarForAllUserAvatars` feature flag enabled', () => {
beforeEach(() => {
wrapper = shallowMount(UserAvatarLink, {
propsData: {
...PROVIDED_PROPS,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: true,
},
},
describe.each([
[false, true, true],
[true, false, true],
[true, true, true],
[false, false, false],
])(
'when glAvatarForAllUserAvatars=%s and enforceGlAvatar=%s',
(glAvatarForAllUserAvatars, enforceGlAvatar, isUsingNewVersion) => {
it(`will render ${isUsingNewVersion ? 'new' : 'old'} version`, () => {
createWrapper({ enforceGlAvatar }, { glAvatarForAllUserAvatars });
expect(wrapper.findComponent(UserAvatarLinkNew).exists()).toBe(isUsingNewVersion);
expect(wrapper.findComponent(UserAvatarLinkOld).exists()).toBe(!isUsingNewVersion);
});
});
it('should render `UserAvatarLinkNew` component', () => {
expect(wrapper.findComponent(UserAvatarLinkNew).exists()).toBe(true);
expect(wrapper.findComponent(UserAvatarLinkOld).exists()).toBe(false);
});
});
describe('when `glAvatarForAllUserAvatars` feature flag disabled', () => {
beforeEach(() => {
wrapper = shallowMount(UserAvatarLink, {
propsData: {
...PROVIDED_PROPS,
},
provide: {
glFeatures: {
glAvatarForAllUserAvatars: false,
},
},
});
});
it('should render `UserAvatarLinkOld` component', () => {
expect(wrapper.findComponent(UserAvatarLinkNew).exists()).toBe(false);
expect(wrapper.findComponent(UserAvatarLinkOld).exists()).toBe(true);
});
});
},
);
});

View File

@ -49,9 +49,9 @@ RSpec.describe Gitlab::BackgroundMigration::UpdateJiraTrackerDataDeploymentTypeB
stub_const('CLOUD', 2)
end
let!(:tracker_data_cloud) { JiraTrackerData.create!(id: 1, service_id: service_jira_cloud.id, url: "https://test-domain.atlassian.net", deployment_type: UNKNOWN) }
let!(:tracker_data_server) { JiraTrackerData.create!(id: 2, service_id: service_jira_server.id, url: "http://totally-not-jira-server.company.org", deployment_type: UNKNOWN) }
let!(:tracker_data_unknown) { JiraTrackerData.create!(id: 3, service_id: service_jira_unknown.id, url: "", deployment_type: UNKNOWN) }
let!(:tracker_data_cloud) { JiraTrackerData.create!(id: 1, integration_id: service_jira_cloud.id, url: "https://test-domain.atlassian.net", deployment_type: UNKNOWN) }
let!(:tracker_data_server) { JiraTrackerData.create!(id: 2, integration_id: service_jira_server.id, url: "http://totally-not-jira-server.company.org", deployment_type: UNKNOWN) }
let!(:tracker_data_unknown) { JiraTrackerData.create!(id: 3, integration_id: service_jira_unknown.id, url: "", deployment_type: UNKNOWN) }
it "changes unknown deployment_types based on URL" do
expect(JiraTrackerData.pluck(:deployment_type)).to match_array([UNKNOWN, UNKNOWN, UNKNOWN])

View File

@ -302,6 +302,7 @@ RSpec.describe Gitlab::Ci::Variables::Collection do
.append(key: 'CI_BUILD_ID', value: '1')
.append(key: 'RAW_VAR', value: '$TEST1', raw: true)
.append(key: 'TEST1', value: 'test-3')
.append(key: 'FILEVAR1', value: 'file value 1', file: true)
end
context 'table tests' do
@ -311,28 +312,23 @@ RSpec.describe Gitlab::Ci::Variables::Collection do
{
"empty value": {
value: '',
result: '',
keep_undefined: false
result: ''
},
"simple expansions": {
value: 'key$TEST1-$CI_BUILD_ID',
result: 'keytest-3-1',
keep_undefined: false
result: 'keytest-3-1'
},
"complex expansion": {
value: 'key${TEST1}-${CI_JOB_NAME}',
result: 'keytest-3-test-1',
keep_undefined: false
result: 'keytest-3-test-1'
},
"complex expansions with raw variable": {
value: 'key${RAW_VAR}-${CI_JOB_NAME}',
result: 'key$TEST1-test-1',
keep_undefined: false
result: 'key$TEST1-test-1'
},
"missing variable not keeping original": {
value: 'key${MISSING_VAR}-${CI_JOB_NAME}',
result: 'key-test-1',
keep_undefined: false
result: 'key-test-1'
},
"missing variable keeping original": {
value: 'key${MISSING_VAR}-${CI_JOB_NAME}',
@ -341,14 +337,24 @@ RSpec.describe Gitlab::Ci::Variables::Collection do
},
"escaped characters are kept intact": {
value: 'key-$TEST1-%%HOME%%-$${HOME}',
result: 'key-test-3-%%HOME%%-$${HOME}',
keep_undefined: false
result: 'key-test-3-%%HOME%%-$${HOME}'
},
"file variable with expand_file_vars: true": {
value: 'key-$FILEVAR1-$TEST1',
result: 'key-file value 1-test-3'
},
"file variable with expand_file_vars: false": {
value: 'key-$FILEVAR1-$TEST1',
result: 'key-$FILEVAR1-test-3',
expand_file_vars: false
}
}
end
with_them do
subject { collection.expand_value(value, keep_undefined: keep_undefined) }
let(:options) { { keep_undefined: keep_undefined, expand_file_vars: expand_file_vars }.compact }
subject(:result) { collection.expand_value(value, **options) }
it 'matches expected expansion' do
is_expected.to eq(result)

View File

@ -34,8 +34,8 @@ RSpec.describe UpdateJiraTrackerDataDeploymentTypeBasedOnUrl, :migration do
# rubocop:disable Layout/LineLength
# rubocop:disable RSpec/ScatteredLet
let!(:tracker_data_cloud) { JiraTrackerData.create!(id: 1, service_id: service_jira_cloud.id, url: "https://test-domain.atlassian.net", deployment_type: 0) }
let!(:tracker_data_server) { JiraTrackerData.create!(id: 2, service_id: service_jira_server.id, url: "http://totally-not-jira-server.company.org", deployment_type: 0) }
let!(:tracker_data_cloud) { JiraTrackerData.create!(id: 1, integration_id: service_jira_cloud.id, url: "https://test-domain.atlassian.net", deployment_type: 0) }
let!(:tracker_data_server) { JiraTrackerData.create!(id: 2, integration_id: service_jira_server.id, url: "http://totally-not-jira-server.company.org", deployment_type: 0) }
# rubocop:enable Layout/LineLength
# rubocop:enable RSpec/ScatteredLet

View File

@ -8,7 +8,7 @@ RSpec.describe DataList do
let(:zentao_integration) { create(:zentao_integration) }
let(:cases) do
[
[jira_integration, 'Integrations::JiraTrackerData', 'service_id'],
[jira_integration, 'Integrations::JiraTrackerData', 'integration_id'],
[zentao_integration, 'Integrations::ZentaoTrackerData', 'integration_id']
]
end

View File

@ -12,7 +12,7 @@ RSpec.describe Integration do
it { is_expected.to belong_to(:project).inverse_of(:integrations) }
it { is_expected.to belong_to(:group).inverse_of(:integrations) }
it { is_expected.to have_one(:issue_tracker_data).autosave(true).inverse_of(:integration).with_foreign_key(:service_id).class_name('Integrations::IssueTrackerData') }
it { is_expected.to have_one(:jira_tracker_data).autosave(true).inverse_of(:integration).with_foreign_key(:service_id).class_name('Integrations::JiraTrackerData') }
it { is_expected.to have_one(:jira_tracker_data).autosave(true).inverse_of(:integration).with_foreign_key(:integration_id).class_name('Integrations::JiraTrackerData') }
end
describe 'validations' do

View File

@ -873,6 +873,12 @@ RSpec.describe Project, factory_default: :keep do
end
end
describe '#ci_allow_fork_pipelines_to_run_in_parent_project?' do
it_behaves_like 'a ci_cd_settings predicate method', prefix: 'ci_' do
let(:delegated_method) { :allow_fork_pipelines_to_run_in_parent_project? }
end
end
describe '#ci_job_token_scope_enabled?' do
it_behaves_like 'a ci_cd_settings predicate method', prefix: 'ci_' do
let(:delegated_method) { :job_token_scope_enabled? }

View File

@ -309,25 +309,64 @@ RSpec.describe Ci::BuildRunnerPresenter do
end
describe '#runner_variables' do
subject { presenter.runner_variables }
subject(:runner_variables) { presenter.runner_variables }
let_it_be(:project) { create(:project, :repository) }
shared_examples 'returns an array with the expected variables' do
it 'returns an array' do
is_expected.to be_an_instance_of(Array)
end
it 'returns the expected variables' do
is_expected.to eq(presenter.variables.to_runner_variables)
end
end
let(:sha) { project.repository.commit.sha }
let(:pipeline) { create(:ci_pipeline, sha: sha, project: project) }
let(:build) { create(:ci_build, pipeline: pipeline) }
it_behaves_like 'returns an array with the expected variables'
it 'returns an array' do
is_expected.to be_an_instance_of(Array)
end
it 'returns the expected variables' do
is_expected.to eq(presenter.variables.to_runner_variables)
end
context 'when there are variables to expand' do
before_all do
create(:ci_variable, project: project,
key: 'regular_var',
value: 'value 1')
create(:ci_variable, project: project,
key: 'file_var',
value: 'value 2',
variable_type: :file)
create(:ci_variable, project: project,
key: 'var_with_variables',
value: 'value 3 and $regular_var and $file_var and $undefined_var')
end
it 'returns variables with expanded' do
expect(runner_variables).to include(
{ key: 'regular_var', value: 'value 1',
public: false, masked: false },
{ key: 'file_var', value: 'value 2',
public: false, masked: false, file: true },
{ key: 'var_with_variables', value: 'value 3 and value 1 and $file_var and $undefined_var',
public: false, masked: false }
)
end
context 'when the FF ci_stop_expanding_file_vars_for_runners is disabled' do
before do
stub_feature_flags(ci_stop_expanding_file_vars_for_runners: false)
end
it 'returns variables with expanded' do
expect(runner_variables).to include(
{ key: 'regular_var', value: 'value 1',
public: false, masked: false },
{ key: 'file_var', value: 'value 2',
public: false, masked: false, file: true },
{ key: 'var_with_variables', value: 'value 3 and value 1 and value 2 and $undefined_var',
public: false, masked: false }
)
end
end
end
end
describe '#runner_variables subset' do

View File

@ -231,6 +231,33 @@ RSpec.describe API::Members do
end
end
end
context 'with ancestral membership' do
shared_examples 'response with correct access levels' do
it do
get api("/#{source_type.pluralize}/#{source.id}/members/#{all ? 'all/' : ''}#{developer.id}", developer)
expect(response).to have_gitlab_http_status(:ok)
expect(json_response['access_level']).to eq(Member::MAINTAINER)
end
end
before do
source.add_maintainer(developer)
end
include_examples 'response with correct access levels'
context 'having email invite' do
before do
Member
.find_by(source: group, user: developer)
.update!(invite_email: 'email@email.com')
end
include_examples 'response with correct access levels'
end
end
end
end

View File

@ -101,6 +101,7 @@ ci_cd_settings:
job_token_scope_enabled: ci_job_token_scope_enabled
separated_caches: ci_separated_caches
opt_in_jwt: ci_opt_in_jwt
allow_fork_pipelines_to_run_in_parent_project: ci_allow_fork_pipelines_to_run_in_parent_project
build_import_state: # import_state
unexposed_attributes:

View File

@ -2427,6 +2427,7 @@ RSpec.describe API::Projects do
expect(json_response['only_allow_merge_if_all_discussions_are_resolved']).to eq(project.only_allow_merge_if_all_discussions_are_resolved)
expect(json_response['ci_default_git_depth']).to eq(project.ci_default_git_depth)
expect(json_response['ci_forward_deployment_enabled']).to eq(project.ci_forward_deployment_enabled)
expect(json_response['ci_allow_fork_pipelines_to_run_in_parent_project']).to eq(project.ci_allow_fork_pipelines_to_run_in_parent_project)
expect(json_response['ci_separated_caches']).to eq(project.ci_separated_caches)
expect(json_response['merge_method']).to eq(project.merge_method.to_s)
expect(json_response['squash_option']).to eq(project.squash_option.to_s)
@ -3692,6 +3693,7 @@ RSpec.describe API::Projects do
merge_method: 'ff',
ci_default_git_depth: 20,
ci_forward_deployment_enabled: false,
ci_allow_fork_pipelines_to_run_in_parent_project: false,
ci_separated_caches: false,
description: 'new description' }

View File

@ -71,7 +71,7 @@ RSpec.describe BulkUpdateIntegrationService do
context 'with integration with data fields' do
let(:excluded_attributes) do
%w[id service_id created_at updated_at encrypted_properties encrypted_properties_iv]
%w[id integration_id created_at updated_at encrypted_properties encrypted_properties_iv]
end
it 'updates the data fields from the integration', :aggregate_failures do

View File

@ -74,6 +74,16 @@ RSpec.describe MergeRequests::CreatePipelineService do
expect(response.payload.project).to eq(project)
end
context 'when the feature is disabled in CI/CD settings' do
before do
project.update!(ci_allow_fork_pipelines_to_run_in_parent_project: false)
end
it 'creates a pipeline in the source project' do
expect(response.payload.project).to eq(source_project)
end
end
context 'when source branch is protected' do
context 'when actor does not have permission to update the protected branch in target project' do
let!(:protected_branch) { create(:protected_branch, name: '*', project: project) }