From f569792df8a25caa1bed9c448c8c4c3f837f5164 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 27 Apr 2020 18:09:41 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .rubocop.yml | 19 + Gemfile | 4 +- Gemfile.lock | 55 +- .../components/alert_management_list.vue | 59 +- app/assets/javascripts/alert_management/list.js | 7 + app/assets/javascripts/boards/models/issue.js | 26 +- .../javascripts/boards/stores/boards_store.js | 28 +- app/assets/javascripts/users_select.js | 774 ++++++++++++++++++++ app/assets/javascripts/users_select/constants.js | 18 - app/assets/javascripts/users_select/index.js | 767 -------------------- app/assets/javascripts/users_select/utils.js | 27 - app/controllers/application_controller.rb | 2 +- app/graphql/types/jira_import_type.rb | 5 +- app/helpers/explore_helper.rb | 2 +- app/helpers/projects/alert_management_helper.rb | 6 +- app/models/jira_import_state.rb | 2 +- app/views/dashboard/snippets/index.html.haml | 2 - .../projects/alert_management/index.html.haml | 2 +- ...3808-add-scheduled-at-field-to-jira-imports.yml | 5 + .../Remove-update-function-logic-from-issue-js.yml | 5 + .../sh-clean-up-public-visiblity-level-check.yml | 5 + changelogs/unreleased/sh-update-grape-gem.yml | 5 + .../user-can-enable-alert-management.yml | 5 + ...00423101529_add_scheduled_at_to_jira_imports.rb | 9 + db/structure.sql | 4 +- .../monitoring/prometheus/gitlab_metrics.md | 1 + doc/api/README.md | 4 +- doc/api/graphql/reference/gitlab_schema.graphql | 58 +- doc/api/graphql/reference/gitlab_schema.json | 175 ++++- doc/api/graphql/reference/index.md | 13 +- doc/development/api_styleguide.md | 8 + doc/development/ee_features.md | 12 +- doc/development/geo/framework.md | 4 +- doc/development/logging.md | 2 +- .../dependency_scanning/index.md | 3 +- doc/user/project/issues/design_management.md | 1 + lib/api/access_requests.rb | 2 +- lib/api/admin/sidekiq.rb | 2 +- lib/api/api.rb | 2 +- lib/api/api_guard.rb | 11 +- lib/api/appearance.rb | 2 +- lib/api/applications.rb | 2 +- lib/api/avatar.rb | 2 +- lib/api/award_emoji.rb | 2 +- lib/api/badges.rb | 2 +- lib/api/boards.rb | 2 +- lib/api/branches.rb | 2 +- lib/api/broadcast_messages.rb | 2 +- lib/api/commit_statuses.rb | 2 +- lib/api/commits.rb | 2 +- lib/api/container_registry_event.rb | 2 +- lib/api/deploy_keys.rb | 2 +- lib/api/deploy_tokens.rb | 6 +- lib/api/deployments.rb | 2 +- lib/api/discussions.rb | 2 +- lib/api/environments.rb | 2 +- lib/api/error_tracking.rb | 2 +- lib/api/events.rb | 2 +- lib/api/features.rb | 2 +- lib/api/files.rb | 2 +- lib/api/group_boards.rb | 2 +- lib/api/group_clusters.rb | 2 +- lib/api/group_container_repositories.rb | 2 +- lib/api/group_export.rb | 2 +- lib/api/group_import.rb | 2 +- lib/api/group_labels.rb | 2 +- lib/api/group_milestones.rb | 2 +- lib/api/group_variables.rb | 2 +- lib/api/groups.rb | 4 +- lib/api/helpers/merge_requests_helpers.rb | 2 +- lib/api/helpers/projects_helpers.rb | 2 +- lib/api/import_github.rb | 2 +- lib/api/internal/base.rb | 2 +- lib/api/internal/pages.rb | 2 +- lib/api/issues.rb | 10 +- lib/api/job_artifacts.rb | 2 +- lib/api/jobs.rb | 2 +- lib/api/keys.rb | 2 +- lib/api/labels.rb | 2 +- lib/api/lint.rb | 2 +- lib/api/lsif_data.rb | 2 +- lib/api/markdown.rb | 2 +- lib/api/members.rb | 6 +- lib/api/merge_request_diffs.rb | 2 +- lib/api/merge_requests.rb | 8 +- lib/api/metrics/dashboard/annotations.rb | 2 +- lib/api/milestone_responses.rb | 2 +- lib/api/namespaces.rb | 2 +- lib/api/notes.rb | 2 +- lib/api/notification_settings.rb | 2 +- lib/api/pages.rb | 2 +- lib/api/pages_domains.rb | 2 +- lib/api/pagination_params.rb | 2 +- lib/api/pipeline_schedules.rb | 2 +- lib/api/pipelines.rb | 2 +- lib/api/project_clusters.rb | 2 +- lib/api/project_container_repositories.rb | 2 +- lib/api/project_events.rb | 2 +- lib/api/project_export.rb | 2 +- lib/api/project_hooks.rb | 2 +- lib/api/project_import.rb | 2 +- lib/api/project_milestones.rb | 2 +- lib/api/project_snapshots.rb | 2 +- lib/api/project_snippets.rb | 2 +- lib/api/project_statistics.rb | 2 +- lib/api/project_templates.rb | 2 +- lib/api/projects.rb | 4 +- lib/api/protected_branches.rb | 2 +- lib/api/protected_tags.rb | 2 +- lib/api/release/links.rb | 2 +- lib/api/releases.rb | 2 +- lib/api/remote_mirrors.rb | 2 +- lib/api/repositories.rb | 4 +- lib/api/resource_label_events.rb | 2 +- lib/api/runner.rb | 4 +- lib/api/runners.rb | 12 +- lib/api/search.rb | 2 +- lib/api/services.rb | 2 +- lib/api/settings.rb | 11 +- lib/api/sidekiq_metrics.rb | 2 +- lib/api/snippets.rb | 2 +- lib/api/statistics.rb | 2 +- lib/api/submodules.rb | 2 +- lib/api/subscriptions.rb | 2 +- lib/api/suggestions.rb | 2 +- lib/api/system_hooks.rb | 2 +- lib/api/tags.rb | 2 +- lib/api/templates.rb | 2 +- lib/api/terraform/state.rb | 2 +- lib/api/todos.rb | 2 +- lib/api/triggers.rb | 2 +- lib/api/user_counts.rb | 2 +- lib/api/users.rb | 2 +- .../validations/types/comma_separated_to_array.rb | 2 +- .../types/comma_separated_to_integer_array.rb | 15 + lib/api/validations/types/labels_list.rb | 24 - lib/api/validations/types/safe_file.rb | 15 - lib/api/validations/types/workhorse_file.rb | 13 +- lib/api/variables.rb | 2 +- lib/api/version.rb | 2 +- lib/api/wikis.rb | 4 +- lib/gitlab/ci/pipeline/chain/command.rb | 15 + lib/gitlab/ci/pipeline/chain/sequence.rb | 3 + .../Security/Secure-Binaries.gitlab-ci.yml | 2 +- lib/gitlab/ci/templates/Terraform.gitlab-ci.yml | 2 +- lib/gitlab/visibility_level.rb | 12 +- locale/gitlab.pot | 19 +- package.json | 4 +- rubocop/cop/api/grape_api_instance.rb | 42 ++ rubocop/cop/api/grape_array_missing_coerce.rb | 83 +++ rubocop/cop/gitlab/json.rb | 36 + scripts/frontend/webpack_dev_server.js | 68 ++ spec/factories/identities.rb | 2 +- .../components/alert_management_list_spec.js | 11 +- spec/frontend/boards/boards_store_spec.js | 61 ++ spec/frontend/boards/issue_spec.js | 22 +- .../deploy_keys/components/action_btn_spec.js | 54 ++ spec/frontend/deploy_keys/components/app_spec.js | 142 ++++ spec/frontend/deploy_keys/components/key_spec.js | 161 +++++ .../deploy_keys/components/keys_panel_spec.js | 63 ++ .../dirty_submit/dirty_submit_collection_spec.js | 22 + .../dirty_submit/dirty_submit_factory_spec.js | 18 + .../dirty_submit/dirty_submit_form_spec.js | 97 +++ spec/frontend/dirty_submit/helper.js | 43 ++ spec/frontend/pipelines/mock_data.js | 423 +++++++++++ spec/frontend/pipelines/pipelines_spec.js | 659 +++++++++++++++++ spec/frontend/users_select/utils_spec.js | 33 - spec/graphql/types/jira_import_type_spec.rb | 2 +- spec/helpers/explore_helper_spec.rb | 19 +- .../projects/alert_management_helper_spec.rb | 17 +- .../deploy_keys/components/action_btn_spec.js | 72 -- .../javascripts/deploy_keys/components/app_spec.js | 155 ---- .../javascripts/deploy_keys/components/key_spec.js | 157 ----- .../deploy_keys/components/keys_panel_spec.js | 63 -- .../dirty_submit/dirty_submit_collection_spec.js | 29 - .../dirty_submit/dirty_submit_factory_spec.js | 18 - .../dirty_submit/dirty_submit_form_spec.js | 114 --- spec/javascripts/dirty_submit/helper.js | 48 -- spec/javascripts/pipelines/pipelines_spec.js | 783 --------------------- spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb | 10 + .../gitlab/kubernetes/helm/base_command_spec.rb | 80 +-- .../gitlab/kubernetes/helm/delete_command_spec.rb | 35 +- .../gitlab/kubernetes/helm/init_command_spec.rb | 73 +- .../gitlab/kubernetes/helm/install_command_spec.rb | 84 +-- .../gitlab/kubernetes/helm/patch_command_spec.rb | 68 +- .../gitlab/kubernetes/helm/reset_command_spec.rb | 33 +- spec/lib/gitlab/visibility_level_spec.rb | 24 + spec/models/jira_import_state_spec.rb | 1 + .../api/graphql/project/jira_import_spec.rb | 1 + spec/requests/api/settings_spec.rb | 10 +- spec/rubocop/cop/api/grape_api_instance_spec.rb | 31 + .../cop/api/grape_array_missing_coerce_spec.rb | 64 ++ spec/rubocop/cop/code_reuse/worker_spec.rb | 2 +- spec/rubocop/cop/gitlab/json_spec.rb | 39 + .../helm_commands_shared_examples.rb | 131 ++++ .../helm_generated_script_shared_examples.rb | 15 - 196 files changed, 3781 insertions(+), 2947 deletions(-) create mode 100644 app/assets/javascripts/users_select.js delete mode 100644 app/assets/javascripts/users_select/constants.js delete mode 100644 app/assets/javascripts/users_select/index.js delete mode 100644 app/assets/javascripts/users_select/utils.js create mode 100644 changelogs/unreleased/213808-add-scheduled-at-field-to-jira-imports.yml create mode 100644 changelogs/unreleased/Remove-update-function-logic-from-issue-js.yml create mode 100644 changelogs/unreleased/sh-clean-up-public-visiblity-level-check.yml create mode 100644 changelogs/unreleased/sh-update-grape-gem.yml create mode 100644 changelogs/unreleased/user-can-enable-alert-management.yml create mode 100644 db/migrate/20200423101529_add_scheduled_at_to_jira_imports.rb create mode 100644 lib/api/validations/types/comma_separated_to_integer_array.rb delete mode 100644 lib/api/validations/types/labels_list.rb delete mode 100644 lib/api/validations/types/safe_file.rb create mode 100644 rubocop/cop/api/grape_api_instance.rb create mode 100644 rubocop/cop/api/grape_array_missing_coerce.rb create mode 100644 rubocop/cop/gitlab/json.rb create mode 100755 scripts/frontend/webpack_dev_server.js create mode 100644 spec/frontend/deploy_keys/components/action_btn_spec.js create mode 100644 spec/frontend/deploy_keys/components/app_spec.js create mode 100644 spec/frontend/deploy_keys/components/key_spec.js create mode 100644 spec/frontend/deploy_keys/components/keys_panel_spec.js create mode 100644 spec/frontend/dirty_submit/dirty_submit_collection_spec.js create mode 100644 spec/frontend/dirty_submit/dirty_submit_factory_spec.js create mode 100644 spec/frontend/dirty_submit/dirty_submit_form_spec.js create mode 100644 spec/frontend/dirty_submit/helper.js create mode 100644 spec/frontend/pipelines/mock_data.js create mode 100644 spec/frontend/pipelines/pipelines_spec.js delete mode 100644 spec/frontend/users_select/utils_spec.js delete mode 100644 spec/javascripts/deploy_keys/components/action_btn_spec.js delete mode 100644 spec/javascripts/deploy_keys/components/app_spec.js delete mode 100644 spec/javascripts/deploy_keys/components/key_spec.js delete mode 100644 spec/javascripts/deploy_keys/components/keys_panel_spec.js delete mode 100644 spec/javascripts/dirty_submit/dirty_submit_collection_spec.js delete mode 100644 spec/javascripts/dirty_submit/dirty_submit_factory_spec.js delete mode 100644 spec/javascripts/dirty_submit/dirty_submit_form_spec.js delete mode 100644 spec/javascripts/dirty_submit/helper.js delete mode 100644 spec/javascripts/pipelines/pipelines_spec.js create mode 100644 spec/rubocop/cop/api/grape_api_instance_spec.rb create mode 100644 spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb create mode 100644 spec/rubocop/cop/gitlab/json_spec.rb create mode 100644 spec/support/shared_examples/helm_commands_shared_examples.rb delete mode 100644 spec/support/shared_examples/lib/gitlab/helm_generated_script_shared_examples.rb diff --git a/.rubocop.yml b/.rubocop.yml index 5de4cb7874f..bd19b80e8b5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -211,6 +211,13 @@ Gitlab/HTTParty: - 'spec/**/*' - 'ee/spec/**/*' +Gitlab/Json: + Enabled: false + Exclude: + - 'db/**/*' + - 'qa/**/*' + - 'scripts/**/*' + GitlabSecurity/PublicSend: Enabled: true Exclude: @@ -277,6 +284,18 @@ Gitlab/Union: - 'spec/**/*' - 'ee/spec/**/*' +API/GrapeAPIInstance: + Enabled: true + Include: + - 'lib/**/api/**/*.rb' + - 'ee/**/api/**/*.rb' + +API/GrapeArrayMissingCoerce: + Enabled: true + Include: + - 'lib/**/api/**/*.rb' + - 'ee/**/api/**/*.rb' + Cop/SidekiqOptionsQueue: Enabled: true Exclude: diff --git a/Gemfile b/Gemfile index 031252846e0..88c1ed19a30 100644 --- a/Gemfile +++ b/Gemfile @@ -19,7 +19,7 @@ gem 'default_value_for', '~> 3.3.0' gem 'pg', '~> 1.1' gem 'rugged', '~> 0.28' -gem 'grape-path-helpers', '~> 1.2' +gem 'grape-path-helpers', '~> 1.3' gem 'faraday', '~> 0.12' gem 'marginalia', '~> 1.8.0' @@ -82,7 +82,7 @@ gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' gem 'net-ldap' # API -gem 'grape', '~> 1.1.0' +gem 'grape', '~> 1.3.2' gem 'grape-entity', '~> 0.7.1' gem 'rack-cors', '~> 1.0.6', require: 'rack/cors' diff --git a/Gemfile.lock b/Gemfile.lock index cba3e863e24..9f60cdcd4ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -103,10 +103,6 @@ GEM aws-sdk-core (= 2.11.374) aws-sigv4 (1.1.0) aws-eventstream (~> 1.0, >= 1.0.2) - axiom-types (0.1.1) - descendants_tracker (~> 0.0.4) - ice_nine (~> 0.11.0) - thread_safe (~> 0.3, >= 0.3.1) babosa (1.0.2) base32 (0.3.2) batch-loader (1.4.0) @@ -165,8 +161,6 @@ GEM nap open4 (~> 1.3) coderay (1.1.2) - coercible (1.0.0) - descendants_tracker (~> 0.0.1) colored2 (3.1.2) commonmarker (0.20.1) ruby-enum (~> 0.5) @@ -222,8 +216,6 @@ GEM ruby-statistics (>= 2.1) thor (>= 0.19, < 2) unicode_plot (>= 0.0.4, < 1.0.0) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) device_detector (1.0.0) devise (4.7.1) bcrypt (~> 3.0) @@ -250,6 +242,28 @@ GEM doorkeeper-openid_connect (1.6.3) doorkeeper (>= 5.0, < 5.2) json-jwt (~> 1.6) + dry-configurable (0.11.5) + concurrent-ruby (~> 1.0) + dry-core (~> 0.4, >= 0.4.7) + dry-equalizer (~> 0.2) + dry-container (0.7.2) + concurrent-ruby (~> 1.0) + dry-configurable (~> 0.1, >= 0.1.3) + dry-core (0.4.9) + concurrent-ruby (~> 1.0) + dry-equalizer (0.3.0) + dry-inflector (0.2.0) + dry-logic (1.0.6) + concurrent-ruby (~> 1.0) + dry-core (~> 0.2) + dry-equalizer (~> 0.2) + dry-types (1.4.0) + concurrent-ruby (~> 1.0) + dry-container (~> 0.3) + dry-core (~> 0.4, >= 0.4.4) + dry-equalizer (~> 0.3) + dry-inflector (~> 0.1, >= 0.1.2) + dry-logic (~> 1.0, >= 1.0.2) ed25519 (1.2.4) elasticsearch (6.8.0) elasticsearch-api (= 6.8.0) @@ -439,19 +453,19 @@ GEM signet (~> 0.7) gpgme (2.0.20) mini_portile2 (~> 2.3) - grape (1.1.0) + grape (1.3.2) activesupport builder + dry-types (>= 1.1) mustermann-grape (~> 1.0.0) rack (>= 1.3.0) rack-accept - virtus (>= 1.0.0) grape-entity (0.7.1) activesupport (>= 4.0) multi_json (>= 1.3.2) - grape-path-helpers (1.2.0) + grape-path-helpers (1.3.0) activesupport - grape (~> 1.0) + grape (~> 1.3) rake (~> 12) grape_logging (1.8.3) grape @@ -645,9 +659,10 @@ GEM multi_xml (0.6.0) multipart-post (2.1.1) murmurhash3 (0.1.6) - mustermann (1.0.3) - mustermann-grape (1.0.0) - mustermann (~> 1.0.0) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) + mustermann-grape (1.0.1) + mustermann (>= 1.0.0) nakayoshi_fork (0.0.4) nap (1.1.0) nenv (0.3.0) @@ -961,6 +976,7 @@ GEM ruby-saml (1.7.2) nokogiri (>= 1.5.10) ruby-statistics (2.1.2) + ruby2_keywords (0.0.2) ruby_dep (1.5.0) ruby_parser (3.13.1) sexp_processor (~> 4.9) @@ -1119,11 +1135,6 @@ GEM activerecord (>= 3.0) activesupport (>= 3.0) version_sorter (2.2.4) - virtus (1.0.5) - axiom-types (~> 0.1) - coercible (~> 1.0) - descendants_tracker (~> 0.0, >= 0.0.3) - equalizer (~> 0.0, >= 0.0.9) vmstat (2.3.0) warden (1.2.8) rack (>= 2.0.6) @@ -1254,9 +1265,9 @@ DEPENDENCIES google-api-client (~> 0.23) google-protobuf (~> 3.8.0) gpgme (~> 2.0.19) - grape (~> 1.1.0) + grape (~> 1.3.2) grape-entity (~> 0.7.1) - grape-path-helpers (~> 1.2) + grape-path-helpers (~> 1.3) grape_logging (~> 1.7) graphiql-rails (~> 1.4.10) graphql (~> 1.10.5) diff --git a/app/assets/javascripts/alert_management/components/alert_management_list.vue b/app/assets/javascripts/alert_management/components/alert_management_list.vue index 626d3017319..bd60dd45261 100644 --- a/app/assets/javascripts/alert_management/components/alert_management_list.vue +++ b/app/assets/javascripts/alert_management/components/alert_management_list.vue @@ -1,5 +1,5 @@