Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
bdb1e64a7d
commit
0b878def9b
|
|
@ -13,6 +13,9 @@
|
|||
.if-jh: &if-jh
|
||||
if: '$CI_PROJECT_PATH =~ /^gitlab-(jh|cn)\/.*/'
|
||||
|
||||
.if-force-ci: &if-force-ci
|
||||
if: '$FORCE_GITLAB_CI'
|
||||
|
||||
.if-default-refs: &if-default-refs
|
||||
if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ || $CI_COMMIT_REF_NAME =~ /^\d+-\d+-auto-deploy-\d+$/ || $CI_COMMIT_REF_NAME =~ /^security\// || $CI_MERGE_REQUEST_IID || $CI_COMMIT_TAG || $FORCE_GITLAB_CI'
|
||||
|
||||
|
|
@ -597,6 +600,7 @@
|
|||
- <<: *if-dot-com-gitlab-org-default-branch
|
||||
changes: *code-qa-patterns
|
||||
- <<: *if-dot-com-gitlab-org-schedule
|
||||
- <<: *if-force-ci
|
||||
|
||||
.build-images:rules:build-assets-image:
|
||||
rules:
|
||||
|
|
@ -876,6 +880,9 @@
|
|||
allow_failure: true
|
||||
- <<: *if-dot-com-gitlab-org-schedule
|
||||
allow_failure: true
|
||||
- <<: *if-force-ci
|
||||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
.qa:rules:package-and-qa:feature-flags:
|
||||
rules:
|
||||
|
|
|
|||
|
|
@ -6,22 +6,11 @@
|
|||
# Note that changes in the inspected code, or installation of new
|
||||
# versions of RuboCop, may require this file to be generated again.
|
||||
|
||||
# Offense count: 221
|
||||
Capybara/VisibilityMatcher:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 1
|
||||
Gitlab/PolicyRuleBoolean:
|
||||
Exclude:
|
||||
- 'ee/app/policies/ee/identity_provider_policy.rb'
|
||||
|
||||
# Offense count: 2270
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
||||
# SupportedStyles: with_first_argument, with_fixed_indentation
|
||||
Layout/ArgumentAlignment:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 771
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
Capybara/VisibilityMatcher:
|
||||
# Offense count: 213
|
||||
# Temporarily disabled due to too many offenses
|
||||
Enabled: false
|
||||
Exclude:
|
||||
- 'ee/spec/features/billings/billing_plans_spec.rb'
|
||||
- 'ee/spec/features/boards/sidebar_spec.rb'
|
||||
- 'ee/spec/features/epics/epic_show_spec.rb'
|
||||
- 'ee/spec/features/epics/todo_spec.rb'
|
||||
- 'ee/spec/features/groups/analytics/cycle_analytics/filters_and_data_spec.rb'
|
||||
- 'ee/spec/features/groups/issues_spec.rb'
|
||||
- 'ee/spec/features/groups/saml_enforcement_spec.rb'
|
||||
- 'ee/spec/features/issues/related_issues_spec.rb'
|
||||
- 'ee/spec/features/projects/integrations/user_activates_jira_spec.rb'
|
||||
- 'ee/spec/features/projects/path_locks_spec.rb'
|
||||
- 'ee/spec/features/projects/quality/test_case_show_spec.rb'
|
||||
- 'ee/spec/features/projects/requirements_management/requirements_list_spec.rb'
|
||||
- 'ee/spec/features/projects/settings/ee/repository_mirrors_settings_spec.rb'
|
||||
- 'ee/spec/features/promotion_spec.rb'
|
||||
- 'ee/spec/features/refactor_blob_viewer_disabled/projects/path_locks_spec.rb'
|
||||
- 'ee/spec/features/registrations/welcome_spec.rb'
|
||||
- 'ee/spec/support/shared_examples/views/issuable_bulk_dropdown_shared_examples.rb'
|
||||
- 'ee/spec/views/layouts/_search.html.haml_spec.rb'
|
||||
- 'ee/spec/views/registrations/welcome/show.html.haml_spec.rb'
|
||||
- 'spec/features/admin/admin_mode_spec.rb'
|
||||
- 'spec/features/dashboard/merge_requests_spec.rb'
|
||||
- 'spec/features/dashboard/todos/todos_spec.rb'
|
||||
- 'spec/features/groups/group_settings_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/dropdown_assignee_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/dropdown_author_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/dropdown_emoji_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/dropdown_hint_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/recent_searches_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/search_bar_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/visual_tokens_spec.rb'
|
||||
- 'spec/features/issues/service_desk_spec.rb'
|
||||
- 'spec/features/issues/todo_spec.rb'
|
||||
- 'spec/features/issues/user_creates_branch_and_merge_request_spec.rb'
|
||||
- 'spec/features/issues/user_creates_issue_spec.rb'
|
||||
- 'spec/features/merge_request/user_posts_notes_spec.rb'
|
||||
- 'spec/features/merge_request/user_resolves_diff_notes_and_discussions_resolve_spec.rb'
|
||||
- 'spec/features/merge_request/user_resolves_outdated_diff_discussions_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_diff_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_merge_widget_spec.rb'
|
||||
- 'spec/features/merge_request/user_views_diffs_commit_spec.rb'
|
||||
- 'spec/features/merge_request/user_views_diffs_spec.rb'
|
||||
- 'spec/features/projects/blobs/blob_show_spec.rb'
|
||||
- 'spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb'
|
||||
- 'spec/features/projects/ci/lint_spec.rb'
|
||||
- 'spec/features/projects/commit/comments/user_adds_comment_spec.rb'
|
||||
- 'spec/features/projects/commits/user_browses_commits_spec.rb'
|
||||
- 'spec/features/projects/integrations/user_activates_jira_spec.rb'
|
||||
- 'spec/features/projects/issues/design_management/user_views_designs_with_svg_xss_spec.rb'
|
||||
- 'spec/features/projects/jobs_spec.rb'
|
||||
- 'spec/features/projects/network_graph_spec.rb'
|
||||
- 'spec/features/projects/pipelines/pipeline_spec.rb'
|
||||
- 'spec/features/projects/settings/lfs_settings_spec.rb'
|
||||
- 'spec/features/projects/settings/packages_settings_spec.rb'
|
||||
- 'spec/features/projects/settings/visibility_settings_spec.rb'
|
||||
- 'spec/features/projects/show/user_manages_notifications_spec.rb'
|
||||
- 'spec/features/projects/tags/user_edits_tags_spec.rb'
|
||||
- 'spec/features/projects/user_changes_project_visibility_spec.rb'
|
||||
- 'spec/features/projects/user_sees_user_popover_spec.rb'
|
||||
- 'spec/features/refactor_blob_viewer_disabled/projects/blobs/blob_show_spec.rb'
|
||||
- 'spec/features/refactor_blob_viewer_disabled/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb'
|
||||
- 'spec/features/search/user_searches_for_commits_spec.rb'
|
||||
- 'spec/features/snippets/notes_on_personal_snippets_spec.rb'
|
||||
- 'spec/features/task_lists_spec.rb'
|
||||
- 'spec/features/u2f_spec.rb'
|
||||
- 'spec/features/uploads/user_uploads_file_to_note_spec.rb'
|
||||
- 'spec/features/users/overview_spec.rb'
|
||||
- 'spec/features/users/user_browses_projects_on_user_page_spec.rb'
|
||||
- 'spec/features/webauthn_spec.rb'
|
||||
- 'spec/features/whats_new_spec.rb'
|
||||
- 'spec/support/helpers/features/canonical_link_helpers.rb'
|
||||
- 'spec/support/shared_examples/features/discussion_comments_shared_example.rb'
|
||||
- 'spec/support/shared_examples/features/page_description_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/features/rss_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/features/wiki/file_attachments_shared_examples.rb'
|
||||
- 'spec/views/import/gitlab_projects/new.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/_header_search.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/_search.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'spec/views/profiles/preferences/show.html.haml_spec.rb'
|
||||
- 'spec/views/projects/merge_requests/edit.html.haml_spec.rb'
|
||||
- 'spec/views/projects/merge_requests/show.html.haml_spec.rb'
|
||||
|
|
@ -0,0 +1,953 @@
|
|||
---
|
||||
# Cop supports --auto-correct.
|
||||
Layout/ArgumentAlignment:
|
||||
# Offense count: 2502
|
||||
# Temporarily disabled due to too many offenses
|
||||
Enabled: false
|
||||
Exclude:
|
||||
- 'app/controllers/admin/users_controller.rb'
|
||||
- 'app/controllers/application_controller.rb'
|
||||
- 'app/controllers/concerns/notes_actions.rb'
|
||||
- 'app/controllers/concerns/page_limiter.rb'
|
||||
- 'app/controllers/concerns/snippets_actions.rb'
|
||||
- 'app/controllers/concerns/wiki_actions.rb'
|
||||
- 'app/controllers/groups_controller.rb'
|
||||
- 'app/controllers/import/gitea_controller.rb'
|
||||
- 'app/controllers/import/github_controller.rb'
|
||||
- 'app/controllers/import/gitlab_groups_controller.rb'
|
||||
- 'app/controllers/passwords_controller.rb'
|
||||
- 'app/controllers/profiles_controller.rb'
|
||||
- 'app/controllers/projects/branches_controller.rb'
|
||||
- 'app/controllers/projects/jobs_controller.rb'
|
||||
- 'app/controllers/projects/merge_requests/creations_controller.rb'
|
||||
- 'app/controllers/projects/pages_domains_controller.rb'
|
||||
- 'app/controllers/projects/pipeline_schedules_controller.rb'
|
||||
- 'app/controllers/projects/uploads_controller.rb'
|
||||
- 'app/controllers/projects/web_ide_terminals_controller.rb'
|
||||
- 'app/controllers/projects_controller.rb'
|
||||
- 'app/controllers/registrations_controller.rb'
|
||||
- 'app/controllers/repositories/git_http_controller.rb'
|
||||
- 'app/controllers/sessions_controller.rb'
|
||||
- 'app/finders/issues_finder.rb'
|
||||
- 'app/finders/projects/prometheus/alerts_finder.rb'
|
||||
- 'app/graphql/mutations/boards/destroy.rb'
|
||||
- 'app/graphql/mutations/boards/lists/base_update.rb'
|
||||
- 'app/graphql/mutations/boards/lists/destroy.rb'
|
||||
- 'app/graphql/mutations/boards/lists/update.rb'
|
||||
- 'app/graphql/mutations/ci/ci_cd_settings_update.rb'
|
||||
- 'app/graphql/mutations/ci/job_token_scope/add_project.rb'
|
||||
- 'app/graphql/mutations/ci/job_token_scope/remove_project.rb'
|
||||
- 'app/graphql/mutations/ci/pipeline/base.rb'
|
||||
- 'app/graphql/mutations/ci/runners_registration_token/reset.rb'
|
||||
- 'app/graphql/mutations/customer_relations/contacts/update.rb'
|
||||
- 'app/graphql/mutations/customer_relations/organizations/update.rb'
|
||||
- 'app/graphql/mutations/dependency_proxy/group_settings/update.rb'
|
||||
- 'app/graphql/mutations/dependency_proxy/image_ttl_group_policy/update.rb'
|
||||
- 'app/graphql/mutations/discussions/toggle_resolve.rb'
|
||||
- 'app/graphql/mutations/metrics/dashboard/annotations/create.rb'
|
||||
- 'app/graphql/mutations/metrics/dashboard/annotations/delete.rb'
|
||||
- 'app/graphql/mutations/namespace/package_settings/update.rb'
|
||||
- 'app/graphql/mutations/notes/create/base.rb'
|
||||
- 'app/graphql/mutations/notes/create/diff_note.rb'
|
||||
- 'app/graphql/mutations/notes/create/image_diff_note.rb'
|
||||
- 'app/graphql/mutations/notes/create/note.rb'
|
||||
- 'app/graphql/mutations/notes/reposition_image_diff_note.rb'
|
||||
- 'app/graphql/mutations/security/ci_configuration/configure_sast.rb'
|
||||
- 'app/graphql/mutations/terraform/state/base.rb'
|
||||
- 'app/graphql/mutations/user_callouts/create.rb'
|
||||
- 'app/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver.rb'
|
||||
- 'app/graphql/resolvers/alert_management/alert_resolver.rb'
|
||||
- 'app/graphql/resolvers/alert_management/alert_status_counts_resolver.rb'
|
||||
- 'app/graphql/resolvers/base_issues_resolver.rb'
|
||||
- 'app/graphql/resolvers/ci/jobs_resolver.rb'
|
||||
- 'app/graphql/resolvers/ci/project_pipeline_counts_resolver.rb'
|
||||
- 'app/graphql/resolvers/ci/test_suite_resolver.rb'
|
||||
- 'app/graphql/resolvers/clusters/agents_resolver.rb'
|
||||
- 'app/graphql/resolvers/concerns/group_issuable_resolver.rb'
|
||||
- 'app/graphql/resolvers/concerns/search_arguments.rb'
|
||||
- 'app/graphql/resolvers/container_repositories_resolver.rb'
|
||||
- 'app/graphql/resolvers/container_repository_tags_resolver.rb'
|
||||
- 'app/graphql/resolvers/environments_resolver.rb'
|
||||
- 'app/graphql/resolvers/error_tracking/sentry_detailed_error_resolver.rb'
|
||||
- 'app/graphql/resolvers/error_tracking/sentry_error_stack_trace_resolver.rb'
|
||||
- 'app/graphql/resolvers/error_tracking/sentry_errors_resolver.rb'
|
||||
- 'app/graphql/resolvers/group_members_resolver.rb'
|
||||
- 'app/graphql/resolvers/group_packages_resolver.rb'
|
||||
- 'app/graphql/resolvers/members_resolver.rb'
|
||||
- 'app/graphql/resolvers/namespace_projects_resolver.rb'
|
||||
- 'app/graphql/resolvers/package_details_resolver.rb'
|
||||
- 'app/graphql/resolvers/packages_base_resolver.rb'
|
||||
- 'app/graphql/resolvers/paginated_tree_resolver.rb'
|
||||
- 'app/graphql/resolvers/project_jobs_resolver.rb'
|
||||
- 'app/graphql/resolvers/project_members_resolver.rb'
|
||||
- 'app/graphql/resolvers/projects/snippets_resolver.rb'
|
||||
- 'app/graphql/resolvers/release_resolver.rb'
|
||||
- 'app/graphql/resolvers/repository_branch_names_resolver.rb'
|
||||
- 'app/graphql/resolvers/snippets_resolver.rb'
|
||||
- 'app/graphql/resolvers/terraform/states_resolver.rb'
|
||||
- 'app/graphql/resolvers/tree_resolver.rb'
|
||||
- 'app/graphql/resolvers/users_resolver.rb'
|
||||
- 'app/graphql/subscriptions/issuable_updated.rb'
|
||||
- 'app/graphql/types/ci_configuration/sast/analyzers_entity_input_type.rb'
|
||||
- 'app/graphql/types/ci_configuration/sast/input_type.rb'
|
||||
- 'app/graphql/types/error_tracking/sentry_error_frequency_type.rb'
|
||||
- 'app/graphql/types/error_tracking/sentry_error_tags_type.rb'
|
||||
- 'app/graphql/types/issues/negated_issue_filter_input_type.rb'
|
||||
- 'app/graphql/types/merge_request_state_event_enum.rb'
|
||||
- 'app/graphql/types/project_type.rb'
|
||||
- 'app/graphql/types/release_asset_link_shared_input_arguments.rb'
|
||||
- 'app/graphql/types/saved_reply_type.rb'
|
||||
- 'app/graphql/types/user_preferences_type.rb'
|
||||
- 'app/helpers/application_helper.rb'
|
||||
- 'app/helpers/blob_helper.rb'
|
||||
- 'app/helpers/button_helper.rb'
|
||||
- 'app/helpers/ci/status_helper.rb'
|
||||
- 'app/helpers/events_helper.rb'
|
||||
- 'app/helpers/markup_helper.rb'
|
||||
- 'app/helpers/members_helper.rb'
|
||||
- 'app/helpers/notes_helper.rb'
|
||||
- 'app/helpers/repository_languages_helper.rb'
|
||||
- 'app/helpers/wiki_helper.rb'
|
||||
- 'app/models/alert_management/http_integration.rb'
|
||||
- 'app/models/alerting/project_alerting_setting.rb'
|
||||
- 'app/models/application_setting.rb'
|
||||
- 'app/models/aws/role.rb'
|
||||
- 'app/models/bulk_imports/configuration.rb'
|
||||
- 'app/models/bulk_imports/entity.rb'
|
||||
- 'app/models/bulk_imports/failure.rb'
|
||||
- 'app/models/bulk_imports/tracker.rb'
|
||||
- 'app/models/ci/build.rb'
|
||||
- 'app/models/ci/pipeline.rb'
|
||||
- 'app/models/ci/processable.rb'
|
||||
- 'app/models/ci/resource_group.rb'
|
||||
- 'app/models/ci/runner.rb'
|
||||
- 'app/models/ci_platform_metric.rb'
|
||||
- 'app/models/clusters/agent.rb'
|
||||
- 'app/models/clusters/applications/helm.rb'
|
||||
- 'app/models/clusters/applications/prometheus.rb'
|
||||
- 'app/models/clusters/integrations/prometheus.rb'
|
||||
- 'app/models/clusters/kubernetes_namespace.rb'
|
||||
- 'app/models/clusters/platforms/kubernetes.rb'
|
||||
- 'app/models/clusters/providers/aws.rb'
|
||||
- 'app/models/clusters/providers/gcp.rb'
|
||||
- 'app/models/commit_status.rb'
|
||||
- 'app/models/compare.rb'
|
||||
- 'app/models/concerns/blocks_unsafe_serialization.rb'
|
||||
- 'app/models/concerns/bulk_insert_safe.rb'
|
||||
- 'app/models/concerns/ci/has_variable.rb'
|
||||
- 'app/models/concerns/ci/new_has_variable.rb'
|
||||
- 'app/models/concerns/each_batch.rb'
|
||||
- 'app/models/concerns/integrations/has_issue_tracker_fields.rb'
|
||||
- 'app/models/concerns/issuable.rb'
|
||||
- 'app/models/concerns/merge_request_reviewer_state.rb'
|
||||
- 'app/models/concerns/nullify_if_blank.rb'
|
||||
- 'app/models/concerns/packages/debian/architecture.rb'
|
||||
- 'app/models/concerns/packages/debian/component.rb'
|
||||
- 'app/models/concerns/packages/debian/distribution.rb'
|
||||
- 'app/models/concerns/packages/debian/distribution_key.rb'
|
||||
- 'app/models/concerns/repository_storage_movable.rb'
|
||||
- 'app/models/concerns/storage/legacy_namespace.rb'
|
||||
- 'app/models/concerns/with_uploads.rb'
|
||||
- 'app/models/custom_emoji.rb'
|
||||
- 'app/models/deploy_token.rb'
|
||||
- 'app/models/deployment.rb'
|
||||
- 'app/models/design_management/design_action.rb'
|
||||
- 'app/models/error_tracking/error.rb'
|
||||
- 'app/models/error_tracking/project_error_tracking_setting.rb'
|
||||
- 'app/models/event.rb'
|
||||
- 'app/models/gpg_key.rb'
|
||||
- 'app/models/gpg_key_subkey.rb'
|
||||
- 'app/models/grafana_integration.rb'
|
||||
- 'app/models/group.rb'
|
||||
- 'app/models/incident_management/project_incident_management_setting.rb'
|
||||
- 'app/models/integrations/bamboo.rb'
|
||||
- 'app/models/integrations/jira.rb'
|
||||
- 'app/models/integrations/teamcity.rb'
|
||||
- 'app/models/issue.rb'
|
||||
- 'app/models/key.rb'
|
||||
- 'app/models/lfs_object.rb'
|
||||
- 'app/models/member.rb'
|
||||
- 'app/models/merge_request.rb'
|
||||
- 'app/models/merge_request_diff.rb'
|
||||
- 'app/models/merge_request_diff_commit.rb'
|
||||
- 'app/models/namespace.rb'
|
||||
- 'app/models/note.rb'
|
||||
- 'app/models/operations/feature_flag.rb'
|
||||
- 'app/models/operations/feature_flags/strategy.rb'
|
||||
- 'app/models/operations/feature_flags/user_list.rb'
|
||||
- 'app/models/packages/conan/file_metadatum.rb'
|
||||
- 'app/models/packages/debian/file_metadatum.rb'
|
||||
- 'app/models/packages/debian/publication.rb'
|
||||
- 'app/models/packages/dependency_link.rb'
|
||||
- 'app/models/packages/helm/file_metadatum.rb'
|
||||
- 'app/models/packages/maven/metadatum.rb'
|
||||
- 'app/models/packages/package.rb'
|
||||
- 'app/models/pages_domain.rb'
|
||||
- 'app/models/project.rb'
|
||||
- 'app/models/project_ci_cd_setting.rb'
|
||||
- 'app/models/project_feature.rb'
|
||||
- 'app/models/project_metrics_setting.rb'
|
||||
- 'app/models/redirect_route.rb'
|
||||
- 'app/models/route.rb'
|
||||
- 'app/models/serverless/domain_cluster.rb'
|
||||
- 'app/models/snippet.rb'
|
||||
- 'app/models/terraform/state.rb'
|
||||
- 'app/models/user.rb'
|
||||
- 'app/models/users/callout.rb'
|
||||
- 'app/models/users/saved_reply.rb'
|
||||
- 'app/presenters/ci/pipeline_presenter.rb'
|
||||
- 'app/presenters/gitlab/blame_presenter.rb'
|
||||
- 'app/presenters/label_presenter.rb'
|
||||
- 'app/presenters/merge_request_presenter.rb'
|
||||
- 'app/presenters/project_presenter.rb'
|
||||
- 'app/serializers/build_details_entity.rb'
|
||||
- 'app/serializers/diffs_entity.rb'
|
||||
- 'app/serializers/environment_entity.rb'
|
||||
- 'app/serializers/error_tracking/error_entity.rb'
|
||||
- 'app/serializers/stage_entity.rb'
|
||||
- 'app/serializers/triggered_pipeline_entity.rb'
|
||||
- 'app/services/ci/archive_trace_service.rb'
|
||||
- 'app/services/ci/job_artifacts/create_service.rb'
|
||||
- 'app/services/ci/parse_dotenv_artifact_service.rb'
|
||||
- 'app/services/ci/register_job_service.rb'
|
||||
- 'app/services/ci/stuck_builds/drop_helpers.rb'
|
||||
- 'app/services/ci/update_build_state_service.rb'
|
||||
- 'app/services/concerns/exclusive_lease_guard.rb'
|
||||
- 'app/services/discussions/capture_diff_note_position_service.rb'
|
||||
- 'app/services/error_tracking/base_service.rb'
|
||||
- 'app/services/gravatar_service.rb'
|
||||
- 'app/services/issues/clone_service.rb'
|
||||
- 'app/services/jira/requests/base.rb'
|
||||
- 'app/services/merge_requests/merge_to_ref_service.rb'
|
||||
- 'app/services/metrics/dashboard/update_dashboard_service.rb'
|
||||
- 'app/services/packages/conan/create_package_service.rb'
|
||||
- 'app/services/packages/create_temporary_package_service.rb'
|
||||
- 'app/services/packages/go/create_package_service.rb'
|
||||
- 'app/services/packages/maven/create_package_service.rb'
|
||||
- 'app/services/prometheus/proxy_variable_substitution_service.rb'
|
||||
- 'app/services/web_hook_service.rb'
|
||||
- 'app/services/webauthn/authenticate_service.rb'
|
||||
- 'app/uploaders/object_storage.rb'
|
||||
- 'app/workers/run_pipeline_schedule_worker.rb'
|
||||
- 'config/application.rb'
|
||||
- 'config/initializers/zz_metrics.rb'
|
||||
- 'config/routes.rb'
|
||||
- 'config/routes/legacy_builds.rb'
|
||||
- 'config/routes/project.rb'
|
||||
- 'config/routes/repository_deprecated.rb'
|
||||
- 'config/routes/snippets.rb'
|
||||
- 'config/routes/uploads.rb'
|
||||
- 'config/routes/user.rb'
|
||||
- 'db/migrate/20210305002016_update_terraform_states_locked_by_user_id_foreign_key.rb'
|
||||
- 'db/migrate/20210308190413_change_batched_background_migrations_batch_class_name_default.rb'
|
||||
- 'db/migrate/20210324112439_add_index_mirror_data_on_retry_next_execution_where_status.rb'
|
||||
- 'db/migrate/20210329191850_add_finding_signature_table.rb'
|
||||
- 'db/migrate/20210413121101_add_created_at_web_hook_id_index_to_partitioned_web_hook_log.rb'
|
||||
- 'db/migrate/20210413123832_add_index_on_web_hook_id_to_partitioned_web_hook_log.rb'
|
||||
- 'db/migrate/20210505070612_create_packages_debian_group_distribution_keys.rb'
|
||||
- 'db/migrate/20210505070812_create_packages_debian_project_distribution_keys.rb'
|
||||
- 'db/migrate/20210601080039_group_protected_environments_add_index_and_constraint.rb'
|
||||
- 'db/migrate/20210609013512_add_unique_index_for_batched_background_migrations.rb'
|
||||
- 'db/migrate/20210625094554_create_error_tracking_error_events.rb'
|
||||
- 'db/migrate/20210720130006_create_error_tracking_client_keys.rb'
|
||||
- 'db/migrate/20210721174441_update_escalation_rule_fk_for_pending_alert_escalations.rb'
|
||||
- 'db/migrate/20210722074256_add_user_index_to_escalation_rules.rb'
|
||||
- 'db/migrate/20210723173132_create_index_on_environments_auto_delete_at.rb'
|
||||
- 'db/migrate/20210813111909_create_ci_build_trace_metadata.rb'
|
||||
- 'db/migrate/20210817084338_add_foreign_key_from_ci_build_metadata_to_ci_job_artifacts.rb'
|
||||
- 'db/migrate/20210820171834_add_foreign_keys_for_pending_issue_escalations.rb'
|
||||
- 'db/migrate/20210923042325_index_meta_data_on_user_credit_card_validations.rb'
|
||||
- 'db/migrate/20210928155022_improve_index_for_error_tracking.rb'
|
||||
- 'db/migrate/20211013080716_index_include_network_on_user_credit_card_validations.rb'
|
||||
- 'db/migrate/20211109101010_support_partition_query_in_loose_fk_table.rb'
|
||||
- 'db/migrate/20220119170426_remove_temporary_vulnerability_occurrences_deduplication_index.rb'
|
||||
- 'db/migrate/20220301003502_add_security_orchestration_policy_configuration_namespace_index.rb'
|
||||
- 'db/post_migrate/20210330130420_drop_finding_fingerprint_table.rb'
|
||||
- 'db/post_migrate/20210413130011_add_partitioned_web_hook_log_fk.rb'
|
||||
- 'db/post_migrate/20210415101228_backfill_ci_build_needs_for_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210422023046_backfill_ci_sources_pipelines_source_job_id_for_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210611080951_fix_missing_traversal_ids.rb'
|
||||
- 'db/post_migrate/20210622045705_finalize_events_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210701033622_finalize_ci_builds_needs_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210706212710_finalize_ci_job_artifacts_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210713042153_finalize_ci_sources_pipelines_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210804151444_prepare_indexes_for_ci_job_artifact_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210804153307_prepare_indexes_for_tagging_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210809143931_finalize_job_id_conversion_to_bigint_for_ci_job_artifacts.rb'
|
||||
- 'db/post_migrate/20210817024335_prepare_indexes_for_events_bigint_conversion.rb'
|
||||
- 'db/post_migrate/20210901184511_prepare_async_indexes_for_ci_builds.rb'
|
||||
- 'db/post_migrate/20210915202900_prepare_index_resource_group_status_commit_id_for_ci_builds.rb'
|
||||
- 'db/post_migrate/20210922084115_concurrent_index_resource_group_status_commit_id_for_ci_builds.rb'
|
||||
- 'db/post_migrate/20211007093340_remove_analytics_snapshots_segment_id_column.rb'
|
||||
- 'db/post_migrate/20211011104843_add_new_loose_fk_index.rb'
|
||||
- 'db/post_migrate/20211031152417_add_indexes_to_issue_stage_events.rb'
|
||||
- 'db/post_migrate/20211031154919_add_indexes_to_merge_request_stage_events.rb'
|
||||
- 'db/post_migrate/20211109112454_drop_old_loose_fk_deleted_records_index.rb'
|
||||
- 'db/post_migrate/20220310134207_add_index_project_id_and_released_at_and_id_on_releases.rb'
|
||||
- 'ee/app/controllers/concerns/insights_actions.rb'
|
||||
- 'ee/app/controllers/customers_dot/proxy_controller.rb'
|
||||
- 'ee/app/controllers/ee/groups_controller.rb'
|
||||
- 'ee/app/controllers/ee/passwords_controller.rb'
|
||||
- 'ee/app/controllers/groups/analytics/productivity_analytics_controller.rb'
|
||||
- 'ee/app/controllers/projects/integrations/jira/issues_controller.rb'
|
||||
- 'ee/app/controllers/subscriptions_controller.rb'
|
||||
- 'ee/app/finders/geo/registry_finder.rb'
|
||||
- 'ee/app/graphql/ee/mutations/boards/issues/issue_move_list.rb'
|
||||
- 'ee/app/graphql/ee/mutations/ci/ci_cd_settings_update.rb'
|
||||
- 'ee/app/graphql/ee/types/ci/pipeline_type.rb'
|
||||
- 'ee/app/graphql/ee/types/deprecated_mutations.rb'
|
||||
- 'ee/app/graphql/mutations/app_sec/fuzzing/api/ci_configuration/create.rb'
|
||||
- 'ee/app/graphql/mutations/app_sec/fuzzing/coverage/corpus/create.rb'
|
||||
- 'ee/app/graphql/mutations/boards/epic_boards/epic_move_list.rb'
|
||||
- 'ee/app/graphql/mutations/boards/epic_lists/update.rb'
|
||||
- 'ee/app/graphql/mutations/concerns/mutations/shared_epic_arguments.rb'
|
||||
- 'ee/app/graphql/mutations/dast/profiles/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast_scanner_profiles/create.rb'
|
||||
- 'ee/app/graphql/mutations/epics/update.rb'
|
||||
- 'ee/app/graphql/mutations/requirements_management/update_requirement.rb'
|
||||
- 'ee/app/graphql/mutations/vulnerabilities/create.rb'
|
||||
- 'ee/app/graphql/resolvers/boards/board_list_epics_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/ci/code_coverage_activities_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/concerns/common_requirement_arguments.rb'
|
||||
- 'ee/app/graphql/resolvers/epics_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/iterations_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/security_orchestration/scan_execution_policy_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/security_training_urls_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/vulnerabilities_grade_resolver.rb'
|
||||
- 'ee/app/graphql/types/alert_management/payload_alert_field_input_type.rb'
|
||||
- 'ee/app/graphql/types/dast/profile_cadence_input_type.rb'
|
||||
- 'ee/app/graphql/types/dast/profile_schedule_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/escalation_rule_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_participant_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_active_period_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_date_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_length_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_user_input_type.rb'
|
||||
- 'ee/app/graphql/types/push_rules_type.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_identifier_input_type.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_scanner_input_type.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_scanner_vendor_input_type.rb'
|
||||
- 'ee/app/helpers/ee/button_helper.rb'
|
||||
- 'ee/app/models/concerns/approval_rule_like.rb'
|
||||
- 'ee/app/models/concerns/security/scan_execution_policy.rb'
|
||||
- 'ee/app/models/dast/site_profile_secret_variable.rb'
|
||||
- 'ee/app/models/ee/identity.rb'
|
||||
- 'ee/app/models/ee/incident_management/project_incident_management_setting.rb'
|
||||
- 'ee/app/models/ee/issue.rb'
|
||||
- 'ee/app/models/ee/lfs_object.rb'
|
||||
- 'ee/app/models/ee/list.rb'
|
||||
- 'ee/app/models/ee/merge_request_diff.rb'
|
||||
- 'ee/app/models/ee/namespace.rb'
|
||||
- 'ee/app/models/ee/pages_deployment.rb'
|
||||
- 'ee/app/models/ee/project.rb'
|
||||
- 'ee/app/models/geo/event_log.rb'
|
||||
- 'ee/app/models/geo/repository_renamed_event.rb'
|
||||
- 'ee/app/models/project_alias.rb'
|
||||
- 'ee/app/models/status_page/project_setting.rb'
|
||||
- 'ee/app/serializers/vulnerability_entity.rb'
|
||||
- 'ee/app/services/ci/minutes/update_project_and_namespace_usage_service.rb'
|
||||
- 'ee/app/services/ee/ci/queue/build_queue_service.rb'
|
||||
- 'ee/app/services/geo/event_store.rb'
|
||||
- 'ee/app/services/geo/repository_base_sync_service.rb'
|
||||
- 'ee/app/services/timebox_report_service.rb'
|
||||
- 'ee/db/geo/migrate/20180405074130_add_partial_index_project_repository_verification.rb'
|
||||
- 'ee/lib/api/epic_issues.rb'
|
||||
- 'ee/lib/api/managed_licenses.rb'
|
||||
- 'ee/lib/bulk_imports/groups/pipelines/iterations_pipeline.rb'
|
||||
- 'ee/lib/ee/api/entities/approval_settings.rb'
|
||||
- 'ee/lib/ee/api/members.rb'
|
||||
- 'ee/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids.rb'
|
||||
- 'ee/lib/ee/gitlab/background_migration/populate_resolved_on_default_branch_column.rb'
|
||||
- 'ee/lib/ee/gitlab/ci/config/entry/job.rb'
|
||||
- 'ee/lib/ee/gitlab/ci/config/entry/need.rb'
|
||||
- 'ee/lib/ee/gitlab/event_store.rb'
|
||||
- 'ee/lib/ee/gitlab/web_ide/config/entry/global.rb'
|
||||
- 'ee/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary.rb'
|
||||
- 'ee/lib/gitlab/web_ide/config/entry/schema.rb'
|
||||
- 'ee/spec/controllers/admin/clusters_controller_spec.rb'
|
||||
- 'ee/spec/controllers/ee/groups_controller_spec.rb'
|
||||
- 'ee/spec/controllers/ee/projects/variables_controller_spec.rb'
|
||||
- 'ee/spec/controllers/groups/clusters_controller_spec.rb'
|
||||
- 'ee/spec/controllers/groups/todos_controller_spec.rb'
|
||||
- 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb'
|
||||
- 'ee/spec/controllers/projects/merge_requests_controller_spec.rb'
|
||||
- 'ee/spec/controllers/projects/protected_environments_controller_spec.rb'
|
||||
- 'ee/spec/controllers/projects/security/scanned_resources_controller_spec.rb'
|
||||
- 'ee/spec/controllers/projects_controller_spec.rb'
|
||||
- 'ee/spec/controllers/subscriptions_controller_spec.rb'
|
||||
- 'ee/spec/factories/epic_tree_nodes.rb'
|
||||
- 'ee/spec/factories/groups.rb'
|
||||
- 'ee/spec/factories/namespaces.rb'
|
||||
- 'ee/spec/factories/users.rb'
|
||||
- 'ee/spec/features/billings/billing_plans_spec.rb'
|
||||
- 'ee/spec/features/ide/user_commits_changes_spec.rb'
|
||||
- 'ee/spec/features/merge_request/user_approves_spec.rb'
|
||||
- 'ee/spec/features/merge_request/user_merges_immediately_spec.rb'
|
||||
- 'ee/spec/features/merge_request/user_sees_approval_widget_spec.rb'
|
||||
- 'ee/spec/features/merge_request/user_sees_merge_widget_spec.rb'
|
||||
- 'ee/spec/features/merge_request/user_sees_mr_approvals_promo_spec.rb'
|
||||
- 'ee/spec/features/merge_trains/two_merge_requests_on_train_spec.rb'
|
||||
- 'ee/spec/features/merge_trains/user_adds_merge_request_to_merge_train_spec.rb'
|
||||
- 'ee/spec/features/merge_trains/user_adds_to_merge_train_when_pipeline_succeeds_spec.rb'
|
||||
- 'ee/spec/features/projects/environments/environments_spec.rb'
|
||||
- 'ee/spec/features/projects/merge_requests/user_edits_merge_request_spec.rb'
|
||||
- 'ee/spec/features/projects/pipelines/pipeline_spec.rb'
|
||||
- 'ee/spec/features/uncompleted_learn_gitlab_link_spec.rb'
|
||||
- 'ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb'
|
||||
- 'ee/spec/frontend/fixtures/search.rb'
|
||||
- 'ee/spec/graphql/mutations/incident_management/timeline_event/create_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/requirements_management/export_requirements_spec.rb'
|
||||
- 'ee/spec/helpers/billing_plans_helper_spec.rb'
|
||||
- 'ee/spec/helpers/ee/users/callouts_helper_spec.rb'
|
||||
- 'ee/spec/helpers/projects/security/policies_helper_spec.rb'
|
||||
- 'ee/spec/helpers/routing/pseudonymization_helper_spec.rb'
|
||||
- 'ee/spec/helpers/trial_status_widget_helper_spec.rb'
|
||||
- 'ee/spec/lib/analytics/group_activity_calculator_spec.rb'
|
||||
- 'ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb'
|
||||
- 'ee/spec/lib/ee/api/entities/analytics/group_activity_spec.rb'
|
||||
- 'ee/spec/lib/ee/gitlab/usage_data_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/ci/minutes/cost_factor_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/ci/pipeline/chain/limit/size_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/git_access_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/graphql/aggregations/security_orchestration_policies/lazy_dast_profile_aggregate_spec.rb'
|
||||
- 'ee/spec/lib/incident_management/oncall_shift_generator_spec.rb'
|
||||
- 'ee/spec/models/approval_wrapped_code_owner_rule_spec.rb'
|
||||
- 'ee/spec/models/ci/minutes/limit_spec.rb'
|
||||
- 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb'
|
||||
- 'ee/spec/models/ci/minutes/project_monthly_usage_spec.rb'
|
||||
- 'ee/spec/models/ee/audit_event_spec.rb'
|
||||
- 'ee/spec/models/ee/ci/build_dependencies_spec.rb'
|
||||
- 'ee/spec/models/ee/ci/runner_spec.rb'
|
||||
- 'ee/spec/models/ee/namespace_spec.rb'
|
||||
- 'ee/spec/models/ee/service_desk_setting_spec.rb'
|
||||
- 'ee/spec/models/integrations/github_spec.rb'
|
||||
- 'ee/spec/models/ldap_group_link_spec.rb'
|
||||
- 'ee/spec/models/merge_request_spec.rb'
|
||||
- 'ee/spec/models/merge_train_spec.rb'
|
||||
- 'ee/spec/models/project_spec.rb'
|
||||
- 'ee/spec/models/vulnerabilities/read_spec.rb'
|
||||
- 'ee/spec/policies/merge_request_policy_spec.rb'
|
||||
- 'ee/spec/requests/api/ci/runner/jobs_put_spec.rb'
|
||||
- 'ee/spec/requests/api/ci/runner/jobs_trace_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/boards/epic_board_list_epics_query_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/boards/epic_boards_query_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/boards/epic_lists_query_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/group/dast_profile_schedule_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/group/epic/epic_issues_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/boards/epic_boards/epic_move_list_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/epics/create_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/epics/update_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/iterations/create_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/iterations/update_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/requirements_management/create_requirement_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/requirements_management/update_requirement_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/security_policy/assign_security_policy_project_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/security_policy/create_security_policy_project_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/security_policy/unassign_security_policy_project_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/vulnerabilities/create_external_issue_link_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/vulnerabilities/destroy_external_issue_link_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/mutations/vulnerabilities/finding_dismiss_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/namespace/projects_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/project/issues_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/project/pipeline/security_report_summary_spec.rb'
|
||||
- 'ee/spec/requests/api/graphql/project/requirements_management/test_reports_spec.rb'
|
||||
- 'ee/spec/requests/api/group_hooks_spec.rb'
|
||||
- 'ee/spec/requests/api/groups_spec.rb'
|
||||
- 'ee/spec/requests/api/invitations_spec.rb'
|
||||
- 'ee/spec/requests/api/issues_spec.rb'
|
||||
- 'ee/spec/requests/api/managed_licenses_spec.rb'
|
||||
- 'ee/spec/requests/api/project_push_rule_spec.rb'
|
||||
- 'ee/spec/requests/api/settings_spec.rb'
|
||||
- 'ee/spec/requests/groups_controller_spec.rb'
|
||||
- 'ee/spec/requests/projects/mirrors_controller_spec.rb'
|
||||
- 'ee/spec/requests/projects/requirements_management/requirements_controller_spec.rb'
|
||||
- 'ee/spec/serializers/vulnerabilities/finding_entity_spec.rb'
|
||||
- 'ee/spec/services/approval_rules/update_service_spec.rb'
|
||||
- 'ee/spec/services/audit_events/export_csv_service_spec.rb'
|
||||
- 'ee/spec/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service_spec.rb'
|
||||
- 'ee/spec/services/auto_merge/merge_train_service_spec.rb'
|
||||
- 'ee/spec/services/ci/create_pipeline_service/cross_needs_artifacts_spec.rb'
|
||||
- 'ee/spec/services/ci/external_pull_requests/process_github_event_service_spec.rb'
|
||||
- 'ee/spec/services/ci/minutes/batch_reset_service_spec.rb'
|
||||
- 'ee/spec/services/ci/minutes/update_build_minutes_service_spec.rb'
|
||||
- 'ee/spec/services/ci/pipeline_creation/drop_not_runnable_builds_service_spec.rb'
|
||||
- 'ee/spec/services/ee/merge_requests/create_pipeline_service_spec.rb'
|
||||
- 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb'
|
||||
- 'ee/spec/services/ee/protected_branches/create_service_spec.rb'
|
||||
- 'ee/spec/services/epics/update_service_spec.rb'
|
||||
- 'ee/spec/services/geo/file_download_service_spec.rb'
|
||||
- 'ee/spec/services/geo/file_registry_removal_service_spec.rb'
|
||||
- 'ee/spec/services/geo/repository_verification_primary_service_spec.rb'
|
||||
- 'ee/spec/services/groups/recent_merge_requests_count_service_spec.rb'
|
||||
- 'ee/spec/services/merge_requests/reset_approvals_service_spec.rb'
|
||||
- 'ee/spec/services/merge_trains/create_pipeline_service_spec.rb'
|
||||
- 'ee/spec/services/namespaces/check_storage_size_service_spec.rb'
|
||||
- 'ee/spec/services/projects/mark_for_deletion_service_spec.rb'
|
||||
- 'ee/spec/services/projects/restore_service_spec.rb'
|
||||
- 'ee/spec/services/security/merge_reports_service_spec.rb'
|
||||
- 'ee/spec/services/security/report_summary_service_spec.rb'
|
||||
- 'ee/spec/services/security/security_orchestration_policies/rule_schedule_service_spec.rb'
|
||||
- 'ee/spec/services/todo_service_spec.rb'
|
||||
- 'ee/spec/support/helpers/ee/geo_helpers.rb'
|
||||
- 'ee/spec/support/shared_examples/features/credentials_inventory_shared_examples.rb'
|
||||
- 'ee/spec/views/groups/feature_discovery_moments/advanced_features_dashboard.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/_search.html.haml_spec.rb'
|
||||
- 'ee/spec/workers/adjourned_group_deletion_worker_spec.rb'
|
||||
- 'ee/spec/workers/ci/batch_reset_minutes_worker_spec.rb'
|
||||
- 'ee/spec/workers/geo/repository_verification/primary/shard_worker_spec.rb'
|
||||
- 'lib/api/admin/ci/variables.rb'
|
||||
- 'lib/api/ci/job_artifacts.rb'
|
||||
- 'lib/api/commits.rb'
|
||||
- 'lib/api/concerns/packages/npm_endpoints.rb'
|
||||
- 'lib/api/deploy_keys.rb'
|
||||
- 'lib/api/deployments.rb'
|
||||
- 'lib/api/entities/ci/pipeline_schedule_details.rb'
|
||||
- 'lib/api/entities/diff_position.rb'
|
||||
- 'lib/api/entities/event.rb'
|
||||
- 'lib/api/entities/internal/pages/lookup_path.rb'
|
||||
- 'lib/api/entities/merge_request_diff.rb'
|
||||
- 'lib/api/entities/pages_domain.rb'
|
||||
- 'lib/api/entities/pages_domain_basic.rb'
|
||||
- 'lib/api/feature_flags.rb'
|
||||
- 'lib/api/feature_flags_user_lists.rb'
|
||||
- 'lib/api/features.rb'
|
||||
- 'lib/api/helm_packages.rb'
|
||||
- 'lib/api/helpers/internal_helpers.rb'
|
||||
- 'lib/api/helpers/merge_requests_helpers.rb'
|
||||
- 'lib/api/issues.rb'
|
||||
- 'lib/api/merge_requests.rb'
|
||||
- 'lib/api/project_container_repositories.rb'
|
||||
- 'lib/api/project_import.rb'
|
||||
- 'lib/api/releases.rb'
|
||||
- 'lib/api/remote_mirrors.rb'
|
||||
- 'lib/api/repositories.rb'
|
||||
- 'lib/api/search.rb'
|
||||
- 'lib/api/tags.rb'
|
||||
- 'lib/api/users.rb'
|
||||
- 'lib/api/wikis.rb'
|
||||
- 'lib/banzai/filter/commit_trailers_filter.rb'
|
||||
- 'lib/banzai/filter/references/commit_range_reference_filter.rb'
|
||||
- 'lib/banzai/filter/references/merge_request_reference_filter.rb'
|
||||
- 'lib/banzai/filter/references/snippet_reference_filter.rb'
|
||||
- 'lib/banzai/pipeline.rb'
|
||||
- 'lib/banzai/reference_parser/base_parser.rb'
|
||||
- 'lib/bulk_imports/common/pipelines/badges_pipeline.rb'
|
||||
- 'lib/feature.rb'
|
||||
- 'lib/gem_extensions/active_record/disable_joins/associations/association_scope.rb'
|
||||
- 'lib/generators/gitlab/usage_metric_definition_generator.rb'
|
||||
- 'lib/gitlab/background_migration/backfill_ci_queuing_tables.rb'
|
||||
- 'lib/gitlab/background_migration/backfill_project_repositories.rb'
|
||||
- 'lib/gitlab/background_migration/batching_strategies/base_strategy.rb'
|
||||
- 'lib/gitlab/background_migration/legacy_upload_mover.rb'
|
||||
- 'lib/gitlab/background_migration/migrate_stage_status.rb'
|
||||
- 'lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings.rb'
|
||||
- 'lib/gitlab/ci/config/entry/artifacts.rb'
|
||||
- 'lib/gitlab/ci/config/entry/bridge.rb'
|
||||
- 'lib/gitlab/ci/config/entry/cache.rb'
|
||||
- 'lib/gitlab/ci/config/entry/default.rb'
|
||||
- 'lib/gitlab/ci/config/entry/environment.rb'
|
||||
- 'lib/gitlab/ci/config/entry/image.rb'
|
||||
- 'lib/gitlab/ci/config/entry/include.rb'
|
||||
- 'lib/gitlab/ci/config/entry/inherit.rb'
|
||||
- 'lib/gitlab/ci/config/entry/job.rb'
|
||||
- 'lib/gitlab/ci/config/entry/key.rb'
|
||||
- 'lib/gitlab/ci/config/entry/need.rb'
|
||||
- 'lib/gitlab/ci/config/entry/processable.rb'
|
||||
- 'lib/gitlab/ci/config/entry/product/parallel.rb'
|
||||
- 'lib/gitlab/ci/config/entry/root.rb'
|
||||
- 'lib/gitlab/ci/config/entry/rules/rule.rb'
|
||||
- 'lib/gitlab/ci/config/entry/service.rb'
|
||||
- 'lib/gitlab/ci/config/entry/trigger.rb'
|
||||
- 'lib/gitlab/ci/config/entry/workflow.rb'
|
||||
- 'lib/gitlab/ci/pipeline/chain/config/process.rb'
|
||||
- 'lib/gitlab/ci/trace.rb'
|
||||
- 'lib/gitlab/ci/variables/builder.rb'
|
||||
- 'lib/gitlab/config/loader/yaml.rb'
|
||||
- 'lib/gitlab/conflict/file.rb'
|
||||
- 'lib/gitlab/data_builder/pipeline.rb'
|
||||
- 'lib/gitlab/database/background_migration/batched_job.rb'
|
||||
- 'lib/gitlab/database/background_migration/batched_migration.rb'
|
||||
- 'lib/gitlab/database/load_balancing/resolver.rb'
|
||||
- 'lib/gitlab/database/partitioning/replace_table.rb'
|
||||
- 'lib/gitlab/database/partitioning_migration_helpers/table_management_helpers.rb'
|
||||
- 'lib/gitlab/database_importers/instance_administrators/create_group.rb'
|
||||
- 'lib/gitlab/database_importers/self_monitoring/project/create_service.rb'
|
||||
- 'lib/gitlab/database_importers/self_monitoring/project/delete_service.rb'
|
||||
- 'lib/gitlab/diff/custom_diff.rb'
|
||||
- 'lib/gitlab/diff/file.rb'
|
||||
- 'lib/gitlab/diff/file_collection/base.rb'
|
||||
- 'lib/gitlab/diff/suggestion.rb'
|
||||
- 'lib/gitlab/error_tracking/error.rb'
|
||||
- 'lib/gitlab/git/repository.rb'
|
||||
- 'lib/gitlab/gitaly_client/operation_service.rb'
|
||||
- 'lib/gitlab/github_import/importer/pull_request_importer.rb'
|
||||
- 'lib/gitlab/github_import/representation/diff_note.rb'
|
||||
- 'lib/gitlab/gpg.rb'
|
||||
- 'lib/gitlab/graphs/commits.rb'
|
||||
- 'lib/gitlab/kubernetes/kube_client.rb'
|
||||
- 'lib/gitlab/legacy_github_import/client.rb'
|
||||
- 'lib/gitlab/middleware/read_only/controller.rb'
|
||||
- 'lib/gitlab/net_http_adapter.rb'
|
||||
- 'lib/gitlab/phabricator_import/cache/map.rb'
|
||||
- 'lib/gitlab/quick_actions/command_definition.rb'
|
||||
- 'lib/gitlab/search/abuse_detection.rb'
|
||||
- 'lib/gitlab/spamcheck/client.rb'
|
||||
- 'lib/gitlab/usage_data.rb'
|
||||
- 'lib/gitlab/utils/delegator_override/validator.rb'
|
||||
- 'lib/gitlab/web_ide/config.rb'
|
||||
- 'lib/gitlab/web_ide/config/entry/global.rb'
|
||||
- 'lib/gitlab/web_ide/config/entry/terminal.rb'
|
||||
- 'lib/mattermost/command.rb'
|
||||
- 'lib/safe_zip/extract.rb'
|
||||
- 'lib/tasks/gitlab/shell.rake'
|
||||
- 'lib/tasks/gitlab/update_templates.rake'
|
||||
- 'qa/qa/page/base.rb'
|
||||
- 'qa/qa/scenario/shared_attributes.rb'
|
||||
- 'qa/qa/specs/features/api/3_create/gitaly/distributed_reads_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb'
|
||||
- 'qa/qa/tools/generate_perf_testdata.rb'
|
||||
- 'qa/spec/git/repository_spec.rb'
|
||||
- 'qa/spec/runtime/env_spec.rb'
|
||||
- 'scripts/changed-feature-flags'
|
||||
- 'sidekiq_cluster/cli.rb'
|
||||
- 'spec/bin/feature_flag_spec.rb'
|
||||
- 'spec/controllers/admin/ci/variables_controller_spec.rb'
|
||||
- 'spec/controllers/admin/clusters_controller_spec.rb'
|
||||
- 'spec/controllers/concerns/renders_commits_spec.rb'
|
||||
- 'spec/controllers/groups/clusters_controller_spec.rb'
|
||||
- 'spec/controllers/groups/milestones_controller_spec.rb'
|
||||
- 'spec/controllers/groups/variables_controller_spec.rb'
|
||||
- 'spec/controllers/groups_controller_spec.rb'
|
||||
- 'spec/controllers/profiles_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/design_management/designs/raw_images_controller_spec.rb'
|
||||
- 'spec/controllers/projects/design_management/designs/resized_image_controller_spec.rb'
|
||||
- 'spec/controllers/projects/feature_flags_clients_controller_spec.rb'
|
||||
- 'spec/controllers/projects/forks_controller_spec.rb'
|
||||
- 'spec/controllers/projects/grafana_api_controller_spec.rb'
|
||||
- 'spec/controllers/projects/issues_controller_spec.rb'
|
||||
- 'spec/controllers/projects/jobs_controller_spec.rb'
|
||||
- 'spec/controllers/projects/merge_requests/creations_controller_spec.rb'
|
||||
- 'spec/controllers/projects/merge_requests_controller_spec.rb'
|
||||
- 'spec/controllers/projects/pipeline_schedules_controller_spec.rb'
|
||||
- 'spec/controllers/projects/pipelines/tests_controller_spec.rb'
|
||||
- 'spec/controllers/projects/pipelines_controller_spec.rb'
|
||||
- 'spec/controllers/projects/serverless/functions_controller_spec.rb'
|
||||
- 'spec/controllers/projects/settings/operations_controller_spec.rb'
|
||||
- 'spec/controllers/projects/tags_controller_spec.rb'
|
||||
- 'spec/controllers/projects/todos_controller_spec.rb'
|
||||
- 'spec/controllers/projects/variables_controller_spec.rb'
|
||||
- 'spec/controllers/projects_controller_spec.rb'
|
||||
- 'spec/factories/ci/pipelines.rb'
|
||||
- 'spec/factories/clusters/clusters.rb'
|
||||
- 'spec/factories/draft_note.rb'
|
||||
- 'spec/factories/integrations.rb'
|
||||
- 'spec/factories/merge_requests.rb'
|
||||
- 'spec/factories/notes.rb'
|
||||
- 'spec/factories/projects.rb'
|
||||
- 'spec/factories/snippets.rb'
|
||||
- 'spec/features/dashboard/merge_requests_spec.rb'
|
||||
- 'spec/features/issuables/issuable_list_spec.rb'
|
||||
- 'spec/features/issues/filtered_search/filter_issues_spec.rb'
|
||||
- 'spec/features/merge_request/user_creates_mr_spec.rb'
|
||||
- 'spec/features/merge_request/user_merges_only_if_pipeline_succeeds_spec.rb'
|
||||
- 'spec/features/merge_request/user_merges_when_pipeline_succeeds_spec.rb'
|
||||
- 'spec/features/merge_request/user_resolves_outdated_diff_discussions_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_avatar_on_diff_notes_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_discussions_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_merge_widget_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_pipelines_spec.rb'
|
||||
- 'spec/features/merge_request/user_sees_versions_spec.rb'
|
||||
- 'spec/features/merge_requests/user_lists_merge_requests_spec.rb'
|
||||
- 'spec/features/merge_requests/user_views_open_merge_requests_spec.rb'
|
||||
- 'spec/features/projects/branches_spec.rb'
|
||||
- 'spec/features/projects/commit/mini_pipeline_graph_spec.rb'
|
||||
- 'spec/features/projects/environments/environment_spec.rb'
|
||||
- 'spec/features/projects/environments/environments_spec.rb'
|
||||
- 'spec/features/projects/files/editing_a_file_spec.rb'
|
||||
- 'spec/features/projects/files/project_owner_creates_license_file_spec.rb'
|
||||
- 'spec/features/projects/files/user_reads_pipeline_status_spec.rb'
|
||||
- 'spec/features/projects/issues/viewing_issues_with_external_authorization_enabled_spec.rb'
|
||||
- 'spec/features/projects/jobs_spec.rb'
|
||||
- 'spec/features/projects/milestones/milestones_sorting_spec.rb'
|
||||
- 'spec/features/projects/pipelines/pipeline_spec.rb'
|
||||
- 'spec/features/projects/pipelines/pipelines_spec.rb'
|
||||
- 'spec/features/projects/serverless/functions_spec.rb'
|
||||
- 'spec/features/refactor_blob_viewer_disabled/projects/files/editing_a_file_spec.rb'
|
||||
- 'spec/features/refactor_blob_viewer_disabled/projects/files/project_owner_creates_license_file_spec.rb'
|
||||
- 'spec/finders/ci/commit_statuses_finder_spec.rb'
|
||||
- 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb'
|
||||
- 'spec/finders/clusters/knative_services_finder_spec.rb'
|
||||
- 'spec/finders/clusters/kubernetes_namespace_finder_spec.rb'
|
||||
- 'spec/finders/group_descendants_finder_spec.rb'
|
||||
- 'spec/finders/keys_finder_spec.rb'
|
||||
- 'spec/finders/merge_requests_finder_spec.rb'
|
||||
- 'spec/finders/personal_access_tokens_finder_spec.rb'
|
||||
- 'spec/finders/projects/serverless/functions_finder_spec.rb'
|
||||
- 'spec/frontend/fixtures/issues.rb'
|
||||
- 'spec/frontend/fixtures/merge_requests.rb'
|
||||
- 'spec/frontend/fixtures/merge_requests_diffs.rb'
|
||||
- 'spec/frontend/fixtures/projects_json.rb'
|
||||
- 'spec/frontend/fixtures/search.rb'
|
||||
- 'spec/graphql/mutations/ci/job_token_scope/remove_project_spec.rb'
|
||||
- 'spec/graphql/mutations/customer_relations/contacts/create_spec.rb'
|
||||
- 'spec/graphql/mutations/customer_relations/organizations/create_spec.rb'
|
||||
- 'spec/graphql/mutations/dependency_proxy/group_settings/update_spec.rb'
|
||||
- 'spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb'
|
||||
- 'spec/graphql/mutations/namespace/package_settings/update_spec.rb'
|
||||
- 'spec/graphql/types/project_statistics_type_spec.rb'
|
||||
- 'spec/graphql/types/root_storage_statistics_type_spec.rb'
|
||||
- 'spec/helpers/notes_helper_spec.rb'
|
||||
- 'spec/helpers/search_helper_spec.rb'
|
||||
- 'spec/helpers/todos_helper_spec.rb'
|
||||
- 'spec/initializers/secret_token_spec.rb'
|
||||
- 'spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb'
|
||||
- 'spec/lib/backup/manager_spec.rb'
|
||||
- 'spec/lib/banzai/filter/syntax_highlight_filter_spec.rb'
|
||||
- 'spec/lib/banzai/pipeline/wiki_pipeline_spec.rb'
|
||||
- 'spec/lib/banzai/pipeline_spec.rb'
|
||||
- 'spec/lib/banzai/reference_redactor_spec.rb'
|
||||
- 'spec/lib/constraints/group_url_constrainer_spec.rb'
|
||||
- 'spec/lib/constraints/project_url_constrainer_spec.rb'
|
||||
- 'spec/lib/constraints/user_url_constrainer_spec.rb'
|
||||
- 'spec/lib/feature_spec.rb'
|
||||
- 'spec/lib/gitlab/alert_management/payload/managed_prometheus_spec.rb'
|
||||
- 'spec/lib/gitlab/api_authentication/builder_spec.rb'
|
||||
- 'spec/lib/gitlab/asciidoc_spec.rb'
|
||||
- 'spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb'
|
||||
- 'spec/lib/gitlab/cache/ci/project_pipeline_status_spec.rb'
|
||||
- 'spec/lib/gitlab/checks/matching_merge_request_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/build/policy/variables_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/build/rules/rule_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/build/rules_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/entry/job_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/entry/processable_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/config/external/file/artifact_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/parsers/security/common_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/parsers/test/junit_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/chain/validate/abilities_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/pipeline/seed/environment_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/status/bridge/common_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/status/build/factory_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/variables/builder/group_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/variables/builder/project_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/variables/builder_spec.rb'
|
||||
- 'spec/lib/gitlab/config/entry/composable_hash_spec.rb'
|
||||
- 'spec/lib/gitlab/config/entry/configurable_spec.rb'
|
||||
- 'spec/lib/gitlab/current_settings_spec.rb'
|
||||
- 'spec/lib/gitlab/data_builder/pipeline_spec.rb'
|
||||
- 'spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb'
|
||||
- 'spec/lib/gitlab/database/background_migration/batched_migration_spec.rb'
|
||||
- 'spec/lib/gitlab/database/background_migration/batched_migration_wrapper_spec.rb'
|
||||
- 'spec/lib/gitlab/database/batch_count_spec.rb'
|
||||
- 'spec/lib/gitlab/database/gitlab_schema_spec.rb'
|
||||
- 'spec/lib/gitlab/database/migration_helpers/restrict_gitlab_schema_spec.rb'
|
||||
- 'spec/lib/gitlab/database/migration_helpers_spec.rb'
|
||||
- 'spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb'
|
||||
- 'spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb'
|
||||
- 'spec/lib/gitlab/database/partitioning_migration_helpers/foreign_key_helpers_spec.rb'
|
||||
- 'spec/lib/gitlab/database/partitioning_migration_helpers/index_helpers_spec.rb'
|
||||
- 'spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb'
|
||||
- 'spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb'
|
||||
- 'spec/lib/gitlab/email/message/repository_push_spec.rb'
|
||||
- 'spec/lib/gitlab/encoding_helper_spec.rb'
|
||||
- 'spec/lib/gitlab/external_authorization/client_spec.rb'
|
||||
- 'spec/lib/gitlab/fogbugz_import/project_creator_spec.rb'
|
||||
- 'spec/lib/gitlab/git/repository_spec.rb'
|
||||
- 'spec/lib/gitlab/git_access_spec.rb'
|
||||
- 'spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb'
|
||||
- 'spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb'
|
||||
- 'spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb'
|
||||
- 'spec/lib/gitlab/import_export/importer_spec.rb'
|
||||
- 'spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb'
|
||||
- 'spec/lib/gitlab/import_export/project/object_builder_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/metrics/dashboard/importer_spec.rb'
|
||||
- 'spec/lib/gitlab/metrics/dashboard/importers/prometheus_metrics_spec.rb'
|
||||
- 'spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb'
|
||||
- 'spec/lib/gitlab/metrics/dashboard/validator_spec.rb'
|
||||
- 'spec/lib/gitlab/phabricator_import/conduit/response_spec.rb'
|
||||
- 'spec/lib/gitlab/spamcheck/client_spec.rb'
|
||||
- 'spec/lib/gitlab/url_blocker_spec.rb'
|
||||
- 'spec/lib/gitlab/usage/metric_spec.rb'
|
||||
- 'spec/lib/gitlab/usage/metrics/query_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_counters/static_site_editor_counter_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_queries_spec.rb'
|
||||
- 'spec/lib/mattermost/session_spec.rb'
|
||||
- 'spec/lib/peek/views/detailed_view_spec.rb'
|
||||
- 'spec/lib/system_check/base_check_spec.rb'
|
||||
- 'spec/mailers/emails/pipelines_spec.rb'
|
||||
- 'spec/mailers/notify_spec.rb'
|
||||
- 'spec/models/active_session_spec.rb'
|
||||
- 'spec/models/ci/build_dependencies_spec.rb'
|
||||
- 'spec/models/ci/build_spec.rb'
|
||||
- 'spec/models/ci/build_trace_metadata_spec.rb'
|
||||
- 'spec/models/ci/commit_with_pipeline_spec.rb'
|
||||
- 'spec/models/ci/job_token/project_scope_link_spec.rb'
|
||||
- 'spec/models/ci/pipeline_spec.rb'
|
||||
- 'spec/models/clusters/applications/knative_spec.rb'
|
||||
- 'spec/models/concerns/bulk_insert_safe_spec.rb'
|
||||
- 'spec/models/concerns/deployment_platform_spec.rb'
|
||||
- 'spec/models/design_management/design_spec.rb'
|
||||
- 'spec/models/diff_note_spec.rb'
|
||||
- 'spec/models/environment_spec.rb'
|
||||
- 'spec/models/external_pull_request_spec.rb'
|
||||
- 'spec/models/instance_configuration_spec.rb'
|
||||
- 'spec/models/integrations/pipelines_email_spec.rb'
|
||||
- 'spec/models/merge_request_spec.rb'
|
||||
- 'spec/models/note_spec.rb'
|
||||
- 'spec/models/project_spec.rb'
|
||||
- 'spec/models/repository_spec.rb'
|
||||
- 'spec/models/u2f_registration_spec.rb'
|
||||
- 'spec/presenters/blob_presenter_spec.rb'
|
||||
- 'spec/requests/api/admin/ci/variables_spec.rb'
|
||||
- 'spec/requests/api/badges_spec.rb'
|
||||
- 'spec/requests/api/broadcast_messages_spec.rb'
|
||||
- 'spec/requests/api/ci/job_artifacts_spec.rb'
|
||||
- 'spec/requests/api/ci/pipeline_schedules_spec.rb'
|
||||
- 'spec/requests/api/ci/pipelines_spec.rb'
|
||||
- 'spec/requests/api/ci/runner/jobs_request_post_spec.rb'
|
||||
- 'spec/requests/api/ci/triggers_spec.rb'
|
||||
- 'spec/requests/api/commit_statuses_spec.rb'
|
||||
- 'spec/requests/api/discussions_spec.rb'
|
||||
- 'spec/requests/api/graphql/group/dependency_proxy_manifests_spec.rb'
|
||||
- 'spec/requests/api/graphql/group/group_members_spec.rb'
|
||||
- 'spec/requests/api/graphql/group/milestones_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/award_emojis/add_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/ci/job_token_scope/remove_project_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/commits/create_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/discussions/toggle_resolve_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/labels/create_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/merge_requests/create_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/metrics/dashboard/annotations/create_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/namespace/package_settings/update_spec.rb'
|
||||
- 'spec/requests/api/graphql/mutations/notes/create/note_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/container_repositories_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/issue/design_collection/version_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/issue/design_collection/versions_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/project_members_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/release_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/releases_spec.rb'
|
||||
- 'spec/requests/api/graphql/project/terraform/states_spec.rb'
|
||||
- 'spec/requests/api/graphql/tasks/task_completion_status_spec.rb'
|
||||
- 'spec/requests/api/import_github_spec.rb'
|
||||
- 'spec/requests/api/issues/get_group_issues_spec.rb'
|
||||
- 'spec/requests/api/issues/get_project_issues_spec.rb'
|
||||
- 'spec/requests/api/issues/post_projects_issues_spec.rb'
|
||||
- 'spec/requests/api/issues/put_projects_issues_spec.rb'
|
||||
- 'spec/requests/api/labels_spec.rb'
|
||||
- 'spec/requests/api/merge_requests_spec.rb'
|
||||
- 'spec/requests/api/namespaces_spec.rb'
|
||||
- 'spec/requests/api/notes_spec.rb'
|
||||
- 'spec/requests/api/oauth_tokens_spec.rb'
|
||||
- 'spec/requests/api/project_hooks_spec.rb'
|
||||
- 'spec/requests/api/projects_spec.rb'
|
||||
- 'spec/requests/api/protected_tags_spec.rb'
|
||||
- 'spec/requests/api/releases_spec.rb'
|
||||
- 'spec/requests/api/settings_spec.rb'
|
||||
- 'spec/requests/api/system_hooks_spec.rb'
|
||||
- 'spec/requests/api/users_spec.rb'
|
||||
- 'spec/requests/git_http_spec.rb'
|
||||
- 'spec/requests/lfs_http_spec.rb'
|
||||
- 'spec/requests/oauth_tokens_spec.rb'
|
||||
- 'spec/requests/openid_connect_spec.rb'
|
||||
- 'spec/requests/self_monitoring_project_spec.rb'
|
||||
- 'spec/routing/project_routing_spec.rb'
|
||||
- 'spec/rubocop/cop/rspec/be_success_matcher_spec.rb'
|
||||
- 'spec/serializers/feature_flag_entity_spec.rb'
|
||||
- 'spec/serializers/feature_flag_serializer_spec.rb'
|
||||
- 'spec/serializers/pipeline_serializer_spec.rb'
|
||||
- 'spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb'
|
||||
- 'spec/services/award_emojis/destroy_service_spec.rb'
|
||||
- 'spec/services/bulk_update_integration_service_spec.rb'
|
||||
- 'spec/services/ci/archive_trace_service_spec.rb'
|
||||
- 'spec/services/ci/create_downstream_pipeline_service_spec.rb'
|
||||
- 'spec/services/ci/create_pipeline_service/custom_config_content_spec.rb'
|
||||
- 'spec/services/ci/create_pipeline_service_spec.rb'
|
||||
- 'spec/services/ci/job_artifacts/create_service_spec.rb'
|
||||
- 'spec/services/ci/job_token_scope/remove_project_service_spec.rb'
|
||||
- 'spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb'
|
||||
- 'spec/services/ci/register_job_service_spec.rb'
|
||||
- 'spec/services/ci/retry_pipeline_service_spec.rb'
|
||||
- 'spec/services/dependency_proxy/group_settings/update_service_spec.rb'
|
||||
- 'spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb'
|
||||
- 'spec/services/deployments/update_environment_service_spec.rb'
|
||||
- 'spec/services/discussions/capture_diff_note_positions_service_spec.rb'
|
||||
- 'spec/services/environments/stop_service_spec.rb'
|
||||
- 'spec/services/files/delete_service_spec.rb'
|
||||
- 'spec/services/files/update_service_spec.rb'
|
||||
- 'spec/services/issues/resolve_discussions_spec.rb'
|
||||
- 'spec/services/merge_requests/create_pipeline_service_spec.rb'
|
||||
- 'spec/services/merge_requests/merge_service_spec.rb'
|
||||
- 'spec/services/merge_requests/post_merge_service_spec.rb'
|
||||
- 'spec/services/merge_requests/rebase_service_spec.rb'
|
||||
- 'spec/services/merge_requests/refresh_service_spec.rb'
|
||||
- 'spec/services/merge_requests/retarget_chain_service_spec.rb'
|
||||
- 'spec/services/merge_requests/squash_service_spec.rb'
|
||||
- 'spec/services/merge_requests/update_service_spec.rb'
|
||||
- 'spec/services/metrics/dashboard/clone_dashboard_service_spec.rb'
|
||||
- 'spec/services/namespaces/package_settings/update_service_spec.rb'
|
||||
- 'spec/services/notification_service_spec.rb'
|
||||
- 'spec/services/packages/debian/extract_metadata_service_spec.rb'
|
||||
- 'spec/services/pod_logs/kubernetes_service_spec.rb'
|
||||
- 'spec/services/projects/destroy_service_spec.rb'
|
||||
- 'spec/services/security/merge_reports_service_spec.rb'
|
||||
- 'spec/services/system_notes/design_management_service_spec.rb'
|
||||
- 'spec/services/todo_service_spec.rb'
|
||||
- 'spec/services/upload_service_spec.rb'
|
||||
- 'spec/sidekiq_cluster/sidekiq_cluster_spec.rb'
|
||||
- 'spec/support/database/prevent_cross_database_modification.rb'
|
||||
- 'spec/support/database/prevent_cross_joins.rb'
|
||||
- 'spec/support/helpers/cycle_analytics_helpers.rb'
|
||||
- 'spec/support/helpers/feature_flag_helpers.rb'
|
||||
- 'spec/support/helpers/project_forks_helper.rb'
|
||||
- 'spec/support/helpers/test_env.rb'
|
||||
- 'spec/support/shared_contexts/requests/api/graphql/jira_import/jira_projects_context.rb'
|
||||
- 'spec/support/shared_examples/ci/pipeline_email_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/controllers/concerns/integrations/integrations_actions_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/controllers/snippets_sort_order_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/graphql/mutations/boards_create_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/graphql/sorted_paginated_query_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/active_record_enum_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/concerns/from_set_operator_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/quick_actions/merge_request/merge_quick_action_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/diff_discussions_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/discussions_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/graphql/group_and_project_boards_query_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/merge_requests_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/notes_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/api/resolvable_discussions_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/graphql_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/requests/rack_attack_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/services/boards/boards_recent_visit_shared_examples.rb'
|
||||
- 'spec/support/trace/trace_helpers.rb'
|
||||
- 'spec/tooling/quality/test_level_spec.rb'
|
||||
- 'spec/uploaders/file_uploader_spec.rb'
|
||||
- 'spec/uploaders/packages/composer/cache_uploader_spec.rb'
|
||||
- 'spec/views/layouts/_search.html.haml_spec.rb'
|
||||
- 'spec/views/projects/merge_requests/_commits.html.haml_spec.rb'
|
||||
- 'spec/views/projects/merge_requests/edit.html.haml_spec.rb'
|
||||
- 'spec/views/projects/tags/index.html.haml_spec.rb'
|
||||
- 'spec/workers/expire_job_cache_worker_spec.rb'
|
||||
- 'spec/workers/expire_pipeline_cache_worker_spec.rb'
|
||||
- 'spec/workers/pipeline_notification_worker_spec.rb'
|
||||
- 'spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb'
|
||||
- 'spec/workers/update_external_pull_requests_worker_spec.rb'
|
||||
- 'spec/workers/web_hook_worker_spec.rb'
|
||||
|
|
@ -260,6 +260,9 @@ export default {
|
|||
showCsvButtons() {
|
||||
return this.isProject && this.isSignedIn;
|
||||
},
|
||||
showIssuableByEmail() {
|
||||
return this.initialEmail && this.isSignedIn;
|
||||
},
|
||||
showNewIssueDropdown() {
|
||||
return !this.isProject && this.hasAnyProjects;
|
||||
},
|
||||
|
|
@ -624,8 +627,9 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="hasAnyIssues">
|
||||
<div>
|
||||
<issuable-list
|
||||
v-if="hasAnyIssues"
|
||||
:namespace="fullPath"
|
||||
recent-searches-storage-key="issues"
|
||||
:search-input-placeholder="$options.i18n.searchPlaceholder"
|
||||
|
|
@ -768,50 +772,50 @@ export default {
|
|||
</template>
|
||||
</issuable-list>
|
||||
|
||||
<issuable-by-email v-if="initialEmail" class="gl-text-center gl-pt-5 gl-pb-7" />
|
||||
</div>
|
||||
|
||||
<div v-else-if="isSignedIn">
|
||||
<gl-empty-state
|
||||
:description="$options.i18n.noIssuesSignedInDescription"
|
||||
:title="$options.i18n.noIssuesSignedInTitle"
|
||||
:svg-path="emptyStateSvgPath"
|
||||
>
|
||||
<template #actions>
|
||||
<gl-button v-if="showNewIssueLink" :href="newIssuePath" variant="confirm">
|
||||
{{ $options.i18n.newIssueLabel }}
|
||||
</gl-button>
|
||||
<csv-import-export-buttons
|
||||
v-if="showCsvButtons"
|
||||
class="gl-mr-3"
|
||||
:export-csv-path="exportCsvPathWithQuery"
|
||||
:issuable-count="currentTabCount"
|
||||
/>
|
||||
<new-issue-dropdown v-if="showNewIssueDropdown" />
|
||||
</template>
|
||||
</gl-empty-state>
|
||||
<hr />
|
||||
<p class="gl-text-center gl-font-weight-bold gl-mb-0">
|
||||
{{ $options.i18n.jiraIntegrationTitle }}
|
||||
</p>
|
||||
<p class="gl-text-center gl-mb-0">
|
||||
<gl-sprintf :message="$options.i18n.jiraIntegrationMessage">
|
||||
<template #jiraDocsLink="{ content }">
|
||||
<gl-link :href="jiraIntegrationPath">{{ content }}</gl-link>
|
||||
<template v-else-if="isSignedIn">
|
||||
<gl-empty-state
|
||||
:description="$options.i18n.noIssuesSignedInDescription"
|
||||
:title="$options.i18n.noIssuesSignedInTitle"
|
||||
:svg-path="emptyStateSvgPath"
|
||||
>
|
||||
<template #actions>
|
||||
<gl-button v-if="showNewIssueLink" :href="newIssuePath" variant="confirm">
|
||||
{{ $options.i18n.newIssueLabel }}
|
||||
</gl-button>
|
||||
<csv-import-export-buttons
|
||||
v-if="showCsvButtons"
|
||||
class="gl-mr-3"
|
||||
:export-csv-path="exportCsvPathWithQuery"
|
||||
:issuable-count="currentTabCount"
|
||||
/>
|
||||
<new-issue-dropdown v-if="showNewIssueDropdown" />
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</p>
|
||||
<p class="gl-text-center gl-text-gray-500">
|
||||
{{ $options.i18n.jiraIntegrationSecondaryMessage }}
|
||||
</p>
|
||||
</div>
|
||||
</gl-empty-state>
|
||||
<hr />
|
||||
<p class="gl-text-center gl-font-weight-bold gl-mb-0">
|
||||
{{ $options.i18n.jiraIntegrationTitle }}
|
||||
</p>
|
||||
<p class="gl-text-center gl-mb-0">
|
||||
<gl-sprintf :message="$options.i18n.jiraIntegrationMessage">
|
||||
<template #jiraDocsLink="{ content }">
|
||||
<gl-link :href="jiraIntegrationPath">{{ content }}</gl-link>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</p>
|
||||
<p class="gl-text-center gl-text-gray-500">
|
||||
{{ $options.i18n.jiraIntegrationSecondaryMessage }}
|
||||
</p>
|
||||
</template>
|
||||
|
||||
<gl-empty-state
|
||||
v-else
|
||||
:description="$options.i18n.noIssuesSignedOutDescription"
|
||||
:title="$options.i18n.noIssuesSignedOutTitle"
|
||||
:svg-path="emptyStateSvgPath"
|
||||
:primary-button-text="$options.i18n.noIssuesSignedOutButtonText"
|
||||
:primary-button-link="signInPath"
|
||||
/>
|
||||
<gl-empty-state
|
||||
v-else
|
||||
:description="$options.i18n.noIssuesSignedOutDescription"
|
||||
:title="$options.i18n.noIssuesSignedOutTitle"
|
||||
:svg-path="emptyStateSvgPath"
|
||||
:primary-button-text="$options.i18n.noIssuesSignedOutButtonText"
|
||||
:primary-button-link="signInPath"
|
||||
/>
|
||||
|
||||
<issuable-by-email v-if="showIssuableByEmail" class="gl-text-center gl-pt-5 gl-pb-7" />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ export default {
|
|||
return this.$apollo.queries.alert.loading;
|
||||
},
|
||||
incidentTabEnabled() {
|
||||
return this.glFeatures.incidentTimelineEvents && this.glFeatures.incidentTimelineEventTab;
|
||||
return this.glFeatures.incidentTimelineEvents && this.glFeatures.incidentTimeline;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
|
|
|
|||
|
|
@ -110,9 +110,14 @@
|
|||
|
||||
.bs-callout,
|
||||
.form-check:first-child,
|
||||
.form-text.text-muted {
|
||||
.form-check .form-text.text-muted,
|
||||
.form-check + .form-text.text-muted {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.form-check .form-text.text-muted {
|
||||
margin-bottom: $grid-size;
|
||||
}
|
||||
}
|
||||
|
||||
.settings-list-icon {
|
||||
|
|
|
|||
|
|
@ -218,6 +218,8 @@ class GroupsController < Groups::ApplicationController
|
|||
|
||||
@has_projects = group_projects.exists?
|
||||
|
||||
set_sort_order
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class Projects::IncidentsController < Projects::ApplicationController
|
|||
before_action :load_incident, only: [:show]
|
||||
before_action do
|
||||
push_frontend_feature_flag(:incident_escalations, @project)
|
||||
push_frontend_feature_flag(:incident_timeline_event_tab, @project, default_enabled: :yaml)
|
||||
push_frontend_feature_flag(:incident_timeline, @project, default_enabled: :yaml)
|
||||
push_licensed_feature(:incident_timeline_events) if @project.licensed_feature_available?(:incident_timeline_events)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ module Mutations
|
|||
class Base < BaseMutation
|
||||
field :saved_reply, Types::SavedReplyType,
|
||||
null: true,
|
||||
description: 'Updated saved reply.'
|
||||
description: 'Saved reply after mutation.'
|
||||
|
||||
private
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Mutations
|
||||
module SavedReplies
|
||||
class Destroy < Base
|
||||
graphql_name 'SavedReplyDestroy'
|
||||
|
||||
authorize :destroy_saved_replies
|
||||
|
||||
argument :id, Types::GlobalIDType[::Users::SavedReply],
|
||||
required: true,
|
||||
description: copy_field_description(Types::SavedReplyType, :id)
|
||||
|
||||
def resolve(id:)
|
||||
raise Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled' unless feature_enabled?
|
||||
|
||||
saved_reply = authorized_find!(id)
|
||||
result = ::Users::SavedReplies::DestroyService.new(saved_reply: saved_reply).execute
|
||||
present_result(result)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -23,7 +23,7 @@ module Mutations
|
|||
raise Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled' unless feature_enabled?
|
||||
|
||||
saved_reply = authorized_find!(id)
|
||||
result = ::Users::SavedReplies::UpdateService.new(current_user: current_user, saved_reply: saved_reply, name: name, content: content).execute
|
||||
result = ::Users::SavedReplies::UpdateService.new(saved_reply: saved_reply, name: name, content: content).execute
|
||||
present_result(result)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ module Types
|
|||
mount_mutation Mutations::WorkItems::Update
|
||||
mount_mutation Mutations::SavedReplies::Create
|
||||
mount_mutation Mutations::SavedReplies::Update
|
||||
mount_mutation Mutations::SavedReplies::Destroy
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -206,6 +206,23 @@ module EmailsHelper
|
|||
end
|
||||
end
|
||||
|
||||
def new_email_address_added_text(email)
|
||||
_('A new email address has been added to your GitLab account: %{email}') % { email: email }
|
||||
end
|
||||
|
||||
def remove_email_address_text(format: nil)
|
||||
url = profile_emails_url
|
||||
|
||||
case format
|
||||
when :html
|
||||
settings_link_to = generate_link(_('email address settings'), url).html_safe
|
||||
_("If you want to remove this email address, visit the %{settings_link_to} page.").html_safe % { settings_link_to: settings_link_to }
|
||||
else
|
||||
_('If you want to remove this email address, visit %{profile_link}') %
|
||||
{ profile_link: url }
|
||||
end
|
||||
end
|
||||
|
||||
def admin_changed_password_text(format: nil)
|
||||
url = Gitlab.config.gitlab.url
|
||||
|
||||
|
|
|
|||
|
|
@ -141,6 +141,17 @@ module Emails
|
|||
end
|
||||
end
|
||||
|
||||
def new_email_address_added_email(user, email)
|
||||
return unless user
|
||||
|
||||
@user = user
|
||||
@email = email
|
||||
|
||||
Gitlab::I18n.with_locale(@user.preferred_language) do
|
||||
mail(to: @user.notification_email_or_default, subject: subject(_("New email address added")))
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def profile_email_with_layout(to:, subject:, layout: 'mailer')
|
||||
|
|
|
|||
|
|
@ -181,6 +181,10 @@ class NotifyPreview < ActionMailer::Preview
|
|||
Notify.unknown_sign_in_email(user, '127.0.0.1', Time.current).message
|
||||
end
|
||||
|
||||
def new_email_address_added_email
|
||||
Notify.new_email_address_added_email(user, 'someone@gitlab.com').message
|
||||
end
|
||||
|
||||
def service_desk_new_note_email
|
||||
cleanup do
|
||||
note = create_note(noteable_type: 'Issue', noteable_id: issue.id, note: 'Issue note content')
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ class UserPolicy < BasePolicy
|
|||
enable :update_user_status
|
||||
enable :create_saved_replies
|
||||
enable :update_saved_replies
|
||||
enable :destroy_saved_replies
|
||||
enable :read_user_personal_access_tokens
|
||||
enable :read_group_count
|
||||
enable :read_user_groups
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ module Members
|
|||
|
||||
if users.present?
|
||||
# helps not have to perform another query per user id to see if the member exists later on when fetching
|
||||
existing_members = source.members_and_requesters.where(user_id: users).index_by(&:user_id) # rubocop:disable CodeReuse/ActiveRecord
|
||||
existing_members = source.members_and_requesters.with_user(users).index_by(&:user_id)
|
||||
end
|
||||
|
||||
[emails, users, existing_members]
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ module Emails
|
|||
@params = params.dup
|
||||
@user = params.delete(:user)
|
||||
end
|
||||
|
||||
def notification_service
|
||||
NotificationService.new
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ module Emails
|
|||
|
||||
user.emails.create(params.merge(extra_params)).tap do |email|
|
||||
email&.confirm if skip_confirmation && current_user.admin?
|
||||
notification_service.new_email_address_added(user, email.email) if email.persisted? && !email.user_primary_email?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -109,6 +109,13 @@ class NotificationService
|
|||
mailer.unknown_sign_in_email(user, ip, time).deliver_later
|
||||
end
|
||||
|
||||
# Notify a user when a new email address is added to the their account
|
||||
def new_email_address_added(user, email)
|
||||
return unless user.can?(:receive_notifications)
|
||||
|
||||
mailer.new_email_address_added_email(user, email).deliver_later
|
||||
end
|
||||
|
||||
# When create an issue we should send an email to:
|
||||
#
|
||||
# * issue assignee if their notification level is not Disabled
|
||||
|
|
|
|||
|
|
@ -0,0 +1,23 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Users
|
||||
module SavedReplies
|
||||
class DestroyService
|
||||
def initialize(saved_reply:)
|
||||
@saved_reply = saved_reply
|
||||
end
|
||||
|
||||
def execute
|
||||
if saved_reply.destroy
|
||||
ServiceResponse.success(payload: { saved_reply: saved_reply })
|
||||
else
|
||||
ServiceResponse.error(message: saved_reply.errors.full_messages)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :saved_reply
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -3,8 +3,7 @@
|
|||
module Users
|
||||
module SavedReplies
|
||||
class UpdateService
|
||||
def initialize(current_user:, saved_reply:, name:, content:)
|
||||
@current_user = current_user
|
||||
def initialize(saved_reply:, name:, content:)
|
||||
@saved_reply = saved_reply
|
||||
@name = name
|
||||
@content = content
|
||||
|
|
@ -20,7 +19,7 @@ module Users
|
|||
|
||||
private
|
||||
|
||||
attr_reader :current_user, :saved_reply, :name, :content
|
||||
attr_reader :saved_reply, :name, :content
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
<%= say_hi(@user) %>
|
||||
|
||||
<%= new_email_address_added_text(@email) %>
|
||||
|
||||
<%= remove_email_address_text %>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
%p
|
||||
= say_hi(@user)
|
||||
%p
|
||||
= new_email_address_added_text(@email)
|
||||
%p
|
||||
= remove_email_address_text(format: :html)
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
name: group_ci_cd_analytics_page
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49608
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/292601
|
||||
milestone: '13.8'
|
||||
type: development
|
||||
group: group::release
|
||||
default_enabled: true
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
name: incident_timeline_event_tab
|
||||
name: incident_timeline
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80802
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/353426
|
||||
milestone: '14.9'
|
||||
|
|
@ -4261,7 +4261,26 @@ Input type: `SavedReplyCreateInput`
|
|||
| ---- | ---- | ----------- |
|
||||
| <a id="mutationsavedreplycreateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||
| <a id="mutationsavedreplycreateerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
|
||||
| <a id="mutationsavedreplycreatesavedreply"></a>`savedReply` | [`SavedReply`](#savedreply) | Updated saved reply. |
|
||||
| <a id="mutationsavedreplycreatesavedreply"></a>`savedReply` | [`SavedReply`](#savedreply) | Saved reply after mutation. |
|
||||
|
||||
### `Mutation.savedReplyDestroy`
|
||||
|
||||
Input type: `SavedReplyDestroyInput`
|
||||
|
||||
#### Arguments
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="mutationsavedreplydestroyclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||
| <a id="mutationsavedreplydestroyid"></a>`id` | [`UsersSavedReplyID!`](#userssavedreplyid) | Global ID of the saved reply. |
|
||||
|
||||
#### Fields
|
||||
|
||||
| Name | Type | Description |
|
||||
| ---- | ---- | ----------- |
|
||||
| <a id="mutationsavedreplydestroyclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||
| <a id="mutationsavedreplydestroyerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
|
||||
| <a id="mutationsavedreplydestroysavedreply"></a>`savedReply` | [`SavedReply`](#savedreply) | Saved reply after mutation. |
|
||||
|
||||
### `Mutation.savedReplyUpdate`
|
||||
|
||||
|
|
@ -4282,7 +4301,7 @@ Input type: `SavedReplyUpdateInput`
|
|||
| ---- | ---- | ----------- |
|
||||
| <a id="mutationsavedreplyupdateclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
|
||||
| <a id="mutationsavedreplyupdateerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
|
||||
| <a id="mutationsavedreplyupdatesavedreply"></a>`savedReply` | [`SavedReply`](#savedreply) | Updated saved reply. |
|
||||
| <a id="mutationsavedreplyupdatesavedreply"></a>`savedReply` | [`SavedReply`](#savedreply) | Saved reply after mutation. |
|
||||
|
||||
### `Mutation.scanExecutionPolicyCommit`
|
||||
|
||||
|
|
|
|||
|
|
@ -171,26 +171,27 @@ Users are notified of the following events:
|
|||
|
||||
<!-- The table is sorted first by recipient, then alphabetically. -->
|
||||
|
||||
| Event | Sent to | Settings level |
|
||||
|------------------------------|---------------------|------------------------------|
|
||||
| New release | Project members | Custom notification. |
|
||||
| Project moved | Project members | Any other than disabled. |
|
||||
| Email changed | User | Security email, always sent. |
|
||||
| Group access level changed | User | Sent when user group access level is changed. |
|
||||
| New email added | User | Security email, always sent. |
|
||||
| New SAML/SCIM user provisioned | User | Sent when a user is provisioned through SAML/SCIM. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/276018) in GitLab 13.8 |
|
||||
| New SSH key added | User | Security email, always sent. |
|
||||
| New user created | User | Sent on user creation, except for OmniAuth (LDAP). |
|
||||
| Password changed | User | Security email, always sent when user changes their own password. |
|
||||
| Password changed by administrator | User | Security email, always sent when an administrator changes the password of another user. |
|
||||
| Personal access tokens expiring soon | User | Security email, always sent. |
|
||||
| Personal access tokens have been created | User | Security email, always sent. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/337591) in GitLab 14.9. |
|
||||
| Personal access tokens have expired | User | Security email, always sent. |
|
||||
| Project access level changed | User | Sent when user project access level is changed. |
|
||||
| SSH key has expired | User | Security email, always sent. _[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322637) in GitLab 13.12._ |
|
||||
| Two-factor authentication disabled | User | Security email, always sent. |
|
||||
| User added to group | User | Sent when user is added to group. |
|
||||
| User added to project | User | Sent when user is added to project. |
|
||||
| Event | Sent to | Settings level |
|
||||
|------------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| New release | Project members | Custom notification. |
|
||||
| Project moved | Project members | Any other than disabled. |
|
||||
| Email changed | User | Security email, always sent. |
|
||||
| Group access level changed | User | Sent when user group access level is changed. |
|
||||
| New email address added | User | Security email, sent to primary email address. _[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/337635) in GitLab 14.9._ |
|
||||
| New email address added | User | Security email, sent to newly-added email address. |
|
||||
| New SAML/SCIM user provisioned | User | Sent when a user is provisioned through SAML/SCIM. _[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/276018) in GitLab 13.8._ |
|
||||
| New SSH key added | User | Security email, always sent. |
|
||||
| New user created | User | Sent on user creation, except for OmniAuth (LDAP). |
|
||||
| Password changed | User | Security email, always sent when user changes their own password. |
|
||||
| Password changed by administrator | User | Security email, always sent when an administrator changes the password of another user. |
|
||||
| Personal access tokens expiring soon | User | Security email, always sent. |
|
||||
| Personal access tokens have been created | User | Security email, always sent. _[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/337591) in GitLab 14.9._ |
|
||||
| Personal access tokens have expired | User | Security email, always sent. |
|
||||
| Project access level changed | User | Sent when user project access level is changed. |
|
||||
| SSH key has expired | User | Security email, always sent. _[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/322637) in GitLab 13.12._ |
|
||||
| Two-factor authentication disabled | User | Security email, always sent. |
|
||||
| User added to group | User | Sent when user is added to group. |
|
||||
| User added to project | User | Sent when user is added to project. |
|
||||
|
||||
## Notifications on issues, merge requests, and epics
|
||||
|
||||
|
|
|
|||
|
|
@ -1604,6 +1604,9 @@ msgstr ""
|
|||
msgid "A new Release %{tag} for %{name} was published. Visit the Releases page to read more about it:"
|
||||
msgstr ""
|
||||
|
||||
msgid "A new email address has been added to your GitLab account: %{email}"
|
||||
msgstr ""
|
||||
|
||||
msgid "A new impersonation token has been created."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -18691,6 +18694,12 @@ msgstr ""
|
|||
msgid "If you want to re-enable two-factor authentication, visit the %{settings_link_to} page."
|
||||
msgstr ""
|
||||
|
||||
msgid "If you want to remove this email address, visit %{profile_link}"
|
||||
msgstr ""
|
||||
|
||||
msgid "If you want to remove this email address, visit the %{settings_link_to} page."
|
||||
msgstr ""
|
||||
|
||||
msgid "If you've purchased or renewed your subscription and have an activation code, please enter it below to start the activation process."
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -24746,6 +24755,9 @@ msgstr ""
|
|||
msgid "New discussion"
|
||||
msgstr ""
|
||||
|
||||
msgid "New email address added"
|
||||
msgstr ""
|
||||
|
||||
msgid "New environment"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -43914,6 +43926,9 @@ msgstr ""
|
|||
msgid "email '%{email}' is not a verified email."
|
||||
msgstr ""
|
||||
|
||||
msgid "email address settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -509,6 +509,14 @@ RSpec.describe GroupsController, factory_default: :keep do
|
|||
expect(assigns(:issues)).to eq([issue_1])
|
||||
end
|
||||
end
|
||||
|
||||
it 'saves the sort order to user preferences' do
|
||||
stub_feature_flags(vue_issues_list: true)
|
||||
|
||||
get :issues, params: { id: group.to_param, sort: 'priority' }
|
||||
|
||||
expect(user.reload.user_preference.issues_sort).to eq('priority')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #merge_requests', :sidekiq_might_not_need_inline do
|
||||
|
|
|
|||
|
|
@ -452,13 +452,26 @@ describe('CE IssuesListApp component', () => {
|
|||
});
|
||||
|
||||
describe('IssuableByEmail component', () => {
|
||||
describe.each([true, false])(`when issue creation by email is enabled=%s`, (enabled) => {
|
||||
it(`${enabled ? 'renders' : 'does not render'}`, () => {
|
||||
wrapper = mountComponent({ provide: { initialEmail: enabled } });
|
||||
describe.each`
|
||||
initialEmail | hasAnyIssues | isSignedIn | exists
|
||||
${false} | ${false} | ${false} | ${false}
|
||||
${false} | ${true} | ${false} | ${false}
|
||||
${false} | ${false} | ${true} | ${false}
|
||||
${false} | ${true} | ${true} | ${false}
|
||||
${true} | ${false} | ${false} | ${false}
|
||||
${true} | ${true} | ${false} | ${false}
|
||||
${true} | ${false} | ${true} | ${true}
|
||||
${true} | ${true} | ${true} | ${true}
|
||||
`(
|
||||
`when issue creation by email is enabled=$initialEmail`,
|
||||
({ initialEmail, hasAnyIssues, isSignedIn, exists }) => {
|
||||
it(`${initialEmail ? 'renders' : 'does not render'}`, () => {
|
||||
wrapper = mountComponent({ provide: { initialEmail, hasAnyIssues, isSignedIn } });
|
||||
|
||||
expect(findIssuableByEmail().exists()).toBe(enabled);
|
||||
});
|
||||
});
|
||||
expect(findIssuableByEmail().exists()).toBe(exists);
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
describe('empty states', () => {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ describe('Incident Tabs component', () => {
|
|||
fullPath: '',
|
||||
iid: '',
|
||||
uploadMetricsFeatureAvailable: true,
|
||||
glFeatures: { incidentTimelineEventTab: true, incidentTimelineEvents: true },
|
||||
glFeatures: { incidentTimeline: true, incidentTimelineEvents: true },
|
||||
},
|
||||
data() {
|
||||
return { alert: mockAlert, ...data };
|
||||
|
|
|
|||
|
|
@ -0,0 +1,46 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Mutations::SavedReplies::Destroy do
|
||||
let_it_be(:current_user) { create(:user) }
|
||||
let_it_be(:saved_reply) { create(:saved_reply, user: current_user) }
|
||||
|
||||
let(:mutation) { described_class.new(object: nil, context: { current_user: current_user }, field: nil) }
|
||||
|
||||
describe '#resolve' do
|
||||
subject(:resolve) do
|
||||
mutation.resolve(id: saved_reply.to_global_id)
|
||||
end
|
||||
|
||||
context 'when feature is disabled' do
|
||||
before do
|
||||
stub_feature_flags(saved_replies: false)
|
||||
end
|
||||
|
||||
it 'raises Gitlab::Graphql::Errors::ResourceNotAvailable' do
|
||||
expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable, 'Feature disabled')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when feature is enabled for current user' do
|
||||
before do
|
||||
stub_feature_flags(saved_replies: current_user)
|
||||
end
|
||||
|
||||
context 'when service fails to delete a new saved reply' do
|
||||
before do
|
||||
saved_reply.destroy!
|
||||
end
|
||||
|
||||
it 'raises Gitlab::Graphql::Errors::ResourceNotAvailable' do
|
||||
expect { subject }.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when service successfully deletes the saved reply' do
|
||||
it { expect(subject[:errors]).to be_empty }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -416,4 +416,27 @@ RSpec.describe Emails::Profile do
|
|||
is_expected.to have_body_text /#{profile_two_factor_auth_path}/
|
||||
end
|
||||
end
|
||||
|
||||
describe 'added a new email address' do
|
||||
let_it_be(:user) { create(:user) }
|
||||
let_it_be(:email) { create(:email, user: user) }
|
||||
|
||||
subject { Notify.new_email_address_added_email(user, email) }
|
||||
|
||||
it_behaves_like 'an email sent from GitLab'
|
||||
it_behaves_like 'it should not have Gmail Actions links'
|
||||
it_behaves_like 'a user cannot unsubscribe through footer link'
|
||||
|
||||
it 'is sent to the user' do
|
||||
is_expected.to deliver_to user.email
|
||||
end
|
||||
|
||||
it 'has the correct subject' do
|
||||
is_expected.to have_subject /^New email address added$/i
|
||||
end
|
||||
|
||||
it 'includes a link to the email address page' do
|
||||
is_expected.to have_body_text /#{profile_emails_path}/
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1934,7 +1934,7 @@ RSpec.describe API::Users do
|
|||
end
|
||||
end
|
||||
|
||||
describe "POST /users/:id/emails" do
|
||||
describe "POST /users/:id/emails", :mailer do
|
||||
it "does not create invalid email" do
|
||||
post api("/users/#{user.id}/emails", admin), params: {}
|
||||
|
||||
|
|
@ -1944,11 +1944,15 @@ RSpec.describe API::Users do
|
|||
|
||||
it "creates unverified email" do
|
||||
email_attrs = attributes_for :email
|
||||
expect do
|
||||
post api("/users/#{user.id}/emails", admin), params: email_attrs
|
||||
end.to change { user.emails.count }.by(1)
|
||||
|
||||
perform_enqueued_jobs do
|
||||
expect do
|
||||
post api("/users/#{user.id}/emails", admin), params: email_attrs
|
||||
end.to change { user.emails.count }.by(1)
|
||||
end
|
||||
|
||||
expect(json_response['confirmed_at']).to be_nil
|
||||
should_email(user)
|
||||
end
|
||||
|
||||
it "returns a 400 for invalid ID" do
|
||||
|
|
|
|||
|
|
@ -25,5 +25,34 @@ RSpec.describe Emails::CreateService do
|
|||
|
||||
expect(user.emails).to include(Email.find_by(opts))
|
||||
end
|
||||
|
||||
it 'sends a notification to the user' do
|
||||
expect_next_instance_of(NotificationService) do |notification_service|
|
||||
expect(notification_service).to receive(:new_email_address_added)
|
||||
end
|
||||
|
||||
service.execute
|
||||
end
|
||||
|
||||
it 'does not send a notification when the email is not persisted' do
|
||||
allow_next_instance_of(NotificationService) do |notification_service|
|
||||
expect(notification_service).not_to receive(:new_email_address_added)
|
||||
end
|
||||
|
||||
service.execute(email: 'invalid@@example.com')
|
||||
end
|
||||
|
||||
it 'does not send a notification email when the email is the primary, because we are creating the user' do
|
||||
allow_next_instance_of(NotificationService) do |notification_service|
|
||||
expect(notification_service).not_to receive(:new_email_address_added)
|
||||
end
|
||||
|
||||
# This is here to ensure that the service is actually called.
|
||||
allow_next_instance_of(described_class) do |create_service|
|
||||
expect(create_service).to receive(:execute).and_call_original
|
||||
end
|
||||
|
||||
create(:user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -376,6 +376,17 @@ RSpec.describe NotificationService, :mailer do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#new_email_address_added' do
|
||||
let_it_be(:user) { create(:user) }
|
||||
let_it_be(:email) { create(:email, user: user) }
|
||||
|
||||
subject { notification.new_email_address_added(user, email) }
|
||||
|
||||
it 'sends email to the user' do
|
||||
expect { subject }.to have_enqueued_email(user, email, mail: 'new_email_address_added_email')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Notes' do
|
||||
context 'issue note' do
|
||||
let_it_be(:project) { create(:project, :private) }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Users::SavedReplies::DestroyService do
|
||||
describe '#execute' do
|
||||
let!(:saved_reply) { create(:saved_reply) }
|
||||
|
||||
subject { described_class.new(saved_reply: saved_reply).execute }
|
||||
|
||||
context 'when destroy fails' do
|
||||
before do
|
||||
allow(saved_reply).to receive(:destroy).and_return(false)
|
||||
end
|
||||
|
||||
it 'does not remove Saved Reply from database' do
|
||||
expect { subject }.not_to change(::Users::SavedReply, :count)
|
||||
end
|
||||
|
||||
it { is_expected.not_to be_success }
|
||||
end
|
||||
|
||||
context 'when destroy succeeds' do
|
||||
it { is_expected.to be_success }
|
||||
|
||||
it 'removes Saved Reply from database' do
|
||||
expect { subject }.to change(::Users::SavedReply, :count).by(-1)
|
||||
end
|
||||
|
||||
it 'returns saved reply' do
|
||||
expect(subject[:saved_reply]).to eq(saved_reply)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -9,7 +9,7 @@ RSpec.describe Users::SavedReplies::UpdateService do
|
|||
let_it_be(:other_saved_reply) { create(:saved_reply, user: current_user) }
|
||||
let_it_be(:saved_reply_from_other_user) { create(:saved_reply) }
|
||||
|
||||
subject { described_class.new(current_user: current_user, saved_reply: saved_reply, name: name, content: content).execute }
|
||||
subject { described_class.new(saved_reply: saved_reply, name: name, content: content).execute }
|
||||
|
||||
context 'when update fails' do
|
||||
let(:name) { other_saved_reply.name }
|
||||
|
|
|
|||
|
|
@ -80,6 +80,8 @@ RSpec.shared_examples_for 'wikis API returns wiki page' do
|
|||
|
||||
context 'when wiki page has versions' do
|
||||
let(:new_content) { 'New content' }
|
||||
let(:old_content) { page.content }
|
||||
let(:old_version_id) { page.version.id }
|
||||
|
||||
before do
|
||||
wiki.update_page(page.page, content: new_content, message: 'updated page')
|
||||
|
|
@ -96,10 +98,10 @@ RSpec.shared_examples_for 'wikis API returns wiki page' do
|
|||
end
|
||||
|
||||
context 'when version param is set' do
|
||||
let(:params) { { version: page.version.id } }
|
||||
let(:params) { { version: old_version_id } }
|
||||
|
||||
it 'retrieves the specific page version' do
|
||||
expect(json_response['content']).to eq(page.content)
|
||||
expect(json_response['content']).to eq(old_content)
|
||||
end
|
||||
|
||||
context 'when version param is not valid or inexistent' do
|
||||
|
|
|
|||
Loading…
Reference in New Issue