From 1eb82b65c554f21d83447f895a6208905fabe112 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 18 Sep 2019 14:14:39 +0000 Subject: Add latest changes from gitlab-org/gitlab@12-3-auto-deploy-20190916 --- .eslintrc.yml | 1 + .gitlab-ci.yml | 1 + .gitlab/ci/cng.gitlab-ci.yml | 5 +- .gitlab/ci/docs.gitlab-ci.yml | 39 +- .gitlab/ci/frontend.gitlab-ci.yml | 69 +- .gitlab/ci/global.gitlab-ci.yml | 95 +-- .gitlab/ci/memory.gitlab-ci.yml | 14 +- .gitlab/ci/pages.gitlab-ci.yml | 7 +- .gitlab/ci/qa.gitlab-ci.yml | 21 +- .gitlab/ci/rails.gitlab-ci.yml | 214 +++-- .gitlab/ci/reports.gitlab-ci.yml | 227 +----- .gitlab/ci/review.gitlab-ci.yml | 68 +- .gitlab/ci/setup.gitlab-ci.yml | 14 +- .gitlab/ci/test-metadata.gitlab-ci.yml | 30 +- .gitlab/ci/yaml.gitlab-ci.yml | 5 +- .gitlab/issue_templates/Problem_Validation.md | 41 - .rubocop_todo.yml | 5 + 16790-render-xml-artifacts.yml | 5 - GITLAB_PAGES_VERSION | 2 +- Gemfile | 2 +- Gemfile.lock | 4 +- app/assets/javascripts/blob/template_selector.js | 4 +- app/assets/javascripts/clusters/clusters_bundle.js | 54 +- .../clusters/services/clusters_service.js | 2 +- .../javascripts/clusters/stores/clusters_store.js | 1 + app/assets/javascripts/commit/image_file.js | 19 +- .../components/cluster_form_dropdown.vue | 182 ----- .../components/eks_cluster_configuration_form.vue | 9 +- .../eks_cluster/components/role_name_dropdown.vue | 53 -- app/assets/javascripts/gl_dropdown.js | 10 +- app/assets/javascripts/issue.js | 3 +- .../jobs/components/log/duration_badge.vue | 13 - .../javascripts/jobs/components/log/line.vue | 2 +- .../jobs/components/log/line_header.vue | 16 +- .../jobs/components/log/line_number.vue | 9 +- app/assets/javascripts/jobs/components/log/log.vue | 11 +- app/assets/javascripts/jobs/store/utils.js | 35 +- app/assets/javascripts/label_manager.js | 5 +- app/assets/javascripts/labels_select.js | 25 +- app/assets/javascripts/lib/utils/text_markdown.js | 4 +- app/assets/javascripts/milestone_select.js | 8 +- .../monitoring/components/charts/column.vue | 2 +- .../monitoring/components/charts/empty_chart.vue | 2 +- .../monitoring/components/charts/single_stat.vue | 2 +- .../monitoring/components/charts/time_series.vue | 120 +-- .../monitoring/components/dashboard.vue | 2 - .../javascripts/monitoring/components/embed.vue | 1 - app/assets/javascripts/network/branch_graph.js | 12 +- app/assets/javascripts/notes.js | 44 +- .../notes/components/discussion_actions.vue | 7 +- .../admin/application_settings/general/index.js | 3 - .../pages/admin/application_settings/show/index.js | 3 + .../graphs/show/stat_graph_contributors_util.js | 4 +- .../services/performance_bar_service.js | 9 + app/assets/javascripts/profile/gl_crop.js | 13 +- app/assets/javascripts/project_find_file.js | 5 +- app/assets/javascripts/right_sidebar.js | 14 +- app/assets/javascripts/search_autocomplete.js | 9 +- app/assets/javascripts/test_utils/simulate_drag.js | 8 +- app/assets/javascripts/users_select.js | 7 +- app/assets/javascripts/zen_mode.js | 4 +- app/assets/stylesheets/framework/flash.scss | 6 +- app/assets/stylesheets/framework/job_log.scss | 49 -- app/assets/stylesheets/framework/snippets.scss | 4 + app/assets/stylesheets/framework/sortable.scss | 18 - app/assets/stylesheets/framework/variables.scss | 3 - app/assets/stylesheets/pages/boards.scss | 14 + app/assets/stylesheets/pages/issues.scss | 4 + app/assets/stylesheets/pages/merge_requests.scss | 4 + app/assets/stylesheets/pages/projects.scss | 10 +- .../admin/application_settings_controller.rb | 11 +- .../projects/merge_requests_controller.rb | 2 +- app/controllers/projects/pipelines_controller.rb | 10 +- app/finders/issuable_finder.rb | 65 +- app/graphql/resolvers/issues_resolver.rb | 19 +- app/graphql/types/order.rb | 8 + app/graphql/types/sort.rb | 10 + app/graphql/types/sort_enum.rb | 13 - app/helpers/page_layout_helper.rb | 1 + app/helpers/projects_helper.rb | 2 +- app/models/ci/artifact_blob.rb | 2 +- app/models/ci/build_metadata.rb | 46 +- app/models/clusters/applications/ingress.rb | 21 + app/models/clusters/cluster.rb | 31 +- app/models/clusters/concerns/application_core.rb | 4 - app/models/commit.rb | 1 + app/models/concerns/routable.rb | 20 +- app/models/diff_note.rb | 13 +- app/models/merge_request.rb | 17 +- app/models/milestone.rb | 9 +- app/models/milestone_release.rb | 4 +- app/models/note_diff_file.rb | 6 +- app/models/project.rb | 12 +- app/models/project_services/bugzilla_service.rb | 2 + .../custom_issue_tracker_service.rb | 2 + app/models/project_services/data_fields.rb | 52 +- .../gitlab_issue_tracker_service.rb | 2 + app/models/project_services/issue_tracker_data.rb | 3 + .../project_services/issue_tracker_service.rb | 63 +- app/models/project_services/jira_service.rb | 33 +- app/models/project_services/jira_tracker_data.rb | 7 + app/models/project_services/redmine_service.rb | 2 + app/models/project_services/youtrack_service.rb | 2 + app/models/protected_branch.rb | 5 - app/models/release.rb | 9 +- app/presenters/ci/build_metadata_presenter.rb | 3 +- app/services/clusters/applications/base_service.rb | 4 - .../clusters/applications/create_service.rb | 2 +- .../clusters/applications/destroy_service.rb | 2 +- .../clusters/applications/update_service.rb | 2 +- .../projects/create_from_template_service.rb | 23 +- app/services/releases/concerns.rb | 22 +- app/services/releases/create_service.rb | 4 +- app/services/releases/update_service.rb | 4 +- app/services/service_response.rb | 4 +- .../_account_and_limit.html.haml | 2 +- .../application_settings/_diff_limits.html.haml | 2 +- .../_external_authorization_service_form.html.haml | 2 +- .../admin/application_settings/_signin.html.haml | 2 +- .../admin/application_settings/_signup.html.haml | 2 +- .../admin/application_settings/_terminal.html.haml | 2 +- .../admin/application_settings/_terms.html.haml | 2 +- .../_visibility_and_access.html.haml | 2 +- .../admin/application_settings/general.html.haml | 105 --- .../admin/application_settings/show.html.haml | 105 +++ app/views/layouts/nav/sidebar/_admin.html.haml | 2 +- app/views/projects/mirrors/_mirror_repos.html.haml | 6 +- .../shared/_create_protected_branch.html.haml | 2 +- .../projects/registry/repositories/index.html.haml | 2 +- app/views/projects/services/_form.html.haml | 6 +- app/views/shared/projects/_project.html.haml | 9 +- app/views/shared/snippets/_form.html.haml | 2 +- app/views/shared/snippets/_header.html.haml | 2 +- bin/changelog | 9 +- bin/elastic_repo_indexer | 101 +++ .../unreleased/29155-fix-devise-401-responses.yml | 5 - ...ix-ci_usage_warning_message-message-builder.yml | 5 + changelogs/unreleased/64213-not_filtering.yml | 5 - .../65192-enable-modsecurity-in-ingress.yml | 5 + .../66986-milestone-release-many-to-many.yml | 5 - ...rt-schedule-productivity-analytics-backfill.yml | 5 + ...-auto-devops-docker-build-secret-forwarding.yml | 5 - .../enabling_runners_token_for_groups.yml | 5 - .../unreleased/language-trends-over-time.yml | 5 - .../ms-implement-build-specific-timeout.yml | 5 - .../unreleased/osw-improve-discussions-query.yml | 5 - ...e-vue-resource-from-performance-bar-service.yml | 5 - config/gitlab.yml.example | 4 - config/initializers/7_prometheus_metrics.rb | 6 +- config/initializers/8_devise.rb | 8 +- config/routes/admin.rb | 2 +- danger/changelog/Dangerfile | 6 - danger/commit_messages/Dangerfile | 10 +- danger/only_documentation/Dangerfile | 24 + ...ation_settings_snowplow_collector_uri_column.rb | 2 +- .../20190828170945_create_package_metadatum.rb | 14 - db/migrate/20190828172831_create_package_tag.rb | 14 - ...nalytics_language_trend_repository_languages.rb | 35 - ...0212256_add_any_approver_rule_unique_indexes.rb | 30 - ...326_schedule_productivity_analytics_backfill.rb | 31 + ...ation_settings_snowplow_collector_uri_rename.rb | 2 +- ...oval_status_to_protected_branches_in_batches.rb | 46 -- ..._column_from_intermediate_release_milestones.rb | 9 - ...schedule_project_any_approval_rule_migration.rb | 47 -- ...le_merge_request_any_approval_rule_migration.rb | 47 -- db/schema.rb | 36 +- doc/README.md | 14 +- doc/administration/auth/ldap-ee.md | 2 +- doc/administration/container_registry.md | 739 ++++++++++++++++- doc/administration/dependency_proxy.md | 154 +++- .../geo/replication/docker_registry.md | 13 +- doc/administration/geo/replication/index.md | 6 +- doc/administration/gitaly/index.md | 2 +- doc/administration/index.md | 8 +- doc/administration/maven_packages.md | 4 +- doc/administration/maven_repository.md | 4 +- doc/administration/npm_registry.md | 4 +- doc/administration/packages.md | 179 ++++- doc/administration/packages/container_registry.md | 882 --------------------- doc/administration/packages/dependency_proxy.md | 148 ---- .../packages/img/mitmproxy-docker.png | Bin 142591 -> 0 bytes doc/administration/packages/index.md | 175 ---- doc/api/container_registry.md | 2 +- doc/api/epics.md | 2 - doc/api/groups.md | 3 +- doc/api/issues.md | 5 +- doc/api/packages.md | 2 +- doc/api/projects.md | 3 - doc/api/releases/index.md | 173 ++-- doc/api/settings.md | 1 + doc/ci/docker/using_docker_build.md | 2 +- doc/ci/docker/using_kaniko.md | 2 +- doc/ci/environments.md | 2 +- .../laravel_with_gitlab_and_envoy/index.md | 4 +- .../img/gitlab_workflow_example_extended_11_11.png | Bin 0 -> 136497 bytes .../img/gitlab_workflow_example_extended_v12_3.png | Bin 78448 -> 0 bytes doc/ci/introduction/index.md | 8 +- doc/ci/jenkins/index.md | 4 +- doc/ci/triggers/README.md | 2 +- doc/ci/variables/predefined_variables.md | 2 +- doc/ci/yaml/README.md | 15 - doc/container_registry/README.md | 4 +- doc/container_registry/troubleshooting.md | 4 +- doc/development/README.md | 1 - doc/development/api_styleguide.md | 13 - doc/development/architecture.md | 8 +- doc/development/changelog.md | 10 +- doc/development/documentation/index.md | 133 +++- doc/development/elasticsearch.md | 2 +- doc/development/packages.md | 6 +- doc/development/pipelines.md | 216 ----- doc/development/polling.md | 4 +- doc/development/testing_guide/end_to_end/index.md | 18 + .../testing_guide/end_to_end/style_guide.md | 38 +- doc/development/testing_guide/img/k9s.png | Bin 364038 -> 0 bytes doc/development/testing_guide/review_apps.md | 46 +- doc/install/aws/index.md | 2 +- doc/install/google_cloud_platform/index.md | 2 +- doc/install/installation.md | 19 - doc/integration/shibboleth.md | 4 +- doc/raketasks/backup_restore.md | 2 +- doc/raketasks/cleanup.md | 5 - doc/topics/autodevops/index.md | 58 +- doc/topics/autodevops/quick_start_guide.md | 2 +- doc/university/support/README.md | 2 +- .../container_scanning/index.md | 35 +- .../dependency_scanning/index.md | 2 +- doc/user/clusters/applications.md | 33 +- doc/user/group/clusters/index.md | 4 + doc/user/group/dependency_proxy/index.md | 77 +- doc/user/group/index.md | 4 +- doc/user/index.md | 4 +- doc/user/packages/container_registry/index.md | 158 ---- .../img/group_dependency_proxy.png | Bin 40162 -> 0 bytes doc/user/packages/dependency_proxy/index.md | 74 -- doc/user/packages/index.md | 19 - .../maven_repository/img/maven_package_view.png | Bin 16105 -> 0 bytes doc/user/packages/maven_repository/index.md | 340 -------- .../packages/npm_registry/img/npm_package_view.png | Bin 10349 -> 0 bytes doc/user/packages/npm_registry/index.md | 147 ---- doc/user/permissions.md | 4 +- doc/user/profile/index.md | 2 +- doc/user/profile/personal_access_tokens.md | 2 +- doc/user/project/container_registry.md | 320 +++++++- doc/user/project/deploy_tokens/index.md | 2 +- doc/user/project/img/mitmproxy-docker.png | Bin 0 -> 142591 bytes doc/user/project/index.md | 6 +- .../project/issues/img/link_zoom_call_in_issue.png | Bin 0 -> 69554 bytes .../project/issues/img/zoom-quickaction-button.png | Bin 117097 -> 0 bytes doc/user/project/issues/issue_data_and_actions.md | 25 +- doc/user/project/maven_packages.md | 4 +- doc/user/project/operations/feature_flags.md | 2 - doc/user/project/packages/maven.md | 4 +- doc/user/project/packages/maven_packages.md | 4 +- doc/user/project/packages/maven_repository.md | 343 +++++++- doc/user/project/packages/npm_registry.md | 150 +++- doc/user/project/pipelines/job_artifacts.md | 6 +- doc/user/project/settings/index.md | 2 +- .../wiki/img/wiki_create_new_page_modal.png | Bin 0 -> 5831 bytes doc/user/project/wiki/index.md | 10 +- .../time-tracking/time-tracking-example.png | Bin 0 -> 14564 bytes .../time-tracking/time-tracking-sidebar.png | Bin 0 -> 9068 bytes doc/workflow/time_tracking.md | 20 +- .../img/time_tracking_example_v12_2.png | Bin 16362 -> 0 bytes .../img/time_tracking_sidebar_v8_16.png | Bin 9068 -> 0 bytes lib/api/entities.rb | 10 +- lib/api/groups.rb | 3 +- lib/api/helpers/issues_helpers.rb | 6 - lib/api/helpers/projects_helpers.rb | 8 - lib/api/helpers/services_helpers.rb | 1 + lib/api/issues.rb | 25 +- lib/api/pipelines.rb | 23 +- lib/api/projects.rb | 4 +- lib/api/releases.rb | 4 +- lib/gitlab/auth/ldap/dn.rb | 1 + .../add_gitlab_instance_administration_project.rb | 14 - lib/gitlab/ci/config/entry/job.rb | 9 +- .../Security/Container-Scanning.gitlab-ci.yml | 61 +- .../ci/templates/Security/SAST.gitlab-ci.yml | 138 +++- lib/gitlab/ci/yaml_processor.rb | 1 - lib/gitlab/daemon.rb | 4 +- lib/gitlab/devise_failure.rb | 13 - lib/gitlab/discussions_diff/file_collection.rb | 29 +- lib/gitlab/ee_compat_check.rb | 1 + lib/gitlab/etag_caching/router.rb | 4 + lib/gitlab/hook_data/merge_request_builder.rb | 1 - lib/gitlab/profiler.rb | 1 + lib/gitlab/quick_actions/issuable_actions.rb | 1 + lib/gitlab/slash_commands/presenters/issue_move.rb | 1 + lib/gitlab/time_tracking_formatter.rb | 6 +- lib/gitlab/usage_data.rb | 49 +- lib/gitlab_danger.rb | 3 +- locale/gitlab.pot | 39 +- package.json | 8 +- qa/qa.rb | 2 - qa/qa/page/admin/settings/general.rb | 2 +- qa/qa/page/main/login.rb | 9 +- qa/qa/page/main/menu.rb | 6 +- .../project/settings/mirroring_repositories.rb | 10 +- qa/qa/page/project/settings/protected_branches.rb | 37 +- qa/qa/page/project/wiki/git_access.rb | 13 - qa/qa/resource/group.rb | 11 +- qa/qa/resource/members.rb | 28 - qa/qa/resource/project.rb | 10 +- qa/qa/resource/protected_branch.rb | 35 +- qa/qa/resource/repository/project_push.rb | 4 +- qa/qa/resource/repository/wiki_push.rb | 9 +- qa/qa/resource/wiki.rb | 9 - .../repository/push_protected_branch_spec.rb | 20 +- scripts/review_apps/review-apps.sh | 12 +- spec/bin/changelog_spec.rb | 8 - .../admin/application_settings_controller_spec.rb | 27 +- spec/controllers/application_controller_spec.rb | 39 +- spec/controllers/concerns/send_file_upload_spec.rb | 1 + spec/controllers/projects/jobs_controller_spec.rb | 1 + .../projects/merge_requests_controller_spec.rb | 6 +- spec/factories/services.rb | 74 +- .../admin_disables_git_access_protocol_spec.rb | 5 - spec/features/admin/admin_settings_spec.rb | 2 +- spec/finders/issues_finder_spec.rb | 202 +---- .../api/schemas/public_api/v4/release.json | 5 +- spec/frontend/clusters/clusters_bundle_spec.js | 34 +- .../components/cluster_form_dropdown_spec.js | 137 ---- .../components/role_name_dropdown_spec.js | 43 - spec/frontend/fixtures/application_settings.rb | 2 +- spec/frontend/jobs/store/utils_spec.js | 16 - .../notes/components/discussion_actions_spec.js | 36 +- spec/helpers/application_helper_spec.rb | 1 + spec/helpers/defer_script_tag_helper_spec.rb | 1 + spec/javascripts/boards/boards_store_spec.js | 4 +- .../jobs/components/log/duration_badge_spec.js | 31 - .../jobs/components/log/line_header_spec.js | 11 - spec/javascripts/test_bundle.js | 2 +- spec/lib/banzai/pipeline/gfm_pipeline_spec.rb | 6 +- spec/lib/container_registry/client_spec.rb | 1 + ..._gitlab_instance_administration_project_spec.rb | 234 ------ spec/lib/gitlab/ci/build/step_spec.rb | 52 +- spec/lib/gitlab/ci/config/entry/job_spec.rb | 31 - spec/lib/gitlab/ci/yaml_processor_spec.rb | 42 - .../discussions_diff/file_collection_spec.rb | 39 +- spec/lib/gitlab/encoding_helper_spec.rb | 1 + spec/lib/gitlab/etag_caching/router_spec.rb | 9 + spec/lib/gitlab/git/blame_spec.rb | 1 + spec/lib/gitlab/git/blob_spec.rb | 2 + spec/lib/gitlab/git/conflict/file_spec.rb | 1 + spec/lib/gitlab/git/repository_spec.rb | 1 + spec/lib/gitlab/git_spec.rb | 1 + spec/lib/gitlab/hook_data/issuable_builder_spec.rb | 18 +- spec/lib/gitlab/import_export/all_models.yml | 8 +- spec/lib/gitlab/json_logger_spec.rb | 1 + spec/lib/gitlab/path_regex_spec.rb | 1 + spec/lib/gitlab/popen_spec.rb | 8 - spec/lib/gitlab/project_search_results_spec.rb | 1 + spec/lib/gitlab/regex_spec.rb | 1 + spec/lib/gitlab/search/found_blob_spec.rb | 1 + spec/lib/gitlab/url_blocker_spec.rb | 1 + spec/lib/gitlab/usage_data_spec.rb | 16 +- spec/lib/gitlab_danger_spec.rb | 2 +- ...status_to_protected_branches_in_batches_spec.rb | 63 -- spec/models/blob_spec.rb | 1 + spec/models/ci/build_metadata_spec.rb | 70 +- spec/models/clusters/applications/ingress_spec.rb | 37 + spec/models/concerns/routable_spec.rb | 20 +- spec/models/merge_request_spec.rb | 59 +- spec/models/milestone_release_spec.rb | 22 +- spec/models/milestone_spec.rb | 9 +- .../project_services/bugzilla_service_spec.rb | 6 +- .../custom_issue_tracker_service_spec.rb | 6 +- spec/models/project_services/data_fields_spec.rb | 138 ---- .../gitlab_issue_tracker_service_spec.rb | 6 +- .../project_services/issue_tracker_data_spec.rb | 24 + .../project_services/issue_tracker_service_spec.rb | 2 +- spec/models/project_services/jira_service_spec.rb | 428 +++++----- .../project_services/jira_tracker_data_spec.rb | 31 + .../project_services/redmine_service_spec.rb | 16 +- .../project_services/youtrack_service_spec.rb | 7 +- spec/models/project_spec.rb | 37 - spec/models/release_spec.rb | 13 +- spec/models/service_spec.rb | 4 +- spec/requests/api/groups_spec.rb | 44 - spec/requests/api/issues/get_group_issues_spec.rb | 4 - .../requests/api/issues/get_project_issues_spec.rb | 3 - spec/requests/api/issues/issues_spec.rb | 85 +- spec/requests/api/pipelines_spec.rb | 48 -- spec/requests/api/projects_spec.rb | 32 +- spec/requests/api/services_spec.rb | 8 +- .../projects/merge_requests_discussions_spec.rb | 52 -- spec/services/ci/create_pipeline_service_spec.rb | 16 - spec/services/issues/update_service_spec.rb | 1 + spec/services/milestones/destroy_service_spec.rb | 2 +- .../projects/create_from_template_service_spec.rb | 4 +- spec/services/releases/create_service_spec.rb | 66 +- spec/services/releases/destroy_service_spec.rb | 2 +- spec/services/releases/update_service_spec.rb | 45 +- spec/services/service_response_spec.rb | 14 - spec/support/helpers/jira_service_helper.rb | 18 +- .../finders/issues_finder_shared_contexts.rb | 2 - .../application_settings_shared_examples.rb | 26 - .../finders/assignees_filter_shared_examples.rb | 12 - .../cluster_application_core_shared_examples.rb | 4 - .../requests/api/issues_shared_examples.rb | 21 - yarn.lock | 44 +- 402 files changed, 4546 insertions(+), 6922 deletions(-) delete mode 100644 .gitlab/issue_templates/Problem_Validation.md delete mode 100644 16790-render-xml-artifacts.yml delete mode 100644 app/assets/javascripts/create_cluster/eks_cluster/components/cluster_form_dropdown.vue delete mode 100644 app/assets/javascripts/jobs/components/log/duration_badge.vue delete mode 100644 app/assets/javascripts/pages/admin/application_settings/general/index.js create mode 100644 app/assets/javascripts/pages/admin/application_settings/show/index.js delete mode 100644 app/assets/stylesheets/framework/job_log.scss create mode 100644 app/graphql/types/order.rb create mode 100644 app/graphql/types/sort.rb delete mode 100644 app/graphql/types/sort_enum.rb delete mode 100644 app/views/admin/application_settings/general.html.haml create mode 100644 app/views/admin/application_settings/show.html.haml create mode 100755 bin/elastic_repo_indexer delete mode 100644 changelogs/unreleased/29155-fix-devise-401-responses.yml create mode 100644 changelogs/unreleased/32156-fix-ci_usage_warning_message-message-builder.yml delete mode 100644 changelogs/unreleased/64213-not_filtering.yml create mode 100644 changelogs/unreleased/65192-enable-modsecurity-in-ingress.yml delete mode 100644 changelogs/unreleased/66986-milestone-release-many-to-many.yml create mode 100644 changelogs/unreleased/backport-schedule-productivity-analytics-backfill.yml delete mode 100644 changelogs/unreleased/docs-document-auto-devops-docker-build-secret-forwarding.yml delete mode 100644 changelogs/unreleased/enabling_runners_token_for_groups.yml delete mode 100644 changelogs/unreleased/language-trends-over-time.yml delete mode 100644 changelogs/unreleased/ms-implement-build-specific-timeout.yml delete mode 100644 changelogs/unreleased/osw-improve-discussions-query.yml delete mode 100644 changelogs/unreleased/remove-vue-resource-from-performance-bar-service.yml create mode 100644 danger/only_documentation/Dangerfile delete mode 100644 db/migrate/20190828170945_create_package_metadatum.rb delete mode 100644 db/migrate/20190828172831_create_package_tag.rb delete mode 100644 db/migrate/20190910125852_create_analytics_language_trend_repository_languages.rb delete mode 100644 db/migrate/20190910212256_add_any_approver_rule_unique_indexes.rb create mode 100644 db/post_migrate/20190724091326_schedule_productivity_analytics_backfill.rb delete mode 100644 db/post_migrate/20190827102026_migrate_code_owner_approval_status_to_protected_branches_in_batches.rb delete mode 100644 db/post_migrate/20190904205212_remove_id_column_from_intermediate_release_milestones.rb delete mode 100644 db/post_migrate/20190905091812_schedule_project_any_approval_rule_migration.rb delete mode 100644 db/post_migrate/20190905091831_schedule_merge_request_any_approval_rule_migration.rb delete mode 100644 doc/administration/packages/container_registry.md delete mode 100644 doc/administration/packages/dependency_proxy.md delete mode 100644 doc/administration/packages/img/mitmproxy-docker.png delete mode 100644 doc/administration/packages/index.md create mode 100644 doc/ci/introduction/img/gitlab_workflow_example_extended_11_11.png delete mode 100644 doc/ci/introduction/img/gitlab_workflow_example_extended_v12_3.png delete mode 100644 doc/development/pipelines.md delete mode 100644 doc/development/testing_guide/img/k9s.png delete mode 100644 doc/user/packages/container_registry/index.md delete mode 100644 doc/user/packages/dependency_proxy/img/group_dependency_proxy.png delete mode 100644 doc/user/packages/dependency_proxy/index.md delete mode 100644 doc/user/packages/index.md delete mode 100644 doc/user/packages/maven_repository/img/maven_package_view.png delete mode 100644 doc/user/packages/maven_repository/index.md delete mode 100644 doc/user/packages/npm_registry/img/npm_package_view.png delete mode 100644 doc/user/packages/npm_registry/index.md create mode 100644 doc/user/project/img/mitmproxy-docker.png create mode 100644 doc/user/project/issues/img/link_zoom_call_in_issue.png delete mode 100644 doc/user/project/issues/img/zoom-quickaction-button.png create mode 100644 doc/user/project/wiki/img/wiki_create_new_page_modal.png create mode 100644 doc/workflow/time-tracking/time-tracking-example.png create mode 100644 doc/workflow/time-tracking/time-tracking-sidebar.png delete mode 100644 doc/workflow/time_tracking/img/time_tracking_example_v12_2.png delete mode 100644 doc/workflow/time_tracking/img/time_tracking_sidebar_v8_16.png delete mode 100644 lib/gitlab/background_migration/add_gitlab_instance_administration_project.rb delete mode 100644 lib/gitlab/devise_failure.rb delete mode 100644 qa/qa/page/project/wiki/git_access.rb delete mode 100644 qa/qa/resource/members.rb delete mode 100644 spec/frontend/create_cluster/eks_cluster/components/cluster_form_dropdown_spec.js delete mode 100644 spec/frontend/create_cluster/eks_cluster/components/role_name_dropdown_spec.js delete mode 100644 spec/javascripts/jobs/components/log/duration_badge_spec.js delete mode 100644 spec/lib/gitlab/background_migration/add_gitlab_instance_administration_project_spec.rb delete mode 100644 spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb delete mode 100644 spec/models/project_services/data_fields_spec.rb delete mode 100644 spec/requests/projects/merge_requests_discussions_spec.rb delete mode 100644 spec/support/shared_examples/controllers/application_settings_shared_examples.rb diff --git a/.eslintrc.yml b/.eslintrc.yml index 70a71baa590..95cbc602d5b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -8,6 +8,7 @@ globals: IS_EE: false plugins: - import + - html - "@gitlab/i18n" - "@gitlab/vue-i18n" settings: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6c10c4853c4..0d573a4c214 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33" stages: + - build - prepare - quick-test - test diff --git a/.gitlab/ci/cng.gitlab-ci.yml b/.gitlab/ci/cng.gitlab-ci.yml index 35859a1ab33..3ba3b221df0 100644 --- a/.gitlab/ci/cng.gitlab-ci.yml +++ b/.gitlab/ci/cng.gitlab-ci.yml @@ -11,6 +11,5 @@ cloud-native-image: - CNG_PROJECT_PATH="gitlab-org/build/CNG" BUILD_TRIGGER_TOKEN=$CI_JOB_TOKEN ./scripts/trigger-build cng only: refs: - - tags - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" + - tags@gitlab-org/gitlab-foss + - tags@gitlab-org/gitlab diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index 87023da3c24..22e752ae0b0 100644 --- a/.gitlab/ci/docs.gitlab-ci.yml +++ b/.gitlab/ci/docs.gitlab-ci.yml @@ -2,12 +2,6 @@ extends: - .default-tags - .default-retry - - .only-docs-changes - only: - refs: - - merge_requests - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" image: ruby:2.6-alpine stage: review dependencies: [] @@ -25,32 +19,55 @@ - apk add --update openssl - wget $CI_PROJECT_URL/raw/$CI_COMMIT_SHA/scripts/trigger-build-docs - chmod 755 trigger-build-docs + +# Trigger a manual docs build in gitlab-docs only on non docs-only branches. +# Useful to preview the docs changes live. +review-docs-deploy-manual: + extends: + - .review-docs + - .except-docs-qa + script: - gem install gitlab --no-document + - ./trigger-build-docs deploy + when: manual + only: + - branches@gitlab-org/gitlab-foss + - branches@gitlab-org/gitlab # Always trigger a docs build in gitlab-docs only on docs-only branches. # Useful to preview the docs changes live. review-docs-deploy: - extends: .review-docs + extends: + - .review-docs + - .except-qa script: + - gem install gitlab --no-document - ./trigger-build-docs deploy - when: manual + only: + - /(^docs[\/-].+|.+-docs$)/@gitlab-org/gitlab-foss + - /(^docs[\/-].+|.+-docs$)/@gitlab-org/gitlab # Cleanup remote environment of gitlab-docs review-docs-cleanup: - extends: .review-docs + extends: + - .review-docs + - .except-qa environment: name: review-docs/$CI_COMMIT_REF_SLUG action: stop script: + - gem install gitlab --no-document - ./trigger-build-docs cleanup when: manual + only: + - branches@gitlab-org/gitlab-foss + - branches@gitlab-org/gitlab docs lint: extends: - .default-tags - .default-retry - - .default-only - - .only-docs-changes + - .except-qa image: "registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-docs-lint" stage: test dependencies: [] diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index f72396e4edf..a61601597c3 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -9,10 +9,9 @@ extends: - .default-tags - .default-retry - - .default-only - - .default-before_script - .assets-compile-cache - - .only-code-qa-changes + - .default-before_script + - .except-docs image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-git-2.22-chrome-73.0-node-12.x-yarn-1.16-graphicsmagick-1.3.33-docker-18.06.1 stage: test dependencies: ["setup-test-env"] @@ -46,9 +45,10 @@ - scripts/clean-old-cached-assets - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here only: - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - - $CI_SERVER_HOST == "dev.gitlab.org" + - /.+/@gitlab-org/gitlab-foss + - /.+/@gitlab-org/gitlab + - /.+/@gitlab/gitlabhq + - /.+/@gitlab/gitlab-ee tags: - gitlab-org - docker @@ -57,7 +57,8 @@ gitlab:assets:compile: extends: .gitlab:assets:compile-metadata only: refs: - - master + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab cache: policy: pull-push @@ -65,7 +66,9 @@ gitlab:assets:compile pull-cache: extends: .gitlab:assets:compile-metadata except: refs: - - master + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab + - /(^docs[\/-].+|.+-docs$)/ cache: policy: pull @@ -73,10 +76,8 @@ gitlab:assets:compile pull-cache: extends: - .default-tags - .default-retry - - .default-only - - .default-before_script - .assets-compile-cache - - .only-code-qa-changes + - .default-before_script - .use-pg stage: prepare script: @@ -97,10 +98,12 @@ gitlab:assets:compile pull-cache: - public/assets compile-assets: - extends: .compile-assets-metadata + extends: + - .compile-assets-metadata only: refs: - - master + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab cache: policy: pull-push @@ -108,23 +111,21 @@ compile-assets pull-cache: extends: .compile-assets-metadata except: refs: - - master + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab + - /(^docs[\/-].+|.+-docs$)/ cache: policy: pull -.only-code-frontend-job-base: +karma: extends: - .default-tags - .default-retry - .default-cache - - .default-only - .default-before_script - - .only-code-changes - .use-pg + - .except-docs dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"] - -karma: - extends: .only-code-frontend-job-base variables: # we override the max_old_space_size to prevent OOM errors NODE_OPTIONS: --max_old_space_size=3584 @@ -147,7 +148,14 @@ karma: junit: junit_karma.xml jest: - extends: .only-code-frontend-job-base + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"] script: - scripts/gitaly-test-spawn - date @@ -170,26 +178,27 @@ jest: - tmp/jest/jest/ policy: pull-push -.qa-job-base: +.qa: extends: - .default-tags - .default-retry - .default-cache - - .default-only - - .only-code-qa-changes + - .except-docs dependencies: [] stage: test + variables: + SETUP_DB: "false" before_script: - cd qa/ - bundle install qa:internal: - extends: .qa-job-base + extends: .qa script: - bundle exec rspec qa:selectors: - extends: .qa-job-base + extends: .qa script: - bundle exec bin/qa Test::Sanity::Selectors @@ -198,8 +207,7 @@ qa:selectors: - .default-tags - .default-retry - .default-cache - - .default-only - - .only-code-changes + - .except-docs dependencies: [] cache: key: "$CI_JOB_NAME" @@ -230,9 +238,10 @@ webpack-dev-server: - .default-tags - .default-retry - .default-cache - - .only-code-changes - dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"] + - .except-docs-qa + dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"] variables: + SETUP_DB: "false" WEBPACK_MEMORY_TEST: "true" script: - node --version diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index 94d7d2cdaa4..8287390c80e 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -27,83 +27,40 @@ - vendor/gitaly-ruby policy: pull -.default-only: - only: +.except-docs: + except: refs: - - master - - /^[\d-]+-stable(-ee)?$/ - - /^\d+-\d+-auto-deploy-\d+$/ - - merge_requests - - tags - -.only-code-changes: - only: - changes: - - ".gitlab/ci/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,scss-lint}.yml" - - ".csscomb.json" - - "Dangerfile" - - "Dockerfile.assets" - - "*_VERSION" - - "Gemfile{,.lock}" - - "Rakefile" - - "{babel.config,jest.config}.js" - - "config.ru" - - "{package.json,yarn.lock}" - - "{app,bin,config,danger,db,ee,fixtures,haml_lint,lib,public,rubocop,scripts,spec,symbol,vendor}/**/*" - - "doc/README.md" # Some RSpec test rely on this file + - /(^docs[\/-].+|.+-docs$)/ -.only-qa-changes: - only: - changes: - - ".dockerignore" - - "qa/**/*" +.except-qa: + except: + refs: + - /(^qa[\/-].*|.*-qa$)/ -.only-docs-changes: - only: - changes: - - ".gitlab/route-map.yml" - - "doc/**/*" - - ".markdownlint.json" +.except-docs-qa: + except: + refs: + - /(^docs[\/-].+|.+-docs$)/ + - /(^qa[\/-].*|.*-qa$)/ -.only-code-qa-changes: - only: - changes: - - ".gitlab/ci/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - - ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,scss-lint}.yml" - - ".csscomb.json" - - "Dangerfile" - - "Dockerfile.assets" - - "*_VERSION" - - "Gemfile{,.lock}" - - "Rakefile" - - "{babel.config,jest.config}.js" - - "config.ru" - - "{package.json,yarn.lock}" - - "{app,bin,config,danger,db,ee,fixtures,haml_lint,lib,public,rubocop,scripts,spec,symbol,vendor}/**/*" - - "doc/README.md" # Some RSpec test rely on this file - - ".dockerignore" - - "qa/**/*" +.except-docs-qa-geo: + except: + refs: + - /(^docs[\/-].+|.+-docs$)/ + - /(^qa[\/-].*|.*-qa$)/ + - /(^geo[\/-].*|.*-geo$)/ -.only-review: +.review-only: only: - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" + refs: + - branches@gitlab-org/gitlab-foss + - branches@gitlab-org/gitlab kubernetes: active except: refs: - master - /^\d+-\d+-auto-deploy-\d+$/ - -.only-review-schedules: - only: - refs: - - schedules - variables: - - $REVIEW_APP_CLEANUP && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - kubernetes: active + - /(^docs[\/-].+|.+-docs$)/ .use-pg: services: @@ -117,9 +74,3 @@ - name: postgres:10.9 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:alpine - -.only-ee: - only: - variables: - - $CI_PROJECT_NAME == "gitlab-ee" - - $CI_PROJECT_NAME == "gitlab" # New name of gitlab-ee after the single codebase migration diff --git a/.gitlab/ci/memory.gitlab-ci.yml b/.gitlab/ci/memory.gitlab-ci.yml index d990c7eefa2..1936933cca4 100644 --- a/.gitlab/ci/memory.gitlab-ci.yml +++ b/.gitlab/ci/memory.gitlab-ci.yml @@ -1,14 +1,10 @@ -.only-code-memory-job-base: +memory-static: extends: - .default-tags - .default-retry - .default-cache - - .default-only - .default-before_script - - .only-code-changes - -memory-static: - extends: .only-code-memory-job-base + - .except-docs variables: SETUP_DB: "false" script: @@ -35,8 +31,12 @@ memory-static: # All tests are run without a webserver (directly using Rack::Mock by default). memory-on-boot: extends: - - .only-code-memory-job-base + - .default-tags + - .default-retry + - .default-cache + - .default-before_script - .use-pg-10 + - .except-docs-qa variables: NODE_ENV: "production" RAILS_ENV: "production" diff --git a/.gitlab/ci/pages.gitlab-ci.yml b/.gitlab/ci/pages.gitlab-ci.yml index 47f4117e34a..cf77ec24090 100644 --- a/.gitlab/ci/pages.gitlab-ci.yml +++ b/.gitlab/ci/pages.gitlab-ci.yml @@ -3,12 +3,11 @@ pages: - .default-tags - .default-retry - .default-cache - - .default-only + - .except-docs only: refs: - - master - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab stage: pages dependencies: ["coverage", "karma", "gitlab:assets:compile"] script: diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index e7362f913a9..a868316c353 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -1,5 +1,4 @@ .package-and-qa-base: - extends: .default-only image: ruby:2.6-alpine stage: qa dependencies: [] @@ -11,16 +10,17 @@ - install_gitlab_gem - ./scripts/trigger-build omnibus only: - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" + refs: + - branches@gitlab-org/gitlab-foss + - branches@gitlab-org/gitlab package-and-qa-manual: - extends: - - .package-and-qa-base - - .only-code-changes + extends: .package-and-qa-base except: refs: - master + - /(^docs[\/-].+|.+-docs$)/ + - /(^qa[\/-].*|.*-qa$)/ when: manual needs: ["build-qa-image", "gitlab:assets:compile pull-cache"] @@ -34,11 +34,10 @@ package-and-qa-manual:master: needs: ["build-qa-image", "gitlab:assets:compile"] package-and-qa: - extends: - - .package-and-qa-base - - .only-qa-changes - except: + extends: .package-and-qa-base + only: refs: - - master + - /(^qa[\/-].*|.*-qa$)/@gitlab-org/gitlab-foss + - /(^qa[\/-].*|.*-qa$)/@gitlab-org/gitlab needs: ["build-qa-image", "gitlab:assets:compile pull-cache"] allow_failure: true diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index e9222c4b719..2363c0e5f8a 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -1,40 +1,36 @@ -.only-master: +.only-schedules-master: only: refs: - - master + - schedules@gitlab-org/gitlab-foss + - schedules@gitlab-org/gitlab + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab + - master@gitlab/gitlabhq + - master@gitlab/gitlab-ee + +.only-gitlab-ee: + only: + - branches@gitlab-org/gitlab + - tags@gitlab-org/gitlab .rake-exec: extends: - .default-tags - .default-retry - .default-cache - - .default-only - .default-before_script variables: SETUP_DB: "false" script: - bundle exec rake $CI_JOB_NAME -.only-code-rails-job-base: - extends: - - .default-tags - - .default-retry - - .default-cache - - .default-only - - .default-before_script - - .only-code-changes - -.only-code-qa-rails-job-base: +.rspec-base: extends: - .default-tags - .default-retry - .default-cache - - .default-only - .default-before_script - - .only-code-qa-changes - -.rspec-base: - extends: .only-code-rails-job-base + - .except-docs-qa stage: test script: - JOB_NAME=( $CI_JOB_NAME ) @@ -83,8 +79,12 @@ setup-test-env: extends: - - .only-code-qa-rails-job-base + - .default-tags + - .default-retry + - .default-cache + - .default-before_script - .use-pg + - .except-docs stage: prepare script: - bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init' @@ -111,19 +111,19 @@ rspec system pg: rspec unit pg-10: extends: - .rspec-base-pg-10 - - .only-master + - .only-schedules-master parallel: 20 rspec integration pg-10: extends: - .rspec-base-pg-10 - - .only-master + - .only-schedules-master parallel: 6 rspec system pg-10: extends: - .rspec-base-pg-10 - - .only-master + - .only-schedules-master parallel: 24 rspec-fast-spec-helper: @@ -133,8 +133,9 @@ rspec-fast-spec-helper: rspec quarantine pg: extends: + - .default-before_script - .rspec-base-pg - - .only-master + - .only-schedules-master script: - export NO_KNAPSACK=1 CACHE_CLASSES=true - scripts/gitaly-test-spawn @@ -142,7 +143,12 @@ rspec quarantine pg: allow_failure: true static-analysis: - extends: .only-code-qa-rails-job-base + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .except-docs dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"] variables: SETUP_DB: "false" @@ -156,48 +162,81 @@ static-analysis: policy: pull-push downtime_check: - extends: - - .rake-exec - - .only-code-changes + extends: .rake-exec except: refs: - master - tags - variables: - - $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ + - /^[\d-]+-stable(-ee)?$/ + - /(^docs[\/-].+|.+-docs$)/ + - /(^qa[\/-].*|.*-qa$)/ stage: test dependencies: ["setup-test-env"] needs: ["setup-test-env"] -.db-job-base: +ee_compat_check: + extends: .rake-exec + dependencies: [] + except: + refs: + - master + - tags + - branches@gitlab-org/gitlab + - branches@gitlab/gitlab-ee + - /^[\d-]+-stable(-ee)?$/ + - /(^docs[\/-].+|.+-docs$)/ + - /^security-/ + artifacts: + name: "${CI_JOB_NAME}_${CI_COMIT_REF_NAME}_${CI_COMMIT_SHA}" + when: always + expire_in: 10d + paths: + - ee_compat_check/patches/*.patch + +# DB migration, rollback, and seed jobs +db:migrate:reset: extends: - - .only-code-rails-job-base + - .default-tags + - .default-retry + - .default-cache + - .default-before_script - .use-pg + - .except-docs-qa stage: test dependencies: ["setup-test-env"] needs: ["setup-test-env"] - -# DB migration, rollback, and seed jobs -db:migrate:reset: - extends: .db-job-base script: - bundle exec rake db:migrate:reset db:check-schema: - extends: .db-job-base + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + stage: test + dependencies: ["setup-test-env"] + needs: ["setup-test-env"] script: - source scripts/schema_changed.sh db:migrate-from-v11.11.0: - extends: .db-job-base + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + stage: test + dependencies: ["setup-test-env"] + needs: ["setup-test-env"] variables: SETUP_DB: "false" script: - - export PROJECT_TO_CHECKOUT="gitlab-foss" - - export TAG_TO_CHECKOUT="v11.11.0" - - '[[ ! -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab"' - - '[[ ! -d "ee/" ]] || export TAG_TO_CHECKOUT="v11.11.0-ee"' - - git fetch https://gitlab.com/gitlab-org/$PROJECT_TO_CHECKOUT.git $TAG_TO_CHECKOUT + - git fetch https://gitlab.com/gitlab-org/gitlab.git v11.11.0-ee - git checkout -f FETCH_HEAD - sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile - sed -i "s/gem 'bootsnap', '~> 1.0.0'/gem 'bootsnap'/" Gemfile @@ -215,13 +254,31 @@ db:migrate-from-v11.11.0: - bundle exec rake db:migrate db:rollback: - extends: .db-job-base + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + stage: test + dependencies: ["setup-test-env"] + needs: ["setup-test-env"] script: - bundle exec rake db:migrate VERSION=20180101160629 - bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true gitlab:setup: - extends: .db-job-base + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + stage: test + dependencies: ["setup-test-env"] + needs: ["setup-test-env"] variables: SETUP_DB: "false" script: @@ -238,7 +295,14 @@ gitlab:setup: - log/development.log coverage: - extends: .only-code-rails-job-base + # Don't include dedicated-no-docs-no-db-pull-cache-job here since we need to + # download artifacts from all the rspec jobs instead of from setup-test-env only + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .except-docs-qa cache: policy: pull variables: @@ -260,7 +324,7 @@ coverage: .rspec-base-ee: extends: - .rspec-base - - .only-ee + - .only-gitlab-ee script: - JOB_NAME=( $CI_JOB_NAME ) - TEST_TOOL=${JOB_NAME[0]} @@ -298,9 +362,10 @@ rspec system pg ee: extends: .rspec-base-pg-ee parallel: 5 -.rspec-base-geo: - extends: .rspec-base-ee - parallel: 3 +.rspec-base-pg-geo: + extends: + - .rspec-base + - .only-gitlab-ee script: - JOB_NAME=( $CI_JOB_NAME ) - TEST_TOOL=${JOB_NAME[0]} @@ -317,37 +382,33 @@ rspec system pg ee: rspec geo pg ee: extends: - - .rspec-base-geo + - .rspec-base-pg-geo - .use-pg - except: - variables: - - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/ + - .except-docs-qa-geo + parallel: 3 rspec geo pg-10 ee: extends: - - .rspec-base-geo + - .rspec-base-pg-geo - .use-pg-10 - except: - variables: - - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/ + - .except-docs-qa-geo + parallel: 3 quick-rspec geo pg ee: extends: - - .rspec-base-geo + - .rspec-base-pg-geo - .use-pg stage: quick-test only: - variables: - - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/ + - /(^geo[\/-].*|.*-geo$)/ quick-rspec geo pg-10 ee: extends: - - .rspec-base-geo + - .rspec-base-pg-geo - .use-pg-10 stage: quick-test only: - variables: - - $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/ + - /(^geo[\/-].*|.*-geo$)/ rspec quarantine pg ee: extends: rspec quarantine pg @@ -356,10 +417,35 @@ rspec quarantine pg ee: - scripts/gitaly-test-spawn - bin/rspec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag quarantine -- ee/spec/ +migration:upgrade-pg-ce-to-ee: + extends: + - .default-tags + - .default-retry + - .default-cache + - .default-before_script + - .use-pg + - .except-docs-qa + dependencies: ["setup-test-env"] + variables: + SETUP_DB: "false" + script: + - ruby -r./scripts/ee_specific_check/ee_specific_check -e'EESpecificCheck.fetch_remote_ce_branch' + - git checkout -f FETCH_HEAD + - . scripts/utils.sh + - . scripts/prepare_build.sh + - date + - setup_db + - date + - git checkout -f $CI_COMMIT_SHA + - date + - . scripts/prepare_build.sh + - date + - bundle exec rake db:migrate + db:rollback geo: extends: - db:rollback - - .only-ee + - .only-gitlab-ee script: - bundle exec rake geo:db:migrate VERSION=20170627195211 - bundle exec rake geo:db:migrate diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 38da73034d5..5622cd232ca 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -1,236 +1,39 @@ -# include: -# - template: Code-Quality.gitlab-ci.yml -# - template: Security/SAST.gitlab-ci.yml -# - template: Security/Dependency-Scanning.gitlab-ci.yml -# - template: Security/DAST.gitlab-ci.yml +include: + - template: Code-Quality.gitlab-ci.yml + - template: Security/SAST.gitlab-ci.yml + - template: Security/Dependency-Scanning.gitlab-ci.yml + - template: Security/DAST.gitlab-ci.yml -# We need to duplicate this job's definition because it seems it's impossible to -# override an included `only.refs`. -# See https://gitlab.com/gitlab-org/gitlab/issues/31371. -code_quality: +.reports: extends: - .default-retry - - .default-only - - .only-code-changes - stage: test - image: docker:stable - allow_failure: true - services: - - docker:stable-dind - variables: - DOCKER_DRIVER: overlay2 - DOCKER_TLS_CERTDIR: "" - script: - - | - if ! docker info &>/dev/null; then - if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then - export DOCKER_HOST='tcp://localhost:2375' - fi - fi - - docker run - --env SOURCE_CODE="$PWD" - --volume "$PWD":/code - --volume /var/run/docker.sock:/var/run/docker.sock - "registry.gitlab.com/gitlab-org/security-products/codequality:12-0-stable" /code - artifacts: - reports: - codequality: gl-code-quality-report.json - expire_in: 1 week - dependencies: [] - except: - variables: - - $CODE_QUALITY_DISABLED + - .except-docs + +code_quality: + extends: .reports -# We need to duplicate this job's definition because it seems it's impossible to -# override an included `only.refs`. -# See https://gitlab.com/gitlab-org/gitlab/issues/31371. sast: - extends: - - .default-retry - - .default-only - - .only-code-changes - stage: test - image: docker:stable + extends: .reports variables: - DOCKER_DRIVER: overlay2 - DOCKER_TLS_CERTDIR: "" SAST_BRAKEMAN_LEVEL: 2 - SAST_EXCLUDED_PATHS: qa,spec,doc,ee/spec - allow_failure: true - services: - - docker:stable-dind - script: - - export SAST_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')} - - | - if ! docker info &>/dev/null; then - if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then - export DOCKER_HOST='tcp://localhost:2375' - fi - fi - - | # this is required to avoid undesirable reset of Docker image ENV variables being set on build stage - function propagate_env_vars() { - CURRENT_ENV=$(printenv) - - for VAR_NAME; do - echo $CURRENT_ENV | grep "${VAR_NAME}=" > /dev/null && echo "--env $VAR_NAME " - done - } - - | - docker run \ - $(propagate_env_vars \ - SAST_BANDIT_EXCLUDED_PATHS \ - SAST_ANALYZER_IMAGES \ - SAST_ANALYZER_IMAGE_PREFIX \ - SAST_ANALYZER_IMAGE_TAG \ - SAST_DEFAULT_ANALYZERS \ - SAST_PULL_ANALYZER_IMAGES \ - SAST_BRAKEMAN_LEVEL \ - SAST_FLAWFINDER_LEVEL \ - SAST_GITLEAKS_ENTROPY_LEVEL \ - SAST_GOSEC_LEVEL \ - SAST_EXCLUDED_PATHS \ - SAST_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \ - SAST_PULL_ANALYZER_IMAGE_TIMEOUT \ - SAST_RUN_ANALYZER_TIMEOUT \ - SAST_JAVA_VERSION \ - ANT_HOME \ - ANT_PATH \ - GRADLE_PATH \ - JAVA_OPTS \ - JAVA_PATH \ - JAVA_8_VERSION \ - JAVA_11_VERSION \ - MAVEN_CLI_OPTS \ - MAVEN_PATH \ - MAVEN_REPO_PATH \ - SBT_PATH \ - FAIL_NEVER \ - ) \ - --volume "$PWD:/code" \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - "registry.gitlab.com/gitlab-org/security-products/sast:$SAST_VERSION" /app/bin/run /code + SAST_EXCLUDED_PATHS: qa,spec,doc artifacts: expire_in: 7 days paths: - gl-sast-report.json - reports: - sast: gl-sast-report.json - dependencies: [] - only: - variables: - - $GITLAB_FEATURES =~ /\bsast\b/ - except: - variables: - - $SAST_DISABLED -# We need to duplicate this job's definition because it seems it's impossible to -# override an included `only.refs`. -# See https://gitlab.com/gitlab-org/gitlab/issues/31371. dependency_scanning: - extends: - - .default-retry - - .default-only - - .only-code-changes - stage: test - image: docker:stable - variables: - DOCKER_DRIVER: overlay2 - DOCKER_TLS_CERTDIR: "" - allow_failure: true - services: - - docker:stable-dind - script: - - export DS_VERSION=${SP_VERSION:-$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')} - - | - if ! docker info &>/dev/null; then - if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then - export DOCKER_HOST='tcp://localhost:2375' - fi - fi - - | # this is required to avoid undesirable reset of Docker image ENV variables being set on build stage - function propagate_env_vars() { - CURRENT_ENV=$(printenv) + extends: .reports - for VAR_NAME; do - echo $CURRENT_ENV | grep "${VAR_NAME}=" > /dev/null && echo "--env $VAR_NAME " - done - } - - | - docker run \ - $(propagate_env_vars \ - DS_ANALYZER_IMAGES \ - DS_ANALYZER_IMAGE_PREFIX \ - DS_ANALYZER_IMAGE_TAG \ - DS_DEFAULT_ANALYZERS \ - DS_EXCLUDED_PATHS \ - DEP_SCAN_DISABLE_REMOTE_CHECKS \ - DS_DOCKER_CLIENT_NEGOTIATION_TIMEOUT \ - DS_PULL_ANALYZER_IMAGE_TIMEOUT \ - DS_RUN_ANALYZER_TIMEOUT \ - DS_PYTHON_VERSION \ - DS_PIP_DEPENDENCY_PATH \ - PIP_INDEX_URL \ - PIP_EXTRA_INDEX_URL \ - ) \ - --volume "$PWD:/code" \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$DS_VERSION" /code - artifacts: - reports: - dependency_scanning: gl-dependency-scanning-report.json - dependencies: [] - only: - variables: - - $GITLAB_FEATURES =~ /\bdependency_scanning\b/ - except: - variables: - - $DEPENDENCY_SCANNING_DISABLED - -# We need to duplicate this job's definition because it seems it's impossible to -# override an included `only.refs`. -# See https://gitlab.com/gitlab-org/gitlab/issues/31371. dast: extends: - - .default-retry - - .default-only - - .only-code-qa-changes - - .only-review + - .reports + - .review-only stage: qa dependencies: ["review-deploy"] before_script: - export DAST_WEBSITE="$(cat review_app_url.txt)" - image: - name: "registry.gitlab.com/gitlab-org/security-products/dast:$CI_SERVER_VERSION_MAJOR-$CI_SERVER_VERSION_MINOR-stable" - variables: - # URL to scan: - # DAST_WEBSITE: https://example.com/ - # - # Time limit for target availability (scan is attempted even when timeout): - # DAST_TARGET_AVAILABILITY_TIMEOUT: 60 - # - # Set these variables to scan with an authenticated user: - # DAST_AUTH_URL: https://example.com/sign-in - # DAST_USERNAME: john.doe@example.com - # DAST_PASSWORD: john-doe-password - # DAST_USERNAME_FIELD: session[user] # the name of username field at the sign-in HTML form - # DAST_PASSWORD_FIELD: session[password] # the name of password field at the sign-in HTML form - # DAST_AUTH_EXCLUDE_URLS: http://example.com/sign-out,http://example.com/sign-out-2 # optional: URLs to skip during the authenticated scan; comma-separated, no spaces in between - # - # Perform ZAP Full Scan, which includes both passive and active scanning: - # DAST_FULL_SCAN_ENABLED: "true" - allow_failure: true - script: - - export DAST_WEBSITE=${DAST_WEBSITE:-$(cat environment_url.txt)} - - /analyze -t $DAST_WEBSITE artifacts: expire_in: 7 days paths: - gl-dast-report.json - reports: - dast: gl-dast-report.json - only: - variables: - - $GITLAB_FEATURES =~ /\bdast\b/ - except: - variables: - - $DAST_DISABLED diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index c7b79dac9dd..a269e15611f 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -1,10 +1,21 @@ +.review-schedules-only: + only: + refs: + - schedules@gitlab-org/gitlab-foss + - schedules@gitlab-org/gitlab + kubernetes: active + variables: + - $REVIEW_APP_CLEANUP + except: + refs: + - tags + - /(^docs[\/-].+|.+-docs$)/ + .review-base: extends: - .default-tags - .default-retry - - .default-only - - .only-review - - .only-code-qa-changes + - .review-only image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base dependencies: [] before_script: @@ -14,7 +25,6 @@ extends: - .default-tags - .default-retry - - .default-only image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine services: - docker:19.03.0-dind @@ -24,27 +34,24 @@ variables: DOCKER_DRIVER: overlay2 DOCKER_HOST: tcp://docker:2375 - GITLAB_EDITION: "ce" + LATEST_QA_IMAGE: "gitlab/${CI_PROJECT_NAME}-qa:nightly" + QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab/${CI_PROJECT_NAME}-qa:${CI_COMMIT_REF_SLUG}" build-qa-image: extends: - .review-docker - - .only-code-qa-changes + - .except-docs only: - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - stage: prepare + refs: + - branches@gitlab-org/gitlab-foss + - branches@gitlab-org/gitlab + stage: test script: - - '[[ ! -d "ee/" ]] || export GITLAB_EDITION="ee"' - - export QA_IMAGE="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab/gitlab-${GITLAB_EDITION}-qa:${CI_COMMIT_REF_SLUG}" - - time docker build --cache-from gitlab/gitlab-${GITLAB_EDITION}-qa:nightly --tag ${QA_IMAGE} --file ./qa/Dockerfile ./ + - time docker build --cache-from ${LATEST_QA_IMAGE} --tag ${QA_IMAGE} --file ./qa/Dockerfile ./ - echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY} - time docker push ${QA_IMAGE} .review-build-cng-base: - extends: - - .default-only - - .only-code-qa-changes image: ruby:2.6-alpine stage: review-prepare before_script: @@ -58,13 +65,13 @@ build-qa-image: review-build-cng: extends: - .review-build-cng-base - - .only-review + - .review-only needs: ["gitlab:assets:compile pull-cache"] schedule:review-build-cng: extends: - .review-build-cng-base - - .only-review-schedules + - .review-schedules-only needs: ["gitlab:assets:compile"] .review-deploy-base: @@ -75,13 +82,11 @@ schedule:review-build-cng: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" GITLAB_HELM_CHART_REF: "master" - GITLAB_EDITION: "ce" environment: name: review/${CI_COMMIT_REF_NAME} url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN} on_stop: review-stop before_script: - - '[[ ! -d "ee/" ]] || export GITLAB_EDITION="ee"' - export GITLAB_SHELL_VERSION=$( ${FLAKY_RSPEC_SUITE_REPORT_PATH}' - - '[[ ! -d "ee/" ]] || wget -O $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH' - - '[[ ! -d "ee/" ]] || [[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}' + - wget -O $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH + - '[[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}' update-tests-metadata: extends: .tests-metadata-state @@ -44,9 +43,9 @@ update-tests-metadata: - echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} - scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_node_*.json - '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH' - - '[[ ! -d "ee/" ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}' - - '[[ ! -d "ee/" ]] || scripts/merge-reports ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_ee_*node_*.json' - - '[[ ! -d "ee/" ]] || [[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH' + - echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} + - scripts/merge-reports ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_ee_*node_*.json + - '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH' - rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json - scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/all_*_*.json - FLAKY_RSPEC_GENERATE_REPORT=1 scripts/prune-old-flaky-specs ${FLAKY_RSPEC_SUITE_REPORT_PATH} @@ -55,17 +54,15 @@ update-tests-metadata: - scripts/insert-rspec-profiling-data only: refs: - - master - variables: - - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - - $CI_SERVER_HOST == "dev.gitlab.org" + - master@gitlab-org/gitlab-foss + - master@gitlab-org/gitlab + - master@gitlab/gitlabhq + - master@gitlab/gitlab-ee flaky-examples-check: extends: - .default-tags - .default-retry - - .default-only - - .only-code-changes image: ruby:2.6-alpine stage: post-test variables: @@ -73,7 +70,12 @@ flaky-examples-check: allow_failure: true only: refs: - - merge_requests + - branches + except: + refs: + - master + - /(^docs[\/-].+|.+-docs$)/ + - /(^qa[\/-].*|.*-qa$)/ artifacts: expire_in: 30d paths: diff --git a/.gitlab/ci/yaml.gitlab-ci.yml b/.gitlab/ci/yaml.gitlab-ci.yml index 323f94b6d04..dd61cb3f035 100644 --- a/.gitlab/ci/yaml.gitlab-ci.yml +++ b/.gitlab/ci/yaml.gitlab-ci.yml @@ -4,10 +4,7 @@ lint-ci-gitlab: extends: - .default-tags - .default-retry - - .default-only - only: - changes: - - "**/*.yml" + - .except-docs image: sdesbure/yamllint:latest dependencies: [] script: diff --git a/.gitlab/issue_templates/Problem_Validation.md b/.gitlab/issue_templates/Problem_Validation.md deleted file mode 100644 index d2bab21eb06..00000000000 --- a/.gitlab/issue_templates/Problem_Validation.md +++ /dev/null @@ -1,41 +0,0 @@ -## Problem Statement - - - -## Reach - - - - - -## Impact - - - -## Confidence - - - -## Effort - - - -/label ~"workflow::problem backlog" diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 48b840b4af2..f1f8ff6e862 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -565,6 +565,11 @@ Style/EmptyLiteral: Style/EmptyMethod: Enabled: false +# Offense count: 40 +# Cop supports --auto-correct. +Style/Encoding: + Enabled: false + # Offense count: 203 # Cop supports --auto-correct. # Configuration parameters: EnforcedStyle. diff --git a/16790-render-xml-artifacts.yml b/16790-render-xml-artifacts.yml deleted file mode 100644 index d9cfcc04a68..00000000000 --- a/16790-render-xml-artifacts.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Render xml artifact files in GitLab -merge_request: 16790 -author: -type: added diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index f8e233b2733..a8fdfda1c78 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.9.0 +1.8.1 diff --git a/Gemfile b/Gemfile index 864e514ae0d..ab01b6b72da 100644 --- a/Gemfile +++ b/Gemfile @@ -326,7 +326,7 @@ group :metrics do gem 'influxdb', '~> 0.2', require: false # Prometheus - gem 'prometheus-client-mmap', '~> 0.9.10' + gem 'prometheus-client-mmap', '~> 0.9.9' gem 'raindrops', '~> 0.18' end diff --git a/Gemfile.lock b/Gemfile.lock index fec34622be3..6fd74c1da78 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -715,7 +715,7 @@ GEM parser unparser procto (0.0.3) - prometheus-client-mmap (0.9.10) + prometheus-client-mmap (0.9.9) pry (0.11.3) coderay (~> 1.1.0) method_source (~> 0.9.0) @@ -1250,7 +1250,7 @@ DEPENDENCIES org-ruby (~> 0.9.12) pg (~> 1.1) premailer-rails (~> 1.9.7) - prometheus-client-mmap (~> 0.9.10) + prometheus-client-mmap (~> 0.9.9) pry-byebug (~> 3.5.1) pry-rails (~> 0.3.4) puma (~> 3.12) diff --git a/app/assets/javascripts/blob/template_selector.js b/app/assets/javascripts/blob/template_selector.js index 9e69c7d7164..37e348d93d3 100644 --- a/app/assets/javascripts/blob/template_selector.js +++ b/app/assets/javascripts/blob/template_selector.js @@ -1,4 +1,4 @@ -/* eslint-disable class-methods-use-this */ +/* eslint-disable class-methods-use-this, no-unused-vars */ import $ from 'jquery'; @@ -61,7 +61,7 @@ export default class TemplateSelector { return this.requestFile(item); } - requestFile() { + requestFile(item) { // This `requestFile` method is an abstract method that should // be added by all subclasses. } diff --git a/app/assets/javascripts/clusters/clusters_bundle.js b/app/assets/javascripts/clusters/clusters_bundle.js index 28850710f80..d386960f3b6 100644 --- a/app/assets/javascripts/clusters/clusters_bundle.js +++ b/app/assets/javascripts/clusters/clusters_bundle.js @@ -111,15 +111,25 @@ export default class Clusters { this.initApplications(clusterType); this.initEnvironments(); - if (clusterEnvironmentsPath) { - this.fetchEnvironments(); + if (clusterEnvironmentsPath && this.environments) { + this.store.toggleFetchEnvironments(true); + + this.initPolling( + 'fetchClusterEnvironments', + data => this.handleClusterEnvironmentsSuccess(data), + () => this.handleEnvironmentsPollError(), + ); } this.updateContainer(null, this.store.state.status, this.store.state.statusReason); this.addListeners(); if (statusPath && !this.environments) { - this.initPolling(); + this.initPolling( + 'fetchClusterStatus', + data => this.handleClusterStatusSuccess(data), + () => this.handlePollError(), + ); } } @@ -179,16 +189,9 @@ export default class Clusters { }); } - fetchEnvironments() { - this.store.toggleFetchEnvironments(true); - - this.service - .fetchClusterEnvironments() - .then(data => { - this.store.toggleFetchEnvironments(false); - this.store.updateEnvironments(data.data); - }) - .catch(() => Clusters.handleError()); + handleClusterEnvironmentsSuccess(data) { + this.store.toggleFetchEnvironments(false); + this.store.updateEnvironments(data.data); } static initDismissableCallout() { @@ -224,21 +227,16 @@ export default class Clusters { eventHub.$off('uninstallApplication'); } - initPolling() { + initPolling(method, successCallback, errorCallback) { this.poll = new Poll({ resource: this.service, - method: 'fetchData', - successCallback: data => this.handleSuccess(data), - errorCallback: () => Clusters.handleError(), + method, + successCallback, + errorCallback, }); if (!Visibility.hidden()) { this.poll.makeRequest(); - } else { - this.service - .fetchData() - .then(data => this.handleSuccess(data)) - .catch(() => Clusters.handleError()); } Visibility.change(() => { @@ -250,11 +248,21 @@ export default class Clusters { }); } + handlePollError() { + this.constructor.handleError(); + } + + handleEnvironmentsPollError() { + this.store.toggleFetchEnvironments(false); + + this.handlePollError(); + } + static handleError() { Flash(s__('ClusterIntegration|Something went wrong on our end.')); } - handleSuccess(data) { + handleClusterStatusSuccess(data) { const prevStatus = this.store.state.status; const prevApplicationMap = Object.assign({}, this.store.state.applications); diff --git a/app/assets/javascripts/clusters/services/clusters_service.js b/app/assets/javascripts/clusters/services/clusters_service.js index 9139e0beafb..fa12802b3de 100644 --- a/app/assets/javascripts/clusters/services/clusters_service.js +++ b/app/assets/javascripts/clusters/services/clusters_service.js @@ -17,7 +17,7 @@ export default class ClusterService { }; } - fetchData() { + fetchClusterStatus() { return axios.get(this.options.endpoint); } diff --git a/app/assets/javascripts/clusters/stores/clusters_store.js b/app/assets/javascripts/clusters/stores/clusters_store.js index a032f589ee4..5cddb4cc098 100644 --- a/app/assets/javascripts/clusters/stores/clusters_store.js +++ b/app/assets/javascripts/clusters/stores/clusters_store.js @@ -218,6 +218,7 @@ export default class ClusterStore { environmentPath: environment.environment_path, lastDeployment: environment.last_deployment, rolloutStatus: { + status: environment.rollout_status ? environment.rollout_status.status : null, instances: environment.rollout_status ? environment.rollout_status.instances : [], }, updatedAt: environment.updated_at, diff --git a/app/assets/javascripts/commit/image_file.js b/app/assets/javascripts/commit/image_file.js index 9454f760df8..bc666aef54b 100644 --- a/app/assets/javascripts/commit/image_file.js +++ b/app/assets/javascripts/commit/image_file.js @@ -1,4 +1,4 @@ -/* eslint-disable func-names, no-var, prefer-arrow-callback, no-else-return, consistent-return, prefer-template, one-var, no-return-assign, no-unused-expressions, no-sequences */ +/* eslint-disable func-names, no-var, prefer-arrow-callback, no-else-return, consistent-return, prefer-template, one-var, no-unused-vars, no-return-assign, no-unused-expressions, no-sequences */ import $ from 'jquery'; @@ -12,8 +12,11 @@ export default class ImageFile { this.requestImageInfo( $('.two-up.view .frame.deleted img', this.file), (function(_this) { - return function() { - return _this.requestImageInfo($('.two-up.view .frame.added img', _this.file), function() { + return function(deletedWidth, deletedHeight) { + return _this.requestImageInfo($('.two-up.view .frame.added img', _this.file), function( + width, + height, + ) { _this.initViewModes(); // Load two-up view after images are loaded @@ -109,7 +112,7 @@ export default class ImageFile { maxHeight = 0; $('.frame', view) .each( - (function() { + (function(_this) { return function(index, frame) { var height, width; width = $(frame).width(); @@ -193,7 +196,13 @@ export default class ImageFile { return $('.onion-skin.view', this.file).each( (function(_this) { return function(index, view) { - var $frame, $track, $dragger, $frameAdded, framePadding, ref; + var $frame, + $track, + $dragger, + $frameAdded, + framePadding, + ref, + dragging = false; (ref = _this.prepareFrames(view)), ([maxWidth, maxHeight] = ref); $frame = $('.onion-skin-frame', view); $frameAdded = $('.frame.added', view); diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/cluster_form_dropdown.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/cluster_form_dropdown.vue deleted file mode 100644 index f9465da6fda..00000000000 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/cluster_form_dropdown.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue index 6e74963dcb0..1ec45c8b651 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue +++ b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue @@ -14,12 +14,5 @@ export default { }; diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/role_name_dropdown.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/role_name_dropdown.vue index 70230b294ac..e69de29bb2d 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/role_name_dropdown.vue +++ b/app/assets/javascripts/create_cluster/eks_cluster/components/role_name_dropdown.vue @@ -1,53 +0,0 @@ - - diff --git a/app/assets/javascripts/gl_dropdown.js b/app/assets/javascripts/gl_dropdown.js index f49246cf07b..515402fc506 100644 --- a/app/assets/javascripts/gl_dropdown.js +++ b/app/assets/javascripts/gl_dropdown.js @@ -1,4 +1,5 @@ -/* eslint-disable func-names, no-underscore-dangle, no-var, one-var, vars-on-top, no-shadow, no-cond-assign, prefer-arrow-callback, no-return-assign, no-else-return, camelcase, no-lonely-if, guard-for-in, no-restricted-syntax, consistent-return, prefer-template, no-param-reassign, no-loop-func */ +/* eslint-disable func-names, no-underscore-dangle, no-var, one-var, vars-on-top, no-unused-vars, no-shadow, no-cond-assign, prefer-arrow-callback, no-return-assign, no-else-return, camelcase, no-lonely-if, guard-for-in, no-restricted-syntax, consistent-return, prefer-template, no-param-reassign, no-loop-func */ +/* global fuzzaldrinPlus */ import $ from 'jquery'; import _ from 'underscore'; @@ -65,10 +66,12 @@ GitLabDropdownInput = (function() { })(); GitLabDropdownFilter = (function() { - var BLUR_KEYCODES, HAS_VALUE_CLASS; + var ARROW_KEY_CODES, BLUR_KEYCODES, HAS_VALUE_CLASS; BLUR_KEYCODES = [27, 40]; + ARROW_KEY_CODES = [38, 40]; + HAS_VALUE_CLASS = 'has-value'; function GitLabDropdownFilter(input, options) { @@ -874,8 +877,9 @@ GitLabDropdown = (function() { }; GitLabDropdown.prototype.addArrowKeyEvent = function() { - var ARROW_KEY_CODES, selector; + var $input, ARROW_KEY_CODES, selector; ARROW_KEY_CODES = [38, 40]; + $input = this.dropdown.find('.dropdown-input-field'); selector = SELECTABLE_CLASSES; if (this.dropdown.find('.dropdown-toggle-page').length) { selector = '.dropdown-page-one ' + selector; diff --git a/app/assets/javascripts/issue.js b/app/assets/javascripts/issue.js index a9e086fade8..db4607ca58d 100644 --- a/app/assets/javascripts/issue.js +++ b/app/assets/javascripts/issue.js @@ -1,9 +1,10 @@ -/* eslint-disable no-var, one-var, consistent-return */ +/* eslint-disable no-var, one-var, no-unused-vars, consistent-return */ import $ from 'jquery'; import axios from './lib/utils/axios_utils'; import { addDelimiter } from './lib/utils/text_utility'; import flash from './flash'; +import TaskList from './task_list'; import CreateMergeRequestDropdown from './create_merge_request_dropdown'; import IssuablesHelper from './helpers/issuables_helper'; import { __ } from './locale'; diff --git a/app/assets/javascripts/jobs/components/log/duration_badge.vue b/app/assets/javascripts/jobs/components/log/duration_badge.vue deleted file mode 100644 index 83f62703d27..00000000000 --- a/app/assets/javascripts/jobs/components/log/duration_badge.vue +++ /dev/null @@ -1,13 +0,0 @@ - - diff --git a/app/assets/javascripts/jobs/components/log/line.vue b/app/assets/javascripts/jobs/components/log/line.vue index 336ae623f0f..86d0fcc3b74 100644 --- a/app/assets/javascripts/jobs/components/log/line.vue +++ b/app/assets/javascripts/jobs/components/log/line.vue @@ -21,7 +21,7 @@ export default {