Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
7bc1ee0bcb
commit
c9439a09c5
74 changed files with 3077 additions and 3308 deletions
|
@ -200,6 +200,8 @@ Dangerfile @gl-quality/eng-prod
|
|||
|
||||
[Backend Static Code Analysis]
|
||||
.rubocop*.yml @dstull @splattael @gl-quality/eng-prod
|
||||
.rubocop_todo.yml @dstull @splattael @gl-quality/eng-prod
|
||||
.rubocop_todo/ @dstull @splattael @gl-quality/eng-prod
|
||||
/rubocop/ @dstull @splattael @gl-quality/eng-prod
|
||||
/spec/rubocop/ @dstull @splattael @gl-quality/eng-prod
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
|
|||
t.datetime_with_timezone :verified_at
|
||||
t.integer :verification_retry_count, limit: 2
|
||||
t.binary :verification_checksum, using: 'verification_checksum::bytea'
|
||||
t.text :verification_failure
|
||||
t.text :verification_failure, limit: 255
|
||||
|
||||
t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
|
||||
t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
|
||||
|
@ -150,8 +150,6 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
|
|||
t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
||||
add_text_limit :cool_widget_states, :verification_failure, 255
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
@ -144,7 +144,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
|
|||
t.datetime_with_timezone :verified_at
|
||||
t.integer :verification_retry_count, limit: 2
|
||||
t.binary :verification_checksum, using: 'verification_checksum::bytea'
|
||||
t.text :verification_failure
|
||||
t.text :verification_failure, limit: 255
|
||||
|
||||
t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
|
||||
t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
|
||||
|
@ -152,8 +152,6 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
|
|||
t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
|
||||
end
|
||||
end
|
||||
|
||||
add_text_limit :cool_widget_states, :verification_failure, 255
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
@ -8,7 +8,9 @@ require:
|
|||
|
||||
inherit_from:
|
||||
<% unless ENV['REVEAL_RUBOCOP_TODO'] == '1' %>
|
||||
- '.rubocop_manual_todo.yml'
|
||||
<% Dir.glob('.rubocop_todo/**/*.yml').each do |rubocop_todo_yaml| %>
|
||||
- '<%= rubocop_todo_yaml %>'
|
||||
<% end %>
|
||||
- '.rubocop_todo.yml'
|
||||
<% end %>
|
||||
- ./rubocop/rubocop-migrations.yml
|
||||
|
|
File diff suppressed because it is too large
Load diff
70
.rubocop_todo/cop/user_admin.yml
Normal file
70
.rubocop_todo/cop/user_admin.yml
Normal file
|
@ -0,0 +1,70 @@
|
|||
---
|
||||
Cop/UserAdmin:
|
||||
Exclude:
|
||||
- app/controllers/admin/impersonations_controller.rb
|
||||
- app/controllers/concerns/spammable_actions.rb
|
||||
- app/controllers/sessions_controller.rb
|
||||
- app/finders/autocomplete/routes_finder.rb
|
||||
- app/finders/ci/jobs_finder.rb
|
||||
- app/finders/ci/runners_finder.rb
|
||||
- app/finders/personal_access_tokens_finder.rb
|
||||
- app/finders/users_finder.rb
|
||||
- app/graphql/mutations/admin/sidekiq_queues/delete_jobs.rb
|
||||
- app/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver.rb
|
||||
- app/helpers/application_helper.rb
|
||||
- app/helpers/import_helper.rb
|
||||
- app/helpers/nav_helper.rb
|
||||
- app/helpers/projects_helper.rb
|
||||
- app/helpers/search_helper.rb
|
||||
- app/helpers/user_callouts_helper.rb
|
||||
- app/helpers/users_helper.rb
|
||||
- app/helpers/visibility_level_helper.rb
|
||||
- app/models/concerns/protected_ref_access.rb
|
||||
- app/models/concerns/spammable.rb
|
||||
- app/models/issue_collection.rb
|
||||
- app/models/merge_requests_closing_issues.rb
|
||||
- app/models/protected_branch.rb
|
||||
- app/models/user.rb
|
||||
- app/policies/note_policy.rb
|
||||
- app/serializers/deploy_key_entity.rb
|
||||
- app/services/auth/container_registry_authentication_service.rb
|
||||
- app/services/emails/create_service.rb
|
||||
- app/services/projects/enable_deploy_key_service.rb
|
||||
- app/services/projects/fork_service.rb
|
||||
- app/services/users/build_service.rb
|
||||
- ee/app/controllers/ee/projects_controller.rb
|
||||
- ee/app/graphql/mutations/admin/analytics/devops_adoption/segments/mixins.rb
|
||||
- ee/app/graphql/resolvers/admin/analytics/devops_adoption/segments_resolver.rb
|
||||
- ee/app/helpers/ee/dashboard_helper.rb
|
||||
- ee/app/helpers/ee/import_helper.rb
|
||||
- ee/app/helpers/ee/subscribable_banner_helper.rb
|
||||
- ee/app/helpers/ee/user_callouts_helper.rb
|
||||
- ee/app/helpers/license_monitoring_helper.rb
|
||||
- ee/app/helpers/push_rules_helper.rb
|
||||
- ee/app/models/concerns/ee/protected_ref_access.rb
|
||||
- ee/app/models/ee/user.rb
|
||||
- ee/app/models/protected_environment/deploy_access_level.rb
|
||||
- ee/app/policies/ee/group_policy.rb
|
||||
- ee/app/policies/ee/project_policy.rb
|
||||
- ee/app/services/ee/groups/create_service.rb
|
||||
- ee/app/services/ee/groups/update_service.rb
|
||||
- ee/app/services/ee/projects/update_service.rb
|
||||
- ee/lib/ee/api/helpers.rb
|
||||
- ee/lib/ee/gitlab/git_access.rb
|
||||
- lib/api/award_emoji.rb
|
||||
- lib/api/ci/runners.rb
|
||||
- lib/api/entities/ci/runner_details.rb
|
||||
- lib/api/entities/ci/user_safe.rb
|
||||
- lib/api/groups.rb
|
||||
- lib/api/helpers.rb
|
||||
- lib/api/personal_access_tokens.rb
|
||||
- lib/api/users.rb
|
||||
- lib/api/v3/github.rb
|
||||
- lib/constraints/admin_constrainer.rb
|
||||
- lib/gitlab/auth.rb
|
||||
- lib/gitlab/background_migration/user_mentions/models/group.rb
|
||||
- lib/gitlab/ci/runner_instructions.rb
|
||||
- lib/gitlab/import_export/members_mapper.rb
|
||||
- lib/gitlab/performance_bar.rb
|
||||
- lib/gitlab/visibility_level.rb
|
||||
- qa/qa/runtime/api/client.rb
|
61
.rubocop_todo/database/multiple_databases.yml
Normal file
61
.rubocop_todo/database/multiple_databases.yml
Normal file
|
@ -0,0 +1,61 @@
|
|||
---
|
||||
Database/MultipleDatabases:
|
||||
Exclude:
|
||||
- ee/lib/ee/gitlab/database.rb
|
||||
- ee/lib/gitlab/geo/database_tasks.rb
|
||||
- ee/lib/gitlab/geo/geo_tasks.rb
|
||||
- ee/lib/gitlab/geo/health_check.rb
|
||||
- ee/lib/gitlab/geo/log_cursor/daemon.rb
|
||||
- ee/lib/pseudonymizer/dumper.rb
|
||||
- ee/lib/pseudonymizer/pager.rb
|
||||
- ee/lib/system_check/geo/geo_database_configured_check.rb
|
||||
- ee/spec/lib/pseudonymizer/dumper_spec.rb
|
||||
- ee/spec/models/pg_replication_slot_spec.rb
|
||||
- ee/spec/services/ee/merge_requests/update_service_spec.rb
|
||||
- lib/backup/database.rb
|
||||
- lib/backup/manager.rb
|
||||
- lib/gitlab/current_settings.rb
|
||||
- lib/gitlab/database/load_balancing/load_balancer.rb
|
||||
- lib/gitlab/database/load_balancing.rb
|
||||
- lib/gitlab/database/load_balancing/sticking.rb
|
||||
- lib/gitlab/database/migrations/observers/migration_observer.rb
|
||||
- lib/gitlab/database/migrations/observers/query_log.rb
|
||||
- lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb
|
||||
- lib/gitlab/database.rb
|
||||
- lib/gitlab/database/schema_cache_with_renamed_table.rb
|
||||
- lib/gitlab/database/with_lock_retries.rb
|
||||
- lib/gitlab/gitlab_import/importer.rb
|
||||
- lib/gitlab/health_checks/db_check.rb
|
||||
- lib/gitlab/import_export/base/relation_factory.rb
|
||||
- lib/gitlab/import_export/group/relation_tree_restorer.rb
|
||||
- lib/gitlab/legacy_github_import/importer.rb
|
||||
- lib/gitlab/metrics/samplers/database_sampler.rb
|
||||
- lib/gitlab/seeder.rb
|
||||
- lib/gitlab/sherlock/query.rb
|
||||
- lib/system_check/orphans/repository_check.rb
|
||||
- spec/db/schema_spec.rb
|
||||
- spec/initializers/database_config_spec.rb
|
||||
- spec/lib/backup/manager_spec.rb
|
||||
- spec/lib/gitlab/current_settings_spec.rb
|
||||
- spec/lib/gitlab/database_spec.rb
|
||||
- spec/lib/gitlab/metrics/subscribers/active_record_spec.rb
|
||||
- spec/lib/gitlab/profiler_spec.rb
|
||||
- spec/lib/gitlab/usage_data_metrics_spec.rb
|
||||
- spec/lib/gitlab/usage_data_queries_spec.rb
|
||||
- spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb
|
||||
- spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/joins_spec.rb
|
||||
- spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb
|
||||
- spec/lib/gitlab/utils/usage_data_spec.rb
|
||||
- spec/models/project_feature_usage_spec.rb
|
||||
- spec/models/users_statistics_spec.rb
|
||||
- spec/services/users/activity_service_spec.rb
|
||||
- spec/support/caching.rb
|
||||
- spec/support/gitlab/usage/metrics_instrumentation_shared_examples.rb
|
||||
- spec/support/helpers/database_connection_helpers.rb
|
||||
- spec/support/helpers/database/database_helpers.rb
|
||||
- spec/support/helpers/database/table_schema_helpers.rb
|
||||
- spec/support/helpers/migrations_helpers.rb
|
||||
- spec/support/helpers/query_recorder.rb
|
||||
- spec/support/helpers/usage_data_helpers.rb
|
||||
- spec/tasks/gitlab/backup_rake_spec.rb
|
||||
- spec/tasks/gitlab/db_rake_spec.rb
|
15
.rubocop_todo/gitlab/delegate_predicate_methods.yml
Normal file
15
.rubocop_todo/gitlab/delegate_predicate_methods.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
Gitlab/DelegatePredicateMethods:
|
||||
Exclude:
|
||||
- app/models/clusters/cluster.rb
|
||||
- app/models/clusters/platforms/kubernetes.rb
|
||||
- app/models/concerns/ci/metadatable.rb
|
||||
- app/models/concerns/diff_positionable_note.rb
|
||||
- app/models/concerns/integrations/base_data_fields.rb
|
||||
- app/models/concerns/resolvable_discussion.rb
|
||||
- app/models/project.rb
|
||||
- ee/app/models/concerns/ee/ci/metadatable.rb
|
||||
- ee/app/models/ee/group.rb
|
||||
- ee/app/models/ee/namespace.rb
|
||||
- ee/app/models/license.rb
|
||||
- lib/gitlab/ci/trace/stream.rb
|
189
.rubocop_todo/gitlab/feature_available_usage.yml
Normal file
189
.rubocop_todo/gitlab/feature_available_usage.yml
Normal file
|
@ -0,0 +1,189 @@
|
|||
---
|
||||
Gitlab/FeatureAvailableUsage:
|
||||
Exclude:
|
||||
- app/controllers/projects/application_controller.rb
|
||||
- app/graphql/types/project_type.rb
|
||||
- app/helpers/events_helper.rb
|
||||
- app/helpers/labels_helper.rb
|
||||
- app/policies/project_policy.rb
|
||||
- app/views/shared/boards/_switcher.html.haml
|
||||
- ee/app/controllers/concerns/description_diff_actions.rb
|
||||
- ee/app/controllers/concerns/ee/boards_actions.rb
|
||||
- ee/app/controllers/concerns/security_dashboards_permissions.rb
|
||||
- ee/app/controllers/ee/boards/lists_controller.rb
|
||||
- ee/app/controllers/ee/projects/autocomplete_sources_controller.rb
|
||||
- ee/app/controllers/ee/projects/issues_controller.rb
|
||||
- ee/app/controllers/ee/projects/security/configuration_controller.rb
|
||||
- ee/app/controllers/ee/projects/settings/ci_cd_controller.rb
|
||||
- ee/app/controllers/ee/projects/settings/operations_controller.rb
|
||||
- ee/app/controllers/ee/projects/settings/repository_controller.rb
|
||||
- ee/app/controllers/projects/audit_events_controller.rb
|
||||
- ee/app/controllers/projects/cluster_agents_controller.rb
|
||||
- ee/app/controllers/projects/iterations/inherited_controller.rb
|
||||
- ee/app/controllers/projects/iterations_controller.rb
|
||||
- ee/app/controllers/projects/path_locks_controller.rb
|
||||
- ee/app/controllers/projects/subscriptions_controller.rb
|
||||
- ee/app/finders/autocomplete/vulnerabilities_autocomplete_finder.rb
|
||||
- ee/app/finders/clusters/agents_finder.rb
|
||||
- ee/app/finders/ee/alert_management/alerts_finder.rb
|
||||
- ee/app/finders/ee/alert_management/http_integrations_finder.rb
|
||||
- ee/app/graphql/ee/types/group_type.rb
|
||||
- ee/app/graphql/mutations/dast/profiles/create.rb
|
||||
- ee/app/graphql/mutations/dast/profiles/run.rb
|
||||
- ee/app/graphql/mutations/dast/profiles/update.rb
|
||||
- ee/app/graphql/mutations/instance_security_dashboard/remove_project.rb
|
||||
- ee/app/graphql/resolvers/clusters/agent_tokens_resolver.rb
|
||||
- ee/app/helpers/ee/application_helper.rb
|
||||
- ee/app/helpers/ee/boards_helper.rb
|
||||
- ee/app/helpers/ee/clusters_helper.rb
|
||||
- ee/app/helpers/ee/dashboard_helper.rb
|
||||
- ee/app/helpers/ee/form_helper.rb
|
||||
- ee/app/helpers/ee/graph_helper.rb
|
||||
- ee/app/helpers/ee/issues_helper.rb
|
||||
- ee/app/helpers/ee/lock_helper.rb
|
||||
- ee/app/helpers/ee/operations_helper.rb
|
||||
- ee/app/helpers/ee/projects/incidents_helper.rb
|
||||
- ee/app/helpers/ee/projects_helper.rb
|
||||
- ee/app/helpers/ee/releases_helper.rb
|
||||
- ee/app/helpers/ee/search_helper.rb
|
||||
- ee/app/helpers/ee/tree_helper.rb
|
||||
- ee/app/models/approval_state.rb
|
||||
- ee/app/models/concerns/approvable.rb
|
||||
- ee/app/models/concerns/ee/project_security_scanners_information.rb
|
||||
- ee/app/models/concerns/ee/protected_ref_access.rb
|
||||
- ee/app/models/concerns/has_timelogs_report.rb
|
||||
- ee/app/models/concerns/insights_feature.rb
|
||||
- ee/app/models/ee/board.rb
|
||||
- ee/app/models/ee/ci/build.rb
|
||||
- ee/app/models/ee/ci/build_dependencies.rb
|
||||
- ee/app/models/ee/ci/pipeline.rb
|
||||
- ee/app/models/ee/group.rb
|
||||
- ee/app/models/ee/group_member.rb
|
||||
- ee/app/models/ee/issue.rb
|
||||
- ee/app/models/ee/list.rb
|
||||
- ee/app/models/ee/merge_request.rb
|
||||
- ee/app/models/ee/milestone_release.rb
|
||||
- ee/app/models/ee/namespace.rb
|
||||
- ee/app/models/ee/namespace_setting.rb
|
||||
- ee/app/models/ee/project.rb
|
||||
- ee/app/models/ee/project_ci_cd_setting.rb
|
||||
- ee/app/models/namespace_statistics.rb
|
||||
- ee/app/models/project_security_setting.rb
|
||||
- ee/app/policies/compliance_management/framework_policy.rb
|
||||
- ee/app/policies/ee/group_policy.rb
|
||||
- ee/app/policies/ee/namespace_policy.rb
|
||||
- ee/app/policies/ee/project_policy.rb
|
||||
- ee/app/policies/ee/protected_branch_policy.rb
|
||||
- ee/app/presenters/ee/label_presenter.rb
|
||||
- ee/app/presenters/merge_request_approver_presenter.rb
|
||||
- ee/app/serializers/dashboard_operations_project_entity.rb
|
||||
- ee/app/serializers/ee/environment_entity.rb
|
||||
- ee/app/serializers/ee/evidences/release_entity.rb
|
||||
- ee/app/serializers/ee/note_entity.rb
|
||||
- ee/app/services/boards/epic_boards/update_service.rb
|
||||
- ee/app/services/ci/audit_variable_change_service.rb
|
||||
- ee/app/services/clusters/agent_tokens/create_service.rb
|
||||
- ee/app/services/clusters/agents/create_service.rb
|
||||
- ee/app/services/dashboard/projects/create_service.rb
|
||||
- ee/app/services/dashboard/projects/list_service.rb
|
||||
- ee/app/services/dast/profiles/create_service.rb
|
||||
- ee/app/services/dast/profiles/update_service.rb
|
||||
- ee/app/services/dast_on_demand_scans/create_service.rb
|
||||
- ee/app/services/dast_site_tokens/create_service.rb
|
||||
- ee/app/services/dast_site_validations/create_service.rb
|
||||
- ee/app/services/dast_site_validations/revoke_service.rb
|
||||
- ee/app/services/dast_site_validations/validate_service.rb
|
||||
- ee/app/services/ee/alert_management/http_integrations/create_service.rb
|
||||
- ee/app/services/ee/audit_event_service.rb
|
||||
- ee/app/services/ee/boards/issues/list_service.rb
|
||||
- ee/app/services/ee/boards/lists/create_service.rb
|
||||
- ee/app/services/ee/boards/update_service.rb
|
||||
- ee/app/services/ee/ide/schemas_config_service.rb
|
||||
- ee/app/services/ee/issuable_base_service.rb
|
||||
- ee/app/services/ee/issue_links/create_service.rb
|
||||
- ee/app/services/ee/issues/build_service.rb
|
||||
- ee/app/services/ee/lfs/lock_file_service.rb
|
||||
- ee/app/services/ee/lfs/unlock_file_service.rb
|
||||
- ee/app/services/ee/merge_requests/approval_service.rb
|
||||
- ee/app/services/ee/merge_requests/build_service.rb
|
||||
- ee/app/services/ee/merge_requests/merge_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/projects/create_service.rb
|
||||
- ee/app/services/ee/protected_branches/create_service.rb
|
||||
- ee/app/services/ee/releases/create_evidence_service.rb
|
||||
- ee/app/services/iterations/create_service.rb
|
||||
- ee/app/services/iterations/update_service.rb
|
||||
- ee/app/services/merge_requests/sync_report_approver_approval_rules.rb
|
||||
- ee/app/services/merge_requests/update_blocks_service.rb
|
||||
- ee/app/services/projects/mark_for_deletion_service.rb
|
||||
- ee/app/services/quality_management/test_cases/create_service.rb
|
||||
- ee/app/services/requirements_management/process_test_reports_service.rb
|
||||
- ee/app/services/security/store_scans_service.rb
|
||||
- ee/app/views/layouts/nav/_test_cases_link.html.haml
|
||||
- ee/app/views/layouts/nav/sidebar/_project_iterations_link.html.haml
|
||||
- ee/app/views/projects/_merge_request_approvals_settings.html.haml
|
||||
- ee/app/views/projects/_merge_request_settings.html.haml
|
||||
- ee/app/views/projects/_merge_request_settings_description_text.html.haml
|
||||
- ee/app/views/projects/audit_events/index.html.haml
|
||||
- ee/app/views/projects/blob/_header_file_locks.html.haml
|
||||
- ee/app/views/projects/issues/_related_issues.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/merge_requests/show.html.haml
|
||||
- ee/app/views/projects/pipelines/_tabs_content.html.haml
|
||||
- ee/app/views/projects/protected_branches/ee/_code_owner_approval_form.html.haml
|
||||
- ee/app/views/projects/protected_branches/ee/_code_owner_approval_table.html.haml
|
||||
- ee/app/views/projects/protected_branches/ee/_code_owner_approval_table_head.html.haml
|
||||
- ee/app/views/projects/push_rules/_index.html.haml
|
||||
- ee/app/views/projects/settings/_default_issue_template.html.haml
|
||||
- ee/app/views/projects/settings/_marked_for_removal.html.haml
|
||||
- ee/app/views/projects/settings/_restore.html.haml
|
||||
- ee/app/views/projects/settings/ci_cd/_auto_rollback.html.haml
|
||||
- ee/app/views/projects/settings/ci_cd/_pipeline_subscriptions.html.haml
|
||||
- ee/app/views/projects/settings/operations/_status_page.html.haml
|
||||
- ee/app/views/projects/settings/repository/_protected_branches.html.haml
|
||||
- ee/app/views/projects/sidebar/_repository_locked_files.html.haml
|
||||
- ee/app/views/shared/issuable/_group_bulk_update_sidebar.html.haml
|
||||
- ee/app/views/shared/issuable/form/_default_templates.html.haml
|
||||
- ee/app/views/shared/labels/_create_label_help_text.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_mr_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_mr_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_repository_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_repository_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_repository_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_repository_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_repository_features.html.haml
|
||||
- ee/app/views/shared/promotions/_promote_repository_features.html.haml
|
||||
- ee/app/workers/analytics/code_review_metrics_worker.rb
|
||||
- ee/app/workers/group_saml_group_sync_worker.rb
|
||||
- ee/lib/api/external_status_checks.rb
|
||||
- ee/lib/ee/api/entities/approval_state.rb
|
||||
- ee/lib/ee/api/entities/board.rb
|
||||
- ee/lib/ee/api/entities/issue.rb
|
||||
- ee/lib/ee/api/entities/project.rb
|
||||
- ee/lib/ee/api/helpers.rb
|
||||
- ee/lib/ee/api/internal/kubernetes.rb
|
||||
- ee/lib/ee/api/job_artifacts.rb
|
||||
- ee/lib/ee/api/projects.rb
|
||||
- ee/lib/ee/gitlab/alert_management/payload/generic.rb
|
||||
- ee/lib/ee/gitlab/checks/diff_check.rb
|
||||
- ee/lib/ee/gitlab/gon_helper.rb
|
||||
- ee/lib/ee/gitlab/tree_summary.rb
|
||||
- ee/lib/gitlab/alert_management.rb
|
||||
- ee/lib/gitlab/ci/pipeline/chain/config/content/compliance.rb
|
||||
- ee/lib/gitlab/code_owners.rb
|
||||
- ee/lib/gitlab/incident_management.rb
|
||||
- ee/lib/gitlab/path_locks_finder.rb
|
||||
- ee/lib/incident_management/incident_sla.rb
|
||||
- ee/spec/models/instance_security_dashboard_spec.rb
|
||||
- ee/spec/models/license_spec.rb
|
||||
- ee/spec/models/project_spec.rb
|
||||
- lib/api/helpers/related_resources_helpers.rb
|
||||
- spec/models/concerns/featurable_spec.rb
|
1200
.rubocop_todo/gitlab/namespaced_class.yml
Normal file
1200
.rubocop_todo/gitlab/namespaced_class.yml
Normal file
File diff suppressed because it is too large
Load diff
4
.rubocop_todo/graphql/argument_name.yml
Normal file
4
.rubocop_todo/graphql/argument_name.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
GraphQL/ArgumentName:
|
||||
Exclude:
|
||||
- ee/app/graphql/mutations/audit_events/external_audit_event_destinations/update.rb
|
18
.rubocop_todo/graphql/field_definitions.yml
Normal file
18
.rubocop_todo/graphql/field_definitions.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
GraphQL/FieldDefinitions:
|
||||
Exclude:
|
||||
- app/graphql/types/commit_type.rb
|
||||
- app/graphql/types/group_type.rb
|
||||
- app/graphql/types/issue_type.rb
|
||||
- app/graphql/types/label_type.rb
|
||||
- app/graphql/types/merge_request_type.rb
|
||||
- app/graphql/types/namespace_type.rb
|
||||
- app/graphql/types/notes/note_type.rb
|
||||
- app/graphql/types/project_type.rb
|
||||
- app/graphql/types/projects/topic_type.rb
|
||||
- app/graphql/types/release_type.rb
|
||||
- ee/app/graphql/types/ci/code_quality_degradation_type.rb
|
||||
- ee/app/graphql/types/epic_type.rb
|
||||
- ee/app/graphql/types/group_release_stats_type.rb
|
||||
- ee/app/graphql/types/iteration_type.rb
|
||||
- ee/app/graphql/types/requirements_management/requirement_type.rb
|
7
.rubocop_todo/graphql/field_hash_key.yml
Normal file
7
.rubocop_todo/graphql/field_hash_key.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
GraphQL/FieldHashKey:
|
||||
Exclude:
|
||||
- app/graphql/types/ci/config/job_type.rb
|
||||
- app/graphql/types/ci/status_action_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_stack_trace_entry_type.rb
|
||||
- app/graphql/types/packages/helm/dependency_type.rb
|
12
.rubocop_todo/graphql/field_method.yml
Normal file
12
.rubocop_todo/graphql/field_method.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
GraphQL/FieldMethod:
|
||||
Exclude:
|
||||
- app/graphql/types/ci/job_type.rb
|
||||
- app/graphql/types/merge_request_type.rb
|
||||
- app/graphql/types/metrics/dashboards/annotation_type.rb
|
||||
- app/graphql/types/packages/package_details_type.rb
|
||||
- app/graphql/types/project_type.rb
|
||||
- ee/app/graphql/types/dast/profile_type.rb
|
||||
- ee/app/graphql/types/dast_site_validation_type.rb
|
||||
- ee/app/graphql/types/group_release_stats_type.rb
|
||||
- ee/app/graphql/types/incident_management/oncall_rotation_type.rb
|
22
.rubocop_todo/graphql/ordered_arguments.yml
Normal file
22
.rubocop_todo/graphql/ordered_arguments.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
GraphQL/OrderedArguments:
|
||||
Exclude:
|
||||
- app/graphql/mutations/jira_import/start.rb
|
||||
- app/graphql/mutations/merge_requests/accept.rb
|
||||
- app/graphql/resolvers/base_issues_resolver.rb
|
||||
- app/graphql/resolvers/design_management/designs_resolver.rb
|
||||
- app/graphql/resolvers/design_management/version/design_at_version_resolver.rb
|
||||
- app/graphql/resolvers/design_management/version/designs_at_version_resolver.rb
|
||||
- app/graphql/resolvers/design_management/version_in_collection_resolver.rb
|
||||
- app/graphql/resolvers/group_milestones_resolver.rb
|
||||
- app/graphql/resolvers/merge_requests_resolver.rb
|
||||
- app/graphql/resolvers/paginated_tree_resolver.rb
|
||||
- app/graphql/resolvers/tree_resolver.rb
|
||||
- app/graphql/resolvers/users/groups_resolver.rb
|
||||
- app/graphql/types/commit_action_type.rb
|
||||
- app/graphql/types/diff_paths_input_type.rb
|
||||
- app/graphql/types/issues/negated_issue_filter_input_type.rb
|
||||
- app/graphql/types/jira_users_mapping_input_type.rb
|
||||
- app/graphql/types/notes/diff_image_position_input_type.rb
|
||||
- app/graphql/types/notes/diff_position_base_input_type.rb
|
||||
- app/graphql/types/notes/diff_position_input_type.rb
|
89
.rubocop_todo/graphql/ordered_fields.yml
Normal file
89
.rubocop_todo/graphql/ordered_fields.yml
Normal file
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
GraphQL/OrderedFields:
|
||||
Exclude:
|
||||
- app/graphql/types/board_list_type.rb
|
||||
- app/graphql/types/ci/analytics_type.rb
|
||||
- app/graphql/types/ci/ci_cd_setting_type.rb
|
||||
- app/graphql/types/ci/config/group_type.rb
|
||||
- app/graphql/types/ci/config/job_type.rb
|
||||
- app/graphql/types/ci/config/stage_type.rb
|
||||
- app/graphql/types/ci/detailed_status_type.rb
|
||||
- app/graphql/types/ci/group_type.rb
|
||||
- app/graphql/types/ci/job_type.rb
|
||||
- app/graphql/types/ci/runner_architecture_type.rb
|
||||
- app/graphql/types/ci/runner_platform_type.rb
|
||||
- app/graphql/types/ci/runner_type.rb
|
||||
- app/graphql/types/ci/stage_type.rb
|
||||
- app/graphql/types/ci/status_action_type.rb
|
||||
- app/graphql/types/ci/template_type.rb
|
||||
- app/graphql/types/commit_type.rb
|
||||
- app/graphql/types/container_expiration_policy_type.rb
|
||||
- app/graphql/types/container_repository_tag_type.rb
|
||||
- app/graphql/types/container_repository_type.rb
|
||||
- app/graphql/types/dependency_proxy/blob_type.rb
|
||||
- app/graphql/types/dependency_proxy/image_ttl_group_policy_type.rb
|
||||
- app/graphql/types/dependency_proxy/manifest_type.rb
|
||||
- app/graphql/types/design_management/design_collection_type.rb
|
||||
- app/graphql/types/diff_refs_type.rb
|
||||
- app/graphql/types/diff_stats_summary_type.rb
|
||||
- app/graphql/types/diff_stats_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_detailed_error_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_collection_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_frequency_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_stack_trace_context_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_stack_trace_entry_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_stack_trace_type.rb
|
||||
- app/graphql/types/error_tracking/sentry_error_type.rb
|
||||
- app/graphql/types/evidence_type.rb
|
||||
- app/graphql/types/grafana_integration_type.rb
|
||||
- app/graphql/types/issue_type.rb
|
||||
- app/graphql/types/jira_import_type.rb
|
||||
- app/graphql/types/jira_user_type.rb
|
||||
- app/graphql/types/label_type.rb
|
||||
- app/graphql/types/merge_request_type.rb
|
||||
- app/graphql/types/metadata/kas_type.rb
|
||||
- app/graphql/types/metadata_type.rb
|
||||
- app/graphql/types/namespace/package_settings_type.rb
|
||||
- app/graphql/types/namespace_type.rb
|
||||
- app/graphql/types/notes/diff_position_type.rb
|
||||
- app/graphql/types/notes/discussion_type.rb
|
||||
- app/graphql/types/notes/note_type.rb
|
||||
- app/graphql/types/packages/composer/json_type.rb
|
||||
- app/graphql/types/packages/composer/metadatum_type.rb
|
||||
- app/graphql/types/packages/conan/file_metadatum_type.rb
|
||||
- app/graphql/types/packages/conan/metadatum_type.rb
|
||||
- app/graphql/types/packages/helm/dependency_type.rb
|
||||
- app/graphql/types/packages/helm/maintainer_type.rb
|
||||
- app/graphql/types/packages/helm/metadata_type.rb
|
||||
- app/graphql/types/packages/maven/metadatum_type.rb
|
||||
- app/graphql/types/packages/nuget/metadatum_type.rb
|
||||
- app/graphql/types/packages/package_dependency_link_type.rb
|
||||
- app/graphql/types/packages/package_file_type.rb
|
||||
- app/graphql/types/packages/package_tag_type.rb
|
||||
- app/graphql/types/packages/package_type.rb
|
||||
- app/graphql/types/project_statistics_type.rb
|
||||
- app/graphql/types/project_type.rb
|
||||
- app/graphql/types/projects/services/jira_project_type.rb
|
||||
- app/graphql/types/release_asset_link_type.rb
|
||||
- app/graphql/types/release_links_type.rb
|
||||
- app/graphql/types/release_type.rb
|
||||
- app/graphql/types/repository_type.rb
|
||||
- app/graphql/types/root_storage_statistics_type.rb
|
||||
- app/graphql/types/task_completion_status.rb
|
||||
- app/graphql/types/tree/blob_type.rb
|
||||
- app/graphql/types/tree/submodule_type.rb
|
||||
- app/graphql/types/tree/tree_entry_type.rb
|
||||
- app/graphql/types/user_callout_type.rb
|
||||
- app/graphql/types/user_status_type.rb
|
||||
- ee/app/graphql/types/analytics/devops_adoption/snapshot_type.rb
|
||||
- ee/app/graphql/types/epic_descendant_count_type.rb
|
||||
- ee/app/graphql/types/epic_descendant_weight_sum_type.rb
|
||||
- ee/app/graphql/types/epic_health_status_type.rb
|
||||
- ee/app/graphql/types/epic_type.rb
|
||||
- ee/app/graphql/types/geo/geo_node_type.rb
|
||||
- ee/app/graphql/types/requirements_management/requirement_states_count_type.rb
|
||||
- ee/app/graphql/types/scan_execution_policy_type.rb
|
||||
- ee/app/graphql/types/scan_type.rb
|
||||
- ee/app/graphql/types/scanned_resource_type.rb
|
||||
- ee/app/graphql/types/security_report_summary_section_type.rb
|
||||
- ee/app/graphql/types/timebox_report_type.rb
|
7
.rubocop_todo/graphql/resolver_method_length.yml
Normal file
7
.rubocop_todo/graphql/resolver_method_length.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
GraphQL/ResolverMethodLength:
|
||||
Exclude:
|
||||
- app/graphql/types/ci/detailed_status_type.rb
|
||||
- app/graphql/types/ci/runner_type.rb
|
||||
- app/graphql/types/ci/stage_type.rb
|
||||
- app/graphql/types/packages/package_type.rb
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
Performance/ActiveRecordSubtransactionMethods:
|
||||
Exclude:
|
||||
- app/controllers/clusters/clusters_controller.rb
|
||||
- app/controllers/repositories/lfs_storage_controller.rb
|
||||
- app/controllers/search_controller.rb
|
||||
- app/models/application_record.rb
|
||||
- app/models/ci/ref.rb
|
||||
- app/models/container_repository.rb
|
||||
- app/models/design_management/design_collection.rb
|
||||
- app/models/error_tracking/error.rb
|
||||
- app/models/external_pull_request.rb
|
||||
- app/models/gpg_signature.rb
|
||||
- app/models/merge_request.rb
|
||||
- app/models/plan.rb
|
||||
- app/models/project.rb
|
||||
- app/models/shard.rb
|
||||
- app/models/x509_certificate.rb
|
||||
- app/models/x509_commit_signature.rb
|
||||
- app/models/x509_issuer.rb
|
||||
- app/services/bulk_imports/relation_export_service.rb
|
||||
- app/services/ci/update_build_state_service.rb
|
||||
- app/services/event_create_service.rb
|
||||
- app/services/groups/import_export/import_service.rb
|
||||
- app/services/lfs/file_transformer.rb
|
||||
- app/services/merge_requests/approval_service.rb
|
||||
- app/services/namespaces/statistics_refresher_service.rb
|
||||
- app/services/packages/rubygems/create_dependencies_service.rb
|
||||
- app/services/packages/rubygems/metadata_extraction_service.rb
|
||||
- app/services/projects/create_service.rb
|
||||
- app/services/projects/lfs_pointers/lfs_download_service.rb
|
||||
- app/services/service_desk_settings/update_service.rb
|
||||
- app/services/service_ping/submit_service.rb
|
||||
- app/services/terraform/remote_state_handler.rb
|
||||
- app/workers/namespaces/schedule_aggregation_worker.rb
|
||||
- app/workers/project_export_worker.rb
|
||||
- db/migrate/20200212014653_rename_security_dashboard_feature_flag_to_instance_security_dashboard.rb
|
||||
- db/post_migrate/20200214034836_remove_security_dashboard_feature_flag.rb
|
||||
- db/post_migrate/20210824174615_prepare_ci_builds_metadata_and_ci_build_async_indexes.rb
|
||||
- ee/app/models/ci/minutes/namespace_monthly_usage.rb
|
||||
- ee/app/models/ci/minutes/project_monthly_usage.rb
|
||||
- ee/app/models/concerns/deprecated_approvals_before_merge.rb
|
||||
- ee/app/models/ee/iteration.rb
|
||||
- ee/app/models/ee/plan.rb
|
||||
- ee/app/models/elastic/index_setting.rb
|
||||
- ee/app/models/gitlab_subscription.rb
|
||||
- ee/app/models/software_license.rb
|
||||
- ee/app/services/boards/user_preferences/update_service.rb
|
||||
- ee/app/services/ci/minutes/update_project_and_namespace_usage_service.rb
|
||||
- ee/app/services/ee/analytics/cycle_analytics/stages/base_service.rb
|
||||
- ee/app/services/security/store_report_service.rb
|
||||
- ee/app/services/security/store_scan_service.rb
|
||||
- ee/app/workers/import_software_licenses_worker.rb
|
||||
- ee/db/fixtures/production/027_plans.rb
|
||||
- ee/lib/ee/gitlab/background_migration/migrate_approver_to_approval_rules.rb
|
||||
- ee/lib/gitlab/elastic/indexer.rb
|
||||
- lib/gitlab/ci/pipeline/seed/environment.rb
|
||||
- lib/gitlab/ci/pipeline/seed/processable/resource_group.rb
|
||||
- lib/gitlab/ci/trace/chunked_io.rb
|
||||
- lib/gitlab/composer/cache.rb
|
||||
- lib/gitlab/database/async_indexes/migration_helpers.rb
|
||||
- lib/gitlab/issuables_count_for_state.rb
|
5
.rubocop_todo/performance/rubyzip.yml
Normal file
5
.rubocop_todo/performance/rubyzip.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
Performance/Rubyzip:
|
||||
Exclude:
|
||||
- app/services/packages/nuget/metadata_extraction_service.rb
|
||||
- lib/gitlab/ci/artifact_file_reader.rb
|
42
.rubocop_todo/rails/include_url_helper.yml
Normal file
42
.rubocop_todo/rails/include_url_helper.yml
Normal file
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
Rails/IncludeUrlHelper:
|
||||
Exclude:
|
||||
- app/models/integrations/asana.rb
|
||||
- app/models/integrations/bamboo.rb
|
||||
- app/models/integrations/bugzilla.rb
|
||||
- app/models/integrations/campfire.rb
|
||||
- app/models/integrations/confluence.rb
|
||||
- app/models/integrations/custom_issue_tracker.rb
|
||||
- app/models/integrations/datadog.rb
|
||||
- app/models/integrations/discord.rb
|
||||
- app/models/integrations/ewm.rb
|
||||
- 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/mattermost.rb
|
||||
- app/models/integrations/pivotaltracker.rb
|
||||
- app/models/integrations/redmine.rb
|
||||
- app/models/integrations/webex_teams.rb
|
||||
- app/models/integrations/youtrack.rb
|
||||
- app/presenters/alert_management/alert_presenter.rb
|
||||
- app/presenters/ci/pipeline_presenter.rb
|
||||
- app/presenters/environment_presenter.rb
|
||||
- app/presenters/gitlab/blame_presenter.rb
|
||||
- app/presenters/merge_request_presenter.rb
|
||||
- app/presenters/project_presenter.rb
|
||||
- app/presenters/prometheus_alert_presenter.rb
|
||||
- app/presenters/release_presenter.rb
|
||||
- app/presenters/releases/evidence_presenter.rb
|
||||
- ee/app/helpers/license_helper.rb
|
||||
- ee/app/models/integrations/github.rb
|
||||
- ee/app/presenters/merge_request_approver_presenter.rb
|
||||
- ee/spec/helpers/ee/projects/security/configuration_helper_spec.rb
|
||||
- ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb
|
||||
- lib/gitlab/ci/badge/metadata.rb
|
||||
- spec/helpers/merge_requests_helper_spec.rb
|
||||
- spec/helpers/nav/top_nav_helper_spec.rb
|
||||
- spec/helpers/notify_helper_spec.rb
|
||||
- spec/lib/banzai/filter/reference_redactor_filter_spec.rb
|
||||
- spec/lib/banzai/reference_redactor_spec.rb
|
123
.rubocop_todo/rails/save_bang.yml
Normal file
123
.rubocop_todo/rails/save_bang.yml
Normal file
|
@ -0,0 +1,123 @@
|
|||
---
|
||||
Rails/SaveBang:
|
||||
Exclude:
|
||||
- ee/spec/initializers/fog_google_https_private_urls_spec.rb
|
||||
- ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/ci/pipeline/quota/activity_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/ldap/access_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/o_auth/user_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/saml/user_spec.rb
|
||||
- ee/spec/lib/gitlab/elastic/search_results_spec.rb
|
||||
- ee/spec/lib/gitlab/email/handler/ee/service_desk_handler_spec.rb
|
||||
- ee/spec/lib/gitlab/geo_spec.rb
|
||||
- ee/spec/lib/gitlab/git_access_spec.rb
|
||||
- ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb
|
||||
- ee/spec/lib/gitlab/mirror_spec.rb
|
||||
- ee/spec/models/application_setting_spec.rb
|
||||
- ee/spec/models/approval_merge_request_rule_spec.rb
|
||||
- ee/spec/models/approval_project_rule_spec.rb
|
||||
- ee/spec/models/burndown_spec.rb
|
||||
- ee/spec/models/elasticsearch_indexed_namespace_spec.rb
|
||||
- ee/spec/models/gitlab_subscription_spec.rb
|
||||
- ee/spec/models/issue_spec.rb
|
||||
- ee/spec/models/label_note_spec.rb
|
||||
- ee/spec/models/lfs_object_spec.rb
|
||||
- ee/spec/models/license_spec.rb
|
||||
- ee/spec/models/merge_request_spec.rb
|
||||
- ee/spec/models/merge_train_spec.rb
|
||||
- ee/spec/models/project_ci_cd_setting_spec.rb
|
||||
- ee/spec/models/project_spec.rb
|
||||
- ee/spec/models/protected_environment_spec.rb
|
||||
- ee/spec/models/repository_spec.rb
|
||||
- ee/spec/models/scim_identity_spec.rb
|
||||
- ee/spec/models/scim_oauth_access_token_spec.rb
|
||||
- ee/spec/models/upload_spec.rb
|
||||
- ee/spec/models/user_preference_spec.rb
|
||||
- ee/spec/models/visible_approvable_spec.rb
|
||||
- ee/spec/models/vulnerabilities/feedback_spec.rb
|
||||
- ee/spec/models/vulnerabilities/issue_link_spec.rb
|
||||
- ee/spec/services/ee/boards/issues/create_service_spec.rb
|
||||
- ee/spec/services/ee/boards/issues/list_service_spec.rb
|
||||
- ee/spec/services/ee/boards/lists/list_service_spec.rb
|
||||
- ee/spec/services/ee/issuable/clone/attributes_rewriter_spec.rb
|
||||
- ee/spec/services/ee/issuable/common_system_notes_service_spec.rb
|
||||
- ee/spec/services/ee/issues/update_service_spec.rb
|
||||
- ee/spec/services/ee/merge_requests/refresh_service_spec.rb
|
||||
- ee/spec/services/ee/merge_requests/update_service_spec.rb
|
||||
- ee/spec/services/ee/notes/quick_actions_service_spec.rb
|
||||
- ee/spec/services/ee/notification_service_spec.rb
|
||||
- ee/spec/services/epic_links/create_service_spec.rb
|
||||
- ee/spec/services/epics/close_service_spec.rb
|
||||
- ee/spec/services/epics/issue_promote_service_spec.rb
|
||||
- ee/spec/services/epics/reopen_service_spec.rb
|
||||
- ee/spec/services/epics/tree_reorder_service_spec.rb
|
||||
- ee/spec/services/epics/update_dates_service_spec.rb
|
||||
- ee/spec/services/epics/update_service_spec.rb
|
||||
- ee/spec/services/geo/blob_verification_secondary_service_spec.rb
|
||||
- ee/spec/services/geo/files_expire_service_spec.rb
|
||||
- ee/spec/services/geo/metrics_update_service_spec.rb
|
||||
- ee/spec/services/geo/registry_consistency_service_spec.rb
|
||||
- ee/spec/services/geo/repository_verification_secondary_service_spec.rb
|
||||
- ee/spec/services/groups/autocomplete_service_spec.rb
|
||||
- ee/spec/services/ldap_group_reset_service_spec.rb
|
||||
- ee/spec/services/lfs/unlock_file_service_spec.rb
|
||||
- ee/spec/services/merge_trains/refresh_merge_request_service_spec.rb
|
||||
- ee/spec/services/quick_actions/interpret_service_spec.rb
|
||||
- ee/spec/services/slash_commands/global_slack_handler_spec.rb
|
||||
- ee/spec/services/start_pull_mirroring_service_spec.rb
|
||||
- ee/spec/services/status_page/trigger_publish_service_spec.rb
|
||||
- ee/spec/services/todo_service_spec.rb
|
||||
- ee/spec/services/vulnerability_feedback/create_service_spec.rb
|
||||
- qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb
|
||||
- qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb
|
||||
- qa/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb
|
||||
- qa/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb
|
||||
- spec/controllers/abuse_reports_controller_spec.rb
|
||||
- spec/controllers/boards/issues_controller_spec.rb
|
||||
- spec/controllers/sent_notifications_controller_spec.rb
|
||||
- spec/controllers/sessions_controller_spec.rb
|
||||
- spec/lib/backup/manager_spec.rb
|
||||
- spec/lib/gitlab/alerting/alert_spec.rb
|
||||
- spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb
|
||||
- spec/lib/gitlab/auth/ldap/user_spec.rb
|
||||
- spec/lib/gitlab/auth/o_auth/user_spec.rb
|
||||
- spec/lib/gitlab/auth/saml/user_spec.rb
|
||||
- spec/lib/gitlab/auth_spec.rb
|
||||
- spec/lib/gitlab/authorized_keys_spec.rb
|
||||
- spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
|
||||
- spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb
|
||||
- spec/lib/gitlab/database/custom_structure_spec.rb
|
||||
- spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb
|
||||
- spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
|
||||
- spec/lib/gitlab/gfm/reference_rewriter_spec.rb
|
||||
- spec/lib/gitlab/git_access_spec.rb
|
||||
- spec/lib/gitlab/import_export/avatar_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/base/relation_factory_spec.rb
|
||||
- spec/lib/gitlab/import_export/design_repo_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb
|
||||
- spec/lib/gitlab/import_export/fork_spec.rb
|
||||
- spec/lib/gitlab/import_export/group/legacy_tree_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/group/relation_factory_spec.rb
|
||||
- spec/lib/gitlab/import_export/group/tree_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/importer_spec.rb
|
||||
- spec/lib/gitlab/import_export/lfs_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/lfs_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/members_mapper_spec.rb
|
||||
- spec/lib/gitlab/import_export/project/relation_factory_spec.rb
|
||||
- spec/lib/gitlab/import_export/project/tree_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/project/tree_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/repo_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/snippet_repo_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/uploads_manager_spec.rb
|
||||
- spec/lib/gitlab/import_export/uploads_saver_spec.rb
|
||||
- spec/lib/gitlab/import_export/wiki_restorer_spec.rb
|
||||
- spec/lib/gitlab/lets_encrypt/client_spec.rb
|
||||
- spec/lib/gitlab/middleware/go_spec.rb
|
||||
- spec/lib/gitlab/shard_health_cache_spec.rb
|
||||
- spec/mailers/notify_spec.rb
|
154
.rubocop_todo/rails/time_zone.yml
Normal file
154
.rubocop_todo/rails/time_zone.yml
Normal file
|
@ -0,0 +1,154 @@
|
|||
---
|
||||
Rails/TimeZone:
|
||||
Enabled: true
|
||||
Exclude:
|
||||
- lib/gitlab/popen.rb
|
||||
- ee/lib/delay.rb
|
||||
- ee/lib/gitlab/elastic/helper.rb
|
||||
- ee/lib/gitlab/elastic/indexer.rb
|
||||
- ee/lib/gitlab/geo/base_request.rb
|
||||
- ee/lib/gitlab/geo/event_gap_tracking.rb
|
||||
- ee/lib/gitlab/geo/log_cursor/events/design_repository_updated_event.rb
|
||||
- ee/lib/gitlab/geo/log_cursor/events/repository_updated_event.rb
|
||||
- ee/lib/gitlab/geo/log_cursor/logger.rb
|
||||
- ee/lib/gitlab/geo/oauth/login_state.rb
|
||||
- ee/lib/gitlab/prometheus/queries/cluster_query.rb
|
||||
- ee/lib/gitlab/prometheus/queries/packet_flow_query.rb
|
||||
- ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/ci/pipeline/quota/job_activity_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/ldap/access_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/smartcard/san_extension_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/smartcard/session_spec.rb
|
||||
- ee/spec/lib/gitlab/background_migration/fix_orphan_promoted_issues_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/pipeline/chain/limit/job_activity_spec.rb
|
||||
- ee/spec/lib/gitlab/elastic/client_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/base_request_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/container_repository_updated_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_migrated_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/job_artifact_deleted_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/lfs_object_deleted_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/repositories_changed_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb
|
||||
- ee/spec/lib/gitlab/git_access_spec.rb
|
||||
- ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb
|
||||
- ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb
|
||||
- ee/spec/lib/gitlab/prometheus/queries/packet_flow_query_spec.rb
|
||||
- lib/api/helpers.rb
|
||||
- lib/api/sidekiq_metrics.rb
|
||||
- lib/backup/manager.rb
|
||||
- lib/bitbucket_server/representation/base.rb
|
||||
- lib/gitlab/auth/current_user_mode.rb
|
||||
- lib/gitlab/auth/ldap/access.rb
|
||||
- lib/gitlab/chaos.rb
|
||||
- lib/gitlab/checks/timed_logger.rb
|
||||
- lib/gitlab/ci/ansi2json/line.rb
|
||||
- lib/gitlab/ci/pipeline/chain/sequence.rb
|
||||
- lib/gitlab/ci/pipeline/duration.rb
|
||||
- lib/gitlab/cycle_analytics/summary/deployment_frequency.rb
|
||||
- lib/gitlab/database.rb
|
||||
- lib/gitlab/external_authorization/access.rb
|
||||
- lib/gitlab/external_authorization/cache.rb
|
||||
- lib/gitlab/gitaly_client.rb
|
||||
- lib/gitlab/gitaly_client/ref_service.rb
|
||||
- lib/gitlab/github_import/representation.rb
|
||||
- lib/gitlab/grape_logging/loggers/queue_duration_logger.rb
|
||||
- lib/gitlab/health_checks/base_abstract_check.rb
|
||||
- lib/gitlab/import_export.rb
|
||||
- lib/gitlab/instrumentation/elasticsearch_transport.rb
|
||||
- lib/gitlab/instrumentation/redis_interceptor.rb
|
||||
- lib/gitlab/instrumentation_helper.rb
|
||||
- lib/gitlab/kubernetes/helm/certificate.rb
|
||||
- lib/gitlab/lfs_token.rb
|
||||
- lib/gitlab/loop_helpers.rb
|
||||
- lib/gitlab/phabricator_import/representation/task.rb
|
||||
- lib/gitlab/prometheus/queries/additional_metrics_environment_query.rb
|
||||
- lib/gitlab/prometheus/queries/matched_metric_query.rb
|
||||
- lib/gitlab/prometheus_client.rb
|
||||
- lib/gitlab/sherlock/transaction.rb
|
||||
- lib/gitlab/task_helpers.rb
|
||||
- lib/gitlab/x509/tag.rb
|
||||
- lib/grafana/time_window.rb
|
||||
- lib/json_web_token/token.rb
|
||||
- lib/object_storage/direct_upload.rb
|
||||
- lib/quality/seeders/issues.rb
|
||||
- tooling/rspec_flaky/flaky_example.rb
|
||||
- tooling/rspec_flaky/report.rb
|
||||
- lib/tasks/gitlab/assets.rake
|
||||
- lib/tasks/gitlab/backup.rake
|
||||
- lib/tasks/gitlab/cleanup.rake
|
||||
- lib/tasks/gitlab/list_repos.rake
|
||||
- spec/lib/api/helpers_spec.rb
|
||||
- spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb
|
||||
- spec/lib/gitlab/app_json_logger_spec.rb
|
||||
- spec/lib/gitlab/app_text_logger_spec.rb
|
||||
- spec/lib/gitlab/auth/current_user_mode_spec.rb
|
||||
- spec/lib/gitlab/background_migration/recalculate_project_authorizations_spec.rb
|
||||
- spec/lib/gitlab/background_migration/wrongfully_confirmed_email_unconfirmer_spec.rb
|
||||
- spec/lib/gitlab/bitbucket_import/importer_spec.rb
|
||||
- spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
|
||||
- spec/lib/gitlab/checks/timed_logger_spec.rb
|
||||
- spec/lib/gitlab/ci/cron_parser_spec.rb
|
||||
- spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb
|
||||
- spec/lib/gitlab/cycle_analytics/usage_data_spec.rb
|
||||
- spec/lib/gitlab/data_builder/note_spec.rb
|
||||
- spec/lib/gitlab/database/background_migration_job_spec.rb
|
||||
- spec/lib/gitlab/database_spec.rb
|
||||
- spec/lib/gitlab/discussions_diff/file_collection_spec.rb
|
||||
- spec/lib/gitlab/external_authorization/access_spec.rb
|
||||
- spec/lib/gitlab/external_authorization/cache_spec.rb
|
||||
- spec/lib/gitlab/external_authorization/logger_spec.rb
|
||||
- spec/lib/gitlab/fogbugz_import/importer_spec.rb
|
||||
- spec/lib/gitlab/git/branch_spec.rb
|
||||
- spec/lib/gitlab/git/commit_spec.rb
|
||||
- spec/lib/gitlab/git/repository_spec.rb
|
||||
- spec/lib/gitlab/git_access_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/diff_note_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/issue_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/issues_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/note_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/releases_importer_spec.rb
|
||||
- spec/lib/gitlab/github_import/representation/diff_note_spec.rb
|
||||
- spec/lib/gitlab/github_import/representation/issue_spec.rb
|
||||
- spec/lib/gitlab/github_import/representation/note_spec.rb
|
||||
- spec/lib/gitlab/github_import/representation/pull_request_spec.rb
|
||||
- spec/lib/gitlab/grape_logging/formatters/lograge_with_timestamp_spec.rb
|
||||
- spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb
|
||||
- spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb
|
||||
- spec/lib/gitlab/graphql_logger_spec.rb
|
||||
- spec/lib/gitlab/graphs/commits_spec.rb
|
||||
- spec/lib/gitlab/import_export/project/relation_factory_spec.rb
|
||||
- spec/lib/gitlab/json_logger_spec.rb
|
||||
- spec/lib/gitlab/lfs_token_spec.rb
|
||||
- spec/lib/gitlab/log_timestamp_formatter_spec.rb
|
||||
- spec/lib/gitlab/middleware/rails_queue_duration_spec.rb
|
||||
- spec/lib/gitlab/omniauth_logging/json_formatter_spec.rb
|
||||
- spec/lib/gitlab/phabricator_import/issues/task_importer_spec.rb
|
||||
- spec/lib/gitlab/phabricator_import/representation/task_spec.rb
|
||||
- spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb
|
||||
- spec/lib/gitlab/prometheus/queries/deployment_query_spec.rb
|
||||
- spec/lib/gitlab/prometheus/queries/validate_query_spec.rb
|
||||
- spec/lib/gitlab/sherlock/transaction_spec.rb
|
||||
- spec/lib/gitlab/sidekiq_logging/json_formatter_spec.rb
|
||||
- spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing_spec.rb
|
||||
- spec/lib/gitlab/updated_notes_paginator_spec.rb
|
||||
- spec/lib/gitlab/utils/json_size_estimator_spec.rb
|
||||
- spec/lib/gitlab/x509/signature_spec.rb
|
||||
- spec/lib/grafana/time_window_spec.rb
|
||||
- spec/lib/json_web_token/hmac_token_spec.rb
|
||||
- spec/tooling/rspec_flaky/flaky_example_spec.rb
|
||||
- spec/tooling/rspec_flaky/listener_spec.rb
|
||||
- spec/tooling/rspec_flaky/report_spec.rb
|
508
.rubocop_todo/rspec/any_instance_of.yml
Normal file
508
.rubocop_todo/rspec/any_instance_of.yml
Normal file
|
@ -0,0 +1,508 @@
|
|||
---
|
||||
RSpec/AnyInstanceOf:
|
||||
Exclude:
|
||||
- ee/spec/controllers/admin/geo/nodes_controller_spec.rb
|
||||
- ee/spec/controllers/ee/groups_controller_spec.rb
|
||||
- ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb
|
||||
- ee/spec/controllers/groups/epics/notes_controller_spec.rb
|
||||
- ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb
|
||||
- ee/spec/controllers/oauth/geo_auth_controller_spec.rb
|
||||
- ee/spec/controllers/projects/environments_controller_spec.rb
|
||||
- ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb
|
||||
- ee/spec/controllers/projects/merge_requests_controller_spec.rb
|
||||
- ee/spec/controllers/projects/path_locks_controller_spec.rb
|
||||
- ee/spec/controllers/projects_controller_spec.rb
|
||||
- ee/spec/controllers/subscriptions_controller_spec.rb
|
||||
- ee/spec/controllers/trials_controller_spec.rb
|
||||
- ee/spec/features/admin/admin_audit_logs_spec.rb
|
||||
- ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb
|
||||
- ee/spec/features/admin/admin_users_spec.rb
|
||||
- ee/spec/features/boards/scoped_issue_board_spec.rb
|
||||
- ee/spec/features/ci_shared_runner_warnings_spec.rb
|
||||
- ee/spec/features/groups/group_settings_spec.rb
|
||||
- ee/spec/features/groups/navbar_spec.rb
|
||||
- ee/spec/features/groups/saml_providers_spec.rb
|
||||
- ee/spec/features/issues/form_spec.rb
|
||||
- ee/spec/features/merge_request/user_creates_merge_request_spec.rb
|
||||
- ee/spec/features/projects/new_project_spec.rb
|
||||
- ee/spec/features/registrations/welcome_spec.rb
|
||||
- ee/spec/features/security/project/internal_access_spec.rb
|
||||
- ee/spec/features/security/project/private_access_spec.rb
|
||||
- ee/spec/features/security/project/public_access_spec.rb
|
||||
- ee/spec/features/trials/capture_lead_spec.rb
|
||||
- ee/spec/features/trials/select_namespace_spec.rb
|
||||
- ee/spec/features/users/login_spec.rb
|
||||
- ee/spec/graphql/mutations/dast_on_demand_scans/create_spec.rb
|
||||
- ee/spec/graphql/mutations/incident_management/oncall_schedule/create_spec.rb
|
||||
- ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb
|
||||
- ee/spec/graphql/mutations/incident_management/oncall_schedule/update_spec.rb
|
||||
- ee/spec/helpers/application_helper_spec.rb
|
||||
- ee/spec/lib/ee/api/helpers_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/group_saml/membership_enforcer_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/ldap/access_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/Jobs/dast_default_branch_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/Jobs/load_performance_testing_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/Verify/browser_performance_testing_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/api_fuzzing_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/container_scanning_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/coverage_fuzzing_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/dast_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/license_scanning_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb
|
||||
- ee/spec/lib/gitlab/elastic/project_search_results_spec.rb
|
||||
- ee/spec/lib/gitlab/expiring_subscription_message_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb
|
||||
- ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb
|
||||
- ee/spec/lib/omni_auth/strategies/group_saml_spec.rb
|
||||
- ee/spec/lib/security/ci_configuration/sast_build_actions_spec.rb
|
||||
- ee/spec/lib/system_check/geo/geo_database_configured_check_spec.rb
|
||||
- ee/spec/migrations/schedule_populate_resolved_on_default_branch_column_spec.rb
|
||||
- ee/spec/migrations/update_location_fingerprint_column_for_cs_spec.rb
|
||||
- ee/spec/migrations/update_occurrence_severity_column_spec.rb
|
||||
- ee/spec/migrations/update_undefined_confidence_from_occurrences_spec.rb
|
||||
- ee/spec/migrations/update_undefined_confidence_from_vulnerabilities_spec.rb
|
||||
- ee/spec/migrations/update_vulnerability_severity_column_spec.rb
|
||||
- ee/spec/models/ee/namespace_spec.rb
|
||||
- ee/spec/models/geo_node_status_spec.rb
|
||||
- ee/spec/models/issue_spec.rb
|
||||
- ee/spec/models/merge_request_spec.rb
|
||||
- ee/spec/models/project_import_state_spec.rb
|
||||
- ee/spec/models/push_rule_spec.rb
|
||||
- ee/spec/presenters/ci/pipeline_presenter_spec.rb
|
||||
- ee/spec/presenters/projects/security/configuration_presenter_spec.rb
|
||||
- ee/spec/requests/api/geo_nodes_spec.rb
|
||||
- ee/spec/requests/api/graphql/mutations/dast_on_demand_scans/create_spec.rb
|
||||
- ee/spec/requests/api/graphql/mutations/dast_site_profiles/delete_spec.rb
|
||||
- ee/spec/requests/api/graphql/mutations/pipelines/run_dast_scan_spec.rb
|
||||
- ee/spec/requests/api/issues_spec.rb
|
||||
- ee/spec/requests/api/projects_spec.rb
|
||||
- ee/spec/requests/git_http_spec.rb
|
||||
- ee/spec/requests/groups_controller_spec.rb
|
||||
- ee/spec/requests/omniauth_kerberos_spnego_spec.rb
|
||||
- ee/spec/requests/repositories/git_http_controller_spec.rb
|
||||
- ee/spec/services/alert_management/network_alert_service_spec.rb
|
||||
- ee/spec/services/ci/expire_pipeline_cache_service_spec.rb
|
||||
- ee/spec/services/ci/run_dast_scan_service_spec.rb
|
||||
- ee/spec/services/ee/git/branch_push_service_spec.rb
|
||||
- ee/spec/services/ee/merge_requests/create_from_vulnerability_data_service_spec.rb
|
||||
- ee/spec/services/ee/merge_requests/refresh_service_spec.rb
|
||||
- ee/spec/services/ee/security/ingress_modsecurity_usage_service_spec.rb
|
||||
- ee/spec/services/ee/users/create_service_spec.rb
|
||||
- ee/spec/services/ee/users/destroy_service_spec.rb
|
||||
- ee/spec/services/geo/container_repository_sync_service_spec.rb
|
||||
- ee/spec/services/geo/design_repository_sync_service_spec.rb
|
||||
- ee/spec/services/geo/framework_repository_sync_service_spec.rb
|
||||
- ee/spec/services/geo/hashed_storage_migration_service_spec.rb
|
||||
- ee/spec/services/geo/metrics_update_service_spec.rb
|
||||
- ee/spec/services/geo/move_repository_service_spec.rb
|
||||
- ee/spec/services/geo/project_housekeeping_service_spec.rb
|
||||
- ee/spec/services/geo/rename_repository_service_spec.rb
|
||||
- ee/spec/services/geo/repository_destroy_service_spec.rb
|
||||
- ee/spec/services/geo/repository_sync_service_spec.rb
|
||||
- ee/spec/services/geo/wiki_sync_service_spec.rb
|
||||
- ee/spec/services/groups/destroy_service_spec.rb
|
||||
- ee/spec/services/groups/update_service_spec.rb
|
||||
- ee/spec/services/merge_trains/check_status_service_spec.rb
|
||||
- ee/spec/services/network_policies/resources_service_spec.rb
|
||||
- ee/spec/services/projects/destroy_service_spec.rb
|
||||
- ee/spec/services/projects/group_links/destroy_service_spec.rb
|
||||
- ee/spec/services/projects/update_service_spec.rb
|
||||
- ee/spec/services/slash_commands/global_slack_handler_spec.rb
|
||||
- ee/spec/support/helpers/ee/stub_configuration.rb
|
||||
- ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb
|
||||
- ee/spec/support/shared_examples/features/ultimate_trial_callout_shared_examples.rb
|
||||
- ee/spec/support/shared_examples/lib/gitlab/geo/geo_logs_event_source_info_shared_examples.rb
|
||||
- ee/spec/support/shared_examples/models/member_shared_examples.rb
|
||||
- ee/spec/support/shared_examples/services/base_sync_service_shared_examples.rb
|
||||
- ee/spec/support/shared_examples/services/geo/geo_request_service_shared_examples.rb
|
||||
- ee/spec/workers/build_finished_worker_spec.rb
|
||||
- ee/spec/workers/concerns/elastic/indexing_control_spec.rb
|
||||
- ee/spec/workers/elastic_commit_indexer_worker_spec.rb
|
||||
- ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb
|
||||
- ee/spec/workers/geo/file_download_dispatch_worker_spec.rb
|
||||
- ee/spec/workers/geo/registry_sync_worker_spec.rb
|
||||
- ee/spec/workers/geo/repository_cleanup_worker_spec.rb
|
||||
- ee/spec/workers/geo/repository_shard_sync_worker_spec.rb
|
||||
- ee/spec/workers/project_cache_worker_spec.rb
|
||||
- ee/spec/workers/repository_import_worker_spec.rb
|
||||
- ee/spec/workers/vulnerability_exports/export_deletion_worker_spec.rb
|
||||
- qa/spec/runtime/release_spec.rb
|
||||
- spec/controllers/admin/sessions_controller_spec.rb
|
||||
- spec/controllers/application_controller_spec.rb
|
||||
- spec/controllers/concerns/issuable_actions_spec.rb
|
||||
- spec/controllers/concerns/static_object_external_storage_spec.rb
|
||||
- spec/controllers/explore/projects_controller_spec.rb
|
||||
- spec/controllers/groups/clusters_controller_spec.rb
|
||||
- spec/controllers/groups/settings/ci_cd_controller_spec.rb
|
||||
- spec/controllers/groups_controller_spec.rb
|
||||
- spec/controllers/import/bitbucket_controller_spec.rb
|
||||
- spec/controllers/oauth/jira/authorizations_controller_spec.rb
|
||||
- spec/controllers/omniauth_callbacks_controller_spec.rb
|
||||
- spec/controllers/projects/artifacts_controller_spec.rb
|
||||
- spec/controllers/projects/branches_controller_spec.rb
|
||||
- spec/controllers/projects/clusters_controller_spec.rb
|
||||
- spec/controllers/projects/commit_controller_spec.rb
|
||||
- spec/controllers/projects/commits_controller_spec.rb
|
||||
- spec/controllers/projects/environments_controller_spec.rb
|
||||
- spec/controllers/projects/imports_controller_spec.rb
|
||||
- spec/controllers/projects/issues_controller_spec.rb
|
||||
- spec/controllers/projects/jobs_controller_spec.rb
|
||||
- spec/controllers/projects/labels_controller_spec.rb
|
||||
- spec/controllers/projects/merge_requests_controller_spec.rb
|
||||
- spec/controllers/projects/pipelines_controller_spec.rb
|
||||
- spec/controllers/projects/service_hook_logs_controller_spec.rb
|
||||
- spec/controllers/projects/services_controller_spec.rb
|
||||
- spec/controllers/projects/tags_controller_spec.rb
|
||||
- spec/controllers/registrations/experience_levels_controller_spec.rb
|
||||
- spec/controllers/registrations_controller_spec.rb
|
||||
- spec/controllers/sessions_controller_spec.rb
|
||||
- spec/controllers/snippets/notes_controller_spec.rb
|
||||
- spec/controllers/snippets_controller_spec.rb
|
||||
- spec/features/admin/admin_mode/login_spec.rb
|
||||
- spec/features/groups/clusters/eks_spec.rb
|
||||
- spec/features/groups/members/tabs_spec.rb
|
||||
- spec/features/ide/static_object_external_storage_csp_spec.rb
|
||||
- spec/features/issuables/issuable_list_spec.rb
|
||||
- spec/features/issues/form_spec.rb
|
||||
- spec/features/merge_request/user_creates_image_diff_notes_spec.rb
|
||||
- spec/features/merge_request/user_reviews_image_spec.rb
|
||||
- spec/features/merge_request/user_sees_diff_spec.rb
|
||||
- spec/features/merge_request/user_sees_merge_widget_spec.rb
|
||||
- spec/features/profiles/personal_access_tokens_spec.rb
|
||||
- spec/features/projects/clusters/gcp_spec.rb
|
||||
- spec/features/projects/clusters_spec.rb
|
||||
- spec/features/projects/container_registry_spec.rb
|
||||
- spec/features/projects/files/user_browses_lfs_files_spec.rb
|
||||
- spec/features/projects/jobs_spec.rb
|
||||
- spec/features/projects/navbar_spec.rb
|
||||
- spec/features/projects/pages_spec.rb
|
||||
- spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb
|
||||
- spec/features/projects/settings/service_desk_setting_spec.rb
|
||||
- spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
|
||||
- spec/features/snippets/embedded_snippet_spec.rb
|
||||
- spec/features/usage_stats_consent_spec.rb
|
||||
- spec/finders/prometheus_metrics_finder_spec.rb
|
||||
- spec/graphql/mutations/alert_management/create_alert_issue_spec.rb
|
||||
- spec/graphql/mutations/alert_management/http_integration/create_spec.rb
|
||||
- spec/graphql/mutations/alert_management/http_integration/destroy_spec.rb
|
||||
- spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb
|
||||
- spec/graphql/mutations/alert_management/http_integration/update_spec.rb
|
||||
- spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb
|
||||
- spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb
|
||||
- spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb
|
||||
- spec/helpers/analytics/unique_visits_helper_spec.rb
|
||||
- spec/helpers/projects_helper_spec.rb
|
||||
- spec/initializers/lograge_spec.rb
|
||||
- spec/lib/api/entities/merge_request_basic_spec.rb
|
||||
- spec/lib/api/entities/merge_request_changes_spec.rb
|
||||
- spec/lib/api/helpers_spec.rb
|
||||
- spec/lib/backup/files_spec.rb
|
||||
- spec/lib/backup/manager_spec.rb
|
||||
- spec/lib/banzai/commit_renderer_spec.rb
|
||||
- spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb
|
||||
- spec/lib/banzai/filter/references/issue_reference_filter_spec.rb
|
||||
- spec/lib/banzai/filter/repository_link_filter_spec.rb
|
||||
- spec/lib/banzai/pipeline/gfm_pipeline_spec.rb
|
||||
- spec/lib/extracts_ref_spec.rb
|
||||
- spec/lib/feature_spec.rb
|
||||
- spec/lib/gitlab/app_logger_spec.rb
|
||||
- spec/lib/gitlab/asciidoc_spec.rb
|
||||
- spec/lib/gitlab/auth/auth_finders_spec.rb
|
||||
- spec/lib/gitlab/auth/blocked_user_tracker_spec.rb
|
||||
- spec/lib/gitlab/auth/request_authenticator_spec.rb
|
||||
- spec/lib/gitlab/auth_spec.rb
|
||||
- spec/lib/gitlab/background_migration/populate_personal_snippet_statistics_spec.rb
|
||||
- spec/lib/gitlab/background_migration/populate_project_snippet_statistics_spec.rb
|
||||
- spec/lib/gitlab/checks/diff_check_spec.rb
|
||||
- spec/lib/gitlab/checks/lfs_check_spec.rb
|
||||
- spec/lib/gitlab/checks/lfs_integrity_spec.rb
|
||||
- spec/lib/gitlab/ci/config/external/file/base_spec.rb
|
||||
- spec/lib/gitlab/ci/config/external/file/local_spec.rb
|
||||
- spec/lib/gitlab/ci/config/external/processor_spec.rb
|
||||
- spec/lib/gitlab/ci/pipeline/chain/build_spec.rb
|
||||
- spec/lib/gitlab/ci/pipeline/chain/command_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/npm_spec.rb
|
||||
- spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb
|
||||
- spec/lib/gitlab/ci/trace_spec.rb
|
||||
- spec/lib/gitlab/current_settings_spec.rb
|
||||
- spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb
|
||||
- spec/lib/gitlab/database/multi_threaded_migration_spec.rb
|
||||
- spec/lib/gitlab/diff/highlight_cache_spec.rb
|
||||
- spec/lib/gitlab/diff/highlight_spec.rb
|
||||
- spec/lib/gitlab/diff/position_spec.rb
|
||||
- spec/lib/gitlab/email/handler/create_issue_handler_spec.rb
|
||||
- spec/lib/gitlab/email/handler/create_note_handler_spec.rb
|
||||
- spec/lib/gitlab/etag_caching/middleware_spec.rb
|
||||
- spec/lib/gitlab/exclusive_lease_helpers_spec.rb
|
||||
- spec/lib/gitlab/fogbugz_import/importer_spec.rb
|
||||
- spec/lib/gitlab/gfm/reference_rewriter_spec.rb
|
||||
- spec/lib/gitlab/git/repository_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/blob_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/commit_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/health_check_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/operation_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/ref_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/remote_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/repository_service_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/wiki_service_spec.rb
|
||||
- spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb
|
||||
- spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb
|
||||
- spec/lib/gitlab/hashed_storage/migrator_spec.rb
|
||||
- spec/lib/gitlab/import/merge_request_helpers_spec.rb
|
||||
- spec/lib/gitlab/import_export/config_spec.rb
|
||||
- spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb
|
||||
- spec/lib/gitlab/import_export/importer_spec.rb
|
||||
- spec/lib/gitlab/import_export/lfs_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/project/tree_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb
|
||||
- spec/lib/gitlab/import_export/version_checker_spec.rb
|
||||
- spec/lib/gitlab/job_waiter_spec.rb
|
||||
- spec/lib/gitlab/legacy_github_import/importer_spec.rb
|
||||
- spec/lib/gitlab/legacy_github_import/project_creator_spec.rb
|
||||
- spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb
|
||||
- spec/lib/gitlab/metrics/rack_middleware_spec.rb
|
||||
- spec/lib/gitlab/metrics/subscribers/active_record_spec.rb
|
||||
- spec/lib/gitlab/metrics_spec.rb
|
||||
- spec/lib/gitlab/patch/action_dispatch_journey_formatter_spec.rb
|
||||
- spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb
|
||||
- spec/lib/gitlab/sidekiq_middleware_spec.rb
|
||||
- spec/lib/gitlab/tracking/destinations/product_analytics_spec.rb
|
||||
- spec/lib/gitlab/tracking/destinations/snowplow_spec.rb
|
||||
- spec/lib/gitlab/tracking_spec.rb
|
||||
- spec/lib/gitlab/usage_data_spec.rb
|
||||
- spec/lib/gitlab/workhorse_spec.rb
|
||||
- spec/lib/gitlab/x509/commit_spec.rb
|
||||
- spec/lib/gitlab/x509/signature_spec.rb
|
||||
- spec/lib/google_api/cloud_platform/client_spec.rb
|
||||
- spec/lib/json_web_token/rsa_token_spec.rb
|
||||
- spec/lib/mattermost/command_spec.rb
|
||||
- spec/lib/mattermost/team_spec.rb
|
||||
- spec/lib/system_check/simple_executor_spec.rb
|
||||
- spec/models/ci/build_spec.rb
|
||||
- spec/models/ci/runner_spec.rb
|
||||
- spec/models/commit_spec.rb
|
||||
- spec/models/environment_spec.rb
|
||||
- spec/models/group_spec.rb
|
||||
- spec/models/hooks/service_hook_spec.rb
|
||||
- spec/models/hooks/system_hook_spec.rb
|
||||
- spec/models/hooks/web_hook_spec.rb
|
||||
- spec/models/integrations/jira_spec.rb
|
||||
- spec/models/integrations/mattermost_slash_commands_spec.rb
|
||||
- spec/models/issue_spec.rb
|
||||
- spec/models/key_spec.rb
|
||||
- spec/models/member_spec.rb
|
||||
- spec/models/merge_request_diff_spec.rb
|
||||
- spec/models/merge_request_spec.rb
|
||||
- spec/models/note_spec.rb
|
||||
- spec/models/project_import_state_spec.rb
|
||||
- spec/models/project_spec.rb
|
||||
- spec/models/repository_spec.rb
|
||||
- spec/models/user_spec.rb
|
||||
- spec/models/x509_certificate_spec.rb
|
||||
- spec/policies/ci/build_policy_spec.rb
|
||||
- spec/policies/ci/pipeline_policy_spec.rb
|
||||
- spec/presenters/gitlab/blame_presenter_spec.rb
|
||||
- spec/presenters/merge_request_presenter_spec.rb
|
||||
- spec/requests/api/ci/runner/jobs_artifacts_spec.rb
|
||||
- spec/requests/api/ci/runner/jobs_put_spec.rb
|
||||
- spec/requests/api/ci/runner/jobs_request_post_spec.rb
|
||||
- spec/requests/api/ci/runner/jobs_trace_spec.rb
|
||||
- spec/requests/api/ci/runner/runners_delete_spec.rb
|
||||
- spec/requests/api/ci/runner/runners_post_spec.rb
|
||||
- spec/requests/api/ci/runner/runners_verify_post_spec.rb
|
||||
- spec/requests/api/graphql/gitlab_schema_spec.rb
|
||||
- spec/requests/api/graphql/project/error_tracking/sentry_detailed_error_request_spec.rb
|
||||
- spec/requests/api/graphql_spec.rb
|
||||
- spec/requests/api/helpers_spec.rb
|
||||
- spec/requests/api/internal/base_spec.rb
|
||||
- spec/requests/api/maven_packages_spec.rb
|
||||
- spec/requests/api/merge_requests_spec.rb
|
||||
- spec/requests/api/pages/pages_spec.rb
|
||||
- spec/requests/api/project_export_spec.rb
|
||||
- spec/requests/api/project_import_spec.rb
|
||||
- spec/requests/api/projects_spec.rb
|
||||
- spec/requests/api/snippets_spec.rb
|
||||
- spec/requests/api/todos_spec.rb
|
||||
- spec/requests/git_http_spec.rb
|
||||
- spec/requests/import/gitlab_projects_controller_spec.rb
|
||||
- spec/routing/routing_spec.rb
|
||||
- spec/serializers/analytics_stage_serializer_spec.rb
|
||||
- spec/serializers/merge_request_poll_cached_widget_entity_spec.rb
|
||||
- spec/serializers/merge_request_poll_widget_entity_spec.rb
|
||||
- spec/services/application_settings/update_service_spec.rb
|
||||
- spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb
|
||||
- spec/services/boards/lists/update_service_spec.rb
|
||||
- spec/services/ci/create_pipeline_service_spec.rb
|
||||
- spec/services/ci/destroy_expired_job_artifacts_service_spec.rb
|
||||
- spec/services/ci/expire_pipeline_cache_service_spec.rb
|
||||
- spec/services/ci/list_config_variables_service_spec.rb
|
||||
- spec/services/ci/register_job_service_spec.rb
|
||||
- spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb
|
||||
- spec/services/ci/retry_build_service_spec.rb
|
||||
- spec/services/ci/retry_pipeline_service_spec.rb
|
||||
- spec/services/ci/stop_environments_service_spec.rb
|
||||
- spec/services/clusters/applications/create_service_spec.rb
|
||||
- spec/services/clusters/cleanup/project_namespace_service_spec.rb
|
||||
- spec/services/clusters/cleanup/service_account_service_spec.rb
|
||||
- spec/services/deployments/older_deployments_drop_service_spec.rb
|
||||
- spec/services/deployments/update_environment_service_spec.rb
|
||||
- spec/services/draft_notes/destroy_service_spec.rb
|
||||
- spec/services/events/render_service_spec.rb
|
||||
- spec/services/git/branch_push_service_spec.rb
|
||||
- spec/services/git/process_ref_changes_service_spec.rb
|
||||
- spec/services/groups/create_service_spec.rb
|
||||
- spec/services/groups/update_service_spec.rb
|
||||
- spec/services/integrations/test/project_service_spec.rb
|
||||
- spec/services/issuable/destroy_service_spec.rb
|
||||
- spec/services/issues/close_service_spec.rb
|
||||
- spec/services/issues/reopen_service_spec.rb
|
||||
- spec/services/members/destroy_service_spec.rb
|
||||
- spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb
|
||||
- spec/services/merge_requests/build_service_spec.rb
|
||||
- spec/services/merge_requests/merge_service_spec.rb
|
||||
- spec/services/merge_requests/mergeability_check_service_spec.rb
|
||||
- spec/services/merge_requests/refresh_service_spec.rb
|
||||
- spec/services/merge_requests/reload_diffs_service_spec.rb
|
||||
- spec/services/merge_requests/resolved_discussion_notification_service_spec.rb
|
||||
- spec/services/metrics/dashboard/custom_dashboard_service_spec.rb
|
||||
- spec/services/metrics/dashboard/transient_embed_service_spec.rb
|
||||
- spec/services/notes/create_service_spec.rb
|
||||
- spec/services/notes/render_service_spec.rb
|
||||
- spec/services/packages/conan/create_package_file_service_spec.rb
|
||||
- spec/services/packages/nuget/metadata_extraction_service_spec.rb
|
||||
- spec/services/packages/nuget/update_package_from_metadata_service_spec.rb
|
||||
- spec/services/pages/delete_services_spec.rb
|
||||
- spec/services/pod_logs/elasticsearch_service_spec.rb
|
||||
- spec/services/pod_logs/kubernetes_service_spec.rb
|
||||
- spec/services/post_receive_service_spec.rb
|
||||
- spec/services/projects/after_rename_service_spec.rb
|
||||
- spec/services/projects/container_repository/cleanup_tags_service_spec.rb
|
||||
- spec/services/projects/container_repository/delete_tags_service_spec.rb
|
||||
- spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb
|
||||
- spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb
|
||||
- spec/services/projects/destroy_service_spec.rb
|
||||
- spec/services/projects/fork_service_spec.rb
|
||||
- spec/services/projects/import_service_spec.rb
|
||||
- spec/services/projects/lfs_pointers/lfs_download_service_spec.rb
|
||||
- spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb
|
||||
- spec/services/projects/prometheus/alerts/notify_service_spec.rb
|
||||
- spec/services/projects/transfer_service_spec.rb
|
||||
- spec/services/projects/update_remote_mirror_service_spec.rb
|
||||
- spec/services/projects/update_service_spec.rb
|
||||
- spec/services/projects/update_statistics_service_spec.rb
|
||||
- spec/services/resource_events/change_labels_service_spec.rb
|
||||
- spec/services/search_service_spec.rb
|
||||
- spec/services/snippets/create_service_spec.rb
|
||||
- spec/services/test_hooks/project_service_spec.rb
|
||||
- spec/services/test_hooks/system_service_spec.rb
|
||||
- spec/services/todo_service_spec.rb
|
||||
- spec/services/users/destroy_service_spec.rb
|
||||
- spec/services/users/migrate_to_ghost_user_service_spec.rb
|
||||
- spec/spec_helper.rb
|
||||
- spec/support/capybara.rb
|
||||
- spec/support/helpers/api_helpers.rb
|
||||
- spec/support/helpers/graphql_helpers.rb
|
||||
- spec/support/helpers/ldap_helpers.rb
|
||||
- spec/support/helpers/login_helpers.rb
|
||||
- spec/support/helpers/metrics_dashboard_url_helpers.rb
|
||||
- spec/support/helpers/rake_helpers.rb
|
||||
- spec/support/helpers/stub_configuration.rb
|
||||
- spec/support/helpers/stub_gitlab_calls.rb
|
||||
- spec/support/helpers/test_env.rb
|
||||
- spec/support/import_export/common_util.rb
|
||||
- spec/support/services/migrate_to_ghost_user_service_shared_examples.rb
|
||||
- spec/support/shared_contexts/email_shared_context.rb
|
||||
- spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb
|
||||
- spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/issuable_notes_filter_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/issuables_requiring_filter_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/set_sort_order_from_user_preference_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/unique_visits_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/update_invalid_issuable_shared_examples.rb
|
||||
- spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb
|
||||
- spec/support/shared_examples/features/archive_download_buttons_shared_examples.rb
|
||||
- spec/support/shared_examples/features/snippets_shared_examples.rb
|
||||
- spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb
|
||||
- spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb
|
||||
- spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb
|
||||
- spec/support/shared_examples/models/integrations/base_slash_commands_shared_examples.rb
|
||||
- spec/support/shared_examples/models/mentionable_shared_examples.rb
|
||||
- spec/support/shared_examples/models/with_uploads_shared_examples.rb
|
||||
- spec/support/shared_examples/path_extraction_shared_examples.rb
|
||||
- spec/support/shared_examples/requests/api/discussions_shared_examples.rb
|
||||
- spec/support/shared_examples/requests/api/snippets_shared_examples.rb
|
||||
- spec/support/shared_examples/requests/rack_attack_shared_examples.rb
|
||||
- spec/support/shared_examples/requests/snippet_shared_examples.rb
|
||||
- spec/support/shared_examples/services/alert_management_shared_examples.rb
|
||||
- spec/support/shared_examples/services/boards/boards_list_service_shared_examples.rb
|
||||
- spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb
|
||||
- spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb
|
||||
- spec/support/shared_examples/services/issuable_shared_examples.rb
|
||||
- spec/support/shared_examples/uploaders/object_storage_shared_examples.rb
|
||||
- spec/support/shared_examples/workers/authorized_projects_worker_shared_example.rb
|
||||
- spec/support/shared_examples/workers/reactive_cacheable_shared_examples.rb
|
||||
- spec/support/snowplow.rb
|
||||
- spec/tasks/gitlab/cleanup_rake_spec.rb
|
||||
- spec/tasks/gitlab/container_registry_rake_spec.rb
|
||||
- spec/tasks/gitlab/db_rake_spec.rb
|
||||
- spec/tasks/gitlab/git_rake_spec.rb
|
||||
- spec/tasks/gitlab/praefect_rake_spec.rb
|
||||
- spec/tasks/gitlab/shell_rake_spec.rb
|
||||
- spec/tasks/gitlab/x509/update_rake_spec.rb
|
||||
- spec/uploaders/file_mover_spec.rb
|
||||
- spec/uploaders/records_uploads_spec.rb
|
||||
- spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb
|
||||
- spec/views/layouts/_head.html.haml_spec.rb
|
||||
- spec/views/projects/artifacts/_artifact.html.haml_spec.rb
|
||||
- spec/workers/archive_trace_worker_spec.rb
|
||||
- spec/workers/build_coverage_worker_spec.rb
|
||||
- spec/workers/build_hooks_worker_spec.rb
|
||||
- spec/workers/build_trace_sections_worker_spec.rb
|
||||
- spec/workers/ci/build_schedule_worker_spec.rb
|
||||
- spec/workers/ci/daily_build_group_report_results_worker_spec.rb
|
||||
- spec/workers/cluster_configure_istio_worker_spec.rb
|
||||
- spec/workers/cluster_provision_worker_spec.rb
|
||||
- spec/workers/clusters/cleanup/project_namespace_worker_spec.rb
|
||||
- spec/workers/clusters/cleanup/service_account_worker_spec.rb
|
||||
- spec/workers/concerns/project_import_options_spec.rb
|
||||
- spec/workers/create_commit_signature_worker_spec.rb
|
||||
- spec/workers/create_note_diff_file_worker_spec.rb
|
||||
- spec/workers/delete_diff_files_worker_spec.rb
|
||||
- spec/workers/email_receiver_worker_spec.rb
|
||||
- spec/workers/emails_on_push_worker_spec.rb
|
||||
- spec/workers/error_tracking_issue_link_worker_spec.rb
|
||||
- spec/workers/expire_pipeline_cache_worker_spec.rb
|
||||
- spec/workers/group_export_worker_spec.rb
|
||||
- spec/workers/group_import_worker_spec.rb
|
||||
- spec/workers/namespaceless_project_destroy_worker_spec.rb
|
||||
- spec/workers/namespaces/root_statistics_worker_spec.rb
|
||||
- spec/workers/new_note_worker_spec.rb
|
||||
- spec/workers/object_pool/create_worker_spec.rb
|
||||
- spec/workers/packages/nuget/extraction_worker_spec.rb
|
||||
- spec/workers/pages_remove_worker_spec.rb
|
||||
- spec/workers/pipeline_hooks_worker_spec.rb
|
||||
- spec/workers/pipeline_process_worker_spec.rb
|
||||
- spec/workers/pipeline_schedule_worker_spec.rb
|
||||
- spec/workers/project_cache_worker_spec.rb
|
||||
- spec/workers/stage_update_worker_spec.rb
|
||||
- spec/workers/stuck_ci_jobs_worker_spec.rb
|
||||
- spec/workers/wait_for_cluster_creation_worker_spec.rb
|
||||
- ee/spec/workers/security/auto_fix_worker_spec.rb
|
80
.rubocop_todo/rspec/timecop_freeze.yml
Normal file
80
.rubocop_todo/rspec/timecop_freeze.yml
Normal file
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
RSpec/TimecopFreeze:
|
||||
Exclude:
|
||||
- ee/spec/controllers/admin/application_settings_controller_spec.rb
|
||||
- ee/spec/controllers/projects/security/network_policies_controller_spec.rb
|
||||
- ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb
|
||||
- ee/spec/features/boards/sidebar_spec.rb
|
||||
- ee/spec/features/groups/analytics/cycle_analytics/filters_and_data_spec.rb
|
||||
- ee/spec/features/groups/iteration_spec.rb
|
||||
- ee/spec/features/projects/mirror_spec.rb
|
||||
- ee/spec/features/projects/services/prometheus_custom_metrics_spec.rb
|
||||
- ee/spec/finders/productivity_analytics_finder_spec.rb
|
||||
- ee/spec/frontend/fixtures/analytics.rb
|
||||
- ee/spec/helpers/vulnerabilities_helper_spec.rb
|
||||
- ee/spec/lib/analytics/merge_request_metrics_refresh_spec.rb
|
||||
- ee/spec/lib/analytics/productivity_analytics_request_params_spec.rb
|
||||
- ee/spec/lib/ee/gitlab/background_migration/populate_vulnerability_historical_statistics_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/cycle_analytics/data_collector_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/cycle_analytics/group_stage_time_summary_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_time_summary_spec.rb
|
||||
- ee/spec/lib/gitlab/analytics/type_of_work/tasks_by_type_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/group_saml/sso_enforcer_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/base_request_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/git_push_http_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/oauth/login_state_spec.rb
|
||||
- ee/spec/lib/gitlab/insights/reducers/count_per_period_reducer_spec.rb
|
||||
- ee/spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb
|
||||
- ee/spec/lib/gitlab/prometheus/queries/cluster_query_spec.rb
|
||||
- ee/spec/migrations/populate_vulnerability_historical_statistics_for_year_spec.rb
|
||||
- ee/spec/migrations/remove_duplicated_cs_findings_spec.rb
|
||||
- ee/spec/migrations/remove_duplicated_cs_findings_without_vulnerability_id_spec.rb
|
||||
- ee/spec/migrations/schedule_fix_orphan_promoted_issues_spec.rb
|
||||
- ee/spec/migrations/schedule_merge_request_any_approval_rule_migration_spec.rb
|
||||
- ee/spec/migrations/schedule_populate_resolved_on_default_branch_column_spec.rb
|
||||
- ee/spec/migrations/schedule_populate_vulnerability_historical_statistics_spec.rb
|
||||
- ee/spec/migrations/schedule_project_any_approval_rule_migration_spec.rb
|
||||
- ee/spec/migrations/set_resolved_state_on_vulnerabilities_spec.rb
|
||||
- ee/spec/migrations/20190926180443_schedule_epic_issues_after_epics_move_spec.rb
|
||||
- ee/spec/models/analytics/cycle_analytics/group_level_spec.rb
|
||||
- ee/spec/models/burndown_spec.rb
|
||||
- ee/spec/models/ee/namespace_spec.rb
|
||||
- ee/spec/models/geo/project_registry_spec.rb
|
||||
- ee/spec/models/merge_train_spec.rb
|
||||
- ee/spec/models/productivity_analytics_spec.rb
|
||||
- ee/spec/models/project_spec.rb
|
||||
- ee/spec/models/vulnerabilities/export_spec.rb
|
||||
- ee/spec/requests/api/vulnerabilities_spec.rb
|
||||
- ee/spec/services/geo/file_download_service_spec.rb
|
||||
- ee/spec/services/vulnerabilities/confirm_service_spec.rb
|
||||
- ee/spec/services/vulnerabilities/dismiss_service_spec.rb
|
||||
- ee/spec/services/vulnerabilities/resolve_service_spec.rb
|
||||
- ee/spec/services/vulnerabilities/revert_to_detected_service_spec.rb
|
||||
- ee/spec/services/vulnerability_exports/export_service_spec.rb
|
||||
- ee/spec/support/shared_contexts/lib/gitlab/insights/reducers/reducers_shared_contexts.rb
|
||||
- qa/spec/support/repeater_spec.rb
|
||||
- spec/features/users/active_sessions_spec.rb
|
||||
- spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb
|
||||
- spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb
|
||||
- spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb
|
||||
- spec/lib/gitlab/auth/unique_ips_limiter_spec.rb
|
||||
- spec/lib/gitlab/checks/timed_logger_spec.rb
|
||||
- spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb
|
||||
- spec/lib/gitlab/cycle_analytics/usage_data_spec.rb
|
||||
- spec/lib/gitlab/omniauth_logging/json_formatter_spec.rb
|
||||
- spec/lib/gitlab/puma_logging/json_formatter_spec.rb
|
||||
- spec/lib/json_web_token/hmac_token_spec.rb
|
||||
- spec/tooling/rspec_flaky/flaky_example_spec.rb
|
||||
- spec/tooling/rspec_flaky/listener_spec.rb
|
||||
- spec/models/active_session_spec.rb
|
||||
- spec/serializers/entity_date_helper_spec.rb
|
||||
- spec/support/cycle_analytics_helpers/test_generation.rb
|
||||
- spec/support/helpers/cycle_analytics_helpers.rb
|
||||
- spec/support/helpers/javascript_fixtures_helpers.rb
|
||||
- spec/support/shared_contexts/rack_attack_shared_context.rb
|
||||
- spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb
|
||||
- spec/workers/concerns/reenqueuer_spec.rb
|
||||
- spec/workers/metrics/dashboard/prune_old_annotations_worker_spec.rb
|
21
.rubocop_todo/rspec/timecop_travel.yml
Normal file
21
.rubocop_todo/rspec/timecop_travel.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
RSpec/TimecopTravel:
|
||||
Exclude:
|
||||
- ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/git_push_http_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb
|
||||
- ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb
|
||||
- ee/spec/models/broadcast_message_spec.rb
|
||||
- ee/spec/models/burndown_spec.rb
|
||||
- qa/spec/support/repeater_spec.rb
|
||||
- spec/features/users/terms_spec.rb
|
||||
- spec/lib/feature_spec.rb
|
||||
- spec/models/broadcast_message_spec.rb
|
||||
- spec/models/concerns/issuable_spec.rb
|
||||
- spec/requests/api/ci/runner/jobs_trace_spec.rb
|
||||
- spec/requests/api/issues/put_projects_issues_spec.rb
|
||||
- spec/support/shared_contexts/cache_allowed_users_in_namespace_shared_context.rb
|
||||
- spec/support/shared_examples/requests/api/time_tracking_shared_examples.rb
|
||||
- spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb
|
||||
- spec/workers/concerns/reenqueuer_spec.rb
|
||||
- spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb
|
55
.rubocop_todo/style/open_struct_use.yml
Normal file
55
.rubocop_todo/style/open_struct_use.yml
Normal file
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
Style/OpenStructUse:
|
||||
Exclude:
|
||||
- app/helpers/application_settings_helper.rb
|
||||
- ee/spec/db/production/license_spec.rb
|
||||
- ee/spec/features/projects/new_project_spec.rb
|
||||
- ee/spec/finders/template_finder_spec.rb
|
||||
- ee/spec/graphql/ee/resolvers/board_lists_resolver_spec.rb
|
||||
- ee/spec/helpers/ee/blob_helper_spec.rb
|
||||
- ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb
|
||||
- ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb
|
||||
- lib/api/wikis.rb
|
||||
- lib/gitlab/git/diff_collection.rb
|
||||
- lib/gitlab/import_export/after_export_strategies/base_after_export_strategy.rb
|
||||
- lib/gitlab/testing/request_inspector_middleware.rb
|
||||
- lib/mattermost/session.rb
|
||||
- spec/controllers/admin/clusters_controller_spec.rb
|
||||
- spec/controllers/groups/clusters_controller_spec.rb
|
||||
- spec/controllers/import/fogbugz_controller_spec.rb
|
||||
- spec/controllers/import/gitlab_controller_spec.rb
|
||||
- spec/controllers/projects/clusters_controller_spec.rb
|
||||
- spec/dependencies/omniauth_saml_spec.rb
|
||||
- spec/factories/go_module_versions.rb
|
||||
- spec/factories/wiki_pages.rb
|
||||
- spec/features/projects/clusters/gcp_spec.rb
|
||||
- spec/features/projects/clusters_spec.rb
|
||||
- spec/finders/template_finder_spec.rb
|
||||
- spec/graphql/mutations/branches/create_spec.rb
|
||||
- spec/graphql/mutations/clusters/agent_tokens/create_spec.rb
|
||||
- spec/graphql/mutations/clusters/agents/create_spec.rb
|
||||
- spec/graphql/mutations/clusters/agents/delete_spec.rb
|
||||
- spec/graphql/mutations/commits/create_spec.rb
|
||||
- spec/helpers/application_settings_helper_spec.rb
|
||||
- spec/helpers/profiles_helper_spec.rb
|
||||
- spec/initializers/doorkeeper_spec.rb
|
||||
- spec/lib/gitlab/auth/o_auth/provider_spec.rb
|
||||
- spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb
|
||||
- spec/lib/gitlab/database/migrations/runner_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb
|
||||
- spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb
|
||||
- spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb
|
||||
- spec/lib/gitlab/legacy_github_import/project_creator_spec.rb
|
||||
- spec/lib/gitlab/quick_actions/command_definition_spec.rb
|
||||
- spec/models/design_management/design_action_spec.rb
|
||||
- spec/models/design_management/design_at_version_spec.rb
|
||||
- spec/models/user_spec.rb
|
||||
- spec/presenters/packages/nuget/search_results_presenter_spec.rb
|
||||
- spec/services/packages/nuget/metadata_extraction_service_spec.rb
|
||||
- spec/services/projects/import_service_spec.rb
|
||||
- spec/services/system_note_service_spec.rb
|
||||
- spec/support/helpers/import_spec_helper.rb
|
||||
- spec/support/helpers/login_helpers.rb
|
||||
- spec/support/helpers/repo_helpers.rb
|
||||
- spec/tooling/rspec_flaky/flaky_example_spec.rb
|
||||
- tooling/rspec_flaky/flaky_example.rb
|
|
@ -2,6 +2,15 @@
|
|||
documentation](doc/development/changelog.md) for instructions on adding your own
|
||||
entry.
|
||||
|
||||
## 14.5.1 (2021-12-01)
|
||||
|
||||
### Fixed (4 changes)
|
||||
|
||||
- [Check validation for license only if new record](gitlab-org/gitlab@3e34c2dc431a2b1c1828f5154a4d2be350359b16) ([merge request](gitlab-org/gitlab!75498)) **GitLab Enterprise Edition**
|
||||
- [Fix for hexadecimal branch deletion](gitlab-org/gitlab@eb74cd44edac0c16c44aa11d710b742586c31741) ([merge request](gitlab-org/gitlab!75498))
|
||||
- [Fix the SSL_CERT_DIR logging on git operations](gitlab-org/gitlab@6ef3b63ad5e58baa0e0e0a922fe43a2fb4494508) ([merge request](gitlab-org/gitlab!75498))
|
||||
- [Support Action Cable on GCP Memorystore](gitlab-org/gitlab@d62aa5bcbad5851209a9d248ca267d0c46d1e7c9) ([merge request](gitlab-org/gitlab!75498))
|
||||
|
||||
## 14.5.0 (2021-11-19)
|
||||
|
||||
### Added (113 changes)
|
||||
|
|
|
@ -46,7 +46,6 @@ export default {
|
|||
attributes: [{ variant: 'confirm', 'data-qa-selector': 'approve_user_confirm_button' }],
|
||||
},
|
||||
messageHtml,
|
||||
'data-qa-selector': 'approve_user_button',
|
||||
},
|
||||
});
|
||||
},
|
||||
|
@ -55,7 +54,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<gl-dropdown-item @click="onClick">
|
||||
<gl-dropdown-item data-qa-selector="approve_user_button" @click="onClick">
|
||||
<slot></slot>
|
||||
</gl-dropdown-item>
|
||||
</template>
|
||||
|
|
|
@ -3,6 +3,7 @@ import Mousetrap from 'mousetrap';
|
|||
import { clickCopyToClipboardButton } from '~/behaviors/copy_to_clipboard';
|
||||
import { getSelectedFragment } from '~/lib/utils/common_utils';
|
||||
import { isElementVisible } from '~/lib/utils/dom_utils';
|
||||
import { DEBOUNCE_DROPDOWN_DELAY } from '~/vue_shared/components/sidebar/labels_select_widget/constants';
|
||||
import Sidebar from '../../right_sidebar';
|
||||
import { CopyAsGFM } from '../markdown/copy_as_gfm';
|
||||
import {
|
||||
|
@ -114,6 +115,11 @@ export default class ShortcutsIssuable extends Shortcuts {
|
|||
|
||||
static openSidebarDropdown(name) {
|
||||
Sidebar.instance.openDropdown(name);
|
||||
// Wait for the sidebar to trigger('click') open
|
||||
// so it doesn't cause our dropdown to close preemptively
|
||||
setTimeout(() => {
|
||||
document.querySelector(`.block.${name} .shortcut-sidebar-dropdown-toggle`).click();
|
||||
}, DEBOUNCE_DROPDOWN_DELAY);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ import { MountingPortal } from 'portal-vue';
|
|||
import { mapState, mapActions, mapGetters } from 'vuex';
|
||||
import SidebarDropdownWidget from 'ee_else_ce/sidebar/components/sidebar_dropdown_widget.vue';
|
||||
import { __, sprintf } from '~/locale';
|
||||
import BoardSidebarLabelsSelect from '~/boards/components/sidebar/board_sidebar_labels_select.vue';
|
||||
import BoardSidebarTimeTracker from '~/boards/components/sidebar/board_sidebar_time_tracker.vue';
|
||||
import BoardSidebarTitle from '~/boards/components/sidebar/board_sidebar_title.vue';
|
||||
import { ISSUABLE } from '~/boards/constants';
|
||||
|
@ -26,7 +25,6 @@ export default {
|
|||
SidebarDateWidget,
|
||||
SidebarConfidentialityWidget,
|
||||
BoardSidebarTimeTracker,
|
||||
BoardSidebarLabelsSelect,
|
||||
SidebarLabelsWidget,
|
||||
SidebarSubscriptionsWidget,
|
||||
SidebarDropdownWidget,
|
||||
|
@ -210,7 +208,6 @@ export default {
|
|||
data-testid="sidebar-due-date"
|
||||
/>
|
||||
<sidebar-labels-widget
|
||||
v-if="glFeatures.labelsWidget"
|
||||
class="block labels"
|
||||
data-testid="sidebar-labels"
|
||||
:iid="activeBoardItem.iid"
|
||||
|
@ -230,7 +227,6 @@ export default {
|
|||
>
|
||||
{{ __('None') }}
|
||||
</sidebar-labels-widget>
|
||||
<board-sidebar-labels-select v-else class="block labels" />
|
||||
<sidebar-weight-widget
|
||||
v-if="weightFeatureAvailable"
|
||||
:iid="activeBoardItem.iid"
|
||||
|
|
|
@ -39,7 +39,6 @@ import boardLabelsQuery from '../graphql/board_labels.query.graphql';
|
|||
import groupBoardMilestonesQuery from '../graphql/group_board_milestones.query.graphql';
|
||||
import groupProjectsQuery from '../graphql/group_projects.query.graphql';
|
||||
import issueCreateMutation from '../graphql/issue_create.mutation.graphql';
|
||||
import issueSetLabelsMutation from '../graphql/issue_set_labels.mutation.graphql';
|
||||
import listsIssuesQuery from '../graphql/lists_issues.query.graphql';
|
||||
import projectBoardMilestonesQuery from '../graphql/project_board_milestones.query.graphql';
|
||||
|
||||
|
@ -609,33 +608,6 @@ export default {
|
|||
setActiveIssueLabels: async ({ commit, getters }, input) => {
|
||||
const { activeBoardItem } = getters;
|
||||
|
||||
if (!gon.features?.labelsWidget) {
|
||||
const { data } = await gqlClient.mutate({
|
||||
mutation: issueSetLabelsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
iid: input.iid || String(activeBoardItem.iid),
|
||||
labelIds: input.labelsId ?? undefined,
|
||||
addLabelIds: input.addLabelIds ?? [],
|
||||
removeLabelIds: input.removeLabelIds ?? [],
|
||||
projectPath: input.projectPath,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
if (data.updateIssue?.errors?.length > 0) {
|
||||
throw new Error(data.updateIssue.errors);
|
||||
}
|
||||
|
||||
commit(types.UPDATE_BOARD_ITEM_BY_ID, {
|
||||
itemId: data.updateIssue?.issue?.id || activeBoardItem.id,
|
||||
prop: 'labels',
|
||||
value: data.updateIssue?.issue?.labels.nodes,
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
let labels = input?.labels || [];
|
||||
if (input.removeLabelIds) {
|
||||
labels = activeBoardItem.labels.filter(
|
||||
|
|
|
@ -130,7 +130,6 @@ const createFlash = function createFlash({
|
|||
|
||||
export {
|
||||
createFlash as default,
|
||||
createFlashEl,
|
||||
createAction,
|
||||
hideFlash,
|
||||
removeFlashClickListener,
|
||||
|
|
|
@ -13,5 +13,6 @@ export default {
|
|||
'diffEditor.insertedTextBackground': '#a0f5b420',
|
||||
'diffEditor.removedTextBackground': '#f9d7dc20',
|
||||
'editorIndentGuide.activeBackground': '#cccccc',
|
||||
'editorSuggestWidget.focusHighlightForeground': '#96D8FD',
|
||||
},
|
||||
};
|
||||
|
|
|
@ -142,5 +142,6 @@ export default {
|
|||
'diffEditor.insertedTextBackground': '#a0f5b420',
|
||||
'diffEditor.removedTextBackground': '#f9d7dc20',
|
||||
'editorIndentGuide.activeBackground': '#cccccc',
|
||||
'editorSuggestWidget.focusHighlightForeground': '#96D8FD',
|
||||
},
|
||||
};
|
||||
|
|
|
@ -10,6 +10,7 @@ export default () => {
|
|||
removeFormId = null,
|
||||
phrase,
|
||||
buttonText,
|
||||
buttonClass = '',
|
||||
buttonTestid = null,
|
||||
confirmDangerMessage,
|
||||
disabled = false,
|
||||
|
@ -25,6 +26,7 @@ export default () => {
|
|||
props: {
|
||||
phrase,
|
||||
buttonText,
|
||||
buttonClass,
|
||||
buttonTestid,
|
||||
disabled: parseBoolean(disabled),
|
||||
},
|
||||
|
|
|
@ -280,6 +280,7 @@ export default {
|
|||
v-if="showDraft(discussion.reply_id)"
|
||||
:key="`draft_${discussion.id}`"
|
||||
:draft="draftForDiscussion(discussion.reply_id)"
|
||||
:line="line"
|
||||
/>
|
||||
<div
|
||||
v-else-if="canShowReplyActions && showReplies"
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
import $ from 'jquery';
|
||||
import Cookies from 'js-cookie';
|
||||
import { hide, fixTitle } from '~/tooltips';
|
||||
import { DEBOUNCE_DROPDOWN_DELAY } from '~/vue_shared/components/sidebar/labels_select_widget/constants';
|
||||
import createFlash from './flash';
|
||||
import axios from './lib/utils/axios_utils';
|
||||
import { sprintf, s__, __ } from './locale';
|
||||
|
@ -127,14 +126,6 @@ Sidebar.prototype.openDropdown = function (blockOrName) {
|
|||
this.setCollapseAfterUpdate($block);
|
||||
this.toggleSidebar('open');
|
||||
}
|
||||
|
||||
// Wait for the sidebar to trigger('click') open
|
||||
// so it doesn't cause our dropdown to close preemptively
|
||||
setTimeout(() => {
|
||||
if (!gon.features?.labelsWidget && !$block.hasClass('labels-select-wrapper')) {
|
||||
$block.find('.js-sidebar-dropdown-toggle').trigger('click');
|
||||
}
|
||||
}, DEBOUNCE_DROPDOWN_DELAY);
|
||||
};
|
||||
|
||||
Sidebar.prototype.setCollapseAfterUpdate = function ($block) {
|
||||
|
|
|
@ -1,152 +1,24 @@
|
|||
<script>
|
||||
import $ from 'jquery';
|
||||
import { camelCase, difference, union } from 'lodash';
|
||||
import updateIssueLabelsMutation from '~/boards/graphql/issue_set_labels.mutation.graphql';
|
||||
import createFlash from '~/flash';
|
||||
import { getIdFromGraphQLId, MutationOperationMode } from '~/graphql_shared/utils';
|
||||
import { IssuableType } from '~/issue_show/constants';
|
||||
import { __ } from '~/locale';
|
||||
import updateMergeRequestLabelsMutation from '~/sidebar/queries/update_merge_request_labels.mutation.graphql';
|
||||
import { toLabelGid } from '~/sidebar/utils';
|
||||
import { DropdownVariant } from '~/vue_shared/components/sidebar/labels_select_vue/constants';
|
||||
import LabelsSelect from '~/vue_shared/components/sidebar/labels_select_vue/labels_select_root.vue';
|
||||
import LabelsSelectWidget from '~/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue';
|
||||
import { LabelType } from '~/vue_shared/components/sidebar/labels_select_widget/constants';
|
||||
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
||||
|
||||
const mutationMap = {
|
||||
[IssuableType.Issue]: {
|
||||
mutation: updateIssueLabelsMutation,
|
||||
mutationName: 'updateIssue',
|
||||
},
|
||||
[IssuableType.MergeRequest]: {
|
||||
mutation: updateMergeRequestLabelsMutation,
|
||||
mutationName: 'mergeRequestSetLabels',
|
||||
},
|
||||
};
|
||||
|
||||
export default {
|
||||
components: {
|
||||
LabelsSelect,
|
||||
LabelsSelectWidget,
|
||||
},
|
||||
variant: DropdownVariant.Sidebar,
|
||||
mixins: [glFeatureFlagMixin()],
|
||||
inject: [
|
||||
'allowLabelCreate',
|
||||
'allowLabelEdit',
|
||||
'allowScopedLabels',
|
||||
'iid',
|
||||
'fullPath',
|
||||
'initiallySelectedLabels',
|
||||
'issuableType',
|
||||
'labelsFetchPath',
|
||||
'labelsManagePath',
|
||||
'projectIssuesPath',
|
||||
'projectPath',
|
||||
],
|
||||
inject: ['allowLabelEdit', 'iid', 'fullPath', 'issuableType', 'projectIssuesPath'],
|
||||
data() {
|
||||
return {
|
||||
isLabelsSelectInProgress: false,
|
||||
selectedLabels: this.initiallySelectedLabels,
|
||||
LabelType,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
handleDropdownClose() {
|
||||
$(this.$el).trigger('hidden.gl.dropdown');
|
||||
},
|
||||
getUpdateVariables(labels) {
|
||||
let labelIds = [];
|
||||
|
||||
if (this.glFeatures.labelsWidget) {
|
||||
labelIds = labels.map(({ id }) => toLabelGid(id));
|
||||
} else {
|
||||
const currentLabelIds = this.selectedLabels.map((label) => label.id);
|
||||
const userAddedLabelIds = labels.filter((label) => label.set).map((label) => label.id);
|
||||
const userRemovedLabelIds = labels.filter((label) => !label.set).map((label) => label.id);
|
||||
|
||||
labelIds = difference(union(currentLabelIds, userAddedLabelIds), userRemovedLabelIds).map(
|
||||
toLabelGid,
|
||||
);
|
||||
}
|
||||
|
||||
switch (this.issuableType) {
|
||||
case IssuableType.Issue:
|
||||
return {
|
||||
iid: this.iid,
|
||||
projectPath: this.projectPath,
|
||||
labelIds,
|
||||
};
|
||||
case IssuableType.MergeRequest:
|
||||
return {
|
||||
iid: this.iid,
|
||||
labelIds,
|
||||
operationMode: MutationOperationMode.Replace,
|
||||
projectPath: this.projectPath,
|
||||
};
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
},
|
||||
handleUpdateSelectedLabels(dropdownLabels) {
|
||||
this.updateSelectedLabels(this.getUpdateVariables(dropdownLabels));
|
||||
},
|
||||
getRemoveVariables(labelId) {
|
||||
switch (this.issuableType) {
|
||||
case IssuableType.Issue:
|
||||
return {
|
||||
iid: this.iid,
|
||||
projectPath: this.projectPath,
|
||||
removeLabelIds: [labelId],
|
||||
};
|
||||
case IssuableType.MergeRequest:
|
||||
return {
|
||||
iid: this.iid,
|
||||
labelIds: [toLabelGid(labelId)],
|
||||
operationMode: MutationOperationMode.Remove,
|
||||
projectPath: this.projectPath,
|
||||
};
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
},
|
||||
handleLabelRemove(labelId) {
|
||||
this.updateSelectedLabels(this.getRemoveVariables(labelId));
|
||||
},
|
||||
updateSelectedLabels(inputVariables) {
|
||||
this.isLabelsSelectInProgress = true;
|
||||
|
||||
this.$apollo
|
||||
.mutate({
|
||||
mutation: mutationMap[this.issuableType].mutation,
|
||||
variables: { input: inputVariables },
|
||||
})
|
||||
.then(({ data }) => {
|
||||
const { mutationName } = mutationMap[this.issuableType];
|
||||
|
||||
if (data[mutationName]?.errors?.length) {
|
||||
throw new Error();
|
||||
}
|
||||
|
||||
const issuableType = camelCase(this.issuableType);
|
||||
this.selectedLabels = data[mutationName]?.[issuableType]?.labels?.nodes?.map((label) => ({
|
||||
...label,
|
||||
id: getIdFromGraphQLId(label.id),
|
||||
}));
|
||||
})
|
||||
.catch(() => createFlash({ message: __('An error occurred while updating labels.') }))
|
||||
.finally(() => {
|
||||
this.isLabelsSelectInProgress = false;
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<labels-select-widget
|
||||
v-if="glFeatures.labelsWidget"
|
||||
class="block labels js-labels-block"
|
||||
:iid="iid"
|
||||
:full-path="fullPath"
|
||||
|
@ -165,28 +37,4 @@ export default {
|
|||
>
|
||||
{{ __('None') }}
|
||||
</labels-select-widget>
|
||||
<labels-select
|
||||
v-else
|
||||
class="block labels js-labels-block"
|
||||
:allow-label-remove="allowLabelEdit"
|
||||
:allow-label-create="allowLabelCreate"
|
||||
:allow-label-edit="allowLabelEdit"
|
||||
:allow-multiselect="true"
|
||||
:allow-scoped-labels="allowScopedLabels"
|
||||
:footer-create-label-title="__('Create project label')"
|
||||
:footer-manage-label-title="__('Manage project labels')"
|
||||
:labels-create-title="__('Create project label')"
|
||||
:labels-fetch-path="labelsFetchPath"
|
||||
:labels-filter-base-path="projectIssuesPath"
|
||||
:labels-manage-path="labelsManagePath"
|
||||
:labels-select-in-progress="isLabelsSelectInProgress"
|
||||
:selected-labels="selectedLabels"
|
||||
:variant="$options.sidebar"
|
||||
data-qa-selector="labels_block"
|
||||
@onDropdownClose="handleDropdownClose"
|
||||
@onLabelRemove="handleLabelRemove"
|
||||
@updateSelectedLabels="handleUpdateSelectedLabels"
|
||||
>
|
||||
{{ __('None') }}
|
||||
</labels-select>
|
||||
</template>
|
||||
|
|
|
@ -26,6 +26,11 @@ export default {
|
|||
type: String,
|
||||
required: true,
|
||||
},
|
||||
buttonClass: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
buttonTestid: {
|
||||
type: String,
|
||||
required: false,
|
||||
|
@ -39,7 +44,7 @@ export default {
|
|||
<div>
|
||||
<gl-button
|
||||
v-gl-modal="$options.modalId"
|
||||
class="gl-button"
|
||||
:class="buttonClass"
|
||||
variant="danger"
|
||||
:disabled="disabled"
|
||||
:data-testid="buttonTestid"
|
||||
|
|
|
@ -231,9 +231,10 @@ export default {
|
|||
throw new Error();
|
||||
}
|
||||
|
||||
this.issuableLabels = data[mutationName]?.[this.issuableType]?.labels?.nodes;
|
||||
this.$emit('updateSelectedLabels', {
|
||||
id: data[mutationName]?.[this.issuableType]?.id,
|
||||
labels: data[mutationName]?.[this.issuableType]?.labels?.nodes,
|
||||
labels: this.issuableLabels,
|
||||
});
|
||||
})
|
||||
.catch((error) =>
|
||||
|
|
|
@ -11,7 +11,6 @@ class Groups::BoardsController < Groups::ApplicationController
|
|||
push_frontend_feature_flag(:board_multi_select, group, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:swimlanes_buffered_rendering, group, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:iteration_cadences, group, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:labels_widget, group, default_enabled: :yaml)
|
||||
experiment(:prominent_create_board_btn, subject: current_user) do |e|
|
||||
e.use { }
|
||||
e.try { }
|
||||
|
|
|
@ -11,7 +11,6 @@ class Projects::BoardsController < Projects::ApplicationController
|
|||
push_frontend_feature_flag(:issue_boards_filtered_search, project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:board_multi_select, project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:iteration_cadences, project&.group, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:labels_widget, project, default_enabled: :yaml)
|
||||
experiment(:prominent_create_board_btn, subject: current_user) do |e|
|
||||
e.use { }
|
||||
e.try { }
|
||||
|
|
|
@ -51,7 +51,6 @@ class Projects::IssuesController < Projects::ApplicationController
|
|||
push_frontend_feature_flag(:real_time_issue_sidebar, @project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:confidential_notes, @project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:issue_assignees_widget, @project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:labels_widget, @project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:paginated_issue_discussions, @project, default_enabled: :yaml)
|
||||
|
||||
experiment(:invite_members_in_comment, namespace: @project.root_ancestor) do |experiment_instance|
|
||||
|
|
|
@ -42,7 +42,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
|
|||
push_frontend_feature_flag(:restructured_mr_widget, project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:mr_changes_fluid_layout, project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:mr_attention_requests, project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:labels_widget, project, default_enabled: :yaml)
|
||||
|
||||
# Usage data feature flags
|
||||
push_frontend_feature_flag(:users_expanding_widgets_usage_data, @project, default_enabled: :yaml)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
name: labels_widget
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62898
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/332327
|
||||
milestone: '14.0'
|
||||
name: log_implicit_sidekiq_status_calls
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74815
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/343964
|
||||
milestone: '14.6'
|
||||
type: development
|
||||
group: group::project management
|
||||
group: group::scalability
|
||||
default_enabled: false
|
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class TrackDeletionsInNamespaces < Gitlab::Database::Migration[1.0]
|
||||
include Gitlab::Database::MigrationHelpers::LooseForeignKeyHelpers
|
||||
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
track_record_deletions(:namespaces)
|
||||
end
|
||||
|
||||
def down
|
||||
untrack_record_deletions(:namespaces)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class TrackDeletionsInProjects < Gitlab::Database::Migration[1.0]
|
||||
include Gitlab::Database::MigrationHelpers::LooseForeignKeyHelpers
|
||||
|
||||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
track_record_deletions(:projects)
|
||||
end
|
||||
|
||||
def down
|
||||
untrack_record_deletions(:projects)
|
||||
end
|
||||
end
|
1
db/schema_migrations/20211130201100
Normal file
1
db/schema_migrations/20211130201100
Normal file
|
@ -0,0 +1 @@
|
|||
cc0146769929c9fbb0b7b6788826d2e188c8664a14e1015563ba4f9e65397c4e
|
1
db/schema_migrations/20211130201101
Normal file
1
db/schema_migrations/20211130201101
Normal file
|
@ -0,0 +1 @@
|
|||
b0215ac45031593ca98de4f8858d21f1c29af03742a422bffd83598e39a6871c
|
|
@ -28729,6 +28729,10 @@ CREATE TRIGGER ci_pipelines_loose_fk_trigger AFTER DELETE ON ci_pipelines REFERE
|
|||
|
||||
CREATE TRIGGER ci_runners_loose_fk_trigger AFTER DELETE ON ci_runners REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
|
||||
|
||||
CREATE TRIGGER namespaces_loose_fk_trigger AFTER DELETE ON namespaces REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
|
||||
|
||||
CREATE TRIGGER projects_loose_fk_trigger AFTER DELETE ON projects REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();
|
||||
|
||||
CREATE TRIGGER trigger_delete_project_namespace_on_project_delete AFTER DELETE ON projects FOR EACH ROW WHEN ((old.project_namespace_id IS NOT NULL)) EXECUTE FUNCTION delete_associated_project_namespace();
|
||||
|
||||
CREATE TRIGGER trigger_has_external_issue_tracker_on_delete AFTER DELETE ON integrations FOR EACH ROW WHEN ((((old.category)::text = 'issue_tracker'::text) AND (old.active = true) AND (old.project_id IS NOT NULL))) EXECUTE FUNCTION set_has_external_issue_tracker();
|
||||
|
|
|
@ -171,7 +171,10 @@ we should track our progress through the exception list.
|
|||
|
||||
When auto-generating the `.rubocop_todo.yml` exception list for a particular Cop,
|
||||
and more than 15 files are affected, we should add the exception list to
|
||||
a different file, `.rubocop_manual_todo.yml`.
|
||||
a different file within `.rubocop_todo/` directory.
|
||||
|
||||
For example, the configuration for the cop `Gitlab/NamespacedClass` is located
|
||||
in `.rubocop_todo/gitlab/namespaced_class.yml`.
|
||||
|
||||
This ensures that our list isn't mistakenly removed by another auto generation of
|
||||
the `.rubocop_todo.yml`. This also allows us greater visibility into the exceptions
|
||||
|
@ -184,19 +187,19 @@ bundle exec rake rubocop:todo:generate
|
|||
```
|
||||
|
||||
You can then move the list from the freshly generated `.rubocop_todo.yml` for the Cop being actively
|
||||
resolved and place it in the `.rubocop_manual_todo.yml`. In this scenario, do not commit auto generated
|
||||
changes to the `.rubocop_todo.yml` as an `exclude limit` that is higher than 15 will make the
|
||||
`.rubocop_todo.yml` hard to parse.
|
||||
resolved and place it in the directory `.rubocop_todo/`. In this scenario, do not commit
|
||||
auto-generated changes to the `.rubocop_todo.yml`, as an `exclude limit` that is higher than 15
|
||||
makes the `.rubocop_todo.yml` hard to parse.
|
||||
|
||||
### Reveal existing RuboCop exceptions
|
||||
|
||||
To reveal existing RuboCop exceptions in the code that have been excluded via `.rubocop_todo.yml` and
|
||||
`.rubocop_manual_todo.yml`, set the environment variable `REVEAL_RUBOCOP_TODO` to `1`.
|
||||
`.rubocop_todo/**/*.yml`, set the environment variable `REVEAL_RUBOCOP_TODO` to `1`.
|
||||
|
||||
This allows you to reveal existing RuboCop exceptions during your daily work cycle and fix them along the way.
|
||||
|
||||
NOTE:
|
||||
Permanent `Exclude`s should be defined in `.rubocop.yml` instead of `.rubocop_manual_todo.yml`.
|
||||
Define permanent `Exclude`s in `.rubocop.yml` instead of `.rubocop_todo/**/*.yml`.
|
||||
|
||||
## Database migrations
|
||||
|
||||
|
|
|
@ -36,6 +36,12 @@ On every [pipeline](https://gitlab.com/gitlab-org/gitlab/pipelines/125315730) in
|
|||
browser performance testing using a
|
||||
[Sitespeed.io Container](../../user/project/merge_requests/browser_performance_testing.md).
|
||||
|
||||
## Sample Data for Review Apps
|
||||
|
||||
Upon deployment of a review app, project data is created from the [`sample-gitlab-project`](https://gitlab.com/gitlab-org/sample-data-templates/sample-gitlab-project) template project. This aims to provide projects with prepopulated resources to facilitate manual and exploratory testing.
|
||||
|
||||
The sample projects will be created in the `root` user namespace and can be accessed from the personal projects list for that user.
|
||||
|
||||
## How to
|
||||
|
||||
### Redeploy Review App from a clean slate
|
||||
|
|
|
@ -159,6 +159,8 @@ branch already exists, the patches are applied on top of it.
|
|||
|
||||
## Set the default target project
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58093) in GitLab 13.11.
|
||||
|
||||
Merge requests have a source and a target project that are the same, unless
|
||||
forking is involved. Creating a fork of the project can cause either of these
|
||||
scenarios when you create a new merge request:
|
||||
|
|
|
@ -10,6 +10,7 @@ module API
|
|||
end
|
||||
|
||||
expose :relation_key, as: :relation_name
|
||||
expose :relation_index, as: :line_number
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,7 @@ module API
|
|||
module Entities
|
||||
class ProjectImportStatus < ProjectIdentity
|
||||
expose :import_status
|
||||
expose :import_type
|
||||
expose :correlation_id do |project, _options|
|
||||
project.import_state&.correlation_id
|
||||
end
|
||||
|
|
|
@ -107,7 +107,7 @@ module API
|
|||
params do
|
||||
requires :id, type: String, desc: 'The ID of a project'
|
||||
end
|
||||
desc 'Get a project export status' do
|
||||
desc 'Get a project import status' do
|
||||
detail 'This feature was introduced in GitLab 10.6.'
|
||||
success Entities::ProjectImportStatus
|
||||
end
|
||||
|
|
|
@ -29,13 +29,16 @@ module Gitlab
|
|||
# for most jobs.
|
||||
DEFAULT_EXPIRATION = 30.minutes.to_i
|
||||
|
||||
DEFAULT_VALUE = 1
|
||||
DEFAULT_VALUE_MESSAGE = 'Keys using the default value for SidekiqStatus detected'
|
||||
|
||||
# Starts tracking of the given job.
|
||||
#
|
||||
# jid - The Sidekiq job ID
|
||||
# expire - The expiration time of the Redis key.
|
||||
def self.set(jid, expire = DEFAULT_EXPIRATION)
|
||||
def self.set(jid, expire = DEFAULT_EXPIRATION, value: DEFAULT_VALUE)
|
||||
Sidekiq.redis do |redis|
|
||||
redis.set(key_for(jid), 1, ex: expire)
|
||||
redis.set(key_for(jid), value, ex: expire)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -88,13 +91,20 @@ module Gitlab
|
|||
# true = job is still running or enqueued
|
||||
# false = job completed
|
||||
def self.job_status(job_ids)
|
||||
keys = job_ids.map { |jid| key_for(jid) }
|
||||
return [] if job_ids.empty?
|
||||
|
||||
Sidekiq.redis do |redis|
|
||||
redis.pipelined do
|
||||
keys.each { |key| redis.exists(key) }
|
||||
end
|
||||
keys = job_ids.map { |jid| key_for(jid) }
|
||||
results = Sidekiq.redis { |redis| redis.mget(*keys) }
|
||||
|
||||
if Feature.enabled?(:log_implicit_sidekiq_status_calls, default_enabled: :yaml)
|
||||
to_log = keys.zip(results).select do |_key, result|
|
||||
result == DEFAULT_VALUE.to_s
|
||||
end.map(&:first)
|
||||
|
||||
Sidekiq.logger.info(message: DEFAULT_VALUE_MESSAGE, keys: to_log) if to_log.any?
|
||||
end
|
||||
|
||||
results.map { |result| !result.nil? }
|
||||
end
|
||||
|
||||
# Returns the JIDs that are completed
|
||||
|
|
|
@ -5,8 +5,9 @@ module Gitlab
|
|||
class ClientMiddleware
|
||||
def call(_, job, _, _)
|
||||
status_expiration = job['status_expiration'] || Gitlab::SidekiqStatus::DEFAULT_EXPIRATION
|
||||
value = job['status_expiration'] ? 2 : Gitlab::SidekiqStatus::DEFAULT_VALUE
|
||||
|
||||
Gitlab::SidekiqStatus.set(job['jid'], status_expiration)
|
||||
Gitlab::SidekiqStatus.set(job['jid'], status_expiration, value: value)
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
|
|
@ -124,15 +124,6 @@ module QA
|
|||
click_element(:more_assignees_link)
|
||||
end
|
||||
|
||||
# When the labels_widget feature flag is enabled, wait until the labels widget appears
|
||||
def wait_for_labels_widget_feature_flag
|
||||
Support::Retrier.retry_until(max_duration: 60, reload_page: page, retry_on_exception: true, sleep_interval: 5) do
|
||||
within_element(:labels_block) do
|
||||
find_element(:edit_link)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def wait_assignees_block_finish_loading
|
||||
|
|
|
@ -10,6 +10,8 @@ FactoryBot.define do
|
|||
exception_class { 'RuntimeError' }
|
||||
exception_message { 'Something went wrong' }
|
||||
source { 'method_call' }
|
||||
relation_key { 'issues' }
|
||||
relation_index { 1 }
|
||||
correlation_id_value { SecureRandom.uuid }
|
||||
|
||||
trait :hard_failure do
|
||||
|
|
|
@ -15,7 +15,6 @@ RSpec.describe "Issues > User edits issue", :js do
|
|||
|
||||
context 'with authorized user' do
|
||||
before do
|
||||
stub_feature_flags(labels_widget: false)
|
||||
project.add_developer(user)
|
||||
project_with_milestones.add_developer(user)
|
||||
sign_in(user)
|
||||
|
@ -151,7 +150,7 @@ RSpec.describe "Issues > User edits issue", :js do
|
|||
page.within '.block.labels' do
|
||||
# Remove `verisimilitude` label
|
||||
within '.gl-label' do
|
||||
click_button
|
||||
click_button 'Remove label'
|
||||
end
|
||||
|
||||
expect(page).to have_text('syzygy')
|
||||
|
|
|
@ -17,7 +17,6 @@ RSpec.describe 'Labels Hierarchy', :js do
|
|||
let!(:project_label_1) { create(:label, project: project_1, title: 'Label_4') }
|
||||
|
||||
before do
|
||||
stub_feature_flags(labels_widget: false)
|
||||
grandparent.add_owner(user)
|
||||
|
||||
sign_in(user)
|
||||
|
@ -28,16 +27,15 @@ RSpec.describe 'Labels Hierarchy', :js do
|
|||
[grandparent_group_label, parent_group_label, project_label_1].each do |label|
|
||||
page.within('.block.labels') do
|
||||
click_on 'Edit'
|
||||
|
||||
wait_for_requests
|
||||
|
||||
click_on label.title
|
||||
click_on 'Close'
|
||||
end
|
||||
|
||||
wait_for_requests
|
||||
|
||||
find('a.label-item', text: label.title).click
|
||||
wait_for_requests
|
||||
click_on 'Close'
|
||||
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_selector('.gl-label', text: label.title)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
import { GlDrawer } from '@gitlab/ui';
|
||||
import { shallowMount } from '@vue/test-utils';
|
||||
import { MountingPortal } from 'portal-vue';
|
||||
import Vue from 'vue';
|
||||
import Vuex from 'vuex';
|
||||
import SidebarDropdownWidget from 'ee_else_ce/sidebar/components/sidebar_dropdown_widget.vue';
|
||||
import { stubComponent } from 'helpers/stub_component';
|
||||
import BoardContentSidebar from '~/boards/components/board_content_sidebar.vue';
|
||||
import BoardSidebarLabelsSelect from '~/boards/components/sidebar/board_sidebar_labels_select.vue';
|
||||
import BoardSidebarTitle from '~/boards/components/sidebar/board_sidebar_title.vue';
|
||||
import { ISSUABLE } from '~/boards/constants';
|
||||
import SidebarDateWidget from '~/sidebar/components/date/sidebar_date_widget.vue';
|
||||
import SidebarSubscriptionsWidget from '~/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue';
|
||||
import SidebarTodoWidget from '~/sidebar/components/todo_toggle/sidebar_todo_widget.vue';
|
||||
import SidebarLabelsWidget from '~/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue';
|
||||
import { mockActiveIssue, mockIssue, mockIssueGroupPath, mockIssueProjectPath } from '../mock_data';
|
||||
|
||||
Vue.use(Vuex);
|
||||
describe('BoardContentSidebar', () => {
|
||||
let wrapper;
|
||||
let store;
|
||||
|
@ -32,6 +34,7 @@ describe('BoardContentSidebar', () => {
|
|||
groupPathForActiveIssue: () => mockIssueGroupPath,
|
||||
projectPathForActiveIssue: () => mockIssueProjectPath,
|
||||
isSidebarOpen: () => true,
|
||||
isGroupBoard: () => false,
|
||||
...mockGetters,
|
||||
},
|
||||
actions: mockActions,
|
||||
|
@ -115,8 +118,8 @@ describe('BoardContentSidebar', () => {
|
|||
expect(wrapper.findComponent(SidebarTodoWidget).exists()).toBe(true);
|
||||
});
|
||||
|
||||
it('renders BoardSidebarLabelsSelect', () => {
|
||||
expect(wrapper.findComponent(BoardSidebarLabelsSelect).exists()).toBe(true);
|
||||
it('renders SidebarLabelsWidget', () => {
|
||||
expect(wrapper.findComponent(SidebarLabelsWidget).exists()).toBe(true);
|
||||
});
|
||||
|
||||
it('renders BoardSidebarTitle', () => {
|
||||
|
|
|
@ -1570,7 +1570,7 @@ describe('addListNewIssue', () => {
|
|||
|
||||
describe('setActiveIssueLabels', () => {
|
||||
const state = { boardItems: { [mockIssue.id]: mockIssue } };
|
||||
const getters = { activeBoardItem: mockIssue };
|
||||
const getters = { activeBoardItem: { ...mockIssue, labels } };
|
||||
const testLabelIds = labels.map((label) => label.id);
|
||||
const input = {
|
||||
labelIds: testLabelIds,
|
||||
|
@ -1579,11 +1579,7 @@ describe('setActiveIssueLabels', () => {
|
|||
labels,
|
||||
};
|
||||
|
||||
it('should assign labels on success', (done) => {
|
||||
jest
|
||||
.spyOn(gqlClient, 'mutate')
|
||||
.mockResolvedValue({ data: { updateIssue: { issue: { labels: { nodes: labels } } } } });
|
||||
|
||||
it('should assign labels', () => {
|
||||
const payload = {
|
||||
itemId: getters.activeBoardItem.id,
|
||||
prop: 'labels',
|
||||
|
@ -1601,74 +1597,28 @@ describe('setActiveIssueLabels', () => {
|
|||
},
|
||||
],
|
||||
[],
|
||||
done,
|
||||
);
|
||||
});
|
||||
|
||||
it('throws error if fails', async () => {
|
||||
jest
|
||||
.spyOn(gqlClient, 'mutate')
|
||||
.mockResolvedValue({ data: { updateIssue: { errors: ['failed mutation'] } } });
|
||||
it('should remove label', () => {
|
||||
const payload = {
|
||||
itemId: getters.activeBoardItem.id,
|
||||
prop: 'labels',
|
||||
value: [labels[1]],
|
||||
};
|
||||
|
||||
await expect(actions.setActiveIssueLabels({ getters }, input)).rejects.toThrow(Error);
|
||||
});
|
||||
|
||||
describe('labels_widget FF on', () => {
|
||||
beforeEach(() => {
|
||||
window.gon = {
|
||||
features: { labelsWidget: true },
|
||||
};
|
||||
|
||||
getters.activeBoardItem = { ...mockIssue, labels };
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
window.gon = {
|
||||
features: {},
|
||||
};
|
||||
});
|
||||
|
||||
it('should assign labels', () => {
|
||||
const payload = {
|
||||
itemId: getters.activeBoardItem.id,
|
||||
prop: 'labels',
|
||||
value: labels,
|
||||
};
|
||||
|
||||
testAction(
|
||||
actions.setActiveIssueLabels,
|
||||
input,
|
||||
{ ...state, ...getters },
|
||||
[
|
||||
{
|
||||
type: types.UPDATE_BOARD_ITEM_BY_ID,
|
||||
payload,
|
||||
},
|
||||
],
|
||||
[],
|
||||
);
|
||||
});
|
||||
|
||||
it('should remove label', () => {
|
||||
const payload = {
|
||||
itemId: getters.activeBoardItem.id,
|
||||
prop: 'labels',
|
||||
value: [labels[1]],
|
||||
};
|
||||
|
||||
testAction(
|
||||
actions.setActiveIssueLabels,
|
||||
{ ...input, removeLabelIds: [getIdFromGraphQLId(labels[0].id)] },
|
||||
{ ...state, ...getters },
|
||||
[
|
||||
{
|
||||
type: types.UPDATE_BOARD_ITEM_BY_ID,
|
||||
payload,
|
||||
},
|
||||
],
|
||||
[],
|
||||
);
|
||||
});
|
||||
testAction(
|
||||
actions.setActiveIssueLabels,
|
||||
{ ...input, removeLabelIds: [getIdFromGraphQLId(labels[0].id)] },
|
||||
{ ...state, ...getters },
|
||||
[
|
||||
{
|
||||
type: types.UPDATE_BOARD_ITEM_BY_ID,
|
||||
payload,
|
||||
},
|
||||
],
|
||||
[],
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -1,38 +1,12 @@
|
|||
import createFlash, {
|
||||
createFlashEl,
|
||||
createAction,
|
||||
hideFlash,
|
||||
removeFlashClickListener,
|
||||
FLASH_TYPES,
|
||||
FLASH_CLOSED_EVENT,
|
||||
} from '~/flash';
|
||||
|
||||
describe('Flash', () => {
|
||||
describe('createFlashEl', () => {
|
||||
let el;
|
||||
|
||||
beforeEach(() => {
|
||||
el = document.createElement('div');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
el.innerHTML = '';
|
||||
});
|
||||
|
||||
it('creates flash element with type', () => {
|
||||
el.innerHTML = createFlashEl('testing', 'alert');
|
||||
|
||||
expect(el.querySelector('.flash-alert')).not.toBeNull();
|
||||
});
|
||||
|
||||
it('escapes text', () => {
|
||||
el.innerHTML = createFlashEl('<script>alert("a");</script>', 'alert');
|
||||
|
||||
expect(el.querySelector('.flash-text').textContent.trim()).toBe(
|
||||
'<script>alert("a");</script>',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('hideFlash', () => {
|
||||
let el;
|
||||
|
||||
|
@ -137,14 +111,10 @@ describe('Flash', () => {
|
|||
|
||||
describe('createFlash', () => {
|
||||
const message = 'test';
|
||||
const type = 'alert';
|
||||
const parent = document;
|
||||
const fadeTransition = false;
|
||||
const addBodyClass = true;
|
||||
const defaultParams = {
|
||||
message,
|
||||
type,
|
||||
parent,
|
||||
actionConfig: null,
|
||||
fadeTransition,
|
||||
addBodyClass,
|
||||
|
@ -171,14 +141,28 @@ describe('Flash', () => {
|
|||
document.querySelector('.js-content-wrapper').remove();
|
||||
});
|
||||
|
||||
it('adds flash element into container', () => {
|
||||
it('adds flash alert element into the document by default', () => {
|
||||
createFlash({ ...defaultParams });
|
||||
|
||||
expect(document.querySelector('.flash-alert')).not.toBeNull();
|
||||
|
||||
expect(document.querySelector('.flash-container .flash-alert')).not.toBeNull();
|
||||
expect(document.body.className).toContain('flash-shown');
|
||||
});
|
||||
|
||||
it('adds flash of a warning type', () => {
|
||||
createFlash({ ...defaultParams, type: FLASH_TYPES.WARNING });
|
||||
|
||||
expect(document.querySelector('.flash-container .flash-warning')).not.toBeNull();
|
||||
expect(document.body.className).toContain('flash-shown');
|
||||
});
|
||||
|
||||
it('escapes text', () => {
|
||||
createFlash({ ...defaultParams, message: '<script>alert("a");</script>' });
|
||||
|
||||
expect(document.querySelector('.flash-text').textContent.trim()).toBe(
|
||||
'<script>alert("a");</script>',
|
||||
);
|
||||
});
|
||||
|
||||
it('adds flash into specified parent', () => {
|
||||
createFlash({ ...defaultParams, parent: document.querySelector('.content-wrapper') });
|
||||
|
||||
|
|
|
@ -1,60 +1,22 @@
|
|||
import { shallowMount } from '@vue/test-utils';
|
||||
import {
|
||||
mockLabels,
|
||||
mockRegularLabel,
|
||||
} from 'jest/vue_shared/components/sidebar/labels_select_vue/mock_data';
|
||||
import updateIssueLabelsMutation from '~/boards/graphql/issue_set_labels.mutation.graphql';
|
||||
import { MutationOperationMode } from '~/graphql_shared/utils';
|
||||
import { IssuableType } from '~/issue_show/constants';
|
||||
import SidebarLabels from '~/sidebar/components/labels/sidebar_labels.vue';
|
||||
import updateMergeRequestLabelsMutation from '~/sidebar/queries/update_merge_request_labels.mutation.graphql';
|
||||
import { toLabelGid } from '~/sidebar/utils';
|
||||
import { DropdownVariant } from '~/vue_shared/components/sidebar/labels_select_vue/constants';
|
||||
import LabelsSelect from '~/vue_shared/components/sidebar/labels_select_vue/labels_select_root.vue';
|
||||
import {
|
||||
DropdownVariant,
|
||||
LabelType,
|
||||
} from '~/vue_shared/components/sidebar/labels_select_widget/constants';
|
||||
import LabelsSelect from '~/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue';
|
||||
|
||||
describe('sidebar labels', () => {
|
||||
let wrapper;
|
||||
|
||||
const defaultProps = {
|
||||
allowLabelCreate: true,
|
||||
allowLabelEdit: true,
|
||||
allowScopedLabels: true,
|
||||
canEdit: true,
|
||||
iid: '1',
|
||||
initiallySelectedLabels: mockLabels,
|
||||
issuableType: 'issue',
|
||||
labelsFetchPath: '/gitlab-org/gitlab-test/-/labels.json?include_ancestor_groups=true',
|
||||
labelsManagePath: '/gitlab-org/gitlab-test/-/labels',
|
||||
projectIssuesPath: '/gitlab-org/gitlab-test/-/issues',
|
||||
projectPath: 'gitlab-org/gitlab-test',
|
||||
fullPath: 'gitlab-org/gitlab-test',
|
||||
};
|
||||
|
||||
const $apollo = {
|
||||
mutate: jest.fn().mockResolvedValue(),
|
||||
};
|
||||
|
||||
const userUpdatedLabels = [
|
||||
{
|
||||
...mockRegularLabel,
|
||||
set: false,
|
||||
},
|
||||
{
|
||||
id: 40,
|
||||
title: 'Security',
|
||||
color: '#ddd',
|
||||
text_color: '#fff',
|
||||
set: true,
|
||||
},
|
||||
{
|
||||
id: 55,
|
||||
title: 'Tooling',
|
||||
color: '#ddd',
|
||||
text_color: '#fff',
|
||||
set: false,
|
||||
},
|
||||
];
|
||||
|
||||
const findLabelsSelect = () => wrapper.find(LabelsSelect);
|
||||
|
||||
const mountComponent = (props = {}) => {
|
||||
|
@ -63,9 +25,6 @@ describe('sidebar labels', () => {
|
|||
...defaultProps,
|
||||
...props,
|
||||
},
|
||||
mocks: {
|
||||
$apollo,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -75,115 +34,31 @@ describe('sidebar labels', () => {
|
|||
});
|
||||
|
||||
describe('LabelsSelect props', () => {
|
||||
beforeEach(() => {
|
||||
mountComponent();
|
||||
});
|
||||
|
||||
it('are as expected', () => {
|
||||
expect(findLabelsSelect().props()).toMatchObject({
|
||||
allowLabelCreate: defaultProps.allowLabelCreate,
|
||||
allowLabelEdit: defaultProps.allowLabelEdit,
|
||||
allowMultiselect: true,
|
||||
allowScopedLabels: defaultProps.allowScopedLabels,
|
||||
footerCreateLabelTitle: 'Create project label',
|
||||
footerManageLabelTitle: 'Manage project labels',
|
||||
labelsCreateTitle: 'Create project label',
|
||||
labelsFetchPath: defaultProps.labelsFetchPath,
|
||||
labelsFilterBasePath: defaultProps.projectIssuesPath,
|
||||
labelsManagePath: defaultProps.labelsManagePath,
|
||||
labelsSelectInProgress: false,
|
||||
selectedLabels: defaultProps.initiallySelectedLabels,
|
||||
variant: DropdownVariant.Sidebar,
|
||||
describe.each`
|
||||
issuableType
|
||||
${'issue'}
|
||||
${'merge_request'}
|
||||
`('issuableType $issuableType', ({ issuableType }) => {
|
||||
beforeEach(() => {
|
||||
mountComponent({ issuableType });
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('when type is issue', () => {
|
||||
beforeEach(() => {
|
||||
mountComponent({ issuableType: IssuableType.Issue });
|
||||
});
|
||||
|
||||
describe('when labels are updated', () => {
|
||||
it('invokes a mutation', () => {
|
||||
findLabelsSelect().vm.$emit('updateSelectedLabels', userUpdatedLabels);
|
||||
|
||||
const expected = {
|
||||
mutation: updateIssueLabelsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
iid: defaultProps.iid,
|
||||
projectPath: defaultProps.projectPath,
|
||||
labelIds: [toLabelGid(29), toLabelGid(28), toLabelGid(27), toLabelGid(40)],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
expect($apollo.mutate).toHaveBeenCalledWith(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when label `x` is clicked', () => {
|
||||
it('invokes a mutation', () => {
|
||||
findLabelsSelect().vm.$emit('onLabelRemove', 27);
|
||||
|
||||
const expected = {
|
||||
mutation: updateIssueLabelsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
iid: defaultProps.iid,
|
||||
projectPath: defaultProps.projectPath,
|
||||
removeLabelIds: [27],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
expect($apollo.mutate).toHaveBeenCalledWith(expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('when type is merge_request', () => {
|
||||
beforeEach(() => {
|
||||
mountComponent({ issuableType: IssuableType.MergeRequest });
|
||||
});
|
||||
|
||||
describe('when labels are updated', () => {
|
||||
it('invokes a mutation', () => {
|
||||
findLabelsSelect().vm.$emit('updateSelectedLabels', userUpdatedLabels);
|
||||
|
||||
const expected = {
|
||||
mutation: updateMergeRequestLabelsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
iid: defaultProps.iid,
|
||||
labelIds: [toLabelGid(29), toLabelGid(28), toLabelGid(27), toLabelGid(40)],
|
||||
operationMode: MutationOperationMode.Replace,
|
||||
projectPath: defaultProps.projectPath,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
expect($apollo.mutate).toHaveBeenCalledWith(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('when label `x` is clicked', () => {
|
||||
it('invokes a mutation', () => {
|
||||
findLabelsSelect().vm.$emit('onLabelRemove', 27);
|
||||
|
||||
const expected = {
|
||||
mutation: updateMergeRequestLabelsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
iid: defaultProps.iid,
|
||||
labelIds: [toLabelGid(27)],
|
||||
operationMode: MutationOperationMode.Remove,
|
||||
projectPath: defaultProps.projectPath,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
expect($apollo.mutate).toHaveBeenCalledWith(expected);
|
||||
it('has expected props', () => {
|
||||
expect(findLabelsSelect().props()).toMatchObject({
|
||||
iid: defaultProps.iid,
|
||||
fullPath: defaultProps.fullPath,
|
||||
allowLabelRemove: defaultProps.allowLabelEdit,
|
||||
allowMultiselect: true,
|
||||
footerCreateLabelTitle: 'Create project label',
|
||||
footerManageLabelTitle: 'Manage project labels',
|
||||
labelsCreateTitle: 'Create project label',
|
||||
labelsFilterBasePath: defaultProps.projectIssuesPath,
|
||||
variant: DropdownVariant.Sidebar,
|
||||
issuableType,
|
||||
workspaceType: 'project',
|
||||
attrWorkspacePath: defaultProps.fullPath,
|
||||
labelCreateType: LabelType.project,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -9,6 +9,7 @@ describe('Confirm Danger Modal', () => {
|
|||
|
||||
const phrase = 'En Taro Adun';
|
||||
const buttonText = 'Click me!';
|
||||
const buttonClass = 'gl-w-full';
|
||||
const modalId = CONFIRM_DANGER_MODAL_ID;
|
||||
|
||||
const findBtn = () => wrapper.findComponent(GlButton);
|
||||
|
@ -19,6 +20,7 @@ describe('Confirm Danger Modal', () => {
|
|||
shallowMountExtended(ConfirmDanger, {
|
||||
propsData: {
|
||||
buttonText,
|
||||
buttonClass,
|
||||
phrase,
|
||||
...props,
|
||||
},
|
||||
|
@ -51,6 +53,10 @@ describe('Confirm Danger Modal', () => {
|
|||
expect(findBtn().attributes('disabled')).toBe('true');
|
||||
});
|
||||
|
||||
it('passes `buttonClass` prop to button', () => {
|
||||
expect(findBtn().classes()).toContain(buttonClass);
|
||||
});
|
||||
|
||||
it('will emit `confirm` when the modal confirms', () => {
|
||||
expect(wrapper.emitted('confirm')).toBeUndefined();
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { shallowMount, createLocalVue } from '@vue/test-utils';
|
||||
import { nextTick } from 'vue';
|
||||
import { shallowMount } from '@vue/test-utils';
|
||||
import Vue, { nextTick } from 'vue';
|
||||
import VueApollo from 'vue-apollo';
|
||||
import createMockApollo from 'helpers/mock_apollo_helper';
|
||||
import waitForPromises from 'helpers/wait_for_promises';
|
||||
|
@ -8,14 +8,14 @@ import { IssuableType } from '~/issue_show/constants';
|
|||
import SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';
|
||||
import DropdownContents from '~/vue_shared/components/sidebar/labels_select_widget/dropdown_contents.vue';
|
||||
import DropdownValue from '~/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue';
|
||||
import DropdownValueCollapsed from '~/vue_shared/components/sidebar/labels_select_widget/dropdown_value_collapsed.vue';
|
||||
import issueLabelsQuery from '~/vue_shared/components/sidebar/labels_select_widget/graphql/issue_labels.query.graphql';
|
||||
import LabelsSelectRoot from '~/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue';
|
||||
import { mockConfig, issuableLabelsQueryResponse } from './mock_data';
|
||||
|
||||
jest.mock('~/flash');
|
||||
|
||||
const localVue = createLocalVue();
|
||||
localVue.use(VueApollo);
|
||||
Vue.use(VueApollo);
|
||||
|
||||
const successfulQueryHandler = jest.fn().mockResolvedValue(issuableLabelsQueryResponse);
|
||||
const errorQueryHandler = jest.fn().mockRejectedValue('Houston, we have a problem');
|
||||
|
@ -25,6 +25,7 @@ describe('LabelsSelectRoot', () => {
|
|||
|
||||
const findSidebarEditableItem = () => wrapper.findComponent(SidebarEditableItem);
|
||||
const findDropdownValue = () => wrapper.findComponent(DropdownValue);
|
||||
const findDropdownValueCollapsed = () => wrapper.findComponent(DropdownValueCollapsed);
|
||||
const findDropdownContents = () => wrapper.findComponent(DropdownContents);
|
||||
|
||||
const createComponent = ({
|
||||
|
@ -37,7 +38,6 @@ describe('LabelsSelectRoot', () => {
|
|||
wrapper = shallowMount(LabelsSelectRoot, {
|
||||
slots,
|
||||
apolloProvider: mockApollo,
|
||||
localVue,
|
||||
propsData: {
|
||||
...config,
|
||||
issuableType: IssuableType.Issue,
|
||||
|
@ -107,6 +107,9 @@ describe('LabelsSelectRoot', () => {
|
|||
expect(findDropdownValue().props('selectedLabels')).toEqual(
|
||||
issuableLabelsQueryResponse.data.workspace.issuable.labels.nodes,
|
||||
);
|
||||
expect(findDropdownValueCollapsed().props('labels')).toEqual(
|
||||
issuableLabelsQueryResponse.data.workspace.issuable.labels.nodes,
|
||||
);
|
||||
});
|
||||
|
||||
it('emits `onLabelRemove` event on dropdown value label remove event', () => {
|
||||
|
|
|
@ -16,7 +16,8 @@ RSpec.describe API::Entities::ProjectImportFailedRelation do
|
|||
exception_class: import_failure.exception_class,
|
||||
exception_message: nil,
|
||||
relation_name: import_failure.relation_key,
|
||||
source: import_failure.source
|
||||
source: import_failure.source,
|
||||
line_number: import_failure.relation_index
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,17 +2,18 @@
|
|||
|
||||
require 'spec_helper'
|
||||
|
||||
RSpec.describe API::Entities::ProjectImportStatus do
|
||||
RSpec.describe API::Entities::ProjectImportStatus, :aggregate_failures do
|
||||
describe '#as_json' do
|
||||
subject { entity.as_json }
|
||||
|
||||
let(:correlation_id) { 'cid' }
|
||||
|
||||
context 'when no import state exists' do
|
||||
let(:entity) { described_class.new(build(:project)) }
|
||||
let(:entity) { described_class.new(build(:project, import_type: 'import_type')) }
|
||||
|
||||
it 'includes basic fields and no failures' do
|
||||
expect(subject[:import_status]).to eq('none')
|
||||
expect(subject[:import_type]).to eq('import_type')
|
||||
expect(subject[:correlation_id]).to be_nil
|
||||
expect(subject[:import_error]).to be_nil
|
||||
expect(subject[:failed_relations]).to eq([])
|
||||
|
@ -20,11 +21,12 @@ RSpec.describe API::Entities::ProjectImportStatus do
|
|||
end
|
||||
|
||||
context 'when import has not finished yet' do
|
||||
let(:project) { create(:project, :import_scheduled, import_correlation_id: correlation_id) }
|
||||
let(:entity) { described_class.new(project) }
|
||||
let(:project) { create(:project, :import_scheduled, import_type: 'import_type', import_correlation_id: correlation_id) }
|
||||
let(:entity) { described_class.new(project, import_type: 'import_type') }
|
||||
|
||||
it 'includes basic fields and no failures', :aggregate_failures do
|
||||
it 'includes basic fields and no failures' do
|
||||
expect(subject[:import_status]).to eq('scheduled')
|
||||
expect(subject[:import_type]).to eq('import_type')
|
||||
expect(subject[:correlation_id]).to eq(correlation_id)
|
||||
expect(subject[:import_error]).to be_nil
|
||||
expect(subject[:failed_relations]).to eq([])
|
||||
|
@ -32,25 +34,43 @@ RSpec.describe API::Entities::ProjectImportStatus do
|
|||
end
|
||||
|
||||
context 'when import has finished with failed relations' do
|
||||
let(:project) { create(:project, :import_finished, import_correlation_id: correlation_id) }
|
||||
let(:project) { create(:project, :import_finished, import_type: 'import_type', import_correlation_id: correlation_id) }
|
||||
let(:entity) { described_class.new(project) }
|
||||
|
||||
it 'includes basic fields with failed relations', :aggregate_failures do
|
||||
create(:import_failure, :hard_failure, project: project, correlation_id_value: correlation_id)
|
||||
it 'includes basic fields with failed relations' do
|
||||
create(
|
||||
:import_failure,
|
||||
:hard_failure,
|
||||
project: project,
|
||||
correlation_id_value: correlation_id,
|
||||
relation_key: 'issues',
|
||||
relation_index: 1
|
||||
)
|
||||
|
||||
# Doesn't show soft failures
|
||||
create(:import_failure, :soft_failure)
|
||||
|
||||
expect(subject[:import_status]).to eq('finished')
|
||||
expect(subject[:import_type]).to eq('import_type')
|
||||
expect(subject[:correlation_id]).to eq(correlation_id)
|
||||
expect(subject[:import_error]).to be_nil
|
||||
expect(subject[:failed_relations]).not_to be_empty
|
||||
expect(subject[:failed_relations].length).to eq(1)
|
||||
|
||||
failure = subject[:failed_relations].last
|
||||
expect(failure[:exception_class]).to eq('RuntimeError')
|
||||
expect(failure[:source]).to eq('method_call')
|
||||
expect(failure[:relation_name]).to eq('issues')
|
||||
expect(failure[:line_number]).to eq(1)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when import has failed' do
|
||||
let(:project) { create(:project, :import_failed, import_correlation_id: correlation_id, import_last_error: 'error') }
|
||||
let(:project) { create(:project, :import_failed, import_type: 'import_type', import_correlation_id: correlation_id, import_last_error: 'error') }
|
||||
let(:entity) { described_class.new(project) }
|
||||
|
||||
it 'includes basic fields with import error', :aggregate_failures do
|
||||
it 'includes basic fields with import error' do
|
||||
expect(subject[:import_status]).to eq('failed')
|
||||
expect(subject[:import_type]).to eq('import_type')
|
||||
expect(subject[:correlation_id]).to eq(correlation_id)
|
||||
expect(subject[:import_error]).to eq('error')
|
||||
expect(subject[:failed_relations]).to eq([])
|
||||
|
|
|
@ -1,14 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
require 'fast_spec_helper'
|
||||
|
||||
RSpec.describe Gitlab::SidekiqStatus::ClientMiddleware do
|
||||
describe '#call' do
|
||||
it 'tracks the job in Redis' do
|
||||
expect(Gitlab::SidekiqStatus).to receive(:set).with('123', Gitlab::SidekiqStatus::DEFAULT_EXPIRATION)
|
||||
context 'when the job has status_expiration set' do
|
||||
it 'tracks the job in Redis with a value of 2' do
|
||||
expect(Gitlab::SidekiqStatus).to receive(:set).with('123', 1.hour.to_i, value: 2)
|
||||
|
||||
described_class.new
|
||||
.call('Foo', { 'jid' => '123' }, double(:queue), double(:pool)) { nil }
|
||||
described_class.new
|
||||
.call('Foo', { 'jid' => '123', 'status_expiration' => 1.hour.to_i }, double(:queue), double(:pool)) { nil }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the job does not have status_expiration set' do
|
||||
it 'tracks the job in Redis with a value of 1' do
|
||||
expect(Gitlab::SidekiqStatus).to receive(:set).with('123', Gitlab::SidekiqStatus::DEFAULT_EXPIRATION, value: 1)
|
||||
|
||||
described_class.new
|
||||
.call('Foo', { 'jid' => '123' }, double(:queue), double(:pool)) { nil }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,6 +12,31 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_
|
|||
Sidekiq.redis do |redis|
|
||||
expect(redis.exists(key)).to eq(true)
|
||||
expect(redis.ttl(key) > 0).to eq(true)
|
||||
expect(redis.get(key)).to eq(described_class::DEFAULT_VALUE.to_s)
|
||||
end
|
||||
end
|
||||
|
||||
it 'allows overriding the expiration time' do
|
||||
described_class.set('123', described_class::DEFAULT_EXPIRATION * 2)
|
||||
|
||||
key = described_class.key_for('123')
|
||||
|
||||
Sidekiq.redis do |redis|
|
||||
expect(redis.exists(key)).to eq(true)
|
||||
expect(redis.ttl(key) > described_class::DEFAULT_EXPIRATION).to eq(true)
|
||||
expect(redis.get(key)).to eq(described_class::DEFAULT_VALUE.to_s)
|
||||
end
|
||||
end
|
||||
|
||||
it 'allows overriding the default value' do
|
||||
described_class.set('123', value: 2)
|
||||
|
||||
key = described_class.key_for('123')
|
||||
|
||||
Sidekiq.redis do |redis|
|
||||
expect(redis.exists(key)).to eq(true)
|
||||
expect(redis.ttl(key) > 0).to eq(true)
|
||||
expect(redis.get(key)).to eq('2')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -88,7 +113,7 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_
|
|||
end
|
||||
end
|
||||
|
||||
describe 'completed' do
|
||||
describe '.completed_jids' do
|
||||
it 'returns the completed job' do
|
||||
expect(described_class.completed_jids(%w(123))).to eq(['123'])
|
||||
end
|
||||
|
@ -100,4 +125,46 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_
|
|||
expect(described_class.completed_jids(%w(123 456 789))).to eq(['789'])
|
||||
end
|
||||
end
|
||||
|
||||
describe '.job_status' do
|
||||
it 'returns an array of boolean values' do
|
||||
described_class.set('123')
|
||||
described_class.set('456')
|
||||
described_class.unset('123')
|
||||
|
||||
expect(described_class.job_status(%w(123 456 789))).to eq([false, true, false])
|
||||
end
|
||||
|
||||
it 'handles an empty array' do
|
||||
expect(described_class.job_status([])).to eq([])
|
||||
end
|
||||
|
||||
context 'when log_implicit_sidekiq_status_calls is enabled' do
|
||||
it 'logs keys that contained the default value' do
|
||||
described_class.set('123', value: 2)
|
||||
described_class.set('456')
|
||||
described_class.set('012')
|
||||
|
||||
expect(Sidekiq.logger).to receive(:info).with(message: described_class::DEFAULT_VALUE_MESSAGE,
|
||||
keys: [described_class.key_for('456'), described_class.key_for('012')])
|
||||
|
||||
expect(described_class.job_status(%w(123 456 789 012))).to eq([true, true, false, true])
|
||||
end
|
||||
end
|
||||
|
||||
context 'when log_implicit_sidekiq_status_calls is disabled' do
|
||||
before do
|
||||
stub_feature_flags(log_implicit_sidekiq_status_calls: false)
|
||||
end
|
||||
|
||||
it 'does not perform any logging' do
|
||||
described_class.set('123', value: 2)
|
||||
described_class.set('456')
|
||||
|
||||
expect(Sidekiq.logger).not_to receive(:info)
|
||||
|
||||
expect(described_class.job_status(%w(123 456 789))).to eq([true, true, false])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -86,7 +86,7 @@ RSpec.describe Tooling::Danger::ProjectHelper do
|
|||
'rubocop/foo' | [:backend]
|
||||
'.rubocop.yml' | [:backend]
|
||||
'.rubocop_todo.yml' | [:backend]
|
||||
'.rubocop_manual_todo.yml' | [:backend]
|
||||
'.rubocop_todo/cop/name.yml' | [:backend]
|
||||
'spec/foo' | [:backend]
|
||||
'spec/foo/bar' | [:backend]
|
||||
|
||||
|
@ -192,6 +192,7 @@ RSpec.describe Tooling::Danger::ProjectHelper do
|
|||
'spec/frontend/tracking_spec.js' | [:frontend, :product_intelligence]
|
||||
'lib/gitlab/usage_database/foo.rb' | [:backend]
|
||||
'config/metrics/counts_7d/test_metric.yml' | [:product_intelligence]
|
||||
'config/events/snowplow_event.yml' | [:product_intelligence]
|
||||
'config/metrics/schema.json' | [:product_intelligence]
|
||||
'doc/api/usage_data.md' | [:product_intelligence]
|
||||
'spec/lib/gitlab/usage_data_spec.rb' | [:product_intelligence]
|
||||
|
|
|
@ -127,7 +127,7 @@ module Tooling
|
|||
|
||||
%r{\A((spec/)?lib/generators/gitlab/usage_metric_)} => [:product_intelligence],
|
||||
%r{\A((ee|jh)/)?lib/gitlab/usage_data_counters/.*\.yml\z} => [:product_intelligence],
|
||||
%r{\A((ee|jh)/)?config/metrics/((.*\.yml)|(schema\.json))\z} => [:product_intelligence],
|
||||
%r{\A((ee|jh)/)?config/(events|metrics)/((.*\.yml)|(schema\.json))\z} => [:product_intelligence],
|
||||
%r{\A((ee|jh)/)?lib/gitlab/usage_data(_counters)?(/|\.rb)} => [:backend, :product_intelligence],
|
||||
%r{\A(
|
||||
lib/gitlab/tracking\.rb |
|
||||
|
@ -151,7 +151,8 @@ module Tooling
|
|||
%r{\A((ee|jh)/)?vendor/} => :backend,
|
||||
%r{\A(Gemfile|Gemfile.lock|Rakefile)\z} => :backend,
|
||||
%r{\A[A-Z_]+_VERSION\z} => :backend,
|
||||
%r{\A\.rubocop((_manual)?_todo)?\.yml\z} => :backend,
|
||||
%r{\A\.rubocop(_todo)?\.yml\z} => :backend,
|
||||
%r{\A\.rubocop_todo/.*\.yml\z} => :backend,
|
||||
%r{\Afile_hooks/} => :backend,
|
||||
|
||||
%r{\A((ee|jh)/)?qa/} => :qa,
|
||||
|
|
Loading…
Reference in a new issue