From e0c922f897f7e167f6388eb3435bbb55294348f9 Mon Sep 17 00:00:00 2001 From: Pirate Praveen Date: Thu, 13 Dec 2018 13:39:08 +0530 Subject: [PATCH] New upstream version 11.5.3+dfsg --- .eslintrc.yml | 74 +- .gitattributes | 1 + .gitignore | 1 + .gitlab-ci.yml | 119 +- .gitlab/{CODEOWNERS => CODEOWNERS.disabled} | 0 .../Security developer workflow.md | 4 +- .gitlab/issue_templates/Test plan.md | 36 +- .../Database changes.md | 28 +- .../merge_request_templates/Documentation.md | 1 + .prettierignore | 4 + .rubocop.yml | 19 +- .ruby-version | 2 +- CHANGELOG.md | 352 +- CONTRIBUTING.md | 156 +- Dangerfile | 1 + Dockerfile.assets | 4 + GITALY_SERVER_VERSION | 2 +- GITLAB_PAGES_VERSION | 2 +- GITLAB_SHELL_VERSION | 2 +- GITLAB_WORKHORSE_VERSION | 2 +- Gemfile | 28 +- Gemfile.lock | 82 +- Gemfile.rails5.lock | 82 +- PROCESS.md | 1 + README.md | 2 +- VERSION | 2 +- .../images/cluster_app_logos/knative.png | Bin 0 -> 11259 bytes app/assets/images/koding-logo.svg | 8 - app/assets/javascripts/activities.js | 10 +- .../javascripts/badges/components/badge.vue | 2 + .../badges/components/badge_form.vue | 2 + .../badges/components/badge_list.vue | 2 + .../badges/components/badge_list_row.vue | 2 + .../behaviors/copy_to_clipboard.js | 2 +- .../javascripts/behaviors/details_behavior.js | 8 +- .../behaviors/markdown/copy_as_gfm.js | 107 +- .../behaviors/markdown/render_math.js | 8 +- .../behaviors/markdown/render_mermaid.js | 78 +- .../javascripts/behaviors/preview_markdown.js | 107 +- .../javascripts/behaviors/quick_submit.js | 40 +- .../javascripts/behaviors/requires_input.js | 3 +- .../javascripts/behaviors/secret_values.js | 8 +- .../behaviors/shortcuts/shortcuts.js | 28 +- .../javascripts/behaviors/toggler_behavior.js | 4 +- .../javascripts/blob/3d_viewer/index.js | 56 +- .../javascripts/blob/3d_viewer/mesh_object.js | 21 +- .../blob/balsamiq/balsamiq_viewer.js | 2 +- .../javascripts/blob/blob_file_dropzone.js | 28 +- .../blob/blob_line_permalink_updater.js | 18 +- .../blob/file_template_selector.js | 8 +- app/assets/javascripts/blob/notebook/index.js | 7 +- app/assets/javascripts/blob/sketch/index.js | 2 +- app/assets/javascripts/blob/stl_viewer.js | 4 +- .../javascripts/blob/template_selector.js | 8 +- .../template_selectors/license_selector.js | 2 +- .../blob/template_selectors/type_selector.js | 1 - app/assets/javascripts/blob/viewer/index.js | 42 +- .../javascripts/blob_edit/blob_bundle.js | 4 +- app/assets/javascripts/blob_edit/edit_blob.js | 8 +- .../javascripts/boards/components/board.js | 59 +- .../boards/components/board_blank_state.vue | 30 +- .../boards/components/board_card.vue | 135 +- .../boards/components/board_delete.js | 14 +- .../boards/components/board_list.vue | 69 +- .../boards/components/board_new_issue.vue | 14 +- .../boards/components/board_sidebar.js | 59 +- .../boards/components/issue_card_inner.vue | 373 +- .../boards/components/issue_due_date.vue | 90 + .../boards/components/issue_time_estimate.vue | 48 + .../boards/components/modal/empty_state.vue | 4 +- .../boards/components/modal/footer.vue | 19 +- .../boards/components/modal/header.vue | 80 +- .../boards/components/modal/index.vue | 235 +- .../boards/components/modal/list.vue | 212 +- .../components/modal/lists_dropdown.vue | 13 +- .../boards/components/modal/tabs.vue | 30 +- .../boards/components/new_list_dropdown.js | 63 +- .../boards/components/project_select.vue | 38 +- .../components/sidebar/remove_issue.vue | 125 +- .../boards/filtered_search_boards.js | 12 +- app/assets/javascripts/boards/index.js | 68 +- .../boards/mixins/sortable_default_options.js | 33 +- app/assets/javascripts/boards/models/issue.js | 37 +- app/assets/javascripts/boards/models/list.js | 15 +- .../boards/services/board_service.js | 12 +- .../javascripts/boards/stores/boards_store.js | 78 +- .../javascripts/boards/stores/modal_store.js | 12 +- app/assets/javascripts/breadcrumb.js | 15 +- app/assets/javascripts/build_artifacts.js | 18 +- .../ci_variable_list/ajax_variable_list.js | 58 +- .../ci_variable_list/ci_variable_list.js | 37 +- .../native_form_variable_list.js | 5 +- .../javascripts/clusters/clusters_bundle.js | 12 +- .../javascripts/clusters/clusters_index.js | 5 +- .../clusters/components/application_row.vue | 293 +- .../clusters/components/applications.vue | 60 +- app/assets/javascripts/clusters/constants.js | 2 + .../clusters/services/clusters_service.js | 1 + .../clusters/stores/clusters_store.js | 21 +- app/assets/javascripts/comment_type_toggle.js | 56 +- app/assets/javascripts/commit/image_file.js | 300 +- .../commit/pipelines/pipelines_bundle.js | 10 +- .../commit/pipelines/pipelines_table.vue | 147 +- .../javascripts/commit_merge_requests.js | 7 +- app/assets/javascripts/commits.js | 38 +- app/assets/javascripts/commons/bootstrap.js | 12 +- app/assets/javascripts/commons/gitlab_ui.js | 17 - app/assets/javascripts/commons/index.js | 1 - app/assets/javascripts/commons/polyfills.js | 1 + .../javascripts/compare_autocomplete.js | 4 +- .../javascripts/confirm_danger_modal.js | 24 +- app/assets/javascripts/contextual_sidebar.js | 7 +- .../javascripts/create_item_dropdown.js | 13 +- app/assets/javascripts/create_label.js | 59 +- .../cycle_analytics/components/banner.vue | 43 +- .../components/limit_warning_component.vue | 22 +- .../components/stage_code_component.vue | 36 +- .../components/stage_component.vue | 37 +- .../components/stage_plan_component.vue | 47 +- .../components/stage_review_component.vue | 40 +- .../components/stage_staging_component.vue | 50 +- .../components/stage_test_component.vue | 54 +- .../components/total_time_component.vue | 24 +- .../cycle_analytics/cycle_analytics_bundle.js | 24 +- .../cycle_analytics_service.js | 5 +- .../cycle_analytics/cycle_analytics_store.js | 36 +- .../deploy_keys/components/action_btn.vue | 4 + .../deploy_keys/components/app.vue | 8 +- .../javascripts/deploy_keys/service/index.js | 9 +- app/assets/javascripts/diff.js | 14 +- .../components/comment_resolve_btn.js | 32 +- .../components/diff_note_avatars.js | 26 +- .../components/jump_to_discussion.js | 37 +- .../diff_notes/components/resolve_count.js | 12 +- .../diff_notes/mixins/discussion.js | 12 +- .../diff_notes/models/discussion.js | 18 +- .../javascripts/diff_notes/stores/comments.js | 16 +- .../javascripts/diffs/components/app.vue | 27 +- .../diffs/components/commit_item.vue | 4 +- .../diffs/components/compare_versions.vue | 18 +- .../components/compare_versions_dropdown.vue | 2 +- .../diffs/components/diff_content.vue | 72 +- .../diffs/components/diff_discussions.vue | 55 +- .../diffs/components/diff_file.vue | 30 +- .../diffs/components/diff_file_header.vue | 10 +- .../diffs/components/diff_gutter_avatars.vue | 4 + .../components/diff_line_gutter_content.vue | 2 +- .../diffs/components/image_diff_overlay.vue | 139 + .../components/inline_diff_table_row.vue | 2 +- .../components/parallel_diff_comment_row.vue | 10 +- .../diffs/components/tree_list.vue | 116 +- app/assets/javascripts/diffs/constants.js | 1 + app/assets/javascripts/diffs/store/actions.js | 43 +- app/assets/javascripts/diffs/store/getters.js | 5 +- .../diffs/store/modules/diff_state.js | 2 + .../javascripts/diffs/store/mutation_types.js | 4 + .../javascripts/diffs/store/mutations.js | 149 +- app/assets/javascripts/diffs/store/utils.js | 20 +- .../dirty_submit/dirty_submit_collection.js | 13 + .../dirty_submit/dirty_submit_factory.js | 9 + .../dirty_submit/dirty_submit_form.js | 83 + app/assets/javascripts/dismissable_callout.js | 27 + app/assets/javascripts/droplab/constants.js | 9 +- app/assets/javascripts/droplab/drop_down.js | 4 +- app/assets/javascripts/droplab/drop_lab.js | 5 +- app/assets/javascripts/droplab/keyboard.js | 53 +- .../javascripts/droplab/plugins/ajax.js | 4 +- .../droplab/plugins/ajax_filter.js | 18 +- .../javascripts/droplab/plugins/filter.js | 39 +- .../droplab/plugins/input_setter.js | 4 +- app/assets/javascripts/droplab/utils.js | 15 +- app/assets/javascripts/dropzone_input.js | 41 +- app/assets/javascripts/due_date_select.js | 10 +- .../support/is_emoji_unicode_supported.js | 55 +- .../environments/components/container.vue | 66 +- .../environments/components/empty_state.vue | 61 +- .../components/environment_actions.vue | 50 +- .../components/environment_item.vue | 90 +- .../components/environment_monitoring.vue | 4 +- .../components/environment_rollback.vue | 6 +- .../components/environments_app.vue | 164 +- .../components/environments_table.vue | 2 + .../folder/environments_folder_bundle.js | 55 +- .../folder/environments_folder_view.vue | 71 +- app/assets/javascripts/environments/index.js | 63 +- .../environments/mixins/environments_mixin.js | 20 +- .../environments/stores/environments_store.js | 30 +- app/assets/javascripts/experimental_flags.js | 2 +- .../feature_highlight/feature_highlight.js | 16 +- .../feature_highlight_helper.js | 18 +- .../javascripts/files_comment_button.js | 12 +- app/assets/javascripts/filterable_list.js | 25 +- ...dmin_runners_filtered_search_token_keys.js | 33 +- .../recent_searches_dropdown_content.vue | 8 +- .../filtered_search/dropdown_emoji.js | 26 +- .../filtered_search/dropdown_hint.js | 19 +- .../filtered_search/dropdown_non_user.js | 8 +- .../filtered_search/dropdown_user.js | 7 +- .../filtered_search/dropdown_utils.js | 54 +- .../filtered_search_dropdown.js | 14 +- .../filtered_search_dropdown_manager.js | 27 +- .../filtered_search_manager.js | 113 +- .../filtered_search_token_keys.js | 28 +- .../filtered_search_tokenizer.js | 53 +- .../filtered_search_visual_tokens.js | 130 +- .../issuable_filtered_search_token_keys.js | 152 +- .../filtered_search/recent_searches_root.js | 11 +- .../stores/recent_searches_store.js | 13 +- app/assets/javascripts/flash.js | 46 +- app/assets/javascripts/fly_out_nav.js | 52 +- .../frequent_items/components/app.vue | 2 + .../frequent_items_search_input.vue | 13 +- app/assets/javascripts/gfm_auto_complete.js | 63 +- app/assets/javascripts/gl_dropdown.js | 2 +- app/assets/javascripts/gl_field_error.js | 3 +- app/assets/javascripts/gl_field_errors.js | 16 +- app/assets/javascripts/gl_form.js | 19 +- app/assets/javascripts/group.js | 12 +- app/assets/javascripts/group_avatar.js | 5 +- .../javascripts/group_label_subscription.js | 10 +- .../javascripts/groups/components/app.vue | 2 + .../groups/components/item_stats.vue | 72 +- .../groups/components/item_stats_value.vue | 86 +- .../javascripts/groups/new_group_child.js | 22 +- .../javascripts/groups/store/groups_store.js | 23 +- .../javascripts/groups/transfer_dropdown.js | 2 +- app/assets/javascripts/groups_select.js | 9 +- .../javascripts/helpers/avatar_helper.js | 4 +- .../ide/components/branches/search_list.vue | 2 + .../ide/components/commit_sidebar/form.vue | 4 +- .../commit_sidebar/list_collapsed.vue | 14 +- .../commit_sidebar/stage_button.vue | 5 +- .../ide/components/error_message.vue | 4 + .../ide/components/file_templates/bar.vue | 4 +- .../components/file_templates/dropdown.vue | 4 +- app/assets/javascripts/ide/components/ide.vue | 4 +- .../ide/components/ide_side_bar.vue | 18 +- .../javascripts/ide/components/ide_tree.vue | 2 +- .../ide/components/ide_tree_list.vue | 8 +- .../javascripts/ide/components/jobs/list.vue | 2 + .../javascripts/ide/components/jobs/stage.vue | 2 + .../ide/components/merge_requests/list.vue | 10 +- .../ide/components/nav_dropdown_button.vue | 4 +- .../ide/components/new_dropdown/modal.vue | 4 +- .../ide/components/new_dropdown/upload.vue | 38 +- .../ide/components/panes/right.vue | 17 +- .../ide/components/pipelines/list.vue | 4 +- .../ide/components/preview/clientside.vue | 2 + .../ide/components/preview/navigator.vue | 2 + .../ide/components/repo_commit_section.vue | 4 +- .../ide/components/repo_editor.vue | 7 +- .../ide/components/shared/tokened_input.vue | 4 +- app/assets/javascripts/ide/index.js | 5 +- app/assets/javascripts/ide/lib/diff/diff.js | 14 +- .../javascripts/ide/lib/diff/diff_worker.js | 2 +- .../ide/stores/actions/merge_request.js | 100 +- .../javascripts/ide/stores/actions/project.js | 36 +- app/assets/javascripts/ide/stores/getters.js | 2 +- .../ide/stores/modules/commit/actions.js | 6 +- .../modules/file_templates/mutations.js | 1 + .../stores/modules/merge_requests/actions.js | 3 +- .../javascripts/image_diff/image_diff.js | 6 +- .../image_diff/init_discussion_tab.js | 3 +- .../image_diff/replaced_image_diff.js | 15 +- app/assets/javascripts/importer_status.js | 108 +- .../javascripts/init_changes_dropdown.js | 2 +- app/assets/javascripts/init_notes.js | 8 +- .../integrations/integration_settings_form.js | 5 +- .../issuable/auto_width_dropdown_select.js | 5 +- .../issuable_bulk_update_actions.js | 12 +- app/assets/javascripts/issuable_form.js | 34 +- app/assets/javascripts/issuable_index.js | 9 +- app/assets/javascripts/issue.js | 73 +- .../javascripts/issue_show/components/app.vue | 518 +- .../issue_show/components/description.vue | 187 +- .../issue_show/components/edit_actions.vue | 106 +- .../issue_show/components/edited.vue | 51 +- .../components/fields/description.vue | 74 +- .../fields/description_template.vue | 76 +- .../issue_show/components/fields/title.vue | 18 +- .../issue_show/components/form.vue | 142 +- .../issue_show/components/locked_warning.vue | 12 +- .../javascripts/issue_show/stores/index.js | 6 +- app/assets/javascripts/job.js | 190 - .../jobs/components/artifacts_block.vue | 56 +- .../jobs/components/commit_block.vue | 48 +- .../jobs/components/empty_state.vue | 73 +- .../jobs/components/environments_block.vue | 210 +- .../jobs/components/erased_block.vue | 46 +- .../javascripts/jobs/components/job_app.vue | 377 +- .../jobs/components/job_container_item.vue | 76 + .../javascripts/jobs/components/job_log.vue | 56 +- .../jobs/components/job_log_controllers.vue | 161 +- .../jobs/components/jobs_container.vue | 84 +- .../javascripts/jobs/components/sidebar.vue | 515 +- .../jobs/components/sidebar_detail_row.vue | 59 +- .../jobs/components/stages_dropdown.vue | 58 +- .../jobs/components/stuck_block.vue | 24 +- .../jobs/components/trigger_block.vue | 40 +- app/assets/javascripts/jobs/index.js | 25 + .../javascripts/jobs/job_details_bundle.js | 74 - .../jobs/mixins/delayed_job_mixin.js | 50 + app/assets/javascripts/jobs/store/actions.js | 117 +- app/assets/javascripts/jobs/store/getters.js | 20 +- app/assets/javascripts/jobs/store/index.js | 13 +- .../javascripts/jobs/store/mutation_types.js | 19 +- .../javascripts/jobs/store/mutations.js | 64 +- app/assets/javascripts/jobs/store/state.js | 29 +- .../javascripts/jobs/svg/scroll_down.svg | 5 + app/assets/javascripts/label_manager.js | 16 +- app/assets/javascripts/labels.js | 2 +- app/assets/javascripts/labels_select.js | 253 +- app/assets/javascripts/layout_nav.js | 60 +- app/assets/javascripts/lib/ace.js | 1 + app/assets/javascripts/lib/utils/ace_utils.js | 6 + .../javascripts/lib/utils/ajax_cache.js | 7 +- .../javascripts/lib/utils/axios_utils.js | 19 +- .../lib/utils/bootstrap_linked_tabs.js | 10 +- app/assets/javascripts/lib/utils/cache.js | 2 +- app/assets/javascripts/lib/utils/datefix.js | 29 - .../javascripts/lib/utils/datetime_utility.js | 128 +- app/assets/javascripts/lib/utils/notify.js | 6 +- .../javascripts/lib/utils/number_utils.js | 2 +- .../javascripts/lib/utils/pretty_time.js | 61 - app/assets/javascripts/lib/utils/regexp.js | 3 +- .../javascripts/lib/utils/simple_poll.js | 2 +- app/assets/javascripts/lib/utils/sticky.js | 24 +- .../javascripts/lib/utils/text_markdown.js | 93 +- .../javascripts/lib/utils/text_utility.js | 22 +- .../javascripts/lib/utils/tick_formats.js | 2 +- .../javascripts/lib/utils/users_cache.js | 25 +- app/assets/javascripts/line_highlighter.js | 30 +- app/assets/javascripts/locale/sprintf.js | 2 +- .../javascripts/member_expiration_date.js | 10 +- app/assets/javascripts/members.js | 10 +- .../components/diff_file_editor.js | 22 +- .../components/parallel_conflict_lines.js | 2 +- .../merge_conflicts/merge_conflict_store.js | 53 +- app/assets/javascripts/merge_request.js | 25 +- app/assets/javascripts/merge_request_tabs.js | 5 - app/assets/javascripts/milestone.js | 34 +- app/assets/javascripts/milestone_select.js | 12 +- .../mini_pipeline_graph_dropdown.js | 17 +- .../monitoring/components/dashboard.vue | 8 +- .../monitoring/components/graph.vue | 16 +- .../monitoring/components/graph/axis.vue | 21 +- .../monitoring/components/graph/flag.vue | 3 +- .../components/graph/track_info.vue | 1 - .../components/graph/track_line.vue | 1 - .../monitoring/mixins/monitoring_mixins.js | 4 +- .../monitoring/services/monitoring_service.js | 49 +- .../monitoring/utils/measurements.js | 6 +- .../monitoring/utils/multiple_time_series.js | 7 +- app/assets/javascripts/mr_notes/index.js | 2 + app/assets/javascripts/namespace_select.js | 10 +- .../javascripts/network/branch_graph.js | 164 +- app/assets/javascripts/network/raphael.js | 2 +- app/assets/javascripts/new_branch_form.js | 16 +- app/assets/javascripts/new_commit_form.js | 4 +- .../javascripts/notebook/cells/code/index.vue | 72 +- .../javascripts/notebook/cells/markdown.vue | 129 +- .../notebook/cells/output/html.vue | 44 +- .../notebook/cells/output/image.vue | 28 +- .../notebook/cells/output/index.vue | 132 +- .../javascripts/notebook/cells/prompt.vue | 44 +- app/assets/javascripts/notebook/index.vue | 77 +- app/assets/javascripts/notes.js | 10 +- .../notes/components/comment_form.vue | 12 +- .../notes/components/diff_with_note.vue | 43 +- .../notes/components/discussion_counter.vue | 35 +- .../notes/components/discussion_filter.vue | 96 + .../notes/components/note_actions.vue | 71 +- .../notes/components/note_awards_list.vue | 54 +- .../notes/components/note_form.vue | 2 +- .../notes/components/note_header.vue | 12 +- .../notes/components/noteable_discussion.vue | 176 +- .../notes/components/noteable_note.vue | 11 +- .../notes/components/notes_app.vue | 25 +- .../components/toggle_replies_widget.vue | 94 + app/assets/javascripts/notes/constants.js | 2 + .../javascripts/notes/discussion_filters.js | 35 + app/assets/javascripts/notes/index.js | 3 + .../notes/services/notes_service.js | 5 +- .../javascripts/notes/stores/actions.js | 29 +- .../notes/stores/collapse_utils.js | 7 +- .../javascripts/notes/stores/getters.js | 8 +- app/assets/javascripts/notes/stores/index.js | 3 +- .../javascripts/notes/stores/modules/index.js | 2 + .../notes/stores/mutation_types.js | 2 + .../javascripts/notes/stores/mutations.js | 8 + app/assets/javascripts/notes/stores/utils.js | 12 - .../javascripts/notifications_dropdown.js | 4 +- app/assets/javascripts/notifications_form.js | 10 +- app/assets/javascripts/pager.js | 44 +- .../admin/abuse_reports/abuse_reports.js | 2 +- app/assets/javascripts/pages/admin/admin.js | 15 +- .../account_and_limits.js | 8 +- .../broadcast_messages/broadcast_message.js | 36 +- .../jobs/index/components/stop_jobs_modal.vue | 65 +- .../javascripts/pages/admin/projects/index.js | 3 +- .../index/components/delete_project_modal.vue | 139 +- .../pages/admin/projects/index/index.js | 2 +- .../users/components/delete_user_modal.vue | 193 +- .../javascripts/pages/admin/users/index.js | 6 +- .../pages/admin/users/new/index.js | 6 +- .../pages/dashboard/todos/index/todos.js | 15 +- .../javascripts/pages/groups/edit/index.js | 7 + .../pages/groups/settings/ci_cd/show/index.js | 2 +- .../components/delete_milestone_modal.vue | 171 +- .../components/promote_milestone_modal.vue | 99 +- .../shared/delete_milestone_modal_init.js | 16 +- .../shared/promote_milestone_modal_init.js | 16 +- .../javascripts/pages/profiles/index.js | 7 +- .../pages/profiles/two_factor_auths/index.js | 4 +- .../pages/projects/branches/new/index.js | 11 +- .../pages/projects/clusters/gcp/new/index.js | 5 - .../pages/projects/graphs/charts/index.js | 22 +- .../pages/projects/graphs/show/index.js | 3 +- .../graphs/show/stat_graph_contributors.js | 89 +- .../show/stat_graph_contributors_graph.js | 223 +- .../show/stat_graph_contributors_util.js | 66 +- .../javascripts/pages/projects/index.js | 6 +- .../javascripts/pages/projects/init_blob.js | 3 +- .../javascripts/pages/projects/init_form.js | 2 +- .../javascripts/pages/projects/issues/show.js | 2 +- .../pages/projects/jobs/index/index.js | 16 + .../pages/projects/jobs/show/index.js | 2 +- .../labels/components/promote_label_modal.vue | 124 +- .../pages/projects/labels/index/index.js | 16 +- .../pages/projects/network/network.js | 12 +- .../pipeline_schedules/index/index.js | 22 +- .../components/interval_pattern_input.vue | 104 +- .../components/pipeline_schedules_callout.vue | 46 +- .../components/target_branch_dropdown.js | 3 +- .../pipeline_schedules/shared/init_form.js | 4 +- .../pages/projects/pipelines/charts/index.js | 59 +- .../pages/projects/pipelines/index/index.js | 66 +- .../projects/pipelines/init_pipelines.js | 7 +- .../javascripts/pages/projects/project.js | 7 +- .../projects/settings/ci_cd/show/index.js | 2 +- .../components/project_feature_setting.vue | 120 +- .../components/project_setting_row.vue | 36 +- .../permissions/components/settings_panel.vue | 366 +- .../projects/shared/permissions/constants.js | 6 +- .../pages/projects/shared/project_avatar.js | 5 +- .../wikis/components/delete_wiki_modal.vue | 11 +- .../javascripts/pages/projects/wikis/index.js | 3 +- app/assets/javascripts/pages/root/index.js | 5 - .../javascripts/pages/search/show/search.js | 25 +- .../sessions/new/signin_tabs_memoizer.js | 2 +- .../pages/sessions/new/username_validator.js | 12 +- app/assets/javascripts/pages/users/index.js | 6 +- .../javascripts/pages/users/user_tabs.js | 2 +- app/assets/javascripts/pdf/index.vue | 103 +- app/assets/javascripts/pdf/page/index.vue | 103 +- .../components/performance_bar_app.vue | 15 +- .../components/simple_metric.vue | 46 +- .../javascripts/performance_bar/index.js | 3 +- .../services/performance_bar_service.js | 11 +- .../stores/performance_bar_store.js | 4 +- .../javascripts/persistent_user_callout.js | 34 - .../components/graph/graph_component.vue | 4 +- ...b_component.vue => job_group_dropdown.vue} | 54 +- .../graph/{job_component.vue => job_item.vue} | 21 +- .../graph/stage_column_component.vue | 36 +- .../pipelines/components/header_component.vue | 2 + .../pipelines/components/pipelines.vue | 38 - .../components/pipelines_actions.vue | 18 +- .../components/pipelines_artifacts.vue | 4 +- .../pipelines/components/pipelines_table.vue | 10 +- .../components/pipelines_table_row.vue | 19 +- .../pipelines/components/stage.vue | 8 +- .../pipelines/components/time_ago.vue | 5 +- .../javascripts/pipelines/mixins/pipelines.js | 40 + .../components/delete_account_modal.vue | 126 +- app/assets/javascripts/profile/gl_crop.js | 49 +- app/assets/javascripts/profile/profile.js | 6 +- app/assets/javascripts/project_find_file.js | 97 +- app/assets/javascripts/project_import.js | 1 - .../javascripts/project_label_subscription.js | 49 +- app/assets/javascripts/project_select.js | 51 +- .../project_select_combo_button.js | 27 +- app/assets/javascripts/project_visibility.js | 5 +- .../components/gke_dropdown_mixin.js | 2 + .../javascripts/projects/project_new.js | 44 +- .../commit_pipeline_status_component.vue | 2 + .../prometheus_metrics/prometheus_metrics.js | 36 +- .../protected_branch_create.js | 8 +- .../protected_branch_edit.js | 57 +- .../protected_tags/protected_tag_create.js | 4 +- .../protected_tags/protected_tag_edit.js | 35 +- app/assets/javascripts/raven/raven_config.js | 2 +- app/assets/javascripts/ref_select_dropdown.js | 5 +- .../javascripts/registry/components/app.vue | 67 +- .../components/collapsible_container.vue | 105 +- .../registry/components/table_registry.vue | 106 +- app/assets/javascripts/registry/index.js | 39 +- .../javascripts/registry/stores/mutations.js | 1 - .../components/grouped_test_reports_app.vue | 129 +- .../reports/components/issue_status_icon.vue | 6 +- .../reports/components/issues_list.vue | 89 +- .../javascripts/reports/components/modal.vue | 40 +- .../{report_issues.vue => report_item.vue} | 44 +- .../reports/components/summary_row.vue | 2 + .../reports/components/test_issue_body.vue | 42 +- .../javascripts/reports/store/actions.js | 8 +- app/assets/javascripts/reports/store/index.js | 13 +- .../reports/store/mutation_types.js | 1 - .../javascripts/reports/store/mutations.js | 3 +- app/assets/javascripts/reports/store/state.js | 1 - app/assets/javascripts/right_sidebar.js | 59 +- app/assets/javascripts/search_autocomplete.js | 8 +- .../set_status_modal_wrapper.vue | 9 +- app/assets/javascripts/settings_panels.js | 16 +- .../components/assignees/assignees.vue | 5 +- .../assignees/sidebar_assignees.vue | 3 +- .../confidential_issue_sidebar.vue | 6 +- .../components/lock/lock_issue_sidebar.vue | 23 +- .../components/participants/participants.vue | 134 +- .../participants/sidebar_participants.vue | 34 +- .../subscriptions/sidebar_subscriptions.vue | 7 +- .../subscriptions/subscriptions.vue | 124 +- .../time_tracking/collapsed_state.vue | 196 +- .../time_tracking/comparison_pane.vue | 6 +- .../components/time_tracking/help_state.vue | 14 +- .../time_tracking/sidebar_time_tracking.vue | 6 +- .../sidebar/components/todo_toggle/todo.vue | 8 +- .../sidebar/lib/sidebar_move_issue.js | 20 +- .../sidebar/mount_milestone_sidebar.js | 19 +- .../javascripts/sidebar/mount_sidebar.js | 39 +- .../sidebar/services/sidebar_service.js | 14 +- .../javascripts/sidebar/sidebar_mediator.js | 20 +- app/assets/javascripts/single_file_diff.js | 34 +- app/assets/javascripts/smart_interval.js | 20 +- app/assets/javascripts/star.js | 8 +- app/assets/javascripts/task_list.js | 9 +- .../templates/issuable_template_selector.js | 20 +- app/assets/javascripts/terminal/terminal.js | 12 +- .../javascripts/test_utils/simulate_drag.js | 56 +- .../javascripts/test_utils/simulate_input.js | 2 +- app/assets/javascripts/toggle_buttons.js | 2 +- app/assets/javascripts/tree.js | 20 +- app/assets/javascripts/u2f/authenticate.js | 14 +- app/assets/javascripts/u2f/register.js | 13 +- app/assets/javascripts/u2f/util.js | 5 +- app/assets/javascripts/ui_development_kit.js | 18 +- app/assets/javascripts/usage_ping_consent.js | 5 +- app/assets/javascripts/users_select.js | 1131 +- .../components/deployment.vue | 127 +- .../components/memory_usage.vue | 32 +- .../components/mr_widget_author.vue | 56 +- .../components/mr_widget_author_time.vue | 52 +- .../components/mr_widget_merge_help.vue | 36 +- .../components/mr_widget_pipeline.vue | 23 +- .../components/mr_widget_related_links.vue | 50 +- .../components/mr_widget_status_icon.vue | 52 +- .../components/review_app_link.vue | 30 + .../source_branch_removal_status.vue | 22 +- .../components/states/mr_widget_archived.vue | 14 +- .../states/mr_widget_auto_merge_failed.vue | 52 +- .../components/states/mr_widget_checking.vue | 14 +- .../components/states/mr_widget_closed.vue | 32 +- .../components/states/mr_widget_conflicts.vue | 28 +- ...mr_widget_merge_when_pipeline_succeeds.vue | 144 +- .../components/states/mr_widget_merged.vue | 214 +- .../components/states/mr_widget_merging.vue | 26 +- .../states/mr_widget_missing_branch.vue | 70 +- .../states/mr_widget_not_allowed.vue | 14 +- .../states/mr_widget_pipeline_blocked.vue | 14 +- .../components/states/mr_widget_rebase.vue | 144 +- .../components/states/ready_to_merge.vue | 32 +- .../components/states/work_in_progress.vue | 5 +- .../vue_merge_request_widget/dependencies.js | 47 - .../ee_switch_mr_widget_options.js | 3 + .../vue_merge_request_widget/index.js | 5 +- .../mr_widget_options.vue | 197 +- .../services/ee_switch_mr_widget_service.js | 3 + .../services/mr_widget_service.js | 8 +- .../stores/ee_switch_get_state_key.js | 3 + .../stores/ee_switch_mr_widget_store.js | 3 + .../stores/ee_switch_state_maps.js | 3 + .../stores/mr_widget_store.js | 5 +- .../vue_shared/components/bar_chart.vue | 10 +- .../vue_shared/components/ci_badge_link.vue | 2 +- .../vue_shared/components/commit.vue | 2 +- .../viewers/download_viewer.vue | 4 +- .../content_viewer/viewers/image_viewer.vue | 75 +- .../viewers/markdown_viewer.vue | 6 +- .../components/deprecated_modal.vue | 150 +- .../components/diff_viewer/diff_viewer.vue | 9 +- .../viewers/image_diff/onion_skin_viewer.vue | 15 +- .../viewers/image_diff/swipe_viewer.vue | 63 +- .../viewers/image_diff/two_up_viewer.vue | 37 +- .../diff_viewer/viewers/image_diff_viewer.vue | 82 +- .../components/dropdown/dropdown_button.vue | 4 + .../vue_shared/components/file_icon.vue | 2 + .../components/file_icon/file_icon_map.js | 5 +- .../vue_shared/components/file_row.vue | 34 +- .../components/filtered_search_dropdown.vue | 145 + .../vue_shared/components/gl_countdown.vue | 53 + .../vue_shared/components/gl_modal.vue | 12 +- .../components/header_ci_component.vue | 33 +- .../vue_shared/components/icon.vue | 4 +- .../components/issue/issue_warning.vue | 51 +- .../vue_shared/components/loading_button.vue | 60 +- .../vue_shared/components/markdown/field.vue | 246 +- .../vue_shared/components/markdown/header.vue | 123 +- .../components/markdown/toolbar.vue | 48 +- .../components/markdown/toolbar_button.vue | 74 +- .../vue_shared/components/memory_graph.vue | 3 +- .../components/notes/placeholder_note.vue | 68 +- .../notes/placeholder_system_note.vue | 32 +- .../components/notes/skeleton_note.vue | 8 +- .../components/notes/system_note.vue | 4 +- .../components/pagination_links.vue | 4 + .../vue_shared/components/panel_resizer.vue | 158 +- .../vue_shared/components/pikaday.vue | 106 +- .../components/project_avatar/image.vue | 123 +- .../vue_shared/components/recaptcha_modal.vue | 108 +- .../sidebar/collapsed_calendar_icon.vue | 62 +- .../sidebar/collapsed_grouped_date_picker.vue | 143 +- .../components/sidebar/date_picker.vue | 174 +- .../components/sidebar/labels_select/base.vue | 2 + .../dropdown_value_collapsed.vue | 5 +- .../components/smart_virtual_list.vue | 42 + .../components/table_pagination.vue | 202 +- .../components/time_ago_tooltip.vue | 4 +- .../vue_shared/components/toggle_button.vue | 98 +- .../user_avatar/user_avatar_image.vue | 53 +- .../user_avatar/user_avatar_link.vue | 17 +- .../user_avatar/user_avatar_svg.vue | 2 - .../vue_shared/directives/tooltip.js | 8 + .../mixins/ci_pagination_api_mixin.js | 28 +- .../javascripts/vue_shared/models/label.js | 2 +- .../javascripts/vue_shared/translate.js | 9 +- .../vue_shared/vue_resource_interceptor.js | 2 +- app/assets/javascripts/zen_mode.js | 34 +- .../stylesheets/bootstrap_migration.scss | 11 - app/assets/stylesheets/framework.scss | 1 + app/assets/stylesheets/framework/awards.scss | 5 +- app/assets/stylesheets/framework/blocks.scss | 11 +- app/assets/stylesheets/framework/buttons.scss | 42 +- app/assets/stylesheets/framework/common.scss | 17 + .../framework/contextual_sidebar.scss | 4 +- .../stylesheets/framework/dropdowns.scss | 20 +- app/assets/stylesheets/framework/files.scss | 2 - .../stylesheets/framework/gitlab_theme.scss | 1 + app/assets/stylesheets/framework/header.scss | 19 +- app/assets/stylesheets/framework/images.scss | 2 +- .../stylesheets/framework/markdown_area.scss | 1 + app/assets/stylesheets/framework/mixins.scss | 95 + .../stylesheets/framework/page_title.scss | 18 + app/assets/stylesheets/framework/panels.scss | 5 - .../secondary_navigation_elements.scss | 20 +- app/assets/stylesheets/framework/selects.scss | 2 + app/assets/stylesheets/framework/tables.scss | 6 + app/assets/stylesheets/framework/terms.scss | 15 +- .../stylesheets/framework/timeline.scss | 6 +- .../stylesheets/framework/typography.scss | 2 +- .../stylesheets/framework/variables.scss | 12 +- app/assets/stylesheets/pages/boards.scss | 200 +- app/assets/stylesheets/pages/builds.scss | 94 +- app/assets/stylesheets/pages/commits.scss | 2 +- .../stylesheets/pages/cycle_analytics.scss | 2 +- app/assets/stylesheets/pages/diff.scss | 84 +- .../stylesheets/pages/environments.scss | 8 +- app/assets/stylesheets/pages/events.scss | 78 +- app/assets/stylesheets/pages/groups.scss | 2 +- app/assets/stylesheets/pages/issues.scss | 23 +- .../stylesheets/pages/merge_requests.scss | 26 +- app/assets/stylesheets/pages/note_form.scss | 22 +- app/assets/stylesheets/pages/notes.scss | 375 +- .../stylesheets/pages/pipeline_schedules.scss | 8 +- app/assets/stylesheets/pages/profile.scss | 12 + app/assets/stylesheets/pages/settings.scss | 4 + app/assets/stylesheets/performance_bar.scss | 4 + .../admin/appearances_controller.rb | 6 +- .../admin/application_settings_controller.rb | 2 +- .../admin/applications_controller.rb | 8 +- app/controllers/admin/dashboard_controller.rb | 4 +- .../admin/health_check_controller.rb | 7 - app/controllers/application_controller.rb | 6 +- app/controllers/autocomplete_controller.rb | 2 +- app/controllers/boards/issues_controller.rb | 17 +- app/controllers/chaos_controller.rb | 56 + .../clusters/applications_controller.rb | 28 + app/controllers/clusters/base_controller.rb | 37 + .../clusters/clusters_controller.rb | 218 + app/controllers/concerns/boards_responses.rb | 5 +- app/controllers/concerns/issuable_actions.rb | 33 +- .../concerns/members_presentation.rb | 7 +- app/controllers/concerns/notes_actions.rb | 17 +- .../concerns/project_unauthorized.rb | 10 + app/controllers/concerns/routable_actions.rb | 16 +- app/controllers/concerns/send_file_upload.rb | 4 +- app/controllers/concerns/sends_blob.rb | 2 +- .../dashboard/milestones_controller.rb | 7 +- app/controllers/groups/boards_controller.rb | 18 + .../groups/milestones_controller.rb | 2 +- .../groups/settings/ci_cd_controller.rb | 4 +- app/controllers/health_controller.rb | 11 +- .../import/bitbucket_server_controller.rb | 24 +- app/controllers/import/gitea_controller.rb | 2 +- app/controllers/import/github_controller.rb | 4 +- app/controllers/koding_controller.rb | 17 - .../oauth/authorizations_controller.rb | 2 +- app/controllers/profiles/keys_controller.rb | 2 +- .../projects/application_controller.rb | 3 +- .../projects/artifacts_controller.rb | 6 +- .../autocomplete_sources_controller.rb | 18 +- .../projects/avatars_controller.rb | 2 +- app/controllers/projects/blob_controller.rb | 24 +- app/controllers/projects/boards_controller.rb | 20 +- .../projects/build_artifacts_controller.rb | 4 +- .../clusters/applications_controller.rb | 48 +- .../projects/clusters_controller.rb | 222 +- app/controllers/projects/commit_controller.rb | 3 +- .../projects/compare_controller.rb | 17 + .../projects/git_http_controller.rb | 5 + app/controllers/projects/issues_controller.rb | 13 +- app/controllers/projects/jobs_controller.rb | 8 +- .../merge_requests/diffs_controller.rb | 12 + .../projects/merge_requests_controller.rb | 66 +- .../projects/mirrors_controller.rb | 16 + app/controllers/projects/notes_controller.rb | 2 +- app/controllers/projects/raw_controller.rb | 2 +- .../projects/settings/ci_cd_controller.rb | 4 +- app/controllers/projects/wikis_controller.rb | 23 +- app/controllers/projects_controller.rb | 2 +- app/controllers/snippets_controller.rb | 6 +- app/finders/applications_finder.rb | 22 + app/finders/autocomplete/users_finder.rb | 2 - app/finders/branches_finder.rb | 41 +- app/finders/clusters_finder.rb | 8 +- .../finder_with_cross_project_access.rb | 2 - app/finders/group_descendants_finder.rb | 2 - app/finders/groups_finder.rb | 4 - app/finders/issuable_finder.rb | 100 +- app/finders/issues_finder.rb | 10 +- app/finders/labels_finder.rb | 2 - app/finders/milestones_finder.rb | 2 - app/finders/notes_finder.rb | 6 + app/finders/pending_todos_finder.rb | 64 + app/finders/personal_access_tokens_finder.rb | 2 +- app/finders/pipelines_finder.rb | 2 - app/finders/projects_finder.rb | 29 +- app/finders/snippets_finder.rb | 235 +- app/finders/todos_finder.rb | 93 +- app/finders/user_finder.rb | 54 +- app/finders/users_finder.rb | 4 +- .../users_with_pending_todos_finder.rb | 16 + app/helpers/application_settings_helper.rb | 43 +- app/helpers/avatars_helper.rb | 2 +- app/helpers/blob_helper.rb | 27 +- app/helpers/ci_status_helper.rb | 2 +- app/helpers/clusters_helper.rb | 5 +- app/helpers/count_helper.rb | 14 + app/helpers/dashboard_helper.rb | 23 - app/helpers/events_helper.rb | 51 +- app/helpers/groups_helper.rb | 9 + app/helpers/icons_helper.rb | 4 +- app/helpers/issuables_helper.rb | 4 +- app/helpers/labels_helper.rb | 2 +- app/helpers/page_layout_helper.rb | 2 +- app/helpers/preferences_helper.rb | 36 +- app/helpers/profiles_helper.rb | 14 + app/helpers/projects_helper.rb | 25 +- app/helpers/sorting_helper.rb | 14 +- app/helpers/storage_health_helper.rb | 34 - app/helpers/time_helper.rb | 16 +- app/helpers/tree_helper.rb | 20 +- app/helpers/user_callouts_helper.rb | 5 - app/helpers/workhorse_helper.rb | 2 +- app/mailers/emails/issues.rb | 14 + app/mailers/emails/merge_requests.rb | 14 + app/mailers/notify.rb | 1 + app/mailers/previews/notify_preview.rb | 20 + app/models/application_setting.rb | 50 +- app/models/blob.rb | 13 +- app/models/board_group_recent_visit.rb | 25 + app/models/board_project_recent_visit.rb | 25 + app/models/ci/build.rb | 99 +- app/models/ci/job_artifact.rb | 29 +- app/models/ci/pipeline.rb | 33 +- app/models/clusters/applications/jupyter.rb | 2 +- app/models/clusters/applications/knative.rb | 51 + app/models/clusters/applications/runner.rb | 2 +- app/models/clusters/cluster.rb | 62 +- .../clusters/concerns/application_core.rb | 2 +- .../clusters/concerns/application_status.rb | 4 + app/models/clusters/group.rb | 10 + app/models/clusters/kubernetes_namespace.rb | 74 + app/models/clusters/platforms/kubernetes.rb | 64 +- app/models/clusters/project.rb | 3 + app/models/commit.rb | 2 +- app/models/commit_status.rb | 12 +- app/models/compare.rb | 11 + app/models/concerns/awardable.rb | 18 +- .../blob_language_from_git_attributes.rb | 13 + app/models/concerns/blob_like.rb | 2 +- app/models/concerns/cacheable_attributes.rb | 4 +- app/models/concerns/deployable.rb | 30 + app/models/concerns/deployment_platform.rb | 1 + app/models/concerns/each_batch.rb | 17 +- app/models/concerns/fast_destroy_all.rb | 2 +- app/models/concerns/issuable.rb | 2 +- app/models/concerns/noteable.rb | 2 +- app/models/concerns/relative_positioning.rb | 79 +- .../concerns/storage/legacy_namespace.rb | 2 +- app/models/concerns/token_authenticatable.rb | 7 +- .../token_authenticatable_strategies/base.rb | 6 +- app/models/concerns/with_uploads.rb | 2 +- app/models/deploy_token.rb | 5 +- app/models/deployment.rb | 89 +- app/models/diff_note.rb | 51 +- app/models/discussion_note.rb | 6 +- app/models/environment.rb | 9 +- app/models/environment_status.rb | 89 + app/models/forked_project_link.rb | 6 - app/models/global_milestone.rb | 44 - app/models/group.rb | 5 +- app/models/hooks/web_hook.rb | 34 - app/models/issue.rb | 3 +- app/models/key.rb | 4 + app/models/label.rb | 2 +- app/models/lfs_object.rb | 4 +- app/models/list.rb | 1 + app/models/members_preloader.rb | 16 + app/models/merge_request.rb | 27 + app/models/merge_request_diff.rb | 13 + app/models/milestone.rb | 18 +- app/models/namespace.rb | 8 +- app/models/note.rb | 17 +- app/models/pool_repository.rb | 22 + app/models/postgresql/replication_slot.rb | 11 + app/models/project.rb | 156 +- app/models/project_import_state.rb | 13 + app/models/project_services/bamboo_service.rb | 13 +- .../project_services/flowdock_service.rb | 48 - .../project_services/issue_tracker_service.rb | 6 +- app/models/project_services/jira_service.rb | 7 +- .../project_services/kubernetes_service.rb | 13 +- .../microsoft_teams_service.rb | 2 +- .../project_services/prometheus_service.rb | 9 +- app/models/repository.rb | 53 +- app/models/shard.rb | 25 + app/models/site_statistic.rb | 76 - app/models/snippet.rb | 77 +- app/models/ssh_host_key.rb | 130 + app/models/todo.rb | 43 + app/models/tree.rb | 53 +- app/models/upload.rb | 18 +- app/models/user.rb | 64 +- app/models/user_callout.rb | 3 +- app/models/user_preference.rb | 53 + app/models/wiki_page.rb | 6 +- app/policies/ci/build_policy.rb | 7 +- app/policies/deployment_policy.rb | 9 + app/presenters/blob_presenter.rb | 16 + app/presenters/ci/build_runner_presenter.rb | 10 +- app/presenters/clusterable_presenter.rb | 46 + app/presenters/clusters/cluster_presenter.rb | 8 + app/presenters/commit_status_presenter.rb | 6 +- .../project_clusterable_presenter.rb | 15 + app/presenters/project_presenter.rb | 54 +- app/serializers/build_action_entity.rb | 7 +- app/serializers/build_details_entity.rb | 1 + app/serializers/current_user_entity.rb | 8 + app/serializers/deployment_entity.rb | 1 + app/serializers/environment_status_entity.rb | 67 + .../environment_status_serializer.rb | 5 + app/serializers/job_entity.rb | 18 +- app/serializers/merge_request_user_entity.rb | 2 +- .../merge_request_widget_entity.rb | 1 + app/serializers/user_preference_entity.rb | 14 + app/services/applications/create_service.rb | 1 + app/services/audit_event_service.rb | 26 +- ...ntainer_registry_authentication_service.rb | 2 +- app/services/boards/issues/move_service.rb | 4 +- app/services/boards/lists/list_service.rb | 2 +- app/services/boards/visits/create_service.rb | 17 + app/services/boards/visits/latest_service.rb | 17 + app/services/ci/register_job_service.rb | 5 + .../check_installation_progress_service.rb | 6 +- .../clusters/applications/create_service.rb | 69 + .../clusters/applications/install_service.rb | 6 +- .../schedule_installation_service.rb | 10 +- app/services/clusters/create_service.rb | 42 +- .../clusters/gcp/finalize_creation_service.rb | 30 +- app/services/clusters/gcp/kubernetes.rb | 11 +- .../create_or_update_namespace_service.rb | 52 + .../create_service_account_service.rb | 78 +- .../fetch_kubernetes_token_service.rb | 8 +- app/services/clusters/update_service.rb | 8 +- app/services/commits/change_service.rb | 8 +- app/services/commits/commit_patch_service.rb | 61 + app/services/commits/create_service.rb | 7 +- app/services/create_deployment_service.rb | 74 - .../delete_merged_branches_service.rb | 4 +- app/services/groups/update_service.rb | 6 +- app/services/issuable_base_service.rb | 12 +- app/services/issues/update_service.rb | 14 + app/services/keys/destroy_service.rb | 2 +- app/services/labels/transfer_service.rb | 2 +- app/services/members/base_service.rb | 2 +- app/services/merge_requests/build_service.rb | 6 +- app/services/merge_requests/merge_service.rb | 5 + .../merge_requests/refresh_service.rb | 32 +- .../merge_requests/reload_diffs_service.rb | 9 +- app/services/merge_requests/update_service.rb | 14 + app/services/milestones/destroy_service.rb | 2 +- app/services/notes/base_service.rb | 13 + app/services/notes/create_service.rb | 3 +- app/services/notes/destroy_service.rb | 4 +- app/services/notification_service.rb | 41 +- app/services/projects/after_rename_service.rb | 135 + app/services/projects/create_service.rb | 21 +- app/services/projects/fork_service.rb | 68 +- app/services/projects/forks_count_service.rb | 5 +- app/services/projects/move_forks_service.rb | 13 - .../move_project_authorizations_service.rb | 2 +- .../move_project_group_links_service.rb | 2 +- .../projects/move_project_members_service.rb | 2 +- app/services/projects/unlink_fork_service.rb | 1 - app/services/projects/update_service.rb | 2 +- .../quick_actions/interpret_service.rb | 10 +- .../merge_into_notes_service.rb | 2 +- app/services/search/group_service.rb | 2 - app/services/submodules/update_service.rb | 38 + app/services/system_note_service.rb | 2 +- app/services/todo_service.rb | 26 +- app/services/update_deployment_service.rb | 53 + app/services/web_hook_service.rb | 8 +- app/views/abuse_reports/new.html.haml | 12 +- .../application_settings/_ci_cd.html.haml | 8 + .../application_settings/_email.html.haml | 6 + .../application_settings/_koding.html.haml | 22 - .../_repository_storage.html.haml | 27 - .../application_settings/repository.html.haml | 2 +- .../admin/application_settings/show.html.haml | 12 - app/views/admin/dashboard/index.html.haml | 2 +- app/views/admin/groups/_form.html.haml | 4 +- app/views/admin/groups/show.html.haml | 9 +- .../health_check/_failing_storages.html.haml | 15 - app/views/admin/health_check/show.html.haml | 3 +- app/views/admin/projects/show.html.haml | 2 +- app/views/ci/variables/_index.html.haml | 4 +- .../clusters/_advanced_settings.html.haml | 2 +- .../clusters/_banner.html.haml | 6 - .../clusters/_cluster.html.haml | 4 +- .../clusters/_empty_state.html.haml | 4 +- .../_gcp_signup_offer_banner.html.haml | 4 +- .../clusters/_integration_form.html.haml | 6 +- .../clusters/_sidebar.html.haml | 0 .../clusters/gcp/_form.html.haml | 6 +- .../clusters/gcp/_header.html.haml | 0 .../clusters/gcp/_show.html.haml | 4 +- .../clusters/index.html.haml | 0 .../clusters/new.html.haml | 8 +- .../clusters/show.html.haml | 22 +- .../clusters/user/_form.html.haml | 6 +- .../clusters/user/_header.html.haml | 0 .../clusters/user/_show.html.haml | 4 +- app/views/dashboard/_activity_head.html.haml | 3 + app/views/dashboard/_groups_head.html.haml | 9 +- app/views/dashboard/_projects_head.html.haml | 9 +- app/views/dashboard/_snippets_head.html.haml | 11 +- app/views/dashboard/activity.html.haml | 3 - app/views/dashboard/groups/index.html.haml | 3 - app/views/dashboard/issues.html.haml | 9 +- app/views/dashboard/merge_requests.html.haml | 10 +- .../dashboard/milestones/index.html.haml | 12 +- app/views/dashboard/projects/index.html.haml | 3 - .../dashboard/projects/starred.html.haml | 3 - app/views/dashboard/todos/index.html.haml | 4 +- .../devise/shared/_omniauth_box.html.haml | 2 +- app/views/devise/shared/_signup_box.html.haml | 2 +- app/views/discussions/_discussion.html.haml | 8 +- app/views/events/_event.html.haml | 2 +- app/views/events/event/_common.html.haml | 27 +- .../events/event/_created_project.html.haml | 8 +- app/views/events/event/_note.html.haml | 10 +- app/views/events/event/_private.html.haml | 13 +- app/views/events/event/_push.html.haml | 10 +- app/views/explore/groups/index.html.haml | 5 +- app/views/explore/projects/index.html.haml | 3 - app/views/explore/projects/starred.html.haml | 3 - app/views/explore/projects/trending.html.haml | 3 - app/views/groups/edit.html.haml | 26 +- app/views/groups/labels/index.html.haml | 2 +- app/views/groups/new.html.haml | 36 +- app/views/groups/settings/_advanced.html.haml | 20 +- app/views/groups/settings/_general.html.haml | 48 +- app/views/groups/settings/_lfs.html.haml | 15 + .../groups/settings/_permissions.html.haml | 37 +- .../settings/_two_factor_auth.html.haml | 16 + .../groups/settings/ci_cd/show.html.haml | 2 +- app/views/groups/show.html.haml | 2 +- .../import/bitbucket_server/status.html.haml | 2 + app/views/koding/index.html.haml | 6 - app/views/layouts/_flash.html.haml | 2 +- app/views/layouts/_page.html.haml | 5 +- app/views/layouts/dashboard.html.haml | 1 + app/views/layouts/explore.html.haml | 2 + .../header/_current_user_dropdown.html.haml | 15 +- app/views/layouts/header/_default.html.haml | 10 +- .../layouts/header/_help_dropdown.html.haml | 6 + app/views/layouts/koding.html.haml | 5 - app/views/layouts/nav/_breadcrumbs.html.haml | 1 - app/views/layouts/nav/_dashboard.html.haml | 1 + .../layouts/nav/sidebar/_group.html.haml | 16 +- .../layouts/nav/sidebar/_project.html.haml | 15 +- app/views/layouts/terms.html.haml | 29 +- .../changed_milestone_issue_email.html.haml | 3 + .../changed_milestone_issue_email.text.erb | 1 + ...ed_milestone_merge_request_email.html.haml | 3 + ...ged_milestone_merge_request_email.text.erb | 1 + .../removed_milestone_issue_email.html.haml | 2 + .../removed_milestone_issue_email.text.erb | 1 + ...ed_milestone_merge_request_email.html.haml | 2 + ...ved_milestone_merge_request_email.text.erb | 1 + app/views/profiles/preferences/show.html.haml | 4 +- app/views/profiles/show.html.haml | 5 +- app/views/projects/_home_panel.html.haml | 2 - app/views/projects/_md_preview.html.haml | 4 +- .../projects/_new_project_fields.html.haml | 4 +- app/views/projects/_wiki.html.haml | 16 +- app/views/projects/artifacts/browse.html.haml | 2 +- app/views/projects/artifacts/file.html.haml | 2 +- .../blob/_template_selectors.html.haml | 10 +- app/views/projects/blob/edit.html.haml | 2 +- app/views/projects/blob/new.html.haml | 2 +- .../blob/viewers/_highlight_embed.html.haml | 4 +- .../projects/blob/viewers/_text.html.haml | 2 +- app/views/projects/branches/_panel.html.haml | 3 +- .../projects/buttons/_dropdown.html.haml | 4 +- app/views/projects/buttons/_koding.html.haml | 3 - app/views/projects/ci/builds/_build.html.haml | 10 +- .../projects/deploy_tokens/_form.html.haml | 10 +- .../projects/deploy_tokens/_index.html.haml | 2 +- .../deploy_tokens/_new_deploy_token.html.haml | 6 +- app/views/projects/deployments/_rollback.haml | 2 +- app/views/projects/diffs/_text_file.html.haml | 2 +- app/views/projects/edit.html.haml | 2 +- app/views/projects/empty.html.haml | 2 +- .../environments/_external_url.html.haml | 2 +- .../projects/issues/_discussion.html.haml | 2 +- .../projects/issues/_new_branch.html.haml | 3 +- app/views/projects/issues/show.html.haml | 7 +- app/views/projects/jobs/_header.html.haml | 10 - app/views/projects/jobs/show.html.haml | 51 +- app/views/projects/labels/index.html.haml | 4 +- .../projects/merge_requests/show.html.haml | 11 +- app/views/projects/new.html.haml | 3 +- .../notes/_more_actions_dropdown.html.haml | 5 +- app/views/projects/pipelines/_info.html.haml | 8 +- .../projects/pipelines/_with_tabs.html.haml | 51 +- app/views/projects/pipelines/show.html.haml | 10 +- .../_new_project_member.html.haml | 4 +- .../projects/project_members/_team.html.haml | 2 +- .../shared/_branches_list.html.haml | 3 +- .../shared/_create_protected_branch.html.haml | 3 +- .../shared/_create_protected_tag.html.haml | 3 +- .../shared/_tags_list.html.haml | 3 +- .../registry/repositories/index.html.haml | 3 +- .../_configuration_banner.html.haml | 2 +- .../services/prometheus/_metrics.html.haml | 12 +- .../projects/settings/ci_cd/_badge.html.haml | 4 +- .../projects/settings/ci_cd/_form.html.haml | 2 +- app/views/projects/show.html.haml | 6 +- app/views/projects/tags/new.html.haml | 3 +- app/views/projects/tree/_blob_item.html.haml | 12 - app/views/projects/tree/_spinner.html.haml | 3 - .../projects/tree/_submodule_item.html.haml | 6 - .../tree/_tree_commit_column.html.haml | 2 +- .../projects/tree/_tree_header.html.haml | 2 +- app/views/projects/tree/_tree_item.html.haml | 9 - app/views/projects/tree/_tree_row.html.haml | 33 +- app/views/projects/triggers/_index.html.haml | 3 +- .../projects/wikis/_pages_wiki_page.html.haml | 3 +- app/views/projects/wikis/show.html.haml | 5 +- .../search/results/_snippet_blob.html.haml | 2 +- .../shared/_allow_request_access.html.haml | 6 +- app/views/shared/_field.html.haml | 2 +- app/views/shared/_file_highlight.html.haml | 6 +- app/views/shared/_group_form.html.haml | 45 +- .../shared/_old_visibility_level.html.haml | 6 + ..._user_dropdown_contributing_link.html.haml | 2 - app/views/shared/_visibility_level.html.haml | 30 +- app/views/shared/boards/_show.html.haml | 2 +- .../shared/boards/components/_board.html.haml | 15 +- .../components/sidebar/_labels.html.haml | 4 +- .../shared/empty_states/_labels.html.haml | 9 +- .../shared/empty_states/_wikis.html.haml | 2 +- .../shared/issuable/_label_dropdown.html.haml | 2 +- .../shared/issuable/_search_bar.html.haml | 31 +- app/views/shared/issuable/_sidebar.html.haml | 4 +- .../shared/issuable/_sidebar_todo.html.haml | 4 +- app/views/shared/labels/_form.html.haml | 8 +- app/views/shared/members/_member.html.haml | 2 + app/views/shared/notes/_note.html.haml | 2 +- .../shared/notes/_notes_with_form.html.haml | 4 +- .../shared/notifications/_button.html.haml | 4 +- .../shared/projects/_search_form.html.haml | 2 + app/views/shared/runners/show.html.haml | 2 +- app/views/shared/snippets/_form.html.haml | 2 +- app/views/sherlock/queries/_general.html.haml | 2 +- .../sherlock/transactions/_queries.html.haml | 2 +- app/views/snippets/new.html.haml | 13 +- app/views/users/_overview.html.haml | 6 +- app/workers/all_queues.yml | 3 + app/workers/build_success_worker.rb | 16 +- .../cluster_platform_configure_worker.rb | 22 + app/workers/cluster_provision_worker.rb | 2 + app/workers/deployments/success_worker.rb | 17 + app/workers/email_receiver_worker.rb | 2 + .../github_import/advance_stage_worker.rb | 2 +- .../namespaceless_project_destroy_worker.rb | 2 - app/workers/post_receive.rb | 13 +- app/workers/stuck_import_jobs_worker.rb | 50 +- bin/profile-url | 2 +- bin/secpick | 14 +- bin/storage_check | 11 - bin/web | 5 + bin/web_puma | 63 + config/application.rb | 5 +- config/dependency_decisions.yml | 2 +- config/environments/development.rb | 2 + config/environments/production.rb | 2 +- config/gitlab.yml.example | 9 +- config/initializers/7_prometheus_metrics.rb | 24 +- config/initializers/8_metrics.rb | 10 +- .../initializers/active_record_lifecycle.rb | 23 + config/initializers/asset_sync.rb | 31 - config/initializers/fill_shards.rb | 3 + config/initializers/macos.rb | 13 + config/initializers/rbtrace.rb | 9 + config/initializers/routing_draw.rb | 8 +- config/initializers/sidekiq.rb | 3 +- config/locales/en.yml | 2 + config/puma.example.development.rb | 77 + config/routes.rb | 29 +- config/routes/admin.rb | 6 +- config/routes/group.rb | 3 +- config/routes/project.rb | 16 +- config/sidekiq_queues.yml | 1 + config/unicorn.rb.example | 37 +- config/unicorn.rb.example.development | 65 +- config/webpack.config.js | 2 +- danger/database/Dangerfile | 4 +- danger/documentation/Dangerfile | 4 +- danger/eslint/Dangerfile | 2 +- danger/metadata/Dangerfile | 7 + danger/plugins/helper.rb | 34 + danger/prettier/Dangerfile | 2 +- danger/specs/Dangerfile | 6 +- db/fixtures/development/04_project.rb | 10 +- db/fixtures/development/09_issues.rb | 3 +- db/fixtures/development/14_pipelines.rb | 75 +- db/fixtures/development/17_cycle_analytics.rb | 10 +- ...te_missing_namespace_for_internal_users.rb | 4 +- .../20180912111628_add_knative_application.rb | 20 + .../20180925200829_create_user_preferences.rb | 31 + ...o_project_deploy_tokens_deploy_token_id.rb | 18 + ...927_add_index_to_lfs_objects_file_store.rb | 17 + ...181005125926_add_index_to_uploads_store.rb | 17 + ...8_create_clusters_kubernetes_namespaces.rb | 24 + ...5606_create_board_project_recent_visits.rb | 19 + .../20181014203236_create_cluster_groups.rb | 17 + ...15155839_add_finished_at_to_deployments.rb | 15 + ...0181016141739_add_status_to_deployments.rb | 29 + ...152238_create_board_group_recent_visits.rb | 20 + ...1017001059_add_cluster_type_to_clusters.rb | 18 + db/migrate/20181019032400_add_shards_table.rb | 11 + .../20181019032408_add_repositories_table.rb | 15 + ...projects_pool_repository_id_foreign_key.rb | 22 + ...5539_add_index_on_status_to_deployments.rb | 19 + ...builds_duration_to_application_settings.rb | 11 + ...index_for_legacy_successful_deployments.rb | 18 + ..._email_hostname_to_application_settings.rb | 11 + ...ate_snippets_access_level_default_value.rb | 42 + ...1101144347_add_index_for_stuck_mr_query.rb | 16 + ...20181106135939_add_index_to_deployments.rb | 17 + ...221153951_rename_reserved_project_names.rb | 6 +- ...3418_rename_more_reserved_project_names.rb | 6 +- ...eanup_move_system_upload_folder_symlink.rb | 2 +- .../20181008145341_steal_encrypt_columns.rb | 15 + ...08145359_remove_web_hooks_token_and_url.rb | 10 + .../20181008200441_remove_circuit_breaker.rb | 30 + ...remove_koding_from_application_settings.rb | 17 + ...e_populate_cluster_kubernetes_namespace.rb | 18 + ...4_fill_empty_finished_at_in_deployments.rb | 27 + .../20181105201455_steal_fill_store_upload.rb | 31 + ...107054254_remove_restricted_todos_again.rb | 32 + .../20181123042307_drop_site_statistics.rb | 22 + db/schema.rb | 128 +- doc/README.md | 3 +- doc/administration/container_registry.md | 5 +- doc/administration/custom_hooks.md | 5 +- doc/administration/gitaly/index.md | 6 +- doc/administration/high_availability/nfs.md | 55 +- doc/administration/high_availability/redis.md | 8 +- .../high_availability/redis_source.md | 4 +- .../img/circuitbreaker_config.png | Bin 29130 -> 0 bytes doc/administration/img/failing_storage.png | Bin 16291 -> 0 bytes doc/administration/index.md | 3 +- doc/administration/integration/koding.md | 246 - doc/administration/integration/plantuml.md | 4 +- doc/administration/job_artifacts.md | 15 +- doc/administration/logs.md | 16 +- .../monitoring/prometheus/gitlab_metrics.md | 4 +- .../operations/filesystem_benchmarking.md | 55 + doc/administration/operations/index.md | 4 + doc/administration/pages/index.md | 29 + doc/administration/pages/source.md | 43 + doc/administration/raketasks/github_import.md | 32 +- doc/administration/raketasks/maintenance.md | 3 +- doc/administration/repository_checks.md | 2 +- .../repository_storage_paths.md | 49 - .../repository_storage_types.md | 5 +- doc/api/README.md | 5 + doc/api/applications.md | 51 +- doc/api/commits.md | 42 + doc/api/events.md | 4 +- doc/api/groups.md | 7 + doc/api/issues.md | 105 +- doc/api/merge_requests.md | 95 +- doc/api/notes.md | 2 +- doc/api/project_templates.md | 16 +- doc/api/projects.md | 49 + doc/api/repositories.md | 4 +- doc/api/repository_files.md | 15 +- doc/api/repository_storage_health.md | 75 +- doc/api/repository_submodules.md | 49 + doc/api/runners.md | 3 +- doc/api/settings.md | 15 +- doc/api/tags.md | 2 +- doc/api/users.md | 3 + doc/ci/caching/index.md | 4 +- doc/ci/docker/using_docker_build.md | 84 +- doc/ci/docker/using_docker_images.md | 32 +- doc/ci/docker/using_kaniko.md | 5 +- doc/ci/environments.md | 34 +- .../examples/artifactory_and_gitlab/index.md | 4 +- doc/ci/examples/browser_performance.md | 73 +- doc/ci/examples/code_quality.md | 82 +- doc/ci/examples/container_scanning.md | 105 +- doc/ci/examples/dast.md | 113 +- doc/ci/examples/deployment/README.md | 2 +- .../laravel_with_gitlab_and_envoy/index.md | 12 +- doc/ci/examples/php.md | 2 +- doc/ci/examples/test-scala-application.md | 2 +- .../index.md | 6 +- doc/ci/img/view_on_env_blob.png | Bin 32924 -> 11889 bytes doc/ci/img/view_on_mr_widget.png | Bin 0 -> 21969 bytes doc/ci/runners/README.md | 2 +- doc/ci/services/mysql.md | 2 +- doc/ci/triggers/README.md | 7 +- doc/ci/variables/README.md | 4 +- doc/ci/variables/img/secret_variables.png | Bin 32886 -> 0 bytes doc/ci/variables/img/variables.png | Bin 0 -> 116263 bytes doc/ci/yaml/README.md | 188 +- doc/development/README.md | 3 +- doc/development/api_graphql_styleguide.md | 2 +- doc/development/chaos_endpoints.md | 117 + doc/development/code_review.md | 154 +- .../contributing/community_roles.md | 6 +- doc/development/contributing/design.md | 33 +- doc/development/contributing/index.md | 160 +- .../contributing/issue_workflow.md | 124 +- .../contributing/merge_request_workflow.md | 32 +- doc/development/contributing/style_guides.md | 40 + .../database_merge_request_checklist.md | 10 +- doc/development/documentation/index.md | 141 +- doc/development/documentation/structure.md | 89 +- doc/development/documentation/styleguide.md | 64 +- doc/development/documentation/workflow.md | 33 +- doc/development/ee_features.md | 27 +- doc/development/fe_guide/icons.md | 4 +- doc/development/fe_guide/style_guide_js.md | 109 +- doc/development/feature_flags.md | 36 + doc/development/i18n/proofreader.md | 5 +- doc/development/new_fe_guide/index.md | 4 + .../new_fe_guide/modules/dirty_submit.md | 23 + doc/development/new_fe_guide/modules/index.md | 5 + doc/development/performance.md | 3 +- ...rolling_out_changes_using_feature_flags.md | 37 + .../testing_guide/best_practices.md | 155 + doc/development/testing_guide/review_apps.md | 15 +- doc/development/utilities.md | 4 +- doc/development/ux_guide/tips.md | 18 +- doc/install/README.md | 6 +- doc/install/aws/img/add_tags.png | Bin 0 -> 17834 bytes .../aws/img/associate_subnet_gateway.png | Bin 0 -> 16522 bytes .../aws/img/associate_subnet_gateway_2.png | Bin 0 -> 10617 bytes doc/install/aws/img/aws_diagram.png | Bin 0 -> 502497 bytes doc/install/aws/img/choose_ami.png | Bin 0 -> 4892 bytes doc/install/aws/img/create_gateway.png | Bin 0 -> 13927 bytes doc/install/aws/img/create_route_table.png | Bin 0 -> 8293 bytes doc/install/aws/img/create_security_group.png | Bin 0 -> 12594 bytes doc/install/aws/img/create_subnet.png | Bin 0 -> 16679 bytes doc/install/aws/img/create_vpc.png | Bin 0 -> 15613 bytes doc/install/aws/img/ec_az.png | Bin 0 -> 10476 bytes doc/install/aws/img/ec_subnet.png | Bin 0 -> 23517 bytes doc/install/aws/img/policies.png | Bin 0 -> 39723 bytes doc/install/aws/img/rds_subnet_group.png | Bin 0 -> 30107 bytes doc/install/aws/index.md | 655 + doc/install/digitaloceandocker.md | 102 +- doc/install/installation.md | 18 +- doc/install/openshift_and_gitlab/index.md | 2 +- doc/integration/saml.md | 17 + doc/policy/maintenance.md | 3 +- doc/raketasks/backup_restore.md | 317 +- doc/raketasks/import.md | 72 +- doc/ssh/README.md | 249 +- doc/topics/authentication/index.md | 8 +- doc/topics/autodevops/index.md | 122 +- doc/topics/autodevops/quick_start_guide.md | 11 +- doc/topics/git/troubleshooting_git.md | 15 + doc/university/README.md | 13 +- doc/university/glossary/README.md | 2 +- doc/university/training/user_training.md | 267 +- doc/update/11.3-to-11.4.md | 6 +- doc/update/11.4-to-11.5.md | 390 + doc/update/patch_versions.md | 2 +- .../settings/continuous_integration.md | 16 + doc/user/admin_area/settings/email.md | 17 + doc/user/admin_area/settings/terms.md | 8 +- .../admin_area/settings/usage_statistics.md | 6 +- .../discussions/img/index_notes_filters.png | Bin 0 -> 21284 bytes doc/user/discussions/index.md | 22 +- .../group/img/access_requests_management.png | Bin 11186 -> 22616 bytes doc/user/group/img/add_new_members.png | Bin 18048 -> 66523 bytes doc/user/group/img/create_new_group_info.png | Bin 30175 -> 51072 bytes .../img/create_new_project_from_group.png | Bin 3185 -> 37234 bytes doc/user/group/img/group_settings.png | Bin 9704 -> 51335 bytes doc/user/group/img/request_access_button.png | Bin 35908 -> 36258 bytes doc/user/group/img/select_group_dropdown.png | Bin 3482 -> 74893 bytes .../img/withdraw_access_request_button.png | Bin 36393 -> 36782 bytes doc/user/group/index.md | 8 +- .../img/color_inline_colorchip_render_gfm.png | Bin 0 -> 11534 bytes doc/user/img/math_inline_sup_render_gfm.png | Bin 0 -> 1359 bytes doc/user/img/mermaid_diagram_render_gfm.png | Bin 0 -> 4587 bytes doc/user/img/task_list_ordered_render_gfm.png | Bin 0 -> 6247 bytes .../img/unordered_check_list_render_gfm.png | Bin 0 -> 6207 bytes doc/user/instance_statistics/convdev.md | 15 +- doc/user/markdown.md | 189 +- doc/user/permissions.md | 5 +- doc/user/profile/index.md | 40 + doc/user/profile/personal_access_tokens.md | 8 +- .../eks_and_gitlab/img/new_project.png | Bin 7813 -> 0 bytes .../clusters/eks_and_gitlab/img/rbac.png | Bin 0 -> 15960 bytes .../project/clusters/eks_and_gitlab/index.md | 237 +- doc/user/project/clusters/index.md | 162 +- .../runbooks/img/authorize-jupyter.png | Bin 0 -> 126425 bytes .../clusters/runbooks/img/demo-runbook.png | Bin 0 -> 132436 bytes .../runbooks/img/gitlab-variables.png | Bin 0 -> 179611 bytes .../clusters/runbooks/img/helm-install.png | Bin 0 -> 201348 bytes .../clusters/runbooks/img/ingress-install.png | Bin 0 -> 140880 bytes .../runbooks/img/jupyterhub-install.png | Bin 0 -> 116775 bytes .../clusters/runbooks/img/postgres-query.png | Bin 0 -> 209435 bytes .../clusters/runbooks/img/sample-runbook.png | Bin 0 -> 145728 bytes doc/user/project/clusters/runbooks/index.md | 137 + .../clusters/serverless/img/deploy-stage.png | Bin 0 -> 12029 bytes .../clusters/serverless/img/dns-entry.png | Bin 0 -> 56600 bytes .../serverless/img/install-knative.png | Bin 0 -> 102861 bytes .../clusters/serverless/img/knative-app.png | Bin 0 -> 28998 bytes doc/user/project/clusters/serverless/index.md | 137 + doc/user/project/container_registry.md | 13 +- doc/user/project/deploy_tokens/index.md | 33 +- doc/user/project/img/issue_board.png | Bin 327718 -> 289964 bytes doc/user/project/img/issue_boards_core.png | Bin 61230 -> 119989 bytes doc/user/project/img/issue_boards_premium.png | Bin 72434 -> 99171 bytes .../project/img/koding_build-in-progress.png | Bin 21937 -> 0 bytes doc/user/project/img/koding_build-logs.png | Bin 91364 -> 0 bytes doc/user/project/img/koding_build-success.png | Bin 73005 -> 0 bytes .../project/img/koding_commit-koding.yml.png | Bin 86023 -> 0 bytes .../img/koding_different-stack-on-mr-try.png | Bin 93404 -> 0 bytes doc/user/project/img/koding_edit-on-ide.png | Bin 90638 -> 0 bytes doc/user/project/img/koding_enable-koding.png | Bin 20291 -> 0 bytes doc/user/project/img/koding_landing.png | Bin 80985 -> 0 bytes .../img/koding_open-gitlab-from-koding.png | Bin 10851 -> 0 bytes doc/user/project/img/koding_run-in-ide.png | Bin 22178 -> 0 bytes doc/user/project/img/koding_run-mr-in-ide.png | Bin 93780 -> 0 bytes doc/user/project/img/koding_set-up-ide.png | Bin 54062 -> 0 bytes doc/user/project/img/koding_stack-import.png | Bin 137582 -> 0 bytes doc/user/project/img/koding_start-build.png | Bin 27925 -> 0 bytes doc/user/project/import/index.md | 3 +- .../integrations/img/jira_api_token.png | Bin 0 -> 160587 bytes .../integrations/img/jira_api_token_menu.png | Bin 0 -> 68564 bytes .../integrations/img/jira_service_page.png | Bin 47533 -> 74893 bytes doc/user/project/integrations/jira.md | 57 +- .../integrations/jira_cloud_configuration.md | 19 + .../integrations/jira_server_configuration.md | 53 + .../integrations/services_templates.md | 6 +- doc/user/project/integrations/webhooks.md | 13 +- doc/user/project/issue_board.md | 3 + doc/user/project/issues/create_new_issue.md | 18 + doc/user/project/issues/img/issue_board.png | Bin 55931 -> 86095 bytes doc/user/project/koding.md | 131 - .../merge_requests/cherry_pick_changes.md | 8 +- .../img/comment-on-any-diff-line.png | Bin 0 -> 177323 bytes .../merge_request_diff_file_navigation.png | Bin 111544 -> 68704 bytes .../img/merge_request_pipeline.png | Bin 0 -> 31046 bytes doc/user/project/merge_requests/index.md | 90 +- doc/user/project/milestones/index.md | 3 +- .../pages/getting_started_part_three.md | 2 +- doc/user/project/pages/introduction.md | 40 + doc/user/project/quick_actions.md | 1 + .../branches/img/branch_filter_search_box.png | Bin 0 -> 83225 bytes doc/user/project/repository/branches/index.md | 23 +- .../repository/gpg_signed_commits/index.md | 2 +- doc/user/project/repository/index.md | 53 +- .../img/sharing_and_permissions_settings.png | Bin 50602 -> 46275 bytes doc/user/reserved_names.md | 1 - .../search/img/issues_filter_none_any.png | Bin 0 -> 27717 bytes doc/user/search/index.md | 10 + .../img/repository_mirroring_force_update.png | Bin 0 -> 45730 bytes ...pository_mirroring_pull_settings_lower.png | Bin 0 -> 58056 bytes ...pository_mirroring_pull_settings_upper.png | Bin 0 -> 64118 bytes .../repository_mirroring_push_settings.png | Bin 0 -> 50526 bytes doc/workflow/notifications.md | 45 +- doc/workflow/repository_mirroring.md | 545 +- .../repository_mirroring_detect_host_keys.png | Bin 22952 -> 0 bytes .../repository_mirroring_diverged_branch.png | Bin 22668 -> 0 bytes ...ository_mirroring_diverged_branch_push.png | Bin 9509 -> 0 bytes ...ring_github_edit_personal_access_token.png | Bin 20739 -> 0 bytes ...ing_gitlab_push_to_a_remote_repository.png | Bin 16538 -> 0 bytes ...push_to_a_remote_repository_update_now.png | Bin 16765 -> 0 bytes .../repository_mirroring_hard_failed_main.png | Bin 15555 -> 0 bytes ...ository_mirroring_hard_failed_settings.png | Bin 16414 -> 0 bytes .../repository_mirroring_new_project.png | Bin 20364 -> 0 bytes ...tory_mirroring_pull_advanced_host_keys.png | Bin 40414 -> 0 bytes .../repository_mirroring_pull_settings.png | Bin 39909 -> 0 bytes ...sitory_mirroring_pull_settings_for_ssh.png | Bin 26234 -> 0 bytes .../repository_mirroring_push_settings.png | Bin 18226 -> 0 bytes ...itory_mirroring_ssh_host_keys_verified.png | Bin 9343 -> 0 bytes ...irroring_ssh_public_key_authentication.png | Bin 27440 -> 0 bytes lib/after_commit_queue.rb | 2 + lib/api/api.rb | 1 + lib/api/applications.rb | 16 + lib/api/circuit_breakers.rb | 17 +- lib/api/commits.rb | 34 + lib/api/entities.rb | 65 +- lib/api/features.rb | 2 +- lib/api/helpers.rb | 8 +- lib/api/helpers/custom_validators.rb | 13 + lib/api/internal.rb | 6 +- lib/api/issues.rb | 46 +- lib/api/jobs.rb | 2 +- lib/api/merge_requests.rb | 5 +- lib/api/projects.rb | 9 +- lib/api/repositories.rb | 9 +- lib/api/runner.rb | 3 +- lib/api/settings.rb | 4 - lib/api/snippets.rb | 2 +- lib/api/submodules.rb | 47 + lib/api/templates.rb | 2 +- lib/api/users.rb | 18 +- lib/backup.rb | 2 + lib/backup/manager.rb | 2 +- lib/banzai.rb | 2 + lib/banzai/color_parser.rb | 2 + lib/banzai/commit_renderer.rb | 2 + lib/banzai/cross_project_reference.rb | 2 + lib/banzai/filter.rb | 2 + lib/banzai/filter/issuable_state_filter.rb | 11 +- .../filter/markdown_engines/common_mark.rb | 2 + .../filter/markdown_engines/redcarpet.rb | 2 + .../filter/wiki_link_filter/rewriter.rb | 2 + lib/banzai/filter_array.rb | 2 + lib/banzai/issuable_extractor.rb | 51 +- lib/banzai/object_renderer.rb | 2 + lib/banzai/pipeline.rb | 2 + lib/banzai/pipeline/ascii_doc_pipeline.rb | 2 + lib/banzai/pipeline/atom_pipeline.rb | 2 + lib/banzai/pipeline/base_pipeline.rb | 2 + .../pipeline/broadcast_message_pipeline.rb | 2 + lib/banzai/pipeline/combined_pipeline.rb | 2 + .../pipeline/commit_description_pipeline.rb | 2 + lib/banzai/pipeline/description_pipeline.rb | 2 + lib/banzai/pipeline/email_pipeline.rb | 2 + lib/banzai/pipeline/full_pipeline.rb | 2 + lib/banzai/pipeline/gfm_pipeline.rb | 2 + lib/banzai/pipeline/markup_pipeline.rb | 2 + lib/banzai/pipeline/note_pipeline.rb | 2 + .../pipeline/plain_markdown_pipeline.rb | 2 + lib/banzai/pipeline/post_process_pipeline.rb | 2 + lib/banzai/pipeline/pre_process_pipeline.rb | 2 + lib/banzai/pipeline/relative_link_pipeline.rb | 2 + lib/banzai/pipeline/single_line_pipeline.rb | 2 + lib/banzai/pipeline/wiki_pipeline.rb | 2 + lib/banzai/querying.rb | 2 + lib/banzai/redactor.rb | 2 + lib/banzai/reference_extractor.rb | 2 + lib/banzai/reference_parser.rb | 2 + lib/banzai/reference_parser/base_parser.rb | 2 + lib/banzai/reference_parser/commit_parser.rb | 2 + .../reference_parser/commit_range_parser.rb | 2 + .../directly_addressed_user_parser.rb | 2 + lib/banzai/reference_parser/epic_parser.rb | 2 + .../reference_parser/external_issue_parser.rb | 2 + .../reference_parser/issuable_parser.rb | 2 + lib/banzai/reference_parser/issue_parser.rb | 2 + lib/banzai/reference_parser/label_parser.rb | 2 + .../reference_parser/merge_request_parser.rb | 2 + .../reference_parser/milestone_parser.rb | 2 + lib/banzai/reference_parser/snippet_parser.rb | 2 + lib/banzai/reference_parser/user_parser.rb | 2 + lib/banzai/renderer.rb | 2 + lib/banzai/renderer/common_mark/html.rb | 2 + lib/banzai/renderer/redcarpet/html.rb | 2 + lib/banzai/request_store_reference_cache.rb | 2 + lib/bitbucket/client.rb | 2 + lib/bitbucket/collection.rb | 2 + lib/bitbucket/connection.rb | 2 + lib/bitbucket/error/unauthorized.rb | 2 + lib/bitbucket/page.rb | 2 + lib/bitbucket/paginator.rb | 2 + lib/bitbucket/representation/base.rb | 2 + lib/bitbucket/representation/comment.rb | 2 + lib/bitbucket/representation/issue.rb | 2 + lib/bitbucket/representation/pull_request.rb | 2 + .../representation/pull_request_comment.rb | 2 + lib/bitbucket/representation/repo.rb | 2 + lib/bitbucket/representation/user.rb | 2 + lib/bitbucket_server/client.rb | 8 +- lib/bitbucket_server/collection.rb | 24 + lib/bitbucket_server/paginator.rb | 29 +- lib/carrier_wave_string_file.rb | 2 + lib/constraints/feature_constrainer.rb | 2 + lib/constraints/group_url_constrainer.rb | 2 + lib/constraints/project_url_constrainer.rb | 2 + lib/constraints/user_url_constrainer.rb | 2 + lib/container_registry/blob.rb | 2 + lib/container_registry/client.rb | 2 + lib/container_registry/config.rb | 2 + lib/container_registry/path.rb | 2 + lib/container_registry/registry.rb | 2 + lib/container_registry/tag.rb | 2 + lib/declarative_policy.rb | 2 + lib/declarative_policy/base.rb | 2 + lib/declarative_policy/cache.rb | 2 + lib/declarative_policy/condition.rb | 2 + lib/declarative_policy/delegate_dsl.rb | 2 + lib/declarative_policy/policy_dsl.rb | 2 + lib/declarative_policy/preferred_scope.rb | 5 +- lib/declarative_policy/rule.rb | 2 + lib/declarative_policy/rule_dsl.rb | 2 + lib/declarative_policy/runner.rb | 2 + lib/declarative_policy/step.rb | 2 + lib/expand_variables.rb | 2 + lib/extracts_path.rb | 14 +- lib/feature.rb | 2 + lib/file_size_validator.rb | 2 + lib/flowdock/git.rb | 67 + lib/flowdock/git/builder.rb | 145 + lib/forever.rb | 2 + .../post_deployment_migration_generator.rb | 2 + lib/gitaly/server.rb | 2 + lib/gitlab.rb | 2 + lib/gitlab/access.rb | 2 + lib/gitlab/action_rate_limiter.rb | 2 + lib/gitlab/allowable.rb | 2 + lib/gitlab/app_logger.rb | 2 + lib/gitlab/asciidoc.rb | 2 + lib/gitlab/audit_json_logger.rb | 9 + lib/gitlab/auth.rb | 2 + lib/gitlab/auth/activity.rb | 2 + lib/gitlab/auth/database/authentication.rb | 2 + lib/gitlab/auth/ip_rate_limiter.rb | 2 + lib/gitlab/auth/ldap/access.rb | 2 + lib/gitlab/auth/ldap/adapter.rb | 2 + lib/gitlab/auth/ldap/auth_hash.rb | 2 + lib/gitlab/auth/ldap/authentication.rb | 2 + lib/gitlab/auth/ldap/config.rb | 2 + lib/gitlab/auth/ldap/dn.rb | 1 + lib/gitlab/auth/ldap/ldap_connection_error.rb | 2 + lib/gitlab/auth/ldap/person.rb | 2 + lib/gitlab/auth/ldap/user.rb | 2 + lib/gitlab/auth/o_auth/auth_hash.rb | 4 +- lib/gitlab/auth/o_auth/authentication.rb | 2 + lib/gitlab/auth/o_auth/identity_linker.rb | 2 + lib/gitlab/auth/o_auth/provider.rb | 2 + lib/gitlab/auth/o_auth/session.rb | 2 + lib/gitlab/auth/o_auth/user.rb | 2 + .../auth/omniauth_identity_linker_base.rb | 2 + lib/gitlab/auth/request_authenticator.rb | 2 + lib/gitlab/auth/result.rb | 5 +- lib/gitlab/auth/saml/auth_hash.rb | 2 + lib/gitlab/auth/saml/config.rb | 2 + lib/gitlab/auth/saml/identity_linker.rb | 2 + lib/gitlab/auth/saml/user.rb | 2 + lib/gitlab/auth/too_many_ips.rb | 2 + lib/gitlab/auth/unique_ips_limiter.rb | 2 + lib/gitlab/auth/user_access_denied_reason.rb | 2 + lib/gitlab/auth/user_auth_finders.rb | 2 + lib/gitlab/background_migration.rb | 2 + ...late_cluster_kubernetes_namespace_table.rb | 82 + .../remove_restricted_todos.rb | 2 +- ...et_confidential_note_events_on_services.rb | 4 +- ...et_confidential_note_events_on_webhooks.rb | 4 +- lib/gitlab/badge/base.rb | 2 + lib/gitlab/badge/coverage/metadata.rb | 2 + lib/gitlab/badge/coverage/report.rb | 2 + lib/gitlab/badge/coverage/template.rb | 2 + lib/gitlab/badge/metadata.rb | 2 + lib/gitlab/badge/pipeline/metadata.rb | 2 + lib/gitlab/badge/pipeline/status.rb | 2 + lib/gitlab/badge/pipeline/template.rb | 2 + lib/gitlab/badge/template.rb | 2 + lib/gitlab/bare_repository_import/importer.rb | 7 +- .../bare_repository_import/repository.rb | 7 +- lib/gitlab/base_doorkeeper_controller.rb | 2 + lib/gitlab/bitbucket_import/importer.rb | 2 + .../bitbucket_import/project_creator.rb | 2 + .../project_creator.rb | 2 + lib/gitlab/blame.rb | 5 +- lib/gitlab/blob_helper.rb | 147 + lib/gitlab/build_access.rb | 2 + .../cache/ci/project_pipeline_status.rb | 10 +- lib/gitlab/cache/request_cache.rb | 2 + lib/gitlab/changes_list.rb | 2 + lib/gitlab/chat_name_token.rb | 2 + lib/gitlab/checks/change_access.rb | 112 +- lib/gitlab/checks/commit_check.rb | 2 + lib/gitlab/checks/force_push.rb | 2 + lib/gitlab/checks/lfs_integrity.rb | 7 +- lib/gitlab/checks/matching_merge_request.rb | 2 + lib/gitlab/checks/post_push_message.rb | 2 + lib/gitlab/checks/project_created.rb | 2 + lib/gitlab/checks/project_moved.rb | 2 + lib/gitlab/checks/timed_logger.rb | 83 + lib/gitlab/ci/ansi2html.rb | 4 +- .../build/artifacts/adapters/gzip_stream.rb | 50 + .../ci/build/artifacts/adapters/raw_stream.rb | 29 + .../ci/build/artifacts/gzip_file_adapter.rb | 46 - lib/gitlab/ci/build/artifacts/metadata.rb | 9 +- .../ci/build/artifacts/metadata/entry.rb | 2 + lib/gitlab/ci/build/artifacts/path.rb | 2 + lib/gitlab/ci/build/credentials/base.rb | 2 + lib/gitlab/ci/build/credentials/factory.rb | 2 + lib/gitlab/ci/build/credentials/registry.rb | 2 + lib/gitlab/ci/build/image.rb | 2 + lib/gitlab/ci/build/policy.rb | 2 + lib/gitlab/ci/build/policy/kubernetes.rb | 2 + lib/gitlab/ci/build/policy/refs.rb | 2 + lib/gitlab/ci/build/policy/specification.rb | 2 + lib/gitlab/ci/build/policy/variables.rb | 2 + lib/gitlab/ci/build/step.rb | 2 + lib/gitlab/ci/charts.rb | 2 + lib/gitlab/ci/config.rb | 10 +- lib/gitlab/ci/config/entry/artifacts.rb | 2 + lib/gitlab/ci/config/entry/attributable.rb | 2 + lib/gitlab/ci/config/entry/boolean.rb | 2 + lib/gitlab/ci/config/entry/cache.rb | 2 + lib/gitlab/ci/config/entry/commands.rb | 2 + lib/gitlab/ci/config/entry/configurable.rb | 2 + lib/gitlab/ci/config/entry/coverage.rb | 2 + lib/gitlab/ci/config/entry/environment.rb | 2 + lib/gitlab/ci/config/entry/factory.rb | 2 + lib/gitlab/ci/config/entry/global.rb | 2 + lib/gitlab/ci/config/entry/hidden.rb | 2 + lib/gitlab/ci/config/entry/image.rb | 2 + lib/gitlab/ci/config/entry/job.rb | 26 +- lib/gitlab/ci/config/entry/jobs.rb | 2 + lib/gitlab/ci/config/entry/key.rb | 2 + .../config/entry/legacy_validation_helpers.rb | 2 + lib/gitlab/ci/config/entry/node.rb | 2 + lib/gitlab/ci/config/entry/paths.rb | 2 + lib/gitlab/ci/config/entry/policy.rb | 2 + lib/gitlab/ci/config/entry/reports.rb | 4 +- lib/gitlab/ci/config/entry/retry.rb | 90 + lib/gitlab/ci/config/entry/script.rb | 2 + lib/gitlab/ci/config/entry/service.rb | 2 + lib/gitlab/ci/config/entry/services.rb | 2 + lib/gitlab/ci/config/entry/simplifiable.rb | 2 + lib/gitlab/ci/config/entry/stage.rb | 2 + lib/gitlab/ci/config/entry/stages.rb | 2 + lib/gitlab/ci/config/entry/undefined.rb | 2 + lib/gitlab/ci/config/entry/unspecified.rb | 2 + lib/gitlab/ci/config/entry/validatable.rb | 2 + lib/gitlab/ci/config/entry/validator.rb | 2 + lib/gitlab/ci/config/entry/validators.rb | 26 +- lib/gitlab/ci/config/entry/variables.rb | 2 + lib/gitlab/ci/config/external/file/base.rb | 75 + lib/gitlab/ci/config/external/file/local.rb | 42 + lib/gitlab/ci/config/external/file/remote.rb | 49 + lib/gitlab/ci/config/external/mapper.rb | 33 + lib/gitlab/ci/config/external/processor.rb | 50 + lib/gitlab/ci/config/loader.rb | 2 + lib/gitlab/ci/config/normalizer.rb | 65 + lib/gitlab/ci/cron_parser.rb | 2 + lib/gitlab/ci/external/file/base.rb | 29 - lib/gitlab/ci/external/file/local.rb | 34 - lib/gitlab/ci/external/file/remote.rb | 30 - lib/gitlab/ci/external/mapper.rb | 32 - lib/gitlab/ci/external/processor.rb | 52 - lib/gitlab/ci/mask_secret.rb | 4 + lib/gitlab/ci/model.rb | 2 + lib/gitlab/ci/pipeline/chain/base.rb | 2 + lib/gitlab/ci/pipeline/chain/build.rb | 2 + lib/gitlab/ci/pipeline/chain/command.rb | 5 +- lib/gitlab/ci/pipeline/chain/create.rb | 19 +- lib/gitlab/ci/pipeline/chain/helpers.rb | 2 + lib/gitlab/ci/pipeline/chain/populate.rb | 2 + lib/gitlab/ci/pipeline/chain/sequence.rb | 2 + lib/gitlab/ci/pipeline/chain/skip.rb | 2 + .../ci/pipeline/chain/validate/abilities.rb | 2 + .../ci/pipeline/chain/validate/config.rb | 2 + .../ci/pipeline/chain/validate/repository.rb | 2 + lib/gitlab/ci/pipeline/duration.rb | 2 + lib/gitlab/ci/pipeline/expression.rb | 2 + .../ci/pipeline/expression/lexeme/base.rb | 2 + .../ci/pipeline/expression/lexeme/equals.rb | 2 + .../ci/pipeline/expression/lexeme/matches.rb | 2 + .../ci/pipeline/expression/lexeme/null.rb | 2 + .../ci/pipeline/expression/lexeme/operator.rb | 2 + .../ci/pipeline/expression/lexeme/pattern.rb | 2 + .../ci/pipeline/expression/lexeme/string.rb | 2 + .../ci/pipeline/expression/lexeme/value.rb | 2 + .../ci/pipeline/expression/lexeme/variable.rb | 2 + lib/gitlab/ci/pipeline/expression/lexer.rb | 2 + lib/gitlab/ci/pipeline/expression/parser.rb | 2 + .../ci/pipeline/expression/statement.rb | 2 + lib/gitlab/ci/pipeline/expression/token.rb | 2 + lib/gitlab/ci/pipeline/seed/base.rb | 2 + lib/gitlab/ci/pipeline/seed/build.rb | 2 + lib/gitlab/ci/pipeline/seed/stage.rb | 2 + lib/gitlab/ci/reports/test_case.rb | 2 + lib/gitlab/ci/reports/test_reports.rb | 2 + .../ci/reports/test_reports_comparer.rb | 2 + lib/gitlab/ci/reports/test_suite.rb | 2 + lib/gitlab/ci/reports/test_suite_comparer.rb | 2 + lib/gitlab/ci/status/build/action.rb | 2 + lib/gitlab/ci/status/build/cancelable.rb | 2 + lib/gitlab/ci/status/build/canceled.rb | 2 + lib/gitlab/ci/status/build/common.rb | 2 + lib/gitlab/ci/status/build/created.rb | 2 + lib/gitlab/ci/status/build/erased.rb | 2 + lib/gitlab/ci/status/build/factory.rb | 2 + lib/gitlab/ci/status/build/failed.rb | 6 +- lib/gitlab/ci/status/build/failed_allowed.rb | 2 + lib/gitlab/ci/status/build/manual.rb | 2 + lib/gitlab/ci/status/build/pending.rb | 2 + lib/gitlab/ci/status/build/play.rb | 2 + lib/gitlab/ci/status/build/retried.rb | 2 + lib/gitlab/ci/status/build/retryable.rb | 2 + lib/gitlab/ci/status/build/scheduled.rb | 15 +- lib/gitlab/ci/status/build/skipped.rb | 2 + lib/gitlab/ci/status/build/stop.rb | 2 + lib/gitlab/ci/status/build/unschedule.rb | 2 + lib/gitlab/ci/status/canceled.rb | 2 + lib/gitlab/ci/status/core.rb | 2 + lib/gitlab/ci/status/created.rb | 2 + lib/gitlab/ci/status/extended.rb | 2 + lib/gitlab/ci/status/external/common.rb | 2 + lib/gitlab/ci/status/external/factory.rb | 2 + lib/gitlab/ci/status/factory.rb | 2 + lib/gitlab/ci/status/failed.rb | 2 + lib/gitlab/ci/status/group/common.rb | 2 + lib/gitlab/ci/status/group/factory.rb | 2 + lib/gitlab/ci/status/manual.rb | 2 + lib/gitlab/ci/status/pending.rb | 2 + lib/gitlab/ci/status/pipeline/blocked.rb | 2 + lib/gitlab/ci/status/pipeline/common.rb | 2 + .../pipeline/{scheduled.rb => delayed.rb} | 6 +- lib/gitlab/ci/status/pipeline/factory.rb | 4 +- lib/gitlab/ci/status/running.rb | 2 + lib/gitlab/ci/status/scheduled.rb | 6 +- lib/gitlab/ci/status/skipped.rb | 2 + lib/gitlab/ci/status/stage/common.rb | 2 + lib/gitlab/ci/status/stage/factory.rb | 2 + lib/gitlab/ci/status/success.rb | 2 + lib/gitlab/ci/status/success_warning.rb | 2 + lib/gitlab/ci/templates/Android.gitlab-ci.yml | 48 +- .../ci/templates/Auto-DevOps.gitlab-ci.yml | 23 +- lib/gitlab/ci/templates/Maven.gitlab-ci.yml | 2 +- lib/gitlab/ci/templates/Python.gitlab-ci.yml | 2 +- lib/gitlab/ci/trace.rb | 2 + lib/gitlab/ci/trace/chunked_io.rb | 15 +- lib/gitlab/ci/trace/section_parser.rb | 2 + lib/gitlab/ci/trace/stream.rb | 5 +- lib/gitlab/ci/variables/collection.rb | 2 + lib/gitlab/ci/variables/collection/item.rb | 2 + lib/gitlab/ci/yaml_processor.rb | 6 +- lib/gitlab/ci_access.rb | 2 + lib/gitlab/closing_issue_extractor.rb | 2 + lib/gitlab/cluster/lifecycle_events.rb | 99 + .../cluster/puma_worker_killer_initializer.rb | 36 + lib/gitlab/color_schemes.rb | 2 + lib/gitlab/config_helper.rb | 2 + lib/gitlab/conflict/file.rb | 37 +- lib/gitlab/contributions_calendar.rb | 4 +- lib/gitlab/contributor.rb | 2 + lib/gitlab/cross_project_access.rb | 2 + lib/gitlab/current_settings.rb | 2 + lib/gitlab/daemon.rb | 2 + lib/gitlab/database.rb | 12 +- lib/gitlab/database/migration_helpers.rb | 4 +- lib/gitlab/dependency_linker.rb | 2 + lib/gitlab/diff/file.rb | 19 + lib/gitlab/diff/file_collection/base.rb | 7 +- lib/gitlab/diff/highlight.rb | 2 +- lib/gitlab/diff/line.rb | 13 +- lib/gitlab/diff/lines_unfolder.rb | 235 + lib/gitlab/diff/position.rb | 12 +- lib/gitlab/diff/position_tracer.rb | 2 +- lib/gitlab/downtime_check.rb | 2 + lib/gitlab/ee_compat_check.rb | 12 +- .../handler/create_merge_request_handler.rb | 50 +- lib/gitlab/email/receiver.rb | 1 + lib/gitlab/emoji.rb | 2 + lib/gitlab/encoding_helper.rb | 2 + lib/gitlab/environment.rb | 2 + lib/gitlab/environment_logger.rb | 2 + lib/gitlab/exclusive_lease.rb | 2 + lib/gitlab/exclusive_lease_helpers.rb | 2 + lib/gitlab/fake_application_settings.rb | 2 + lib/gitlab/favicon.rb | 2 + lib/gitlab/file_detector.rb | 5 +- lib/gitlab/file_finder.rb | 2 + lib/gitlab/file_markdown_link_builder.rb | 4 +- lib/gitlab/git.rb | 2 + lib/gitlab/git/blob.rb | 11 +- lib/gitlab/git/blob_snippet.rb | 34 - lib/gitlab/git/commit.rb | 9 +- lib/gitlab/git/commit_stats.rb | 4 +- lib/gitlab/git/conflict/resolver.rb | 6 +- lib/gitlab/git/diff.rb | 2 +- lib/gitlab/git/lfs_changes.rb | 4 +- lib/gitlab/git/patches/collection.rb | 33 + lib/gitlab/git/patches/commit_patches.rb | 31 + lib/gitlab/git/patches/patch.rb | 19 + lib/gitlab/git/remote_mirror.rb | 4 +- lib/gitlab/git/repository.rb | 63 +- lib/gitlab/git/storage.rb | 25 - lib/gitlab/git/storage/checker.rb | 120 - lib/gitlab/git/storage/circuit_breaker.rb | 78 - .../git/storage/circuit_breaker_settings.rb | 37 - lib/gitlab/git/storage/failure_info.rb | 39 - .../git/storage/forked_storage_check.rb | 65 - lib/gitlab/git/storage/health.rb | 92 - .../git/storage/null_circuit_breaker.rb | 50 - lib/gitlab/git/tree.rb | 3 +- lib/gitlab/git/wiki.rb | 71 +- lib/gitlab/git/wraps_gitaly_errors.rb | 15 + lib/gitlab/git_access.rb | 24 +- lib/gitlab/git_access_wiki.rb | 2 + lib/gitlab/git_logger.rb | 2 + lib/gitlab/git_post_receive.rb | 4 +- lib/gitlab/git_ref_validator.rb | 2 + lib/gitlab/gitaly_client.rb | 4 +- lib/gitlab/gitaly_client/blob_service.rb | 17 +- lib/gitlab/gitaly_client/operation_service.rb | 49 + .../gitaly_client/repository_service.rb | 2 +- lib/gitlab/github_import.rb | 2 + lib/gitlab/gl_id.rb | 2 + lib/gitlab/gl_repository.rb | 2 + lib/gitlab/gon_helper.rb | 17 + lib/gitlab/google_code_import/importer.rb | 2 +- lib/gitlab/gpg.rb | 2 + .../formatters/lograge_with_timestamp.rb | 10 +- lib/gitlab/graphql.rb | 2 + lib/gitlab/group_hierarchy.rb | 2 + lib/gitlab/highlight.rb | 19 +- lib/gitlab/hook_data/base_builder.rb | 11 + lib/gitlab/http.rb | 9 + lib/gitlab/http_io.rb | 15 +- lib/gitlab/i18n.rb | 2 + lib/gitlab/identifier.rb | 23 +- lib/gitlab/import/merge_request_helpers.rb | 2 +- lib/gitlab/import_export.rb | 2 + lib/gitlab/import_export/import_export.yml | 1 + .../import_export/project_tree_restorer.rb | 2 +- lib/gitlab/import_formatter.rb | 2 + lib/gitlab/import_sources.rb | 2 + lib/gitlab/incoming_email.rb | 2 + lib/gitlab/insecure_key_fingerprint.rb | 2 + lib/gitlab/issuable_metadata.rb | 2 + lib/gitlab/issuable_sorter.rb | 2 + lib/gitlab/issuables_count_for_state.rb | 2 + lib/gitlab/issues_labels.rb | 2 + lib/gitlab/job_waiter.rb | 2 + lib/gitlab/json_logger.rb | 2 + lib/gitlab/kubernetes.rb | 2 + lib/gitlab/kubernetes/helm.rb | 1 + lib/gitlab/kubernetes/helm/base_command.rb | 6 - lib/gitlab/kubernetes/helm/install_command.rb | 25 +- lib/gitlab/kubernetes/helm/pod.rb | 2 +- lib/gitlab/kubernetes/kube_client.rb | 70 +- lib/gitlab/kubernetes/role_binding.rb | 48 + lib/gitlab/language_data.rb | 33 + lib/gitlab/language_detection.rb | 2 + lib/gitlab/lazy.rb | 2 + lib/gitlab/lfs_token.rb | 2 + lib/gitlab/logger.rb | 2 + lib/gitlab/mail_room.rb | 2 + lib/gitlab/markup_helper.rb | 15 +- lib/gitlab/metrics.rb | 2 + lib/gitlab/metrics/influx_db.rb | 2 +- lib/gitlab/multi_collection_paginator.rb | 2 + lib/gitlab/namespace_sanitizer.rb | 9 + lib/gitlab/omniauth_initializer.rb | 2 + lib/gitlab/optimistic_locking.rb | 2 + lib/gitlab/other_markup.rb | 2 + lib/gitlab/otp_key_rotator.rb | 2 + lib/gitlab/pages.rb | 2 + lib/gitlab/pages_client.rb | 2 + lib/gitlab/pages_transfer.rb | 2 + lib/gitlab/patch/draw_route.rb | 38 + lib/gitlab/path_regex.rb | 5 +- lib/gitlab/performance_bar.rb | 2 + lib/gitlab/plugin.rb | 2 + lib/gitlab/plugin_logger.rb | 2 + lib/gitlab/polling_interval.rb | 2 + lib/gitlab/popen.rb | 4 +- lib/gitlab/private_commit_email.rb | 28 + lib/gitlab/profiler.rb | 2 + lib/gitlab/project_search_results.rb | 9 +- lib/gitlab/project_service_logger.rb | 2 + lib/gitlab/project_template.rb | 2 + lib/gitlab/project_transfer.rb | 2 + lib/gitlab/prometheus_client.rb | 2 + lib/gitlab/protocol_access.rb | 2 + lib/gitlab/proxy_http_connection_adapter.rb | 4 +- lib/gitlab/query_limiting.rb | 2 + lib/gitlab/quick_actions/extractor.rb | 14 +- lib/gitlab/recaptcha.rb | 2 + lib/gitlab/reference_counter.rb | 2 + lib/gitlab/reference_extractor.rb | 2 + lib/gitlab/regex.rb | 2 + lib/gitlab/repo_path.rb | 2 + lib/gitlab/repository_cache.rb | 4 +- lib/gitlab/repository_cache_adapter.rb | 2 + lib/gitlab/repository_check_logger.rb | 2 + lib/gitlab/request_context.rb | 2 + lib/gitlab/request_forgery_protection.rb | 2 + lib/gitlab/request_profiler.rb | 2 + lib/gitlab/route_map.rb | 2 + lib/gitlab/routing.rb | 4 +- lib/gitlab/search_results.rb | 19 +- lib/gitlab/seeder.rb | 2 + lib/gitlab/sentry.rb | 2 + lib/gitlab/setup_helper.rb | 7 +- lib/gitlab/shard_health_cache.rb | 2 + lib/gitlab/shell.rb | 19 +- lib/gitlab/shell_adapter.rb | 2 + lib/gitlab/sherlock.rb | 2 + lib/gitlab/sidekiq_config.rb | 2 + lib/gitlab/sidekiq_logger.rb | 2 + lib/gitlab/sidekiq_middleware/batch_loader.rb | 13 + lib/gitlab/sidekiq_status.rb | 2 + lib/gitlab/sidekiq_versioning.rb | 2 + lib/gitlab/slash_commands/issue_new.rb | 2 +- lib/gitlab/snippet_search_results.rb | 2 + lib/gitlab/ssh_public_key.rb | 4 +- lib/gitlab/storage_check.rb | 11 - lib/gitlab/storage_check/cli.rb | 71 - lib/gitlab/storage_check/gitlab_caller.rb | 39 - lib/gitlab/storage_check/option_parser.rb | 39 - lib/gitlab/storage_check/response.rb | 77 - lib/gitlab/string_placeholder_replacer.rb | 2 + lib/gitlab/string_range_marker.rb | 2 + lib/gitlab/string_regex_marker.rb | 2 + lib/gitlab/task_helpers.rb | 4 +- lib/gitlab/tcp_checker.rb | 2 + lib/gitlab/template/base_template.rb | 2 +- .../finders/global_template_finder.rb | 4 + .../template/finders/repo_template_finder.rb | 5 + lib/gitlab/template_helper.rb | 2 + lib/gitlab/temporarily_allow.rb | 2 + lib/gitlab/themes.rb | 2 + lib/gitlab/time_tracking_formatter.rb | 2 + lib/gitlab/timeless.rb | 2 + lib/gitlab/tree_summary.rb | 2 + lib/gitlab/untrusted_regexp.rb | 2 + lib/gitlab/update_path_error.rb | 2 + lib/gitlab/upgrader.rb | 2 + lib/gitlab/uploads_transfer.rb | 2 + lib/gitlab/url_builder.rb | 2 + lib/gitlab/url_sanitizer.rb | 2 + lib/gitlab/usage_data.rb | 21 +- lib/gitlab/user_access.rb | 2 + lib/gitlab/user_extractor.rb | 4 +- lib/gitlab/utils.rb | 16 + lib/gitlab/version_info.rb | 2 + lib/gitlab/visibility_level.rb | 2 + lib/gitlab/wiki_file_finder.rb | 2 + lib/gitlab/workhorse.rb | 4 +- lib/google_api/auth.rb | 4 +- lib/google_api/cloud_platform/client.rb | 2 + lib/gt_one_coercion.rb | 2 + lib/haml_lint/inline_javascript.rb | 11 +- lib/json_web_token/rsa_token.rb | 2 + lib/json_web_token/token.rb | 2 + lib/mattermost/client.rb | 2 + lib/mattermost/command.rb | 2 + lib/mattermost/error.rb | 2 + lib/mattermost/session.rb | 2 + lib/mattermost/team.rb | 2 + lib/microsoft_teams/activity.rb | 2 + lib/microsoft_teams/notifier.rb | 2 + lib/milestone_array.rb | 2 + lib/mysql_zero_date.rb | 2 + lib/object_storage/direct_upload.rb | 2 + lib/omni_auth/strategies/bitbucket.rb | 2 + lib/omni_auth/strategies/jwt.rb | 2 + .../rblineprof/custom_controller_helpers.rb | 6 +- lib/peek/views/gitaly.rb | 2 + lib/peek/views/host.rb | 7 +- lib/quality/helm_client.rb | 88 +- lib/quality/kubernetes_client.rb | 28 +- lib/rouge/formatters/html_gitlab.rb | 2 + lib/rouge/plugins/common_mark.rb | 2 + lib/rspec_flaky/config.rb | 2 + lib/rspec_flaky/example.rb | 2 + lib/rspec_flaky/flaky_example.rb | 2 + lib/rspec_flaky/flaky_examples_collection.rb | 2 + lib/rspec_flaky/listener.rb | 2 + lib/rspec_flaky/report.rb | 2 + lib/static_model.rb | 2 + lib/system_check.rb | 2 + lib/system_check/app/active_users_check.rb | 2 + .../app/database_config_exists_check.rb | 2 + lib/system_check/app/git_config_check.rb | 2 + .../app/git_user_default_ssh_config_check.rb | 2 + lib/system_check/app/git_version_check.rb | 2 + .../app/gitlab_config_exists_check.rb | 2 + .../app/gitlab_config_up_to_date_check.rb | 2 + .../app/init_script_exists_check.rb | 2 + .../app/init_script_up_to_date_check.rb | 2 + lib/system_check/app/log_writable_check.rb | 2 + .../app/migrations_are_up_check.rb | 2 + .../app/orphaned_group_members_check.rb | 2 + .../app/projects_have_namespace_check.rb | 2 + lib/system_check/app/redis_version_check.rb | 2 + lib/system_check/app/ruby_version_check.rb | 2 + lib/system_check/app/tmp_writable_check.rb | 2 + .../app/uploads_directory_exists_check.rb | 2 + .../app/uploads_path_permission_check.rb | 2 + .../app/uploads_path_tmp_permission_check.rb | 2 + lib/system_check/base_check.rb | 2 + lib/system_check/helpers.rb | 2 + .../foreman_configured_check.rb | 2 + .../imap_authentication_check.rb | 2 + .../incoming_email/initd_configured_check.rb | 2 + .../incoming_email/mail_room_running_check.rb | 2 + lib/system_check/orphans/namespace_check.rb | 2 + lib/system_check/orphans/repository_check.rb | 2 + lib/system_check/simple_executor.rb | 2 + lib/tasks/gitlab/check.rake | 139 +- lib/tasks/gitlab/ldap.rake | 2 +- lib/tasks/gitlab/site_statistics.rake | 15 - lib/tasks/import.rake | 2 +- lib/unfold_form.rb | 2 + lib/uploaded_file.rb | 2 + lib/version_check.rb | 2 + locale/ar_SA/gitlab.po | 1135 +- locale/bg/gitlab.po | 1099 +- locale/ca_ES/gitlab.po | 1101 +- locale/cs_CZ/gitlab.po | 1117 +- locale/cy_GB/gitlab.po | 10259 ++ locale/da_DK/gitlab.po | 1099 +- locale/de/gitlab.po | 6535 +- locale/el_GR/gitlab.po | 9995 ++ locale/en/gitlab.po | 3 - locale/eo/gitlab.po | 1099 +- locale/es/gitlab.po | 1101 +- locale/et_EE/gitlab.po | 1099 +- locale/fil_PH/gitlab.po | 1099 +- locale/fr/gitlab.po | 1187 +- locale/gitlab.pot | 365 +- locale/gl_ES/gitlab.po | 1099 +- locale/he_IL/gitlab.po | 1117 +- locale/hu_HU/gitlab.po | 9995 ++ locale/id_ID/gitlab.po | 1090 +- locale/it/gitlab.po | 1103 +- locale/ja/gitlab.po | 1310 +- locale/ko/gitlab.po | 2946 +- locale/mn_MN/gitlab.po | 1099 +- locale/nb_NO/gitlab.po | 1099 +- locale/nl_NL/gitlab.po | 1099 +- locale/pl_PL/gitlab.po | 1117 +- locale/pt_BR/gitlab.po | 1307 +- locale/pt_PT/gitlab.po | 9995 ++ locale/ro_RO/gitlab.po | 1108 +- locale/ru/gitlab.po | 1133 +- locale/sk_SK/gitlab.po | 10127 ++ locale/sq_AL/gitlab.po | 1099 +- locale/sr_CS/gitlab.po | 10061 ++ locale/sr_SP/gitlab.po | 10061 ++ locale/tr_TR/gitlab.po | 1099 +- locale/uk/gitlab.po | 1569 +- locale/zh_CN/gitlab.po | 1226 +- locale/zh_HK/gitlab.po | 1092 +- locale/zh_TW/gitlab.po | 1448 +- package.json | 17 +- qa/Dockerfile | 12 +- qa/qa.rb | 105 +- qa/qa/factory/base.rb | 60 - qa/qa/factory/dependency.rb | 39 - qa/qa/factory/product.rb | 30 - qa/qa/factory/resource/branch.rb | 77 - qa/qa/factory/resource/deploy_key.rb | 43 - qa/qa/factory/resource/file.rb | 34 - qa/qa/factory/resource/fork.rb | 64 - qa/qa/factory/resource/group.rb | 41 - qa/qa/factory/resource/issue.rb | 32 - qa/qa/factory/resource/kubernetes_cluster.rb | 60 - qa/qa/factory/resource/merge_request.rb | 65 - .../resource/merge_request_from_fork.rb | 24 - .../factory/resource/personal_access_token.rb | 27 - qa/qa/factory/resource/project.rb | 54 - .../resource/project_imported_from_github.rb | 37 - qa/qa/factory/resource/project_milestone.rb | 36 - qa/qa/factory/resource/runner.rb | 47 - qa/qa/factory/resource/sandbox.rb | 34 - qa/qa/factory/resource/secret_variable.rb | 28 - qa/qa/factory/resource/ssh_key.rb | 40 - qa/qa/factory/resource/user.rb | 61 - qa/qa/factory/resource/wiki.rb | 25 - qa/qa/factory/settings/hashed_storage.rb | 24 - qa/qa/git/repository.rb | 156 +- qa/qa/page/README.md | 44 +- qa/qa/page/base.rb | 5 + qa/qa/page/component/clone_panel.rb | 4 +- qa/qa/page/component/dropdown_filter.rb | 18 + qa/qa/page/component/users_select.rb | 14 + qa/qa/page/dashboard/groups.rb | 6 +- qa/qa/page/dashboard/projects.rb | 2 +- qa/qa/page/file/form.rb | 34 +- qa/qa/page/file/shared/commit_message.rb | 2 +- qa/qa/page/file/show.rb | 6 +- qa/qa/page/group/new.rb | 10 +- qa/qa/page/group/show.rb | 2 +- qa/qa/page/issuable/sidebar.rb | 4 +- qa/qa/page/label/index.rb | 15 + qa/qa/page/label/new.rb | 30 + qa/qa/page/layout/banner.rb | 2 +- qa/qa/page/main/login.rb | 11 +- qa/qa/page/main/menu.rb | 6 +- qa/qa/page/main/oauth.rb | 2 +- qa/qa/page/main/sign_up.rb | 3 + qa/qa/page/merge_request/new.rb | 10 + qa/qa/page/merge_request/show.rb | 74 +- qa/qa/page/profile/menu.rb | 8 +- qa/qa/page/profile/personal_access_tokens.rb | 8 +- qa/qa/page/project/activity.rb | 2 +- qa/qa/page/project/fork/new.rb | 2 +- qa/qa/page/project/import/github.rb | 12 +- qa/qa/page/project/issue/index.rb | 2 +- qa/qa/page/project/issue/new.rb | 6 +- qa/qa/page/project/issue/show.rb | 38 +- qa/qa/page/project/job/show.rb | 25 +- qa/qa/page/project/menu.rb | 67 +- qa/qa/page/project/new.rb | 16 +- .../project/operations/environments/index.rb | 23 + .../project/operations/environments/show.rb | 23 + .../page/project/operations/kubernetes/add.rb | 4 +- .../operations/kubernetes/add_existing.rb | 12 +- .../project/operations/kubernetes/index.rb | 4 +- .../project/operations/kubernetes/show.rb | 8 +- qa/qa/page/project/pipeline/index.rb | 2 +- qa/qa/page/project/pipeline/show.rb | 12 +- qa/qa/page/project/settings/advanced.rb | 6 +- qa/qa/page/project/settings/ci_cd.rb | 14 +- .../{secret_variables.rb => ci_variables.rb} | 14 +- qa/qa/page/project/settings/common.rb | 2 +- qa/qa/page/project/settings/deploy_keys.rb | 12 +- qa/qa/page/project/settings/deploy_tokens.rb | 64 + qa/qa/page/project/settings/members.rb | 27 + qa/qa/page/project/settings/repository.rb | 6 + qa/qa/page/project/settings/runners.rb | 6 +- qa/qa/page/project/show.rb | 28 +- qa/qa/page/project/web_ide/edit.rb | 79 + qa/qa/page/project/wiki/edit.rb | 6 +- qa/qa/page/project/wiki/new.rb | 12 +- qa/qa/page/project/wiki/show.rb | 2 +- qa/qa/resource/README.md | 392 + qa/qa/resource/api_fabricator.rb | 101 + qa/qa/resource/base.rb | 154 + qa/qa/resource/branch.rb | 77 + qa/qa/resource/ci_variable.rb | 30 + qa/qa/resource/deploy_key.rb | 43 + qa/qa/resource/deploy_token.rb | 50 + qa/qa/resource/file.rb | 36 + qa/qa/resource/fork.rb | 43 + qa/qa/resource/group.rb | 68 + qa/qa/resource/issue.rb | 30 + qa/qa/resource/kubernetes_cluster.rb | 57 + qa/qa/resource/label.rb | 39 + qa/qa/resource/merge_request.rb | 71 + qa/qa/resource/merge_request_from_fork.rb | 31 + qa/qa/resource/personal_access_token.rb | 27 + qa/qa/resource/project.rb | 80 + .../resource/project_imported_from_github.rb | 36 + qa/qa/resource/project_milestone.rb | 36 + .../repository/project_push.rb | 22 +- .../{factory => resource}/repository/push.rb | 8 +- .../repository/wiki_push.rb | 16 +- qa/qa/resource/runner.rb | 49 + qa/qa/resource/sandbox.rb | 60 + qa/qa/resource/settings/hashed_storage.rb | 26 + qa/qa/resource/ssh_key.rb | 26 + qa/qa/resource/user.rb | 103 + qa/qa/resource/wiki.rb | 30 + qa/qa/runtime/api/client.rb | 29 +- qa/qa/runtime/browser.rb | 4 + qa/qa/runtime/env.rb | 55 +- qa/qa/runtime/fixtures.rb | 19 + qa/qa/runtime/logger.rb | 25 + qa/qa/runtime/path.rb | 13 + .../test/integration/instance_saml.rb | 13 + .../scenario/test/integration/ldap_no_tls.rb | 13 + .../test/integration/{ldap.rb => ldap_tls.rb} | 6 +- qa/qa/service/kubernetes_cluster.rb | 12 +- .../specs/features/api/1_manage/users_spec.rb | 2 +- .../browser_ui/1_manage/login/log_in_spec.rb | 2 +- .../login/log_into_gitlab_via_ldap_spec.rb | 2 +- .../log_into_mattermost_via_gitlab_spec.rb | 2 +- .../login_via_instance_wide_saml_sso_spec.rb | 17 + .../1_manage/login/register_spec.rb | 6 +- .../project/add_project_member_spec.rb | 26 + .../1_manage/project/create_project_spec.rb | 8 +- .../project/import_github_repo_spec.rb | 4 +- .../project/view_project_activity_spec.rb | 4 +- .../2_plan/issue/create_issue_spec.rb | 5 +- .../issue/filter_issue_comments_spec.rb | 39 + .../create_merge_request_spec.rb | 28 +- .../merge_merge_request_from_fork_spec.rb | 4 +- .../rebase_merge_request_spec.rb | 9 +- .../squash_merge_request_spec.rb | 9 +- .../repository/add_file_template_spec.rb | 77 + .../3_create/repository/add_ssh_key_spec.rb | 4 +- .../3_create/repository/clone_spec.rb | 7 +- .../create_edit_delete_file_via_web_spec.rb | 4 +- .../repository/protocol_v2_push_ssh_spec.rb | 84 + .../push_http_private_token_spec.rb | 32 + .../repository/push_over_http_spec.rb | 6 +- .../repository/push_protected_branch_spec.rb | 10 +- .../3_create/repository/use_ssh_key_spec.rb | 6 +- .../web_ide/add_file_template_spec.rb | 88 + .../wiki/create_edit_clone_push_wiki_spec.rb | 6 +- .../add_ci_variable_spec.rb} | 16 +- .../create_and_process_pipeline_spec.rb | 8 +- .../4_verify/runner/register_runner_spec.rb | 4 +- .../deploy_key/add_deploy_key_spec.rb | 4 +- .../deploy_key/clone_using_deploy_key_spec.rb | 12 +- .../deploy_token/add_deploy_token_spec.rb | 23 + .../create_project_with_auto_devops_spec.rb | 24 +- .../create_group_with_mattermost_team_spec.rb | 2 +- qa/qa/specs/runner.rb | 4 + qa/qa/support/page/logging.rb | 100 + qa/qa/vendor/saml_idp/page/base.rb | 14 + qa/qa/vendor/saml_idp/page/login.rb | 19 + qa/spec/factory/base_spec.rb | 132 - qa/spec/factory/dependency_spec.rb | 72 - qa/spec/factory/product_spec.rb | 39 - qa/spec/factory/resource/user_spec.rb | 36 + qa/spec/git/repository_spec.rb | 43 +- qa/spec/page/base_spec.rb | 6 +- qa/spec/page/logging_spec.rb | 94 + qa/spec/page/view_spec.rb | 4 +- qa/spec/resource/api_fabricator_spec.rb | 161 + qa/spec/resource/base_spec.rb | 246 + .../repository/push_spec.rb | 2 +- qa/spec/runtime/api/client_spec.rb | 25 +- qa/spec/runtime/api/request_spec.rb | 20 +- qa/spec/runtime/api_request_spec.rb | 0 qa/spec/runtime/env_spec.rb | 112 +- qa/spec/runtime/logger_spec.rb | 33 + .../test/integration/instance_saml_spec.rb | 9 + .../scenario/test/integration/ldap_spec.rb | 12 +- qa/spec/spec_helper.rb | 4 + qa/spec/specs/runner_spec.rb | 14 + rubocop/cop/code_reuse/active_record.rb | 1 - rubocop/cop/qa/element_with_pattern.rb | 39 + rubocop/qa_helpers.rb | 11 + rubocop/rubocop.rb | 1 + scripts/build_assets_image | 21 + scripts/frontend/frontend_script_utils.js | 3 +- scripts/frontend/prettier.js | 200 +- scripts/review_apps/automated_cleanup.rb | 102 +- scripts/review_apps/review-apps.sh | 37 +- scripts/static-analysis | 1 + scripts/trigger-build | 87 +- spec/bin/storage_check_spec.rb | 13 - .../admin/health_check_controller_spec.rb | 12 +- .../application_controller_spec.rb | 52 +- .../boards/issues_controller_spec.rb | 68 +- .../concerns/send_file_upload_spec.rb | 29 +- .../dashboard/milestones_controller_spec.rb | 9 + .../groups/boards_controller_spec.rb | 59 +- .../groups/milestones_controller_spec.rb | 4 +- spec/controllers/groups_controller_spec.rb | 2 +- spec/controllers/health_controller_spec.rb | 42 - .../bitbucket_server_controller_spec.rb | 11 +- .../profiles/keys_controller_spec.rb | 2 +- .../projects/artifacts_controller_spec.rb | 33 +- .../projects/blob_controller_spec.rb | 76 +- .../projects/boards_controller_spec.rb | 57 +- .../clusters/applications_controller_spec.rb | 2 + .../projects/clusters_controller_spec.rb | 320 +- .../projects/commit_controller_spec.rb | 1 + .../projects/compare_controller_spec.rb | 24 + .../projects/deployments_controller_spec.rb | 12 +- .../projects/environments_controller_spec.rb | 2 +- .../projects/issues_controller_spec.rb | 7 + .../projects/jobs_controller_spec.rb | 103 +- .../conflicts_controller_spec.rb | 1 - .../merge_requests_controller_spec.rb | 70 +- .../projects/milestones_controller_spec.rb | 2 +- .../projects/mirrors_controller_spec.rb | 63 + .../projects/notes_controller_spec.rb | 31 + .../projects/wikis_controller_spec.rb | 56 +- spec/controllers/uploads_controller_spec.rb | 6 +- spec/factories/board_group_recent_visit.rb | 9 + spec/factories/board_project_recent_visit.rb | 9 + spec/factories/ci/builds.rb | 30 + spec/factories/ci/job_artifacts.rb | 4 +- spec/factories/ci/runners.rb | 10 + spec/factories/clusters/applications/helm.rb | 5 + spec/factories/clusters/clusters.rb | 15 + .../clusters/kubernetes_namespaces.rb | 19 + spec/factories/clusters/projects.rb | 8 + spec/factories/deployments.rb | 31 + spec/factories/environments.rb | 1 + spec/factories/forked_project_links.rb | 15 - spec/factories/merge_request_diff_files.rb | 47 + spec/factories/merge_request_diffs.rb | 13 + spec/factories/merge_requests.rb | 14 + spec/factories/services.rb | 11 + spec/factories/site_statistics.rb | 6 - spec/factories/user_preferences.rb | 12 + spec/fast_spec_helper.rb | 1 + spec/features/admin/admin_groups_spec.rb | 28 +- .../features/admin/admin_health_check_spec.rb | 26 +- spec/features/admin/dashboard_spec.rb | 28 + spec/features/boards/add_issues_modal_spec.rb | 2 +- spec/features/boards/issue_ordering_spec.rb | 4 +- spec/features/boards/modal_filter_spec.rb | 2 +- spec/features/boards/new_issue_spec.rb | 10 +- spec/features/calendar_spec.rb | 2 +- spec/features/commits_spec.rb | 60 +- .../dashboard/archived_projects_spec.rb | 2 +- spec/features/dashboard/group_spec.rb | 8 +- .../project_member_activity_index_spec.rb | 16 +- spec/features/dashboard/shortcuts_spec.rb | 8 +- spec/features/explore/new_menu_spec.rb | 4 +- spec/features/groups/board_sidebar_spec.rb | 45 + spec/features/groups/group_settings_spec.rb | 2 +- spec/features/groups/milestone_spec.rb | 12 +- spec/features/groups/share_lock_spec.rb | 4 +- spec/features/groups/show_spec.rb | 21 + spec/features/groups_spec.rb | 41 +- spec/features/import/manifest_import_spec.rb | 2 +- .../filtered_search/dropdown_assignee_spec.rb | 12 +- .../filtered_search/dropdown_emoji_spec.rb | 22 +- .../dropdown_milestone_spec.rb | 10 +- .../filtered_search/visual_tokens_spec.rb | 2 +- .../issues/resource_label_events_spec.rb | 7 + .../issues/user_creates_issue_spec.rb | 6 +- spec/features/issues/user_edits_issue_spec.rb | 4 +- .../user_creates_image_diff_notes_spec.rb | 9 +- .../merge_request/user_creates_mr_spec.rb | 25 + .../merge_request/user_edits_mr_spec.rb | 4 +- .../user_posts_diff_notes_spec.rb | 13 +- .../user_sees_avatar_on_diff_notes_spec.rb | 15 +- .../user_sees_deployment_widget_spec.rb | 81 +- .../user_sees_merge_widget_spec.rb | 28 +- ...ees_mr_from_deleted_forked_project_spec.rb | 8 +- ...ser_sees_notes_from_forked_project_spec.rb | 8 +- ...sees_pipelines_from_forked_project_spec.rb | 8 +- .../merge_request/user_sees_pipelines_spec.rb | 3 +- .../user_views_open_merge_request_spec.rb | 6 +- .../milestones/user_creates_milestone_spec.rb | 2 +- .../milestones/user_deletes_milestone_spec.rb | 2 +- .../profiles/user_edit_profile_spec.rb | 2 + .../activity/user_sees_activity_spec.rb | 6 +- .../user_sees_private_activity_spec.rb | 2 +- .../projects/badges/pipeline_badge_spec.rb | 2 +- spec/features/projects/clusters/gcp_spec.rb | 1 + spec/features/projects/clusters/user_spec.rb | 2 + spec/features/projects/clusters_spec.rb | 2 +- .../commit/comments/user_adds_comment_spec.rb | 10 +- .../commit/user_comments_on_commit_spec.rb | 6 +- .../projects/environments/environment_spec.rb | 63 +- .../environments/environments_spec.rb | 99 +- .../projects/files/user_creates_files_spec.rb | 4 +- .../projects/files/user_deletes_files_spec.rb | 2 +- .../projects/jobs/permissions_spec.rb | 2 +- .../projects/jobs/user_browses_job_spec.rb | 2 +- spec/features/projects/jobs_spec.rb | 148 +- .../projects/pipelines/pipeline_spec.rb | 75 +- .../user_sees_setup_shortcut_buttons_spec.rb | 35 - spec/features/projects/view_on_env_spec.rb | 2 +- .../wiki/user_views_wiki_empty_spec.rb | 2 +- .../wiki/user_views_wiki_page_spec.rb | 34 +- spec/features/projects_spec.rb | 17 + .../user_searches_for_wiki_pages_spec.rb | 2 +- .../security/dashboard_access_spec.rb | 14 - .../user_uploads_avatar_to_group_spec.rb | 2 +- spec/finders/applications_finder_spec.rb | 22 + spec/finders/branches_finder_spec.rb | 33 +- spec/finders/environments_finder_spec.rb | 16 +- spec/finders/fork_projects_finder_spec.rb | 15 +- spec/finders/issues_finder_spec.rb | 62 +- spec/finders/notes_finder_spec.rb | 29 + spec/finders/pending_todos_finder_spec.rb | 63 + .../personal_access_tokens_finder_spec.rb | 8 +- spec/finders/snippets_finder_spec.rb | 45 +- spec/finders/todos_finder_spec.rb | 17 +- spec/finders/user_finder_spec.rb | 154 +- spec/finders/users_finder_spec.rb | 6 + .../users_with_pending_todos_finder_spec.rb | 19 + spec/fixtures/api/schemas/deployment.json | 31 +- .../fixtures/api/schemas/entities/commit.json | 5 +- .../api/schemas/entities/issue_board.json | 39 + .../entities/merge_request_widget.json | 1 + spec/fixtures/api/schemas/issue.json | 2 + spec/fixtures/api/schemas/job/job.json | 6 +- .../fixtures/api/schemas/job/job_details.json | 3 +- .../schemas/public_api/v4/merge_requests.json | 26 + .../emails/merge_request_multiple_patches.eml | 181 + .../merge_request_with_conflicting_patch.eml | 45 + ...e_request_with_patch_and_target_branch.eml | 44 + .../emails/valid_merge_request_with_patch.eml | 151 + spec/fixtures/git-cheat-sheet.pdf | 130423 +++++++++++++++ .../0001-A-commit-from-a-patch.patch | 19 + ...does-not-apply-to-the-feature-branch.patch | 23 + .../security-reports/feature-branch.zip | Bin 0 -> 7163 bytes .../gl-container-scanning-report.json | 18 + .../feature-branch/gl-dast-report.json | 40 + .../gl-dependency-scanning-report.json | 46 + .../gl-license-management-report.json | 242 + .../feature-branch/gl-sast-report.json | 944 + spec/fixtures/security-reports/master.zip | Bin 0 -> 6710 bytes .../master/gl-container-scanning-report.json | 18 + .../master/gl-dast-report.json | 40 + .../master/gl-dependency-scanning-report.json | 35 + .../master/gl-license-management-report.json | 150 + .../master/gl-sast-report.json | 944 + spec/fixtures/valid.po | 3 - spec/helpers/blob_helper_spec.rb | 58 +- spec/helpers/events_helper_spec.rb | 46 +- spec/helpers/labels_helper_spec.rb | 25 + spec/helpers/preferences_helper_spec.rb | 7 + spec/helpers/profiles_helper_spec.rb | 34 + spec/helpers/storage_health_helper_spec.rb | 20 - spec/helpers/time_helper_spec.rb | 35 +- spec/helpers/tree_helper_spec.rb | 73 +- spec/helpers/visibility_level_helper_spec.rb | 12 +- spec/javascripts/.eslintrc.yml | 4 - spec/javascripts/ajax_loading_spinner_spec.js | 9 +- spec/javascripts/avatar_helper_spec.js | 2 +- spec/javascripts/awards_handler_spec.js | 736 +- .../badges/components/badge_form_spec.js | 11 + .../badges/components/badge_list_row_spec.js | 5 + .../badges/components/badge_list_spec.js | 3 + .../badges/components/badge_settings_spec.js | 9 + .../badges/components/badge_spec.js | 3 + spec/javascripts/badges/store/actions_spec.js | 7 + spec/javascripts/behaviors/autosize_spec.js | 1 + .../javascripts/behaviors/bind_in_out_spec.js | 113 +- .../javascripts/behaviors/copy_as_gfm_spec.js | 6 +- .../gl_emoji/unicode_support_map_spec.js | 4 +- .../behaviors/quick_submit_spec.js | 19 +- .../behaviors/requires_input_spec.js | 30 +- .../behaviors/secret_values_spec.js | 36 +- .../shortcuts/shortcuts_issuable_spec.js | 3 + .../blob/3d_viewer/mesh_object_spec.js | 20 +- .../balsamiq_viewer_integration_spec.js | 14 +- .../blob/balsamiq/balsamiq_viewer_spec.js | 18 +- .../blob/blob_file_dropzone_spec.js | 2 +- .../blob/blob_fork_suggestion_spec.js | 5 +- spec/javascripts/blob/notebook/index_spec.js | 86 +- spec/javascripts/blob/pdf/index_spec.js | 32 +- spec/javascripts/blob/sketch/index_spec.js | 102 +- spec/javascripts/blob/viewer/index_spec.js | 48 +- .../boards/board_blank_state_spec.js | 80 +- spec/javascripts/boards/board_card_spec.js | 65 +- spec/javascripts/boards/board_list_spec.js | 93 +- .../boards/board_new_issue_spec.js | 34 +- spec/javascripts/boards/boards_store_spec.js | 133 +- .../boards/components/board_spec.js | 41 +- .../boards/components/issue_due_date_spec.js | 64 + .../components/issue_time_estimate_spec.js | 40 + spec/javascripts/boards/issue_card_spec.js | 26 +- spec/javascripts/boards/issue_spec.js | 52 +- spec/javascripts/boards/list_spec.js | 107 +- spec/javascripts/boards/mock_data.js | 3 +- spec/javascripts/bootstrap_jquery_spec.js | 74 +- .../javascripts/bootstrap_linked_tabs_spec.js | 101 +- spec/javascripts/breakpoints_spec.js | 6 +- .../ajax_variable_list_spec.js | 66 +- .../ci_variable_list/ci_variable_list_spec.js | 26 +- .../native_form_variable_list_spec.js | 10 +- .../close_reopen_report_toggle_spec.js | 8 +- .../clusters/clusters_bundle_spec.js | 211 +- .../components/application_row_spec.js | 41 +- .../clusters/components/applications_spec.js | 12 + .../clusters/services/mock_data.js | 128 +- .../clusters/stores/clusters_store_spec.js | 20 +- .../collapsed_sidebar_todo_spec.js | 50 +- spec/javascripts/comment_type_toggle_spec.js | 114 +- .../commit_pipeline_status_component_spec.js | 35 +- .../commit/pipelines/pipelines_spec.js | 37 +- .../javascripts/commit_merge_requests_spec.js | 11 +- spec/javascripts/create_item_dropdown_spec.js | 49 +- .../create_merge_request_dropdown_spec.js | 1 + .../cycle_analytics/banner_spec.js | 23 +- spec/javascripts/datetime_utility_spec.js | 183 - .../deploy_keys/components/app_spec.js | 5 +- .../deploy_keys/components/key_spec.js | 3 + spec/javascripts/diff_comments_store_spec.js | 12 +- spec/javascripts/diffs/components/app_spec.js | 9 +- .../diffs/components/commit_item_spec.js | 3 +- .../diffs/components/compare_versions_spec.js | 126 +- .../diffs/components/diff_content_spec.js | 59 +- .../diffs/components/diff_discussions_spec.js | 78 +- .../diffs/components/diff_file_header_spec.js | 24 +- .../diffs/components/diff_file_spec.js | 33 +- .../components/diff_gutter_avatars_spec.js | 2 + .../diff_line_gutter_content_spec.js | 5 +- .../components/diff_line_note_form_spec.js | 4 + .../components/image_diff_overlay_spec.js | 146 + .../diffs/components/inline_diff_view_spec.js | 4 +- .../diffs/components/tree_list_spec.js | 72 +- .../diffs/mock_data/diff_discussions.js | 21 + spec/javascripts/diffs/mock_data/diff_file.js | 1 + .../diffs/mock_data/diff_with_commit.js | 5 +- .../diffs/mock_data/merge_request_diffs.js | 42 + spec/javascripts/diffs/store/actions_spec.js | 11 +- spec/javascripts/diffs/store/getters_spec.js | 12 +- .../javascripts/diffs/store/mutations_spec.js | 86 +- spec/javascripts/diffs/store/utils_spec.js | 31 + .../dirty_submit_collection_spec.js | 29 + .../dirty_submit/dirty_submit_factory_spec.js | 18 + .../dirty_submit/dirty_submit_form_spec.js | 36 + spec/javascripts/dirty_submit/helper.js | 31 + spec/javascripts/droplab/drop_down_spec.js | 251 +- spec/javascripts/droplab/hook_spec.js | 34 +- .../droplab/plugins/ajax_filter_spec.js | 10 +- spec/javascripts/droplab/plugins/ajax_spec.js | 7 +- .../droplab/plugins/input_setter_spec.js | 100 +- spec/javascripts/dropzone_input_spec.js | 6 +- spec/javascripts/emoji_spec.js | 62 +- .../environments/emtpy_state_spec.js | 23 +- .../environments/environment_actions_spec.js | 123 +- .../environments/environment_item_spec.js | 56 +- .../environments/environments_app_spec.js | 104 +- .../environments/environments_store_spec.js | 15 + .../folder/environments_folder_view_spec.js | 104 +- .../feature_highlight_helper_spec.js | 17 +- .../feature_highlight_spec.js | 8 +- .../recent_searches_dropdown_content_spec.js | 26 +- .../filtered_search/dropdown_user_spec.js | 9 +- .../filtered_search/dropdown_utils_spec.js | 108 +- .../filtered_search_manager_spec.js | 48 +- .../filtered_search_token_keys_spec.js | 81 +- .../filtered_search_tokenizer_spec.js | 38 +- .../filtered_search_visual_tokens_spec.js | 250 +- .../recent_searches_root_spec.js | 2 +- .../services/recent_searches_service_spec.js | 27 +- .../stores/recent_searches_store_spec.js | 10 +- spec/javascripts/fixtures/groups.rb | 10 + spec/javascripts/fixtures/jobs.rb | 23 +- spec/javascripts/flash_spec.js | 147 +- spec/javascripts/fly_out_nav_spec.js | 127 +- .../frequent_items/components/app_spec.js | 3 +- .../frequent_items_list_item_spec.js | 6 + .../components/frequent_items_list_spec.js | 6 + .../frequent_items_search_input_spec.js | 1 + spec/javascripts/gfm_auto_complete_spec.js | 96 +- spec/javascripts/gl_dropdown_spec.js | 106 +- spec/javascripts/gl_field_errors_spec.js | 41 +- spec/javascripts/gl_form_spec.js | 7 +- spec/javascripts/gpg_badges_spec.js | 2 + .../stat_graph_contributors_graph_spec.js | 106 +- .../graphs/stat_graph_contributors_spec.js | 4 +- .../stat_graph_contributors_util_spec.js | 245 +- .../javascripts/groups/components/app_spec.js | 25 + .../groups/components/group_folder_spec.js | 3 +- .../groups/components/group_item_spec.js | 15 +- .../groups/components/groups_spec.js | 17 +- .../groups/components/item_actions_spec.js | 9 +- .../groups/components/item_caret_spec.js | 3 + .../groups/components/item_stats_spec.js | 25 +- .../components/item_stats_value_spec.js | 6 +- .../groups/components/item_type_icon_spec.js | 5 + spec/javascripts/groups/mock_data.js | 3 +- .../groups/service/groups_service_spec.js | 3 + .../groups/store/groups_store_spec.js | 29 +- spec/javascripts/header_spec.js | 5 +- .../helpers/class_spec_helper_spec.js | 6 +- spec/javascripts/helpers/locale_helper.js | 2 +- .../helpers/set_timeout_promise_helper.js | 7 +- .../helpers/user_mock_data_helper.js | 14 +- .../helpers/vue_resource_helper.js | 2 +- .../ide/components/branches/item_spec.js | 5 +- .../components/branches/search_list_spec.js | 5 +- .../commit_sidebar/message_field_spec.js | 23 +- .../ide/components/file_finder/index_spec.js | 9 +- spec/javascripts/ide/components/ide_spec.js | 9 +- .../ide/components/ide_status_bar_spec.js | 5 +- .../ide/components/jobs/detail_spec.js | 3 +- .../components/merge_requests/item_spec.js | 5 +- .../components/merge_requests/list_spec.js | 5 +- .../ide/components/new_dropdown/index_spec.js | 1 + .../components/new_dropdown/upload_spec.js | 40 +- .../ide/components/preview/clientside_spec.js | 3 +- .../ide/components/repo_editor_spec.js | 12 +- .../components/shared/tokened_input_spec.js | 5 +- .../ide/stores/actions/merge_request_spec.js | 36 +- .../ide/stores/actions/project_spec.js | 5 +- .../ide/stores/actions/tree_spec.js | 1 + spec/javascripts/ide/stores/actions_spec.js | 2 - .../stores/modules/branches/actions_spec.js | 1 - .../modules/file_templates/mutations_spec.js | 8 + .../ide/stores/modules/pane/actions_spec.js | 27 +- .../ide/stores/modules/pane/getters_spec.js | 10 +- .../stores/mutations/merge_request_spec.js | 2 + .../image_diff/helpers/badge_helper_spec.js | 1 + .../helpers/comment_indicator_helper_spec.js | 7 +- .../image_diff/helpers/dom_helper_spec.js | 2 + .../image_diff/helpers/utils_helper_spec.js | 18 +- .../image_diff/image_badge_spec.js | 30 +- .../javascripts/image_diff/image_diff_spec.js | 20 +- .../image_diff/init_discussion_tab_spec.js | 15 +- .../image_diff/replaced_image_diff_spec.js | 95 +- spec/javascripts/importer_status_spec.js | 64 +- .../integration_settings_form_spec.js | 82 +- spec/javascripts/issuable_spec.js | 5 +- .../issue_show/components/app_spec.js | 275 +- .../issue_show/components/description_spec.js | 49 +- .../components/edit_actions_spec.js | 65 +- .../components/fields/description_spec.js | 24 +- .../fields/description_template_spec.js | 16 +- .../components/fields/title_spec.js | 12 +- .../issue_show/components/form_spec.js | 22 +- .../issue_show/components/title_spec.js | 21 +- spec/javascripts/issue_spec.js | 20 +- spec/javascripts/job_spec.js | 295 - .../jobs/components/commit_block_spec.js | 2 + .../jobs/components/empty_state_spec.js | 2 + .../components/environments_block_spec.js | 3 + .../jobs/components/job_app_spec.js | 782 +- .../components/job_container_item_spec.js | 99 + .../components/job_log_controllers_spec.js | 2 + .../jobs/components/job_log_spec.js | 44 +- .../components/sidebar_detail_row_spec.js | 6 +- .../jobs/components/sidebar_spec.js | 18 +- .../jobs/components/trigger_block_spec.js | 13 +- .../jobs/mixins/delayed_job_mixin_spec.js | 93 + spec/javascripts/jobs/mock_data.js | 6 +- spec/javascripts/jobs/store/actions_spec.js | 180 +- spec/javascripts/jobs/store/getters_spec.js | 63 +- spec/javascripts/jobs/store/helpers.js | 6 + spec/javascripts/jobs/store/mutations_spec.js | 68 +- spec/javascripts/labels_issue_sidebar_spec.js | 152 +- spec/javascripts/labels_select_spec.js | 14 +- spec/javascripts/landing_spec.js | 70 +- spec/javascripts/lib/utils/accessor_spec.js | 14 +- spec/javascripts/lib/utils/ajax_cache_spec.js | 66 +- .../lib/utils/common_utils_spec.js | 246 +- spec/javascripts/lib/utils/csrf_token_spec.js | 5 +- spec/javascripts/lib/utils/datefix_spec.js | 27 - .../lib/utils/datetime_utility_spec.js | 378 + spec/javascripts/lib/utils/dom_utils_spec.js | 2 + spec/javascripts/lib/utils/mock_data.js | 9 +- .../lib/utils/number_utility_spec.js | 12 +- spec/javascripts/lib/utils/poll_spec.js | 26 +- spec/javascripts/lib/utils/sticky_spec.js | 29 +- .../lib/utils/text_markdown_spec.js | 95 +- .../lib/utils/text_utility_spec.js | 2 +- .../javascripts/lib/utils/users_cache_spec.js | 52 +- spec/javascripts/line_highlighter_spec.js | 441 +- .../locale/ensure_single_line_spec.js | 3 + spec/javascripts/merge_request_spec.js | 211 +- .../mini_pipeline_graph_dropdown_spec.js | 12 +- spec/javascripts/monitoring/dashboard_spec.js | 18 + .../monitoring/dashboard_state_spec.js | 28 +- .../monitoring/graph/deployment_spec.js | 6 +- .../javascripts/monitoring/graph/flag_spec.js | 33 +- .../javascripts/monitoring/graph_path_spec.js | 4 +- spec/javascripts/monitoring/graph_spec.js | 3 + .../monitoring/monitoring_store_spec.js | 4 +- spec/javascripts/new_branch_spec.js | 355 +- spec/javascripts/notebook/cells/code_spec.js | 4 +- .../notebook/cells/markdown_spec.js | 30 +- .../cells/output/html_sanitize_tests.js | 8 +- .../notebook/cells/output/html_spec.js | 2 +- .../notebook/cells/output/index_spec.js | 14 +- .../javascripts/notebook/cells/prompt_spec.js | 4 +- spec/javascripts/notebook/index_spec.js | 10 +- .../notes/components/comment_form_spec.js | 12 +- .../notes/components/diff_with_note_spec.js | 2 +- .../components/discussion_filter_spec.js | 86 + .../notes/components/note_actions_spec.js | 2 +- .../notes/components/note_app_spec.js | 9 + .../notes/components/note_form_spec.js | 2 + .../components/noteable_discussion_spec.js | 70 +- .../notes/components/noteable_note_spec.js | 1 + .../components/toggle_replies_widget_spec.js | 78 + spec/javascripts/notes/helpers.js | 2 +- spec/javascripts/notes/mock_data.js | 15 + spec/javascripts/notes/stores/actions_spec.js | 13 + .../notes/stores/collapse_utils_spec.js | 13 +- spec/javascripts/notes/stores/getters_spec.js | 1 + .../javascripts/notes/stores/mutation_spec.js | 27 +- spec/javascripts/notes_spec.js | 1859 +- spec/javascripts/oauth_remember_me_spec.js | 9 +- spec/javascripts/pager_spec.js | 5 + .../admin/abuse_reports/abuse_reports_spec.js | 14 +- .../account_and_limits_spec.js | 9 +- .../index/components/stop_jobs_modal_spec.js | 20 +- .../pages/admin/users/new/index_spec.js | 4 +- .../components/promote_label_modal_spec.js | 36 +- .../components/delete_milestone_modal_spec.js | 43 +- .../promote_milestone_modal_spec.js | 36 +- .../pages/profiles/show/emoji_menu_spec.js | 2 + .../components/interval_pattern_input_spec.js | 74 +- .../pipeline_schedule_callout_spec.js | 8 +- spec/javascripts/pdf/index_spec.js | 6 +- spec/javascripts/pdf/page_spec.js | 1 + .../components/detailed_metric_spec.js | 8 +- .../components/request_selector_spec.js | 3 +- .../javascripts/performance_bar/index_spec.js | 5 +- .../services/performance_bar_service_spec.js | 37 +- .../javascripts/pipelines/blank_state_spec.js | 14 +- .../javascripts/pipelines/empty_state_spec.js | 27 +- .../pipelines/graph/action_component_spec.js | 18 +- .../pipelines/graph/graph_component_spec.js | 8 +- ...ent_spec.js => job_group_dropdown_spec.js} | 18 +- ...job_component_spec.js => job_item_spec.js} | 69 +- .../graph/stage_column_component_spec.js | 17 +- .../pipelines/header_component_spec.js | 9 +- .../pipelines/nav_controls_spec.js | 12 +- .../pipelines/pipeline_store_spec.js | 1 + .../pipelines/pipeline_url_spec.js | 8 +- .../pipelines/pipelines_actions_spec.js | 8 +- .../pipelines/pipelines_artifacts_spec.js | 16 +- spec/javascripts/pipelines/pipelines_spec.js | 204 +- .../pipelines/pipelines_store_spec.js | 5 + .../pipelines/pipelines_table_row_spec.js | 15 +- .../pipelines/pipelines_table_spec.js | 20 +- spec/javascripts/pipelines/stage_spec.js | 16 +- spec/javascripts/pipelines_spec.js | 4 +- spec/javascripts/polyfills/element_spec.js | 2 +- spec/javascripts/pretty_time_spec.js | 133 - .../components/delete_account_modal_spec.js | 16 +- .../components/update_username_spec.js | 7 +- .../project_select_combo_button_spec.js | 56 +- .../gke_machine_type_dropdown_spec.js | 20 +- .../gke_project_id_dropdown_spec.js | 60 +- .../components/gke_zone_dropdown_spec.js | 20 +- spec/javascripts/projects/project_new_spec.js | 5 +- .../prometheus_metrics_spec.js | 18 +- spec/javascripts/raven/raven_config_spec.js | 2 +- .../registry/components/app_spec.js | 53 +- .../components/collapsible_container_spec.js | 16 +- .../components/table_registry_spec.js | 14 +- spec/javascripts/registry/getters_spec.js | 41 +- spec/javascripts/registry/mock_data.js | 3 +- .../registry/stores/mutations_spec.js | 4 + .../grouped_test_reports_app_spec.js | 8 +- .../reports/components/modal_spec.js | 17 +- .../reports/components/report_link_spec.js | 6 +- .../reports/components/report_section_spec.js | 5 +- .../components/test_issue_body_spec.js | 1 + .../reports/store/mutations_spec.js | 2 + spec/javascripts/right_sidebar_spec.js | 145 +- spec/javascripts/search_autocomplete_spec.js | 13 +- spec/javascripts/search_spec.js | 10 +- spec/javascripts/settings_panels_spec.js | 30 +- spec/javascripts/shared/popover_spec.js | 34 +- spec/javascripts/sidebar/assignees_spec.js | 94 +- .../time_tracking/time_tracker_spec.js | 23 +- .../sidebar/confidential_edit_buttons_spec.js | 12 +- .../confidential_edit_form_buttons_spec.js | 12 +- .../confidential_issue_sidebar_spec.js | 32 +- .../sidebar/lock/edit_form_buttons_spec.js | 12 +- .../sidebar/lock/edit_form_spec.js | 12 +- .../sidebar/lock/lock_issue_sidebar_spec.js | 28 +- spec/javascripts/sidebar/participants_spec.js | 17 +- .../sidebar/sidebar_assignees_spec.js | 16 +- .../sidebar/sidebar_mediator_spec.js | 33 +- .../sidebar/sidebar_move_issue_spec.js | 24 +- .../javascripts/sidebar/sidebar_store_spec.js | 18 +- .../sidebar/sidebar_subscriptions_spec.js | 2 +- .../javascripts/sidebar/subscriptions_spec.js | 16 +- spec/javascripts/sidebar/todo_spec.js | 15 +- spec/javascripts/signin_tabs_memoizer_spec.js | 280 +- spec/javascripts/smart_interval_spec.js | 43 +- spec/javascripts/syntax_highlight_spec.js | 27 +- spec/javascripts/todos_spec.js | 4 +- spec/javascripts/toggle_buttons_spec.js | 18 +- spec/javascripts/u2f/authenticate_spec.js | 36 +- spec/javascripts/u2f/mock_u2f_device.js | 14 +- spec/javascripts/u2f/register_spec.js | 29 +- spec/javascripts/u2f/util_spec.js | 32 +- spec/javascripts/version_check_image_spec.js | 14 +- .../components/deployment_spec.js | 208 +- .../components/mr_widget_author_spec.js | 10 +- .../components/mr_widget_author_time_spec.js | 8 +- .../components/mr_widget_header_spec.js | 25 +- .../components/mr_widget_memory_usage_spec.js | 55 +- .../components/mr_widget_merge_help_spec.js | 32 +- .../components/mr_widget_pipeline_spec.js | 79 +- .../components/mr_widget_rebase_spec.js | 13 +- .../mr_widget_related_links_spec.js | 5 +- .../components/mr_widget_status_icon_spec.js | 4 + .../components/review_app_link_spec.js | 38 + .../states/mr_widget_archived_spec.js | 6 +- .../mr_widget_auto_merge_failed_spec.js | 6 +- .../states/mr_widget_checking_spec.js | 4 +- .../states/mr_widget_closed_spec.js | 55 +- .../states/mr_widget_conflicts_spec.js | 10 +- .../states/mr_widget_failed_to_merge_spec.js | 2 + ...idget_merge_when_pipeline_succeeds_spec.js | 56 +- .../states/mr_widget_merged_spec.js | 60 +- .../states/mr_widget_merging_spec.js | 27 +- .../states/mr_widget_missing_branch_spec.js | 1 + .../states/mr_widget_not_allowed_spec.js | 4 +- .../states/mr_widget_nothing_to_merge_spec.js | 5 +- .../states/mr_widget_pipeline_blocked_spec.js | 6 +- .../states/mr_widget_pipeline_failed_spec.js | 6 +- .../states/mr_widget_ready_to_merge_spec.js | 136 +- .../states/mr_widget_sha_mismatch_spec.js | 6 +- .../mr_widget_unresolved_discussions_spec.js | 18 +- .../components/states/mr_widget_wip_spec.js | 22 +- spec/javascripts/vue_mr_widget/mock_data.js | 4 +- .../vue_mr_widget/mr_widget_options_spec.js | 297 +- .../stores/get_state_key_spec.js | 14 + .../stores/mr_widget_store_spec.js | 10 + .../vue_shared/components/bar_chart_spec.js | 6 - .../components/ci_badge_link_spec.js | 6 +- .../components/clipboard_button_spec.js | 1 + .../vue_shared/components/commit_spec.js | 7 +- .../content_viewer/content_viewer_spec.js | 2 +- .../components/deprecated_modal_spec.js | 12 +- .../diff_viewer/diff_viewer_spec.js | 5 +- .../viewers/image_diff_viewer_spec.js | 38 +- .../dropdown/dropdown_button_spec.js | 10 +- .../vue_shared/components/file_icon_spec.js | 18 +- .../vue_shared/components/file_row_spec.js | 36 + .../filtered_search_dropdown_spec.js | 91 + .../components/gl_countdown_spec.js | 77 + .../vue_shared/components/gl_modal_spec.js | 7 + .../components/header_ci_component_spec.js | 12 +- .../vue_shared/components/icon_spec.js | 17 +- .../vue_shared/components/identicon_spec.js | 2 +- .../components/issue/issue_warning_spec.js | 17 +- .../components/loading_button_spec.js | 4 +- .../components/markdown/field_spec.js | 77 +- .../components/markdown/header_spec.js | 23 +- .../components/markdown/toolbar_spec.js | 9 +- .../components/memory_graph_spec.js | 16 +- .../components/navigation_tabs_spec.js | 5 +- .../components/notes/placeholder_note_spec.js | 2 + .../notes/placeholder_system_note_spec.js | 4 +- .../components/pagination_links_spec.js | 35 +- .../components/panel_resizer_spec.js | 27 +- .../vue_shared/components/pikaday_spec.js | 1 + .../sidebar/collapsed_calendar_icon_spec.js | 1 + .../collapsed_grouped_date_picker_spec.js | 34 +- .../components/sidebar/date_picker_spec.js | 16 +- .../sidebar/labels_select/base_spec.js | 7 + .../labels_select/dropdown_button_spec.js | 4 + .../dropdown_create_label_spec.js | 22 +- .../labels_select/dropdown_footer_spec.js | 12 +- .../labels_select/dropdown_header_spec.js | 6 +- .../dropdown_search_input_spec.js | 5 +- .../labels_select/dropdown_title_spec.js | 1 + .../dropdown_value_collapsed_spec.js | 8 +- .../labels_select/dropdown_value_spec.js | 23 +- .../components/smart_virtual_list_spec.js | 83 + .../components/stacked_progress_bar_spec.js | 23 +- .../components/table_pagination_spec.js | 7 +- .../components/time_ago_tooltip_spec.js | 7 +- .../components/toggle_button_spec.js | 2 + .../components/tooltip_on_truncate_spec.js | 16 +- .../user_avatar/user_avatar_image_spec.js | 57 +- .../user_avatar/user_avatar_link_spec.js | 59 +- .../user_avatar/user_avatar_svg_spec.js | 10 +- .../vue_shared/directives/tooltip_spec.js | 45 +- spec/javascripts/zen_mode_spec.js | 7 + .../lib/api/helpers/custom_validators_spec.rb | 64 + .../lib/banzai/filter/autolink_filter_spec.rb | 2 +- .../external_issue_reference_filter_spec.rb | 28 +- .../filter/relative_link_filter_spec.rb | 2 +- spec/lib/bitbucket_server/client_spec.rb | 12 +- spec/lib/bitbucket_server/collection_spec.rb | 29 + spec/lib/bitbucket_server/paginator_spec.rb | 10 + spec/lib/container_registry/blob_spec.rb | 2 +- spec/lib/gitaly/server_spec.rb | 8 +- ...ate_fork_network_memberships_range_spec.rb | 2 +- ...cluster_kubernetes_namespace_table_spec.rb | 97 + .../bitbucket_import/project_creator_spec.rb | 4 +- spec/lib/gitlab/blob_helper_spec.rb | 125 + .../cache/ci/project_pipeline_status_spec.rb | 26 +- spec/lib/gitlab/checks/change_access_spec.rb | 18 +- spec/lib/gitlab/checks/lfs_integrity_spec.rb | 5 +- spec/lib/gitlab/checks/timed_logger_spec.rb | 63 + spec/lib/gitlab/ci/ansi2html_spec.rb | 2 +- .../gzip_stream_spec.rb} | 2 +- .../artifacts/adapters/raw_stream_spec.rb | 47 + .../ci/build/artifacts/metadata_spec.rb | 30 + .../gitlab/ci/build/policy/variables_spec.rb | 4 +- .../lib/gitlab/ci/config/entry/global_spec.rb | 2 +- spec/lib/gitlab/ci/config/entry/job_spec.rb | 40 +- .../gitlab/ci/config/entry/reports_spec.rb | 4 +- spec/lib/gitlab/ci/config/entry/retry_spec.rb | 236 + .../ci/config/external/file/base_spec.rb | 52 + .../{ => config}/external/file/local_spec.rb | 4 +- .../{ => config}/external/file/remote_spec.rb | 51 +- .../ci/{ => config}/external/mapper_spec.rb | 8 +- .../{ => config}/external/processor_spec.rb | 26 +- spec/lib/gitlab/ci/config/normalizer_spec.rb | 66 + spec/lib/gitlab/ci/config_spec.rb | 8 +- .../gitlab/ci/status/build/factory_spec.rb | 2 +- .../gitlab/ci/status/build/scheduled_spec.rb | 20 +- .../{scheduled_spec.rb => delayed_spec.rb} | 4 +- .../gitlab/ci/status/pipeline/factory_spec.rb | 66 +- spec/lib/gitlab/ci/status/scheduled_spec.rb | 4 +- spec/lib/gitlab/ci/yaml_processor_spec.rb | 31 +- spec/lib/gitlab/conflict/file_spec.rb | 5 - .../cross_project_access/check_info_spec.rb | 4 +- .../cycle_analytics/stage_summary_spec.rb | 6 +- .../v1/rename_base_spec.rb | 2 +- spec/lib/gitlab/diff/file_spec.rb | 46 + spec/lib/gitlab/diff/lines_unfolder_spec.rb | 750 + spec/lib/gitlab/diff/position_spec.rb | 8 +- spec/lib/gitlab/diff/position_tracer_spec.rb | 2 +- .../create_merge_request_handler_spec.rb | 69 + spec/lib/gitlab/file_detector_spec.rb | 19 +- .../git/attributes_at_ref_parser_spec.rb | 2 +- spec/lib/gitlab/git/attributes_parser_spec.rb | 4 +- spec/lib/gitlab/git/blob_snippet_spec.rb | 19 - spec/lib/gitlab/git/lfs_changes_spec.rb | 4 + .../lib/gitlab/git/patches/collection_spec.rb | 28 + .../gitlab/git/patches/commit_patches_spec.rb | 49 + spec/lib/gitlab/git/patches/patch_spec.rb | 16 + spec/lib/gitlab/git/repository_spec.rb | 49 + spec/lib/gitlab/git/storage/checker_spec.rb | 132 - .../git/storage/circuit_breaker_spec.rb | 187 - .../gitlab/git/storage/failure_info_spec.rb | 70 - .../git/storage/forked_storage_check_spec.rb | 73 - spec/lib/gitlab/git/storage/health_spec.rb | 58 - .../git/storage/null_circuit_breaker_spec.rb | 70 - spec/lib/gitlab/git/wiki_spec.rb | 47 +- .../gitlab/git/wraps_gitaly_errors_spec.rb | 28 + spec/lib/gitlab/git_access_spec.rb | 10 + .../gitaly_client/operation_service_spec.rb | 33 + .../gitaly_client/repository_service_spec.rb | 61 +- spec/lib/gitlab/gon_helper_spec.rb | 32 + spec/lib/gitlab/gpg_spec.rb | 4 +- spec/lib/gitlab/highlight_spec.rb | 91 +- .../lib/gitlab/hook_data/base_builder_spec.rb | 129 +- .../gitlab/hook_data/issue_builder_spec.rb | 5 +- .../hook_data/merge_request_builder_spec.rb | 7 +- spec/lib/gitlab/http_spec.rb | 26 + spec/lib/gitlab/identifier_spec.rb | 49 +- spec/lib/gitlab/import_export/all_models.yml | 4 +- .../attribute_configuration_spec.rb | 15 +- .../project_tree_restorer_spec.rb | 4 +- .../kubernetes/helm/install_command_spec.rb | 57 +- spec/lib/gitlab/kubernetes/helm/pod_spec.rb | 2 +- .../lib/gitlab/kubernetes/kube_client_spec.rb | 113 +- .../gitlab/kubernetes/role_binding_spec.rb | 48 + spec/lib/gitlab/language_data_spec.rb | 22 + spec/lib/gitlab/patch/draw_route_spec.rb | 30 + spec/lib/gitlab/private_commit_email_spec.rb | 41 + .../gitlab/quick_actions/extractor_spec.rb | 19 + spec/lib/gitlab/shell_spec.rb | 120 - .../lib/gitlab/slash_commands/command_spec.rb | 2 +- spec/lib/gitlab/slash_commands/deploy_spec.rb | 2 +- spec/lib/gitlab/storage_check/cli_spec.rb | 19 - .../storage_check/gitlab_caller_spec.rb | 46 - .../storage_check/option_parser_spec.rb | 31 - .../lib/gitlab/storage_check/response_spec.rb | 54 - .../finders/global_template_finder_spec.rb | 35 + .../finders/repo_template_finders_spec.rb | 4 + spec/lib/gitlab/usage_data_spec.rb | 17 +- spec/lib/gitlab/utils_spec.rb | 49 +- spec/lib/gitlab/view/presenter/base_spec.rb | 2 +- spec/lib/microsoft_teams/notifier_spec.rb | 2 +- spec/lib/quality/helm_client_spec.rb | 103 +- spec/lib/quality/kubernetes_client_spec.rb | 34 +- ...e_inconsistent_internal_id_records_spec.rb | 15 + ...l_empty_finished_at_in_deployments_spec.rb | 70 + spec/migrations/migrate_old_artifacts_spec.rb | 2 +- ...rename_more_reserved_project_names_spec.rb | 11 +- .../rename_reserved_project_names_spec.rb | 11 +- .../steal_fill_store_upload_spec.rb | 40 + spec/models/application_setting_spec.rb | 44 +- spec/models/board_group_recent_visit_spec.rb | 64 + .../models/board_project_recent_visit_spec.rb | 64 + spec/models/ci/build_spec.rb | 410 +- spec/models/ci/job_artifact_spec.rb | 8 + spec/models/ci/pipeline_spec.rb | 53 + .../clusters/applications/ingress_spec.rb | 26 +- .../clusters/applications/jupyter_spec.rb | 24 +- .../clusters/applications/knative_spec.rb | 77 + .../clusters/applications/prometheus_spec.rb | 36 +- .../clusters/applications/runner_spec.rb | 32 +- spec/models/clusters/cluster_spec.rb | 82 +- spec/models/clusters/group_spec.rb | 8 + .../clusters/kubernetes_namespace_spec.rb | 123 + .../clusters/platforms/kubernetes_spec.rb | 166 +- spec/models/clusters/project_spec.rb | 2 + spec/models/compare_spec.rb | 29 + spec/models/concerns/awardable_spec.rb | 18 +- .../blob_language_from_git_attributes_spec.rb | 25 + .../concerns/cacheable_attributes_spec.rb | 4 +- spec/models/concerns/deployable_spec.rb | 74 + spec/models/concerns/each_batch_spec.rb | 69 +- spec/models/concerns/issuable_spec.rb | 4 +- .../concerns/relative_positioning_spec.rb | 34 +- spec/models/deployment_spec.rb | 215 +- spec/models/environment_spec.rb | 146 +- spec/models/environment_status_spec.rb | 165 + spec/models/forked_project_link_spec.rb | 68 - spec/models/global_milestone_spec.rb | 35 - spec/models/group_spec.rb | 18 +- spec/models/lfs_object_spec.rb | 21 +- spec/models/merge_request_diff_spec.rb | 46 +- spec/models/merge_request_spec.rb | 114 +- spec/models/milestone_spec.rb | 37 + spec/models/namespace_spec.rb | 11 + spec/models/note_spec.rb | 24 + .../postgresql/replication_slot_spec.rb | 20 + .../project_services/bamboo_service_spec.rb | 3 +- .../kubernetes_service_spec.rb | 6 +- .../prometheus_service_spec.rb | 23 +- spec/models/project_spec.rb | 395 +- spec/models/project_wiki_spec.rb | 4 +- spec/models/repository_spec.rb | 55 +- spec/models/shard_spec.rb | 50 + spec/models/site_statistic_spec.rb | 81 - spec/models/snippet_spec.rb | 211 + spec/models/ssh_host_key_spec.rb | 164 + spec/models/todo_spec.rb | 125 + spec/models/upload_spec.rb | 64 +- spec/models/user_preference_spec.rb | 53 + spec/models/user_spec.rb | 88 +- spec/models/wiki_page_spec.rb | 53 +- spec/presenters/blob_presenter_spec.rb | 44 + spec/presenters/ci/build_presenter_spec.rb | 4 +- .../ci/build_runner_presenter_spec.rb | 28 +- spec/presenters/clusterable_presenter_spec.rb | 17 + .../clusters/cluster_presenter_spec.rb | 14 +- .../project_clusterable_presenter_spec.rb | 77 + spec/presenters/project_presenter_spec.rb | 33 +- spec/rack_servers/configs/config.ru | 12 + spec/rack_servers/configs/puma.rb | 32 + spec/rack_servers/puma_spec.rb | 84 + .../{unicorn => rack_servers}/unicorn_spec.rb | 33 +- spec/requests/api/applications_spec.rb | 70 +- spec/requests/api/circuit_breakers_spec.rb | 19 +- spec/requests/api/commits_spec.rb | 114 +- spec/requests/api/deployments_spec.rb | 12 +- spec/requests/api/helpers_spec.rb | 16 + spec/requests/api/internal_spec.rb | 18 + spec/requests/api/issues_spec.rb | 108 +- spec/requests/api/merge_requests_spec.rb | 17 + spec/requests/api/projects_spec.rb | 40 +- spec/requests/api/repositories_spec.rb | 4 +- spec/requests/api/runner_spec.rb | 18 + spec/requests/api/settings_spec.rb | 21 +- spec/requests/api/submodules_spec.rb | 99 + spec/requests/api/users_spec.rb | 43 + spec/routing/routing_spec.rb | 7 - .../cop/qa/element_with_pattern_spec.rb | 50 + spec/rubocop/qa_helpers_spec.rb | 37 + spec/serializers/build_action_entity_spec.rb | 4 + spec/serializers/deployment_entity_spec.rb | 22 + .../serializers/deployment_serializer_spec.rb | 35 + .../environment_serializer_spec.rb | 3 +- .../environment_status_entity_spec.rb | 87 + spec/serializers/job_entity_spec.rb | 1 + .../merge_request_widget_entity_spec.rb | 42 +- .../update_service_spec.rb | 3 + .../applications/create_service_spec.rb | 13 +- spec/services/audit_event_service_spec.rb | 26 + .../boards/visits/create_service_spec.rb | 53 + .../boards/visits/latest_service_spec.rb | 47 + .../ci/create_pipeline_service_spec.rb | 93 +- .../services/ci/process_build_service_spec.rb | 258 +- .../ci/process_pipeline_service_spec.rb | 4 +- spec/services/ci/register_job_service_spec.rb | 14 + spec/services/ci/retry_build_service_spec.rb | 3 +- .../ci/run_scheduled_build_service_spec.rb | 4 - .../applications/create_service_spec.rb | 104 + .../schedule_installation_service_spec.rb | 7 +- spec/services/clusters/create_service_spec.rb | 31 +- .../gcp/fetch_operation_service_spec.rb | 2 +- .../gcp/finalize_creation_service_spec.rb | 284 +- ...create_or_update_namespace_service_spec.rb | 115 + .../create_service_account_service_spec.rb | 206 +- .../fetch_kubernetes_token_service_spec.rb | 51 +- .../clusters/gcp/provision_service_spec.rb | 2 +- spec/services/clusters/update_service_spec.rb | 9 +- .../commits/commit_patch_service_spec.rb | 92 + .../create_deployment_service_spec.rb | 335 - spec/services/groups/transfer_service_spec.rb | 4 +- spec/services/groups/update_service_spec.rb | 6 + .../issuable/bulk_update_service_spec.rb | 2 +- spec/services/issues/update_service_spec.rb | 48 +- .../merge_requests/build_service_spec.rb | 8 + .../merge_requests/refresh_service_spec.rb | 60 + .../reload_diffs_service_spec.rb | 32 +- .../merge_requests/update_service_spec.rb | 50 +- .../milestones/destroy_service_spec.rb | 2 +- spec/services/notes/create_service_spec.rb | 51 + spec/services/notes/destroy_service_spec.rb | 33 + .../notes/quick_actions_service_spec.rb | 2 +- spec/services/notification_service_spec.rb | 160 + .../projects/after_rename_service_spec.rb | 198 + spec/services/projects/create_service_spec.rb | 11 + .../services/projects/destroy_service_spec.rb | 1 - spec/services/projects/fork_service_spec.rb | 25 +- spec/services/projects/import_service_spec.rb | 4 +- .../projects/transfer_service_spec.rb | 2 +- .../projects/unlink_fork_service_spec.rb | 9 +- .../quick_actions/interpret_service_spec.rb | 94 +- .../merge_into_notes_service_spec.rb | 9 + .../submodules/update_service_spec.rb | 212 + spec/services/todo_service_spec.rb | 2 +- .../update_deployment_service_spec.rb | 217 + spec/services/web_hook_service_spec.rb | 2 +- spec/support/capybara.rb | 2 +- ...ubish_import_controller_shared_examples.rb | 12 + .../discussion_comments_shared_example.rb | 14 +- .../reportable_note_shared_examples.rb | 4 +- .../features/variable_list_shared_examples.rb | 2 +- .../helpers/ci_artifact_metadata_generator.rb | 48 + .../helpers/cycle_analytics_helpers.rb | 8 +- spec/support/helpers/devise_helpers.rb | 9 +- .../helpers/filtered_search_helpers.rb | 8 +- spec/support/helpers/kubernetes_helpers.rb | 23 +- spec/support/helpers/migrations_helpers.rb | 22 +- spec/support/helpers/project_forks_helper.rb | 4 +- spec/support/helpers/seed_helper.rb | 20 +- spec/support/helpers/test_env.rb | 19 +- spec/support/helpers/test_request_helpers.rb | 11 + spec/support/helpers/wiki_helpers.rb | 13 + .../issuable_notes_filter_shared_examples.rb | 66 + .../dirty_submit_form_shared_examples.rb | 24 + .../shared_examples/helm_generated_script.rb | 6 - ...luster_application_core_shared_examples.rb | 56 - .../cluster_application_helm_cert_examples.rb | 25 + ...ster_application_status_shared_examples.rb | 83 + .../shared_examples/notify_shared_examples.rb | 17 + .../requests/api/merge_requests_list.rb | 7 +- .../services/boards/issues_move_service.rb | 2 +- .../services/boards/lists_move_service.rb | 12 +- spec/support/stored_repositories.rb | 23 - spec/tasks/gitlab/backup_rake_spec.rb | 2 +- .../tasks/gitlab/site_statistics_rake_spec.rb | 23 - .../tasks/gitlab/uploads/migrate_rake_spec.rb | 8 - .../projects/blob/_viewer.html.haml_spec.rb | 2 + .../_more_actions_dropdown.html.haml_spec.rb | 8 +- ...ml_spec.rb => _tree_row.html.haml_spec.rb} | 9 +- .../shared/runners/show.html.haml_spec.rb | 155 + spec/workers/build_success_worker_spec.rb | 54 +- .../cluster_platform_configure_worker_spec.rb | 47 + spec/workers/cluster_provision_worker_spec.rb | 9 +- .../deployments/success_worker_spec.rb | 36 + spec/workers/email_receiver_worker_spec.rb | 15 + ...mespaceless_project_destroy_worker_spec.rb | 4 +- spec/workers/post_receive_spec.rb | 159 +- spec/workers/rebase_worker_spec.rb | 12 +- .../repository_check/batch_worker_spec.rb | 2 +- spec/workers/repository_fork_worker_spec.rb | 32 +- spec/workers/stuck_import_jobs_worker_spec.rb | 22 +- vendor/gitignore/Android.gitignore | 4 +- vendor/gitignore/Delphi.gitignore | 3 + vendor/gitignore/Elixir.gitignore | 1 + vendor/gitignore/Global/Images.gitignore | 63 + vendor/gitignore/Global/NetBeans.gitignore | 2 +- vendor/gitignore/Global/PSoCCreator.gitignore | 18 + vendor/gitignore/Global/Xcode.gitignore | 74 +- vendor/gitignore/Laravel.gitignore | 2 +- vendor/gitignore/Magento.gitignore | 2 + vendor/gitignore/Node.gitignore | 3 + vendor/gitignore/Python.gitignore | 3 + vendor/gitignore/Rails.gitignore | 1 + vendor/gitignore/Unity.gitignore | 1 + vendor/jupyter/values.yaml | 2 +- vendor/languages.yml | 5488 + vendor/licenses.csv | 54 +- vendor/prometheus/values.yaml | 4 +- yarn.lock | 223 +- 3195 files changed, 301857 insertions(+), 41743 deletions(-) rename .gitlab/{CODEOWNERS => CODEOWNERS.disabled} (100%) create mode 100644 Dockerfile.assets create mode 100644 app/assets/images/cluster_app_logos/knative.png delete mode 100644 app/assets/images/koding-logo.svg create mode 100644 app/assets/javascripts/boards/components/issue_due_date.vue create mode 100644 app/assets/javascripts/boards/components/issue_time_estimate.vue delete mode 100644 app/assets/javascripts/commons/gitlab_ui.js create mode 100644 app/assets/javascripts/diffs/components/image_diff_overlay.vue create mode 100644 app/assets/javascripts/dirty_submit/dirty_submit_collection.js create mode 100644 app/assets/javascripts/dirty_submit/dirty_submit_factory.js create mode 100644 app/assets/javascripts/dirty_submit/dirty_submit_form.js create mode 100644 app/assets/javascripts/dismissable_callout.js delete mode 100644 app/assets/javascripts/job.js create mode 100644 app/assets/javascripts/jobs/components/job_container_item.vue create mode 100644 app/assets/javascripts/jobs/index.js delete mode 100644 app/assets/javascripts/jobs/job_details_bundle.js create mode 100644 app/assets/javascripts/jobs/mixins/delayed_job_mixin.js create mode 100644 app/assets/javascripts/jobs/svg/scroll_down.svg create mode 100644 app/assets/javascripts/lib/utils/ace_utils.js delete mode 100644 app/assets/javascripts/lib/utils/datefix.js delete mode 100644 app/assets/javascripts/lib/utils/pretty_time.js create mode 100644 app/assets/javascripts/notes/components/discussion_filter.vue create mode 100644 app/assets/javascripts/notes/components/toggle_replies_widget.vue create mode 100644 app/assets/javascripts/notes/discussion_filters.js delete mode 100644 app/assets/javascripts/pages/projects/clusters/gcp/new/index.js create mode 100644 app/assets/javascripts/pages/projects/jobs/index/index.js delete mode 100644 app/assets/javascripts/pages/root/index.js delete mode 100644 app/assets/javascripts/persistent_user_callout.js rename app/assets/javascripts/pipelines/components/graph/{dropdown_job_component.vue => job_group_dropdown.vue} (64%) rename app/assets/javascripts/pipelines/components/graph/{job_component.vue => job_item.vue} (83%) rename app/assets/javascripts/reports/components/{report_issues.vue => report_item.vue} (52%) create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/review_app_link.vue delete mode 100644 app/assets/javascripts/vue_merge_request_widget/dependencies.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/ee_switch_mr_widget_options.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/services/ee_switch_mr_widget_service.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/stores/ee_switch_get_state_key.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/stores/ee_switch_mr_widget_store.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/stores/ee_switch_state_maps.js create mode 100644 app/assets/javascripts/vue_shared/components/filtered_search_dropdown.vue create mode 100644 app/assets/javascripts/vue_shared/components/gl_countdown.vue create mode 100644 app/assets/javascripts/vue_shared/components/smart_virtual_list.vue create mode 100644 app/assets/stylesheets/framework/page_title.scss create mode 100644 app/controllers/chaos_controller.rb create mode 100644 app/controllers/clusters/applications_controller.rb create mode 100644 app/controllers/clusters/base_controller.rb create mode 100644 app/controllers/clusters/clusters_controller.rb create mode 100644 app/controllers/concerns/project_unauthorized.rb delete mode 100644 app/controllers/koding_controller.rb create mode 100644 app/finders/applications_finder.rb create mode 100644 app/finders/pending_todos_finder.rb create mode 100644 app/finders/users_with_pending_todos_finder.rb delete mode 100644 app/helpers/storage_health_helper.rb create mode 100644 app/models/board_group_recent_visit.rb create mode 100644 app/models/board_project_recent_visit.rb create mode 100644 app/models/clusters/applications/knative.rb create mode 100644 app/models/clusters/group.rb create mode 100644 app/models/clusters/kubernetes_namespace.rb create mode 100644 app/models/concerns/blob_language_from_git_attributes.rb create mode 100644 app/models/concerns/deployable.rb create mode 100644 app/models/environment_status.rb delete mode 100644 app/models/forked_project_link.rb create mode 100644 app/models/members_preloader.rb create mode 100644 app/models/pool_repository.rb create mode 100644 app/models/shard.rb delete mode 100644 app/models/site_statistic.rb create mode 100644 app/models/ssh_host_key.rb create mode 100644 app/models/user_preference.rb create mode 100644 app/presenters/blob_presenter.rb create mode 100644 app/presenters/clusterable_presenter.rb create mode 100644 app/presenters/project_clusterable_presenter.rb create mode 100644 app/serializers/current_user_entity.rb create mode 100644 app/serializers/environment_status_entity.rb create mode 100644 app/serializers/environment_status_serializer.rb create mode 100644 app/serializers/user_preference_entity.rb create mode 100644 app/services/boards/visits/create_service.rb create mode 100644 app/services/boards/visits/latest_service.rb create mode 100644 app/services/clusters/applications/create_service.rb create mode 100644 app/services/clusters/gcp/kubernetes/create_or_update_namespace_service.rb create mode 100644 app/services/commits/commit_patch_service.rb delete mode 100644 app/services/create_deployment_service.rb create mode 100644 app/services/notes/base_service.rb create mode 100644 app/services/projects/after_rename_service.rb create mode 100644 app/services/submodules/update_service.rb create mode 100644 app/services/update_deployment_service.rb delete mode 100644 app/views/admin/application_settings/_koding.html.haml delete mode 100644 app/views/admin/health_check/_failing_storages.html.haml rename app/views/{projects => clusters}/clusters/_advanced_settings.html.haml (68%) rename app/views/{projects => clusters}/clusters/_banner.html.haml (50%) rename app/views/{projects => clusters}/clusters/_cluster.html.haml (86%) rename app/views/{projects => clusters}/clusters/_empty_state.html.haml (84%) rename app/views/{projects => clusters}/clusters/_gcp_signup_offer_banner.html.haml (81%) rename app/views/{projects => clusters}/clusters/_integration_form.html.haml (89%) rename app/views/{projects => clusters}/clusters/_sidebar.html.haml (100%) rename app/views/{projects => clusters}/clusters/gcp/_form.html.haml (93%) rename app/views/{projects => clusters}/clusters/gcp/_header.html.haml (100%) rename app/views/{projects => clusters}/clusters/gcp/_show.html.haml (93%) rename app/views/{projects => clusters}/clusters/index.html.haml (100%) rename app/views/{projects => clusters}/clusters/new.html.haml (91%) rename app/views/{projects => clusters}/clusters/show.html.haml (60%) rename app/views/{projects => clusters}/clusters/user/_form.html.haml (90%) rename app/views/{projects => clusters}/clusters/user/_header.html.haml (100%) rename app/views/{projects => clusters}/clusters/user/_show.html.haml (91%) create mode 100644 app/views/groups/settings/_lfs.html.haml create mode 100644 app/views/groups/settings/_two_factor_auth.html.haml delete mode 100644 app/views/koding/index.html.haml create mode 100644 app/views/layouts/header/_help_dropdown.html.haml delete mode 100644 app/views/layouts/koding.html.haml create mode 100644 app/views/notify/changed_milestone_issue_email.html.haml create mode 100644 app/views/notify/changed_milestone_issue_email.text.erb create mode 100644 app/views/notify/changed_milestone_merge_request_email.html.haml create mode 100644 app/views/notify/changed_milestone_merge_request_email.text.erb create mode 100644 app/views/notify/removed_milestone_issue_email.html.haml create mode 100644 app/views/notify/removed_milestone_issue_email.text.erb create mode 100644 app/views/notify/removed_milestone_merge_request_email.html.haml create mode 100644 app/views/notify/removed_milestone_merge_request_email.text.erb delete mode 100644 app/views/projects/buttons/_koding.html.haml delete mode 100644 app/views/projects/tree/_blob_item.html.haml delete mode 100644 app/views/projects/tree/_spinner.html.haml delete mode 100644 app/views/projects/tree/_submodule_item.html.haml delete mode 100644 app/views/projects/tree/_tree_item.html.haml create mode 100644 app/views/shared/_old_visibility_level.html.haml create mode 100644 app/workers/cluster_platform_configure_worker.rb create mode 100644 app/workers/deployments/success_worker.rb delete mode 100755 bin/storage_check create mode 100755 bin/web_puma create mode 100644 config/initializers/active_record_lifecycle.rb delete mode 100644 config/initializers/asset_sync.rb create mode 100644 config/initializers/fill_shards.rb create mode 100644 config/initializers/macos.rb create mode 100644 config/initializers/rbtrace.rb create mode 100644 config/puma.example.development.rb create mode 100644 danger/plugins/helper.rb create mode 100644 db/migrate/20180912111628_add_knative_application.rb create mode 100644 db/migrate/20180925200829_create_user_preferences.rb create mode 100644 db/migrate/20180927073410_add_index_to_project_deploy_tokens_deploy_token_id.rb create mode 100644 db/migrate/20181005110927_add_index_to_lfs_objects_file_store.rb create mode 100644 db/migrate/20181005125926_add_index_to_uploads_store.rb create mode 100644 db/migrate/20181009190428_create_clusters_kubernetes_namespaces.rb create mode 100644 db/migrate/20181010235606_create_board_project_recent_visits.rb create mode 100644 db/migrate/20181014203236_create_cluster_groups.rb create mode 100644 db/migrate/20181015155839_add_finished_at_to_deployments.rb create mode 100644 db/migrate/20181016141739_add_status_to_deployments.rb create mode 100644 db/migrate/20181016152238_create_board_group_recent_visits.rb create mode 100644 db/migrate/20181017001059_add_cluster_type_to_clusters.rb create mode 100644 db/migrate/20181019032400_add_shards_table.rb create mode 100644 db/migrate/20181019032408_add_repositories_table.rb create mode 100644 db/migrate/20181019105553_add_projects_pool_repository_id_foreign_key.rb create mode 100644 db/migrate/20181022135539_add_index_on_status_to_deployments.rb create mode 100644 db/migrate/20181023104858_add_archive_builds_duration_to_application_settings.rb create mode 100644 db/migrate/20181023144439_add_partial_index_for_legacy_successful_deployments.rb create mode 100644 db/migrate/20181025115728_add_private_commit_email_hostname_to_application_settings.rb create mode 100644 db/migrate/20181026143227_migrate_snippets_access_level_default_value.rb create mode 100644 db/migrate/20181101144347_add_index_for_stuck_mr_query.rb create mode 100644 db/migrate/20181106135939_add_index_to_deployments.rb create mode 100644 db/post_migrate/20181008145341_steal_encrypt_columns.rb create mode 100644 db/post_migrate/20181008145359_remove_web_hooks_token_and_url.rb create mode 100644 db/post_migrate/20181008200441_remove_circuit_breaker.rb create mode 100644 db/post_migrate/20181013005024_remove_koding_from_application_settings.rb create mode 100644 db/post_migrate/20181022173835_enqueue_populate_cluster_kubernetes_namespace.rb create mode 100644 db/post_migrate/20181030135124_fill_empty_finished_at_in_deployments.rb create mode 100644 db/post_migrate/20181105201455_steal_fill_store_upload.rb create mode 100644 db/post_migrate/20181107054254_remove_restricted_todos_again.rb create mode 100644 db/post_migrate/20181123042307_drop_site_statistics.rb delete mode 100644 doc/administration/img/circuitbreaker_config.png delete mode 100644 doc/administration/img/failing_storage.png delete mode 100644 doc/administration/integration/koding.md create mode 100644 doc/administration/operations/filesystem_benchmarking.md create mode 100644 doc/api/repository_submodules.md create mode 100644 doc/ci/img/view_on_mr_widget.png delete mode 100644 doc/ci/variables/img/secret_variables.png create mode 100644 doc/ci/variables/img/variables.png create mode 100644 doc/development/chaos_endpoints.md create mode 100644 doc/development/contributing/style_guides.md create mode 100644 doc/development/new_fe_guide/modules/dirty_submit.md create mode 100644 doc/development/new_fe_guide/modules/index.md create mode 100644 doc/install/aws/img/add_tags.png create mode 100644 doc/install/aws/img/associate_subnet_gateway.png create mode 100644 doc/install/aws/img/associate_subnet_gateway_2.png create mode 100644 doc/install/aws/img/aws_diagram.png create mode 100644 doc/install/aws/img/choose_ami.png create mode 100644 doc/install/aws/img/create_gateway.png create mode 100644 doc/install/aws/img/create_route_table.png create mode 100644 doc/install/aws/img/create_security_group.png create mode 100644 doc/install/aws/img/create_subnet.png create mode 100644 doc/install/aws/img/create_vpc.png create mode 100644 doc/install/aws/img/ec_az.png create mode 100644 doc/install/aws/img/ec_subnet.png create mode 100644 doc/install/aws/img/policies.png create mode 100644 doc/install/aws/img/rds_subnet_group.png create mode 100644 doc/install/aws/index.md create mode 100644 doc/update/11.4-to-11.5.md create mode 100644 doc/user/discussions/img/index_notes_filters.png create mode 100644 doc/user/img/color_inline_colorchip_render_gfm.png create mode 100644 doc/user/img/math_inline_sup_render_gfm.png create mode 100644 doc/user/img/mermaid_diagram_render_gfm.png create mode 100644 doc/user/img/task_list_ordered_render_gfm.png create mode 100644 doc/user/img/unordered_check_list_render_gfm.png delete mode 100644 doc/user/project/clusters/eks_and_gitlab/img/new_project.png create mode 100644 doc/user/project/clusters/eks_and_gitlab/img/rbac.png create mode 100644 doc/user/project/clusters/runbooks/img/authorize-jupyter.png create mode 100644 doc/user/project/clusters/runbooks/img/demo-runbook.png create mode 100644 doc/user/project/clusters/runbooks/img/gitlab-variables.png create mode 100644 doc/user/project/clusters/runbooks/img/helm-install.png create mode 100644 doc/user/project/clusters/runbooks/img/ingress-install.png create mode 100644 doc/user/project/clusters/runbooks/img/jupyterhub-install.png create mode 100644 doc/user/project/clusters/runbooks/img/postgres-query.png create mode 100644 doc/user/project/clusters/runbooks/img/sample-runbook.png create mode 100644 doc/user/project/clusters/runbooks/index.md create mode 100644 doc/user/project/clusters/serverless/img/deploy-stage.png create mode 100644 doc/user/project/clusters/serverless/img/dns-entry.png create mode 100644 doc/user/project/clusters/serverless/img/install-knative.png create mode 100644 doc/user/project/clusters/serverless/img/knative-app.png create mode 100644 doc/user/project/clusters/serverless/index.md delete mode 100644 doc/user/project/img/koding_build-in-progress.png delete mode 100644 doc/user/project/img/koding_build-logs.png delete mode 100644 doc/user/project/img/koding_build-success.png delete mode 100644 doc/user/project/img/koding_commit-koding.yml.png delete mode 100644 doc/user/project/img/koding_different-stack-on-mr-try.png delete mode 100644 doc/user/project/img/koding_edit-on-ide.png delete mode 100644 doc/user/project/img/koding_enable-koding.png delete mode 100644 doc/user/project/img/koding_landing.png delete mode 100644 doc/user/project/img/koding_open-gitlab-from-koding.png delete mode 100644 doc/user/project/img/koding_run-in-ide.png delete mode 100644 doc/user/project/img/koding_run-mr-in-ide.png delete mode 100644 doc/user/project/img/koding_set-up-ide.png delete mode 100644 doc/user/project/img/koding_stack-import.png delete mode 100644 doc/user/project/img/koding_start-build.png create mode 100644 doc/user/project/integrations/img/jira_api_token.png create mode 100644 doc/user/project/integrations/img/jira_api_token_menu.png create mode 100644 doc/user/project/integrations/jira_cloud_configuration.md create mode 100644 doc/user/project/integrations/jira_server_configuration.md delete mode 100644 doc/user/project/koding.md create mode 100644 doc/user/project/merge_requests/img/comment-on-any-diff-line.png create mode 100644 doc/user/project/merge_requests/img/merge_request_pipeline.png create mode 100644 doc/user/project/repository/branches/img/branch_filter_search_box.png create mode 100644 doc/user/search/img/issues_filter_none_any.png create mode 100644 doc/workflow/img/repository_mirroring_force_update.png create mode 100644 doc/workflow/img/repository_mirroring_pull_settings_lower.png create mode 100644 doc/workflow/img/repository_mirroring_pull_settings_upper.png create mode 100644 doc/workflow/img/repository_mirroring_push_settings.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_detect_host_keys.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_diverged_branch.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_diverged_branch_push.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_github_edit_personal_access_token.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_gitlab_push_to_a_remote_repository.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_gitlab_push_to_a_remote_repository_update_now.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_hard_failed_main.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_hard_failed_settings.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_new_project.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_pull_advanced_host_keys.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_pull_settings.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_pull_settings_for_ssh.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_push_settings.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_ssh_host_keys_verified.png delete mode 100644 doc/workflow/repository_mirroring/repository_mirroring_ssh_public_key_authentication.png create mode 100644 lib/api/submodules.rb create mode 100644 lib/flowdock/git.rb create mode 100644 lib/flowdock/git/builder.rb create mode 100644 lib/gitlab/audit_json_logger.rb create mode 100644 lib/gitlab/background_migration/populate_cluster_kubernetes_namespace_table.rb create mode 100644 lib/gitlab/blob_helper.rb create mode 100644 lib/gitlab/checks/timed_logger.rb create mode 100644 lib/gitlab/ci/build/artifacts/adapters/gzip_stream.rb create mode 100644 lib/gitlab/ci/build/artifacts/adapters/raw_stream.rb delete mode 100644 lib/gitlab/ci/build/artifacts/gzip_file_adapter.rb create mode 100644 lib/gitlab/ci/config/entry/retry.rb create mode 100644 lib/gitlab/ci/config/external/file/base.rb create mode 100644 lib/gitlab/ci/config/external/file/local.rb create mode 100644 lib/gitlab/ci/config/external/file/remote.rb create mode 100644 lib/gitlab/ci/config/external/mapper.rb create mode 100644 lib/gitlab/ci/config/external/processor.rb create mode 100644 lib/gitlab/ci/config/normalizer.rb delete mode 100644 lib/gitlab/ci/external/file/base.rb delete mode 100644 lib/gitlab/ci/external/file/local.rb delete mode 100644 lib/gitlab/ci/external/file/remote.rb delete mode 100644 lib/gitlab/ci/external/mapper.rb delete mode 100644 lib/gitlab/ci/external/processor.rb rename lib/gitlab/ci/status/pipeline/{scheduled.rb => delayed.rb} (74%) create mode 100644 lib/gitlab/cluster/lifecycle_events.rb create mode 100644 lib/gitlab/cluster/puma_worker_killer_initializer.rb create mode 100644 lib/gitlab/diff/lines_unfolder.rb delete mode 100644 lib/gitlab/git/blob_snippet.rb create mode 100644 lib/gitlab/git/patches/collection.rb create mode 100644 lib/gitlab/git/patches/commit_patches.rb create mode 100644 lib/gitlab/git/patches/patch.rb delete mode 100644 lib/gitlab/git/storage.rb delete mode 100644 lib/gitlab/git/storage/checker.rb delete mode 100644 lib/gitlab/git/storage/circuit_breaker.rb delete mode 100644 lib/gitlab/git/storage/circuit_breaker_settings.rb delete mode 100644 lib/gitlab/git/storage/failure_info.rb delete mode 100644 lib/gitlab/git/storage/forked_storage_check.rb delete mode 100644 lib/gitlab/git/storage/health.rb delete mode 100644 lib/gitlab/git/storage/null_circuit_breaker.rb create mode 100644 lib/gitlab/git/wraps_gitaly_errors.rb create mode 100644 lib/gitlab/kubernetes/role_binding.rb create mode 100644 lib/gitlab/language_data.rb create mode 100644 lib/gitlab/namespace_sanitizer.rb create mode 100644 lib/gitlab/patch/draw_route.rb create mode 100644 lib/gitlab/private_commit_email.rb create mode 100644 lib/gitlab/sidekiq_middleware/batch_loader.rb delete mode 100644 lib/gitlab/storage_check.rb delete mode 100644 lib/gitlab/storage_check/cli.rb delete mode 100644 lib/gitlab/storage_check/gitlab_caller.rb delete mode 100644 lib/gitlab/storage_check/option_parser.rb delete mode 100644 lib/gitlab/storage_check/response.rb delete mode 100644 lib/tasks/gitlab/site_statistics.rake create mode 100644 locale/cy_GB/gitlab.po create mode 100644 locale/el_GR/gitlab.po create mode 100644 locale/hu_HU/gitlab.po create mode 100644 locale/pt_PT/gitlab.po create mode 100644 locale/sk_SK/gitlab.po create mode 100644 locale/sr_CS/gitlab.po create mode 100644 locale/sr_SP/gitlab.po delete mode 100644 qa/qa/factory/base.rb delete mode 100644 qa/qa/factory/dependency.rb delete mode 100644 qa/qa/factory/product.rb delete mode 100644 qa/qa/factory/resource/branch.rb delete mode 100644 qa/qa/factory/resource/deploy_key.rb delete mode 100644 qa/qa/factory/resource/file.rb delete mode 100644 qa/qa/factory/resource/fork.rb delete mode 100644 qa/qa/factory/resource/group.rb delete mode 100644 qa/qa/factory/resource/issue.rb delete mode 100644 qa/qa/factory/resource/kubernetes_cluster.rb delete mode 100644 qa/qa/factory/resource/merge_request.rb delete mode 100644 qa/qa/factory/resource/merge_request_from_fork.rb delete mode 100644 qa/qa/factory/resource/personal_access_token.rb delete mode 100644 qa/qa/factory/resource/project.rb delete mode 100644 qa/qa/factory/resource/project_imported_from_github.rb delete mode 100644 qa/qa/factory/resource/project_milestone.rb delete mode 100644 qa/qa/factory/resource/runner.rb delete mode 100644 qa/qa/factory/resource/sandbox.rb delete mode 100644 qa/qa/factory/resource/secret_variable.rb delete mode 100644 qa/qa/factory/resource/ssh_key.rb delete mode 100644 qa/qa/factory/resource/user.rb delete mode 100644 qa/qa/factory/resource/wiki.rb delete mode 100644 qa/qa/factory/settings/hashed_storage.rb create mode 100644 qa/qa/page/component/dropdown_filter.rb create mode 100644 qa/qa/page/component/users_select.rb create mode 100644 qa/qa/page/label/index.rb create mode 100644 qa/qa/page/label/new.rb create mode 100644 qa/qa/page/project/operations/environments/index.rb create mode 100644 qa/qa/page/project/operations/environments/show.rb rename qa/qa/page/project/settings/{secret_variables.rb => ci_variables.rb} (75%) create mode 100644 qa/qa/page/project/settings/deploy_tokens.rb create mode 100644 qa/qa/page/project/settings/members.rb create mode 100644 qa/qa/page/project/web_ide/edit.rb create mode 100644 qa/qa/resource/README.md create mode 100644 qa/qa/resource/api_fabricator.rb create mode 100644 qa/qa/resource/base.rb create mode 100644 qa/qa/resource/branch.rb create mode 100644 qa/qa/resource/ci_variable.rb create mode 100644 qa/qa/resource/deploy_key.rb create mode 100644 qa/qa/resource/deploy_token.rb create mode 100644 qa/qa/resource/file.rb create mode 100644 qa/qa/resource/fork.rb create mode 100644 qa/qa/resource/group.rb create mode 100644 qa/qa/resource/issue.rb create mode 100644 qa/qa/resource/kubernetes_cluster.rb create mode 100644 qa/qa/resource/label.rb create mode 100644 qa/qa/resource/merge_request.rb create mode 100644 qa/qa/resource/merge_request_from_fork.rb create mode 100644 qa/qa/resource/personal_access_token.rb create mode 100644 qa/qa/resource/project.rb create mode 100644 qa/qa/resource/project_imported_from_github.rb create mode 100644 qa/qa/resource/project_milestone.rb rename qa/qa/{factory => resource}/repository/project_push.rb (67%) rename qa/qa/{factory => resource}/repository/push.rb (94%) rename qa/qa/{factory => resource}/repository/wiki_push.rb (66%) create mode 100644 qa/qa/resource/runner.rb create mode 100644 qa/qa/resource/sandbox.rb create mode 100644 qa/qa/resource/settings/hashed_storage.rb create mode 100644 qa/qa/resource/ssh_key.rb create mode 100644 qa/qa/resource/user.rb create mode 100644 qa/qa/resource/wiki.rb create mode 100644 qa/qa/runtime/fixtures.rb create mode 100644 qa/qa/runtime/logger.rb create mode 100644 qa/qa/runtime/path.rb create mode 100644 qa/qa/scenario/test/integration/instance_saml.rb create mode 100644 qa/qa/scenario/test/integration/ldap_no_tls.rb rename qa/qa/scenario/test/integration/{ldap.rb => ldap_tls.rb} (52%) create mode 100644 qa/qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb rename qa/qa/specs/features/browser_ui/4_verify/{secret_variable/add_secret_variable_spec.rb => ci_variable/add_ci_variable_spec.rb} (51%) create mode 100644 qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb create mode 100644 qa/qa/support/page/logging.rb create mode 100644 qa/qa/vendor/saml_idp/page/base.rb create mode 100644 qa/qa/vendor/saml_idp/page/login.rb delete mode 100644 qa/spec/factory/base_spec.rb delete mode 100644 qa/spec/factory/dependency_spec.rb delete mode 100644 qa/spec/factory/product_spec.rb create mode 100644 qa/spec/factory/resource/user_spec.rb create mode 100644 qa/spec/page/logging_spec.rb create mode 100644 qa/spec/resource/api_fabricator_spec.rb create mode 100644 qa/spec/resource/base_spec.rb rename qa/spec/{factory => resource}/repository/push_spec.rb (92%) delete mode 100644 qa/spec/runtime/api_request_spec.rb create mode 100644 qa/spec/runtime/logger_spec.rb create mode 100644 qa/spec/scenario/test/integration/instance_saml_spec.rb create mode 100644 rubocop/cop/qa/element_with_pattern.rb create mode 100644 rubocop/qa_helpers.rb create mode 100755 scripts/build_assets_image delete mode 100644 spec/bin/storage_check_spec.rb create mode 100644 spec/factories/board_group_recent_visit.rb create mode 100644 spec/factories/board_project_recent_visit.rb create mode 100644 spec/factories/clusters/kubernetes_namespaces.rb create mode 100644 spec/factories/clusters/projects.rb delete mode 100644 spec/factories/forked_project_links.rb create mode 100644 spec/factories/merge_request_diff_files.rb create mode 100644 spec/factories/merge_request_diffs.rb delete mode 100644 spec/factories/site_statistics.rb create mode 100644 spec/factories/user_preferences.rb create mode 100644 spec/features/admin/dashboard_spec.rb create mode 100644 spec/features/groups/board_sidebar_spec.rb create mode 100644 spec/finders/applications_finder_spec.rb create mode 100644 spec/finders/pending_todos_finder_spec.rb create mode 100644 spec/finders/users_with_pending_todos_finder_spec.rb create mode 100644 spec/fixtures/api/schemas/entities/issue_board.json create mode 100644 spec/fixtures/emails/merge_request_multiple_patches.eml create mode 100644 spec/fixtures/emails/merge_request_with_conflicting_patch.eml create mode 100644 spec/fixtures/emails/merge_request_with_patch_and_target_branch.eml create mode 100644 spec/fixtures/emails/valid_merge_request_with_patch.eml create mode 100644 spec/fixtures/git-cheat-sheet.pdf create mode 100644 spec/fixtures/patchfiles/0001-A-commit-from-a-patch.patch create mode 100644 spec/fixtures/patchfiles/0001-This-does-not-apply-to-the-feature-branch.patch create mode 100644 spec/fixtures/security-reports/feature-branch.zip create mode 100644 spec/fixtures/security-reports/feature-branch/gl-container-scanning-report.json create mode 100644 spec/fixtures/security-reports/feature-branch/gl-dast-report.json create mode 100644 spec/fixtures/security-reports/feature-branch/gl-dependency-scanning-report.json create mode 100644 spec/fixtures/security-reports/feature-branch/gl-license-management-report.json create mode 100644 spec/fixtures/security-reports/feature-branch/gl-sast-report.json create mode 100644 spec/fixtures/security-reports/master.zip create mode 100644 spec/fixtures/security-reports/master/gl-container-scanning-report.json create mode 100644 spec/fixtures/security-reports/master/gl-dast-report.json create mode 100644 spec/fixtures/security-reports/master/gl-dependency-scanning-report.json create mode 100644 spec/fixtures/security-reports/master/gl-license-management-report.json create mode 100644 spec/fixtures/security-reports/master/gl-sast-report.json delete mode 100644 spec/helpers/storage_health_helper_spec.rb create mode 100644 spec/javascripts/boards/components/issue_due_date_spec.js create mode 100644 spec/javascripts/boards/components/issue_time_estimate_spec.js delete mode 100644 spec/javascripts/datetime_utility_spec.js create mode 100644 spec/javascripts/diffs/components/image_diff_overlay_spec.js create mode 100644 spec/javascripts/diffs/mock_data/merge_request_diffs.js create mode 100644 spec/javascripts/dirty_submit/dirty_submit_collection_spec.js create mode 100644 spec/javascripts/dirty_submit/dirty_submit_factory_spec.js create mode 100644 spec/javascripts/dirty_submit/dirty_submit_form_spec.js create mode 100644 spec/javascripts/dirty_submit/helper.js delete mode 100644 spec/javascripts/job_spec.js create mode 100644 spec/javascripts/jobs/components/job_container_item_spec.js create mode 100644 spec/javascripts/jobs/mixins/delayed_job_mixin_spec.js create mode 100644 spec/javascripts/jobs/store/helpers.js delete mode 100644 spec/javascripts/lib/utils/datefix_spec.js create mode 100644 spec/javascripts/lib/utils/datetime_utility_spec.js create mode 100644 spec/javascripts/notes/components/discussion_filter_spec.js create mode 100644 spec/javascripts/notes/components/toggle_replies_widget_spec.js rename spec/javascripts/pipelines/graph/{dropdown_job_component_spec.js => job_group_dropdown_spec.js} (83%) rename spec/javascripts/pipelines/graph/{job_component_spec.js => job_item_spec.js} (66%) delete mode 100644 spec/javascripts/pretty_time_spec.js create mode 100644 spec/javascripts/vue_mr_widget/components/review_app_link_spec.js create mode 100644 spec/javascripts/vue_shared/components/filtered_search_dropdown_spec.js create mode 100644 spec/javascripts/vue_shared/components/gl_countdown_spec.js create mode 100644 spec/javascripts/vue_shared/components/smart_virtual_list_spec.js create mode 100644 spec/lib/api/helpers/custom_validators_spec.rb create mode 100644 spec/lib/bitbucket_server/collection_spec.rb create mode 100644 spec/lib/gitlab/background_migration/populate_cluster_kubernetes_namespace_table_spec.rb create mode 100644 spec/lib/gitlab/blob_helper_spec.rb create mode 100644 spec/lib/gitlab/checks/timed_logger_spec.rb rename spec/lib/gitlab/ci/build/artifacts/{gzip_file_adapter_spec.rb => adapters/gzip_stream_spec.rb} (96%) create mode 100644 spec/lib/gitlab/ci/build/artifacts/adapters/raw_stream_spec.rb create mode 100644 spec/lib/gitlab/ci/config/entry/retry_spec.rb create mode 100644 spec/lib/gitlab/ci/config/external/file/base_spec.rb rename spec/lib/gitlab/ci/{ => config}/external/file/local_spec.rb (93%) rename spec/lib/gitlab/ci/{ => config}/external/file/remote_spec.rb (61%) rename spec/lib/gitlab/ci/{ => config}/external/mapper_spec.rb (89%) rename spec/lib/gitlab/ci/{ => config}/external/processor_spec.rb (84%) create mode 100644 spec/lib/gitlab/ci/config/normalizer_spec.rb rename spec/lib/gitlab/ci/status/pipeline/{scheduled_spec.rb => delayed_spec.rb} (89%) create mode 100644 spec/lib/gitlab/diff/lines_unfolder_spec.rb delete mode 100644 spec/lib/gitlab/git/blob_snippet_spec.rb create mode 100644 spec/lib/gitlab/git/patches/collection_spec.rb create mode 100644 spec/lib/gitlab/git/patches/commit_patches_spec.rb create mode 100644 spec/lib/gitlab/git/patches/patch_spec.rb delete mode 100644 spec/lib/gitlab/git/storage/checker_spec.rb delete mode 100644 spec/lib/gitlab/git/storage/circuit_breaker_spec.rb delete mode 100644 spec/lib/gitlab/git/storage/failure_info_spec.rb delete mode 100644 spec/lib/gitlab/git/storage/forked_storage_check_spec.rb delete mode 100644 spec/lib/gitlab/git/storage/health_spec.rb delete mode 100644 spec/lib/gitlab/git/storage/null_circuit_breaker_spec.rb create mode 100644 spec/lib/gitlab/git/wraps_gitaly_errors_spec.rb create mode 100644 spec/lib/gitlab/gon_helper_spec.rb create mode 100644 spec/lib/gitlab/kubernetes/role_binding_spec.rb create mode 100644 spec/lib/gitlab/language_data_spec.rb create mode 100644 spec/lib/gitlab/patch/draw_route_spec.rb create mode 100644 spec/lib/gitlab/private_commit_email_spec.rb delete mode 100644 spec/lib/gitlab/storage_check/cli_spec.rb delete mode 100644 spec/lib/gitlab/storage_check/gitlab_caller_spec.rb delete mode 100644 spec/lib/gitlab/storage_check/option_parser_spec.rb delete mode 100644 spec/lib/gitlab/storage_check/response_spec.rb create mode 100644 spec/lib/gitlab/template/finders/global_template_finder_spec.rb create mode 100644 spec/migrations/fill_empty_finished_at_in_deployments_spec.rb create mode 100644 spec/migrations/steal_fill_store_upload_spec.rb create mode 100644 spec/models/board_group_recent_visit_spec.rb create mode 100644 spec/models/board_project_recent_visit_spec.rb create mode 100644 spec/models/clusters/applications/knative_spec.rb create mode 100644 spec/models/clusters/group_spec.rb create mode 100644 spec/models/clusters/kubernetes_namespace_spec.rb create mode 100644 spec/models/concerns/blob_language_from_git_attributes_spec.rb create mode 100644 spec/models/concerns/deployable_spec.rb create mode 100644 spec/models/environment_status_spec.rb delete mode 100644 spec/models/forked_project_link_spec.rb create mode 100644 spec/models/shard_spec.rb delete mode 100644 spec/models/site_statistic_spec.rb create mode 100644 spec/models/ssh_host_key_spec.rb create mode 100644 spec/models/user_preference_spec.rb create mode 100644 spec/presenters/blob_presenter_spec.rb create mode 100644 spec/presenters/clusterable_presenter_spec.rb create mode 100644 spec/presenters/project_clusterable_presenter_spec.rb create mode 100644 spec/rack_servers/configs/config.ru create mode 100644 spec/rack_servers/configs/puma.rb create mode 100644 spec/rack_servers/puma_spec.rb rename spec/{unicorn => rack_servers}/unicorn_spec.rb (78%) create mode 100644 spec/requests/api/submodules_spec.rb create mode 100644 spec/rubocop/cop/qa/element_with_pattern_spec.rb create mode 100644 spec/rubocop/qa_helpers_spec.rb create mode 100644 spec/serializers/deployment_serializer_spec.rb create mode 100644 spec/serializers/environment_status_entity_spec.rb create mode 100644 spec/services/audit_event_service_spec.rb create mode 100644 spec/services/boards/visits/create_service_spec.rb create mode 100644 spec/services/boards/visits/latest_service_spec.rb create mode 100644 spec/services/clusters/applications/create_service_spec.rb create mode 100644 spec/services/clusters/gcp/kubernetes/create_or_update_namespace_service_spec.rb create mode 100644 spec/services/commits/commit_patch_service_spec.rb delete mode 100644 spec/services/create_deployment_service_spec.rb create mode 100644 spec/services/projects/after_rename_service_spec.rb create mode 100644 spec/services/submodules/update_service_spec.rb create mode 100644 spec/services/update_deployment_service_spec.rb create mode 100644 spec/support/helpers/ci_artifact_metadata_generator.rb create mode 100644 spec/support/helpers/test_request_helpers.rb create mode 100644 spec/support/helpers/wiki_helpers.rb create mode 100644 spec/support/shared_examples/controllers/issuable_notes_filter_shared_examples.rb create mode 100644 spec/support/shared_examples/dirty_submit_form_shared_examples.rb create mode 100644 spec/support/shared_examples/models/cluster_application_helm_cert_examples.rb delete mode 100644 spec/tasks/gitlab/site_statistics_rake_spec.rb rename spec/views/projects/tree/{_blob_item.html.haml_spec.rb => _tree_row.html.haml_spec.rb} (81%) create mode 100644 spec/views/shared/runners/show.html.haml_spec.rb create mode 100644 spec/workers/cluster_platform_configure_worker_spec.rb create mode 100644 spec/workers/deployments/success_worker_spec.rb create mode 100644 vendor/gitignore/Global/Images.gitignore create mode 100644 vendor/gitignore/Global/PSoCCreator.gitignore create mode 100755 vendor/languages.yml diff --git a/.eslintrc.yml b/.eslintrc.yml index a954bb4ff3..fe0d5f5dce 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -1,90 +1,28 @@ ---- -env: - browser: true - es6: true extends: - - airbnb-base - - plugin:vue/recommended + - '@gitlab' globals: __webpack_public_path__: true gl: false gon: false localStorage: false -parserOptions: - parser: babel-eslint plugins: - - filenames - import - html - - promise settings: html/html-extensions: - - ".html" - - ".html.raw" + - '.html' + - '.html.raw' import/resolver: webpack: - config: "./config/webpack.config.js" + config: './config/webpack.config.js' rules: - filenames/match-regex: - - error - - "^[a-z0-9_]+$" import/no-commonjs: error - no-multiple-empty-lines: - - error - - max: 1 - promise/catch-or-return: error - no-param-reassign: - - error - - props: true - ignorePropertyModificationsFor: - - "acc" # for reduce accumulators - - "accumulator" # for reduce accumulators - - "el" # for DOM elements - - "element" # for DOM elements - - "state" # for Vuex mutations no-underscore-dangle: - error - allow: - - __ - - _links - no-mixed-operators: off - vue/html-self-closing: - - error - - html: - void: always - normal: never - component: always - svg: always - math: always - camelcase: - - error - - properties: never - ignoreDestructuring: true - ## Conflicting rules with prettier: - space-before-function-paren: off - curly: off - arrow-parens: off - function-paren-newline: off - object-curly-newline: off - padded-blocks: off - # Disabled for now, to make the eslint 3 -> eslint 5 update smoother - ## Indent rule. We are using the old for now: https://eslint.org/docs/user-guide/migrating-to-4.0.0#indent-rewrite - indent: off - indent-legacy: - - error - - 2 - - SwitchCase: 1 - VariableDeclarator: 1 - outerIIFEBody: 1 - FunctionDeclaration: - parameters: 1 - body: 1 - FunctionExpression: - parameters: 1 - body: 1 + - __ + - _links # Disabled for now, to make the airbnb-base 12.1.0 -> 13.1.0 update smoother - operator-linebreak: off - implicit-arrow-linebreak: off no-else-return: - error - allowElseIf: true diff --git a/.gitattributes b/.gitattributes index f1c41c9bb7..7282c9e61b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ Dangerfile gitlab-language=ruby +db/schema.rb merge=merge_db_schema diff --git a/.gitignore b/.gitignore index 82b3d08f7a..aecaae95b8 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ eslint-report.html /config/redis.queues.yml /config/redis.shared_state.yml /config/unicorn.rb +/config/puma.rb /config/secrets.yml /config/sidekiq.yml /config/registry.key diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c652b6c75e..558ca8b6e8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29" +image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.5-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29" .dedicated-runner: &dedicated-runner retry: 1 @@ -6,7 +6,7 @@ image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-golang-1.9-git - gitlab-org .default-cache: &default-cache - key: "ruby-2.4.4-debian-stretch-with-yarn" + key: "ruby-2.4.5-debian-stretch-with-yarn" paths: - vendor/ruby - .yarn-cache/ @@ -75,11 +75,6 @@ stages: - mysql:5.7 - redis:alpine -.rails5-variables: &rails5-variables - script: - - export RAILS5=${RAILS5} - - export BUNDLE_GEMFILE=${BUNDLE_GEMFILE} - .rails5: &rails5 allow_failure: true only: @@ -139,7 +134,7 @@ stages: - export SCRIPT_NAME="${SCRIPT_NAME:-$CI_JOB_NAME}" - apk add --update openssl - wget $CI_PROJECT_URL/raw/$CI_COMMIT_SHA/scripts/$SCRIPT_NAME - - chmod 755 $SCRIPT_NAME + - chmod 755 $(basename $SCRIPT_NAME) .rake-exec: &rake-exec <<: *dedicated-no-docs-no-db-pull-cache-job @@ -150,7 +145,6 @@ stages: <<: *dedicated-runner <<: *except-docs-and-qa <<: *pull-cache - <<: *rails5-variables stage: test script: - JOB_NAME=( $CI_JOB_NAME ) @@ -271,7 +265,7 @@ package-and-qa: SCRIPT_NAME: trigger-build-docs environment: name: review-docs/$CI_COMMIT_REF_SLUG - # DOCS_REVIEW_APPS_DOMAIN and DOCS_GITLAB_REPO_SUFFIX are secret variables + # DOCS_REVIEW_APPS_DOMAIN and DOCS_GITLAB_REPO_SUFFIX are CI variables # Discussion: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14236/diffs#note_40140693 url: http://$CI_ENVIRONMENT_SLUG.$DOCS_REVIEW_APPS_DOMAIN/$DOCS_GITLAB_REPO_SUFFIX on_stop: review-docs-cleanup @@ -324,7 +318,8 @@ review-docs-cleanup: cloud-native-image: image: ruby:2.4-alpine before_script: [] - stage: test + dependencies: [] + stage: post-test allow_failure: true variables: GIT_DEPTH: "1" @@ -594,7 +589,7 @@ static-analysis: script: - scripts/static-analysis cache: - key: "ruby-2.4.4-debian-stretch-with-yarn-and-rubocop" + key: "ruby-2.4.5-debian-stretch-with-yarn-and-rubocop" paths: - vendor/ruby - .yarn-cache/ @@ -700,7 +695,10 @@ gitlab:setup-mysql: # Frontend-related jobs gitlab:assets:compile: <<: *dedicated-no-docs-and-no-qa-pull-cache-job + image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.4-git-2.18-chrome-69.0-node-8.x-yarn-1.2-graphicsmagick-1.3.29-docker-18.06.1 dependencies: [] + services: + - docker:stable-dind variables: NODE_ENV: "production" RAILS_ENV: "production" @@ -709,21 +707,26 @@ gitlab:assets:compile: WEBPACK_REPORT: "true" # we override the max_old_space_size to prevent OOM errors NODE_OPTIONS: --max_old_space_size=3584 + DOCKER_DRIVER: overlay2 + DOCKER_HOST: tcp://docker:2375 script: - date - yarn install --frozen-lockfile --production --cache-folder .yarn-cache - date - free -m - bundle exec rake gitlab:assets:compile + - scripts/build_assets_image artifacts: name: webpack-report expire_in: 31d paths: - webpack-report/ - public/assets/ + tags: + - docker karma: - <<: *dedicated-no-docs-and-no-qa-pull-cache-job + <<: *dedicated-no-docs-pull-cache-job <<: *use-pg dependencies: - compile-assets @@ -929,3 +932,93 @@ no_ee_check: - scripts/no-ee-check only: - //@gitlab-org/gitlab-ce + +# GitLab Review apps +review: + image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base + stage: test + allow_failure: true + before_script: + - gem install gitlab --no-document + variables: + GIT_DEPTH: "1" + HOST_SUFFIX: "$CI_ENVIRONMENT_SLUG" + DOMAIN: "-$CI_ENVIRONMENT_SLUG.$REVIEW_APPS_DOMAIN" + GITLAB_HELM_CHART_REF: "master" + script: + - export GITLAB_SHELL_VERSION=$( -| | Simple | Secure | Responsive | Obvious | Stable | -|------------|:------:|:------:|:----------:|:-------:|:------:| -| Admin | | | | | | -| Groups | | | | | | -| Project | | | | | | -| Repository | | | | | | -| Issues | | | | | | -| MRs | | | | | | -| CI/CD | | | | | | -| Ops | | | | | | -| Registry | | | | | | -| Wiki | | | | | | -| Snippets | | | | | | -| Settings | | | | | | -| Tracking | | | | | | -| API | | | | | | +| | Secure | Responsive | Intuitive | Reliable | +|------------|:------:|:----------:|:---------:|:--------:| +| Admin | | | | | +| Groups | | | | | +| Project | | | | | +| Repository | | | | | +| Issues | | | | | +| MRs | | | | | +| CI/CD | | | | | +| Ops | | | | | +| Registry | | | | | +| Wiki | | | | | +| Snippets | | | | | +| Settings | | | | | +| Tracking | | | | | +| API | | | | | ## Capabilities @@ -65,7 +65,7 @@ more complex features could involve multiple or even all. Example (from https://gitlab.com/gitlab-org/gitlab-ce/issues/50353): * Respository is - * Simple + * Intuitive * It's easy to select the desired file template * It doesn't require unnecessary actions to save the change * It's easy to undo the change after selecting a template @@ -93,4 +93,4 @@ When adding new automated tests, please keep [testing levels](https://docs.gitla in mind. --> -/label ~Quality \ No newline at end of file +/label ~Quality ~"test plan" \ No newline at end of file diff --git a/.gitlab/merge_request_templates/Database changes.md b/.gitlab/merge_request_templates/Database changes.md index e636ec313d..354393b60e 100644 --- a/.gitlab/merge_request_templates/Database changes.md +++ b/.gitlab/merge_request_templates/Database changes.md @@ -1,8 +1,23 @@ -Add a description of your merge request here. Merge requests without an adequate -description will not be reviewed until one is added. +## What does this MR do? + + + +Add a description of your merge request here. ## Database checklist +- [ ] Conforms to the [database guides](https://docs.gitlab.com/ee/development/README.html#databases-guides) + When adding migrations: - [ ] Updated `db/schema.rb` @@ -35,16 +50,9 @@ When removing columns, tables, indexes or other structures: - [ ] [Changelog entry](https://docs.gitlab.com/ee/development/changelog.html) added, if necessary - [ ] [Documentation created/updated](https://docs.gitlab.com/ee/development/documentation/index.html#contributing-to-docs) -- [ ] [API support added](https://docs.gitlab.com/ee/development/api_styleguide.html) - [ ] [Tests added for this feature/bug](https://docs.gitlab.com/ee/development/testing_guide/index.html) -- Conforms to the [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html) - - [ ] Has been reviewed by a Backend [maintainer](https://about.gitlab.com/handbook/engineering/#maintainer) - - [ ] Has been reviewed by a Database [specialist](https://about.gitlab.com/team/structure/#specialist) +- [ ] Conforms to the [code review guidelines](https://docs.gitlab.com/ee/development/code_review.html) - [ ] Conforms to the [merge request performance guidelines](https://docs.gitlab.com/ee/development/merge_request_performance_guidelines.html) - [ ] Conforms to the [style guides](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/CONTRIBUTING.md#style-guides) -- [ ] If you have multiple commits, please combine them into a few logically organized commits by [squashing them](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) -- [ ] [Internationalization required/considered](https://docs.gitlab.com/ee/development/i18n/index.html) -- [ ] For a paid feature, have we considered GitLab.com plans, how it works for groups, and is there a design for promoting it to users who aren't on the correct plan? -- [ ] [End-to-end tests](https://docs.gitlab.com/ee/development/testing_guide/end_to_end_tests.html#testing-code-in-merge-requests) pass (`package-and-qa` manual pipeline job) /label ~database diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md index ca38c881c6..8b7e711979 100644 --- a/.gitlab/merge_request_templates/Documentation.md +++ b/.gitlab/merge_request_templates/Documentation.md @@ -19,6 +19,7 @@ Closes - [ ] [Apply the correct labels and milestone](https://docs.gitlab.com/ee/development/documentation/workflow.html#2-developer-s-role-in-the-documentation-process) - [ ] Crosslink the document from the higher-level index - [ ] Crosslink the document from other subject-related docs +- [ ] Feature moving tiers? Make sure the change is also reflected in [`features.yml`](https://gitlab.com/gitlab-com/www-gitlab-com/blob/master/data/features.yml) - [ ] Correctly apply the product [badges](https://docs.gitlab.com/ee/development/documentation/styleguide.html#product-badges) and [tiers](https://docs.gitlab.com/ee/development/documentation/styleguide.html#gitlab-versions-and-tiers) - [ ] [Port the MR to EE (or backport from CE)](https://docs.gitlab.com/ee/development/documentation/index.html#cherry-picking-from-ce-to-ee): _always recommended, required when the `ee-compat-check` job fails_ diff --git a/.prettierignore b/.prettierignore index b674ccd50c..dc9e572ab5 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,3 +3,7 @@ /public/ /vendor/ /tmp/ + +# ignore stylesheets for now as this clashes with our linter +*.css +*.scss diff --git a/.rubocop.yml b/.rubocop.yml index b7aec5b8b1..a95ded8af1 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -3,7 +3,9 @@ inherit_gem: - rubocop-default.yml inherit_from: .rubocop_todo.yml -require: ./rubocop/rubocop +require: + - ./rubocop/rubocop + - rubocop-rspec AllCops: TargetRailsVersion: 4.2 @@ -48,12 +50,20 @@ Style/FrozenStringLiteralComment: - 'danger/**/*' - 'db/**/*' - 'ee/**/*' - - 'lib/**/*' + - 'lib/gitlab/**/*' + - 'lib/tasks/**/*' - 'qa/**/*' - 'rubocop/**/*' - 'scripts/**/*' - 'spec/**/*' +RSpec/FilePath: + Exclude: + - 'qa/**/*' + - 'spec/javascripts/fixtures/*' + - 'ee/spec/javascripts/fixtures/*' + - 'spec/requests/api/v3/*' + Naming/FileName: ExpectMatchingDefinition: true Exclude: @@ -66,15 +76,20 @@ Naming/FileName: - 'qa/qa/specs/**/*' - 'qa/bin/*' - 'config/**/*' + - 'ee/config/**/*' - 'lib/generators/**/*' - 'locale/unfound_translations.rb' - 'ee/locale/unfound_translations.rb' - 'ee/lib/generators/**/*' + - 'qa/qa/scenario/test/integration/ldap_no_tls.rb' + - 'qa/qa/scenario/test/integration/ldap_tls.rb' + IgnoreExecutableScripts: true AllowedAcronyms: - EE - JSON - LDAP + - SAML - IO - HMAC - QA diff --git a/.ruby-version b/.ruby-version index 79a614418f..59aa62c1fa 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.4.4 +2.4.5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 15aee2e993..a6c6729a7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,53 +2,312 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 11.4.9 (2018-12-03) +## 11.5.3 (2018-12-06) -### Fixed (2 changes) +### Security (1 change) + +- Prevent a path traversal attack on global file templates. + + +## 11.5.2 (2018-12-03) + +### Removed (1 change) + +- Removed Site Statistics optimization as it was causing problems. !23314 + +### Fixed (6 changes, 1 of them is from the community) - Display impersonation token value only after creation. !22916 +- Fix not render emoji in filter dropdown. !23112 (Hiroyuki Sato) +- Fixes stuck tooltip on stop env button. !23244 - Correctly handle data-loss scenarios when encrypting columns. !23306 +- Clear BatchLoader context between Sidekiq jobs. !23308 +- Fix handling of filenames with hash characters in tree view. !23368 -## 11.4.8 (2018-11-27) +## 11.5.1 (2018-11-26) -### Security (24 changes) +### Security (17 changes) -- Escape entity title while autocomplete template rendering to prevent XSS. !2571 -- Resolve reflected XSS in Ouath authorize window. -- Fix XSS in merge request source branch name. - Escape user fullname while rendering autocomplete template to prevent XSS. - Fix CRLF vulnerability in Project hooks. - Fix possible XSS attack in Markdown urls with spaces. - Redact sensitive information on gitlab-workhorse log. - Do not follow redirects in Prometheus service when making http requests to the configured api url. -- Persist only SHA digest of PersonalAccessToken#token. - Don't expose confidential information in commit message list. - Provide email notification when a user changes their email address. - Restrict Personal Access Tokens to API scope on web requests. -- Redact personal tokens in unsubscribe links. +- Resolve reflected XSS in Ouath authorize window. - Fix SSRF in project integrations. - Fixed ability to comment on locked/confidential issues. - Fixed ability of guest users to edit/delete comments on locked or confidential issues. - Fix milestone promotion authorization check. -- Monkey kubeclient to not follow any redirects. - Configure mermaid to not render HTML content in diagrams. - Fix a possible symlink time of check to time of use race condition in GitLab Pages. - Removed ability to see private group names when the group id is entered in the url. - Fix stored XSS for Environments. -- Prevent SSRF attacks in HipChat integration. -- Validate Wiki attachments are valid temporary files. -## 11.4.7 (2018-11-20) +## 11.5.0 (2018-11-22) -- No changes. - -## 11.4.6 (2018-11-18) - -### Security (1 change) +### Security (10 changes, 1 of them is from the community) +- Escape entity title while autocomplete template rendering to prevent XSS. !2556 +- Update moment to 2.22.2. !22648 (Takuya Noguchi) +- Redact personal tokens in unsubscribe links. - Escape user fullname while rendering autocomplete template to prevent XSS. +- Persist only SHA digest of PersonalAccessToken#token. +- Monkey kubeclient to not follow any redirects. +- Prevent SSRF attacks in HipChat integration. +- Prevent templated services from being imported. +- Validate Wiki attachments are valid temporary files. +- Fix XSS in merge request source branch name. + +### Removed (2 changes) + +- Remove Git circuit breaker. !22212 +- Remove Koding integration and documentation. !22334 + +### Fixed (74 changes, 15 of them are from the community) + +- Hide all tables on Pipeline when no Jobs for the Pipeline. !18540 (Takuya Noguchi) +- Fixing count on Milestones. !21446 +- Use case insensitve username lookups. !21728 (William George) +- Correctly process Bamboo API result array. !21970 (Alex Lossent) +- Fix 'merged with' UI being displayed when merge request has no merge commit. !22022 +- Fix broken file name navigation on MRs. !22109 +- Fix incorrect spacing between buttons when commenting on a MR. !22135 +- Vertical align Pipeline Graph in Commit Page. !22173 (Johann Hubert Sonntagbauer) +- Reject invalid branch names in repository compare controller. !22186 +- Fix size of emojis of user status in user menu. !22194 +- Use the standard PIP_CACHE_DIR for Python dependency caching template. !22211 (Takuya Noguchi) +- Fix bug with wiki attachments content disposition. !22220 +- Does not allow a SSH URI when importing new projects. !22309 +- fix duplicated key in license management job auto devops gitlab ci template. !22311 (Adam Lemanski) +- Fix commit signature error when project is disabled. !22344 +- Show available clusters when installed or updated. !22356 +- Fix auto-corrected upload URLs in webhooks. !22361 +- Fix a bug displaying certain wiki pages. !22377 +- Fix prometheus graphs in firefox. !22400 +- Resolve assign-me quick action doesn't work if there is extra white space. !22402 +- Remove base64 encoding from files that contain plain text. !22425 +- Strip whitespace around GitHub personal access tokens. !22432 +- Fix 500 error when testing webhooks with redirect loops. !22447 (Heinrich Lee Yu) +- Fix rendering of 'Protected' value on Runner details page. !22459 +- Fix bug stopping non-admin users from changing visibility level on group creation. !22468 +- Make Issue Board sidebar show project-specific labels based on selected Issue. !22475 +- Fix EOF detection with CI artifacts metadata. !22479 +- Fix transient spec error in the bar_chart component. !22495 +- Resolve LFS not correctly showing enabled. !22501 +- If user was not found, service hooks won't run on post receive background job. !22519 +- Fix broken "Show whitespace changes" button on MRs. !22539 +- Always show new issue button in boards' Open list. !22557 (Heinrich Lee Yu) +- Add transparent background to markdown header tabs. !22565 (George Tsiolis) +- Use gitlab_environment for ldap rake task. !22582 +- Add commit message to commit tree anchor title. !22585 +- Cache pipeline status per SHA. !22589 +- Change HELM_HOST in Auto-DevOps template to work behind proxy. !22596 (Sergej Nikolaev ) +- Show user status for label events in system notes. !22609 +- Fix extra merge request versions created from forked merge requests. !22611 +- Remove PersonalAccessTokensFinder#find_by method. !22617 +- Fix search "all in GitLab" not working with relative URLs. !22644 +- Fix quick links button styles. !22657 (George Tsiolis) +- Fix #53298: JupyterHub restarts should work without errors. !22671 (Amit Rathi) +- Fix incompatibility with IE11 due to non-transpiled gitlab-ui components. !22695 +- Fix bug when links in tabs of the labels index pages ends with .html. !22716 +- Fixed label removal from issue. !22762 +- Align toggle sidebar button across all browsers and OSs. !22771 +- Disable replication lag check for Aurora PostgreSQL databases. !22786 +- Render unescaped link for failed pipeline status. !22807 +- Fix misaligned approvers dropdown. !22832 +- Fix bug with wiki page create message. !22849 +- Fix rendering of filter bar tokens for special values. !22865 (Heinrich Lee Yu) +- Align sign in button. !22888 (George Tsiolis) +- Fix error handling bugs in kubernetes integration. !22922 +- Fix deployment jobs using nil KUBE_TOKEN due to migration issue. !23009 +- Avoid returning deployment metrics url to MR widget when the deployment is not successful. !23010 +- Fix a race condition intermittently breaking GitLab startup. !23028 +- Adds margin after a deleted branch name in the activity feed. !23038 +- Ignore environment validation failure. !23100 +- Fixes broken borders for reports section in MR widget. +- Adds CI favicon back to jobs page. +- Redirect to the pipeline builds page when a build is canceled. (Eva Kadlecova) +- Fixed diff stats not showing when performance bar is enabled. +- Show expand all diffs button when a single diff file is collapsed. +- Clear fetched file templates when changing template type in Web IDE. +- Fix bug causing not all emails to show up in commit email selectbox. +- Remove duplicate escape in job sidebar. +- Fixing styling issues on the scheduled pipelines page. +- Renders stuck block when runners are stuck. +- Removes extra border from test reports in the merge request widget. +- Only render link to branch when branch still exists in pipeline page. +- Fixed source project not filtering in merge request creation compare form. +- Do not reload self on hooks when creating deployment. +- Fixes broken test in master. + +### Changed (38 changes, 12 of them are from the community) + +- Link button in markdown editor recognize URLs. !1983 (Johann Hubert Sonntagbauer) +- Replace i to icons in vue components. !20748 (George Tsiolis) +- Remove Linguist gem, reducing Rails memory usage by 128MB per process. !21008 +- Issue board card design. !21229 +- On deletion of a file in sub directory in web IDE redirect to the sub directory instead of project root. !21465 (George Thomas @thegeorgeous) +- Change single-item breadcrumbs to page titles. !22155 +- Improving branch filter sorting by listing exact matches first and added support for begins_with (^) and ends_with ($) matching. !22166 (Jason Rutherford) +- Remove legacy unencrypted webhook columns from the database. !22199 +- Show canary status in the performance bar. !22222 +- Add failure reason for execution timeout. !22224 +- Rename "scheduled" label/badge of delayed jobs to "delayed". !22245 +- Update the empty state on wiki-only projects to display an empty state that is more consistent with the rest of the system. !22262 +- Add IID headers to E-Mail notifications. !22263 +- Allow finding the common ancestor for multiple revisions through the API. !22295 +- Add status to Deployment. !22380 +- Add dynamic timer to delayed jobs. !22382 +- No longer require a deploy to start Prometheus monitoring. !22401 +- Secret Variables renamed to CI Variables in the codebase, to match UX. !22414 (Marcel Amirault @ravlen) +- Automatically navigate to last board visited. !22430 +- Use merge request prefix symbol in event feed title. !22449 (George Tsiolis) +- Update Ruby version in README. !22466 (J.D. Bean) +- Reword error message for internal CI unknown pipeline status. !22474 +- Bump mermaid to 8.0.0-rc.8. !22509 (@blackst0ne) +- Update Todo icons in collapsed sidebar for Issues and MRs. !22534 +- Support backward compatibility when introduce new failure reason. !22566 +- Add dynamic timer for delayed jobs in pipelines list. !22621 +- Truncate milestone title on collapsed sidebar. !22624 (George Tsiolis) +- Standardize milestones filter in APIs to None / Any. !22637 (Heinrich Lee Yu) +- Add dynamic timer for delayed jobs in job list. !22656 +- Allowing issues with single letter identifiers to be linked to external issue tracker (f.ex T-123). !22717 (Dídac Rodríguez Arbonès) +- Update project and group labels empty state. !22745 (George Tsiolis) +- Fix environment status in merge request widget. !22799 +- Paginate Bitbucket Server importer projects. !22825 +- Drop `allow_overflow` option in `TimeHelper.duration_in_numbers`. !52284 +- Add 'only history' option to notes filter. +- Adds filtered dropdown with changed files in review. +- Expose {closed,merged}_{at,by} in merge requests API index. +- Make all legacy security reports to use raw format. + +### Performance (27 changes, 6 of them are from the community) + +- Add preload for routes and namespaces for issues controller. !21651 +- Enhance performance of counting local LFS objects. !22143 +- Use cached readme contents when available. !22325 +- Experimental support for running Puma multithreaded web-server. !22372 +- Enhance performance of counting local Uploads. !22522 +- Reduce SQL queries needed to load open merge requests. !22709 +- Significantly cut memory usage and SQL queries when reloading diffs. !22725 +- Optimize merge request refresh by using the database to check commit SHAs. !22731 +- Remove dind from license_management auto-devops job definition. !22732 +- Add index to find stuck merge requests. !22749 +- Allow Rails concurrency when running in Puma. !22751 +- Improve performance of rendering large reports. !22835 +- Improves performance of stuck import jobs detection. !22879 +- Rewrite SnippetsFinder to improve performance by a factor of 1500. +- Enable more frozen string in lib/**/*.rb. (gfyoung) +- Enable some frozen string in lib/gitlab. (gfyoung) +- Enable even more frozen string in lib/**/*.rb. (gfyoung) +- Improve performance of tree rendering in repositories with lots of items. +- Remove gitlab-ui's tooltip from global. +- Remove gitlab-ui's progress bar from global. +- Remove gitlab-ui's pagination from global. +- Remove gitlab-ui's modal from global. +- Remove gitlab-ui's loading icon from global. +- Enable frozen string for lib/gitlab/*.rb. (gfyoung) +- Enable frozen string for lib/gitlab/ci. (gfyoung) +- Enable frozen string for remaining lib/gitlab/ci/**/*.rb. (gfyoung) +- Adds pagination to pipelines table in merge request page. + +### Added (33 changes, 11 of them are from the community) + +- Add endpoint to update a git submodule reference. !20949 +- Add license data to projects endpoint. !21606 (J.D. Bean (@jdbean)) +- Allow to configure when to retry failed CI jobs. !21758 (Markus Doits) +- Add API endpoint to list issue related merge requests. !21806 (Helmut Januschka) +- Add the Play button for delayed jobs in environment page. !22106 +- Switch between tree list & file list in diffs file browser. !22191 +- Re-arrange help-related user menu items into new Help menu. !22195 +- Adds trace of each access check when git push times out. !22265 +- Add email for milestone change. !22279 +- Show post-merge pipeline in merge request page. !22292 +- Add Applications API endpoints for listing and deleting entries. !22296 (Jean-Baptiste Vasseur) +- Added `Any` option to milestones filter. !22351 (Heinrich Lee Yu) +- Improve validation errors for external CI/CD configuration. !22394 +- Introduce new model to persist specific cluster information. !22404 +- Add background migration to populate Kubernetes namespaces. !22433 +- Add support for JSON logging for audit events. !22471 +- Adds option to override commit email with a noreply private email. !22560 +- Add None/Any option for assignee_id in Issues and Merge Requests API. !22598 (Heinrich Lee Yu) +- Add None/Any option for assignee_id in search bar. !22599 (Heinrich Lee Yu) +- Implement parallel job keyword. !22631 +- Add None / Any options to reactions filter. !22638 (Heinrich Lee Yu) +- Make index.* render like README.* when it's present in a repository. !22639 (Jakub Jirutka) +- Allow adding patches when creating a merge request via email. !22723 (Serdar Dogruyol) +- Bump Gitaly to 0.129.0. !22868 +- Allow commenting on any diff line in Merge Requests. !22914 +- Add revert to commits API. !22919 +- Introduce Knative support. !43959 (Chris Baumbauer) +- Reimplemented image commenting in merge request diffs. +- Soft-archive old jobs. +- Renders warning info when job is archieved. +- Support licenses and performance. +- Filter notes by comments or activity for issues and merge requests. +- Bump Gitaly to 0.128.0. + +### Other (54 changes, 18 of them are from the community) + +- Remove .card-title from .card-header for BS4 migration. !19335 (Takuya Noguchi) +- Update group settings/edit page to new design. !21115 +- Change markdown header tab anchor links to buttons. !21988 (George Tsiolis) +- Replace tooltip in markdown component with gl-tooltip. !21989 (George Tsiolis) +- Extend RBAC by having a service account restricted to project's namespace. !22011 +- Update images in group docs. !22031 (Marc Schwede) +- Add gitlab:gitaly:check task for Gitaly health check. !22063 +- Add new sort option "most_stars" to "Group > Children" pages. !22121 (Rene Hennig) +- Fix inaccessible dropdown for code-less projects. !22137 +- Rails5: fix user edit profile clear status spec. !22169 (Jasper Maes) +- Rails 5: fix mysql milliseconds problems in scheduled build specs. !22170 (Jasper Maes) +- Focus project slug on tab navigation. !22198 +- Redesign activity feed. !22217 +- Update used version of Runner Helm Chart to 0.1.34. !22274 +- Update environments empty state. !22297 (George Tsiolis) +- Adds model and migrations to enable group level clusters. !22307 +- Use literal instead of constructor for creating regex. !22367 +- Remove prometheus configuration help text. !22413 (George Tsiolis) +- Rails5: fix deployment model spec. !22428 (Jasper Maes) +- Change to top level controller for clusters so that we can use it for project clusters (now) and group clusters (later). !22438 +- Remove empty spec describe blocks. !22451 (George Tsiolis) +- Change branch font type in tag creation. !22454 (George Tsiolis) +- Rails5: fix delete blob. !22456 (Jasper Maes) +- Start tracking shards and pool repositories in the database. !22482 +- Allow kubeclient to call RoleBinding methods. !22524 +- Introduce new kubernetes helpers. !22525 +- Adds container to pager to enable scoping. !22529 +- Update used version of Runner Helm Chart to 0.1.35. !22541 +- Removes experimental labels from cluster views. !22550 +- Combine all datetime library functions into 'datetime_utility.js'. !22570 +- Upgrade Prometheus to 2.4.3 and Alertmanager to 0.15.2. !22600 +- Fix stage dropdown not rendering in different languages. !22604 +- Remove asset_sync gem from Gemfile and related code from codebase. !22610 +- Use key-value pair arrays for API query parameter logging instead of hashes. !22623 +- Replace deprecated uniq on a Relation with distinct. !22625 (Jasper Maes) +- Remove mousetrap-rails gem. !22647 (Takuya Noguchi) +- Fix IDE typos in props. !22685 (George Tsiolis) +- Add scheduled flag to job entity. !22710 +- Remove `ci_enable_scheduled_build` feature flag. !22742 +- Add endpoints for simulating certain failure modes in the application. !22746 +- Bump KUBERNETES_VERSION for Auto DevOps to latest 1.10 series. !22757 +- Fix statement timeouts in RemoveRestrictedTodos migration. !22795 +- Rails5: fix mysql milliseconds issue in deployment model specs. !22850 (Jasper Maes) +- Update GitLab-Workhorse to v7.1.0. !22883 +- Update JIRA service UI to accept email and API token. +- Update wiki empty state. (George Tsiolis) +- Only renders dropdown for review app changes when we have a list of files to show. Otherwise will render the regular review app button. +- Associate Rakefile with Ruby icon in diffs. +- Uses gitlab-ui components in jobs components. +- Create new group: Rename form fields and update UI. +- Transform job page into a single Vue+Vuex application. +- Updates svg dependency. +- Adds missing i18n to pipelines table. +- Disables stop environment button while the deploy is in progress. ## 11.4.5 (2018-11-04) @@ -320,6 +579,41 @@ entry. - Check frozen string in style builds. (gfyoung) +## 11.3.9 (2018-10-31) + +### Security (1 change) + +- Monkey kubeclient to not follow any redirects. + + +## 11.3.8 (2018-10-27) + +- No changes. + +## 11.3.7 (2018-10-26) + +### Security (6 changes) + +- Escape entity title while autocomplete template rendering to prevent XSS. !2557 +- Persist only SHA digest of PersonalAccessToken#token. +- Fix XSS in merge request source branch name. +- Redact personal tokens in unsubscribe links. +- Prevent SSRF attacks in HipChat integration. +- Validate Wiki attachments are valid temporary files. + + +## 11.3.6 (2018-10-17) + +- No changes. + +## 11.3.5 (2018-10-15) + +### Fixed (2 changes) + +- Fix loading issue on some merge request discussion. !21982 +- Fix project deletion when there is a export available. !22276 + + ## 11.3.3 (2018-10-04) - No changes. @@ -597,6 +891,28 @@ entry. - Creates Vue component for artifacts block on job page. +## 11.2.8 (2018-10-31) + +### Security (1 change) + +- Monkey kubeclient to not follow any redirects. + + +## 11.2.7 (2018-10-27) + +- No changes. + +## 11.2.6 (2018-10-26) + +### Security (5 changes) + +- Escape entity title while autocomplete template rendering to prevent XSS. !2558 +- Fix XSS in merge request source branch name. +- Redact personal tokens in unsubscribe links. +- Persist only SHA digest of PersonalAccessToken#token. +- Prevent SSRF attacks in HipChat integration. + + ## 11.2.5 (2018-10-05) ### Security (3 changes) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 81fc46c2b6..2dc8ac40dd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -64,184 +64,56 @@ As of July 2018, all the documentation for contributing to the GitLab project ha ## Contribute to GitLab -Thank you for your interest in contributing to GitLab. This guide details how -to contribute to GitLab in a way that is easy for everyone. - -For a first-time step-by-step guide to the contribution process, please see -["Contributing to GitLab"](https://about.gitlab.com/contributing/). - -Looking for something to work on? Look for issues in the [Backlog (Accepting merge requests) milestone](#i-want-to-contribute). - -GitLab comes in two flavors, GitLab Community Edition (CE) our free and open -source edition, and GitLab Enterprise Edition (EE) which is our commercial -edition. Throughout this guide you will see references to CE and EE for -abbreviation. - -To get an overview of GitLab community membership including those that would be reviewing or merging your contributions, please visit [the community roles page](doc/development/contributing/community_roles.md). - -If you want to know how the GitLab [core team] -operates please see [the GitLab contributing process](PROCESS.md). - -[GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/) +This [documentation](doc/development/contributing/index.md#contribute-to-gitlab) has been moved. ## Security vulnerability disclosure -Please report suspected security vulnerabilities in private to -`support@gitlab.com`, also see the -[disclosure section on the GitLab.com website](https://about.gitlab.com/disclosure/). -Please do **NOT** create publicly viewable issues for suspected security -vulnerabilities. +This [documentation](doc/development/contributing/index.md#security-vulnerability-disclosure) has been moved. -## Code of conduct +## Code of Conduct -As contributors and maintainers of this project, we pledge to respect all -people who contribute through reporting issues, posting feature requests, -updating documentation, submitting pull requests or patches, and other -activities. - -We are committed to making participation in this project a harassment-free -experience for everyone, regardless of level of experience, gender, gender -identity and expression, sexual orientation, disability, personal appearance, -body size, race, ethnicity, age, or religion. - -Examples of unacceptable behavior by participants include the use of sexual -language or imagery, derogatory comments or personal attacks, trolling, public -or private harassment, insults, or other unprofessional conduct. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct. Project maintainers who do not -follow the Code of Conduct may be removed from the project team. - -This code of conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. - -Instances of abusive, harassing, or otherwise unacceptable behavior can be -reported by emailing `contact@gitlab.com`. - -This Code of Conduct is adapted from the [Contributor Covenant][contributor-covenant], version 1.1.0, -available at [http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/). +This [documentation](https://about.gitlab.com/contributing/code-of-conduct/) has been moved. ## Closing policy for issues and merge requests -GitLab is a popular open source project and the capacity to deal with issues -and merge requests is limited. Out of respect for our volunteers, issues and -merge requests not in line with the guidelines listed in this document may be -closed without notice. - -Please treat our volunteers with courtesy and respect, it will go a long way -towards getting your issue resolved. - -Issues and merge requests should be in English and contain appropriate language -for audiences of all ages. - -If a contributor is no longer actively working on a submitted merge request -we can decide that the merge request will be finished by one of our -[Merge request coaches][team] or close the merge request. We make this decision -based on how important the change is for our product vision. If a Merge request -coach is going to finish the merge request we assign the -~"coach will finish" label. +This [documentation](doc/development/contributing/index.md#closing-policy-for-issues-and-merge-requests) has been moved. ## Helping others -Please help other GitLab users when you can. -The methods people will use to seek help can be found on the [getting help page][getting-help]. - -Sign up for the mailing list, answer GitLab questions on StackOverflow or -respond in the IRC channel. You can also sign up on [CodeTriage][codetriage] to help with -the remaining issues on the GitHub issue tracker. +This [documentation](doc/development/contributing/index.md#helping-others) has been moved. ## I want to contribute! -If you want to contribute to GitLab, [issues in the Backlog (Accepting merge requests)](https://gitlab.com/gitlab-org/gitlab-ce/issues?scope=all&utf8=✓&state=opened&assignee_id=0&milestone_title=Backlog%20(Accepting%20merge%20requests)) -are a great place to start. Issues with a lower weight (1 or 2) are deemed -suitable for beginners. These issues will be of reasonable size and challenge, -for anyone to start contributing to GitLab. If you have any questions or need help visit [Getting Help](https://about.gitlab.com/getting-help/#discussion) to -learn how to communicate with GitLab. If you're looking for a Gitter or Slack channel -please consider we favor -[asynchronous communication](https://about.gitlab.com/handbook/communication/#internal-communication) over real time communication. Thanks for your contribution! +This [documentation](doc/development/contributing/index.md#i-want-to-contribute) has been moved. ## Contribution Flow -When contributing to GitLab, your merge request is subject to review by merge request maintainers of a particular specialty. - -When you submit code to GitLab, we really want it to get merged, but there will be times when it will not be merged. - -When maintainers are reading through a merge request they may request guidance from other maintainers. If merge request maintainers conclude that the code should not be merged, our reasons will be fully disclosed. If it has been decided that the code quality is not up to GitLab’s standards, the merge request maintainer will refer the author to our docs and code style guides, and provide some guidance. - -Sometimes style guides will be followed but the code will lack structural integrity, or the maintainer will have reservations about the code’s overall quality. When there is a reservation the maintainer will inform the author and provide some guidance. The author may then choose to update the merge request. Once the merge request has been updated and reassigned to the maintainer, they will review the code again. Once the code has been resubmitted any number of times, the maintainer may choose to close the merge request with a summary of why it will not be merged, as well as some guidance. If the merge request is closed the maintainer will be open to discussion as to how to improve the code so it can be approved in the future. - -GitLab will do its best to review community contributions as quickly as possible. Specially appointed developers review community contributions daily. You may take a look at the [team page](https://about.gitlab.com/team/) for the merge request coach who specializes in the type of code you have written and mention them in the merge request. For example, if you have written some JavaScript in your code then you should mention the frontend merge request coach. If your code has multiple disciplines you may mention multiple merge request coaches. - -GitLab receives a lot of community contributions, so if your code has not been reviewed within 4 days of its initial submission feel free to re-mention the appropriate merge request coach. - -When submitting code to GitLab, you may feel that your contribution requires the aid of an external library. If your code includes an external library please provide a link to the library, as well as reasons for including it. - -When your code contains more than 500 changes, any major breaking changes, or an external library, `@mention` a maintainer in the merge request. If you are not sure who to mention, the reviewer will add one early in the merge request process. - -[core team]: https://about.gitlab.com/core-team/ -[team]: https://about.gitlab.com/team/ -[getting-help]: https://about.gitlab.com/getting-help/ -[codetriage]: http://www.codetriage.com/gitlabhq/gitlabhq -[accepting-mrs-weight]: https://gitlab.com/gitlab-org/gitlab-ce/issues?assignee_id=0&label_name[]=Accepting%20Merge%20Requests&sort=weight_asc -[ce-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/issues -[ee-tracker]: https://gitlab.com/gitlab-org/gitlab-ee/issues -[google-group]: https://groups.google.com/forum/#!forum/gitlabhq -[stackoverflow]: https://stackoverflow.com/questions/tagged/gitlab -[fpl]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=feature+proposal -[accepting-mrs-ce]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=Accepting+Merge+Requests -[accepting-mrs-ee]: https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name=Accepting+Merge+Requests -[gitlab-mr-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests -[gdk]: https://gitlab.com/gitlab-org/gitlab-development-kit -[git-squash]: https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits -[closed-merge-requests]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests?assignee_id=&label_name=&milestone_id=&scope=&sort=&state=closed -[definition-of-done]: http://guide.agilealliance.org/guide/definition-of-done.html -[contributor-covenant]: http://contributor-covenant.org -[rss-source]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#source-code-layout -[rss-naming]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#naming -[changelog]: doc/development/changelog.md "Generate a changelog entry" -[doc-guidelines]: doc/development/documentation/index.md "Documentation guidelines" -[js-styleguide]: doc/development/fe_guide/style_guide_js.md "JavaScript styleguide" -[scss-styleguide]: doc/development/fe_guide/style_guide_scss.md "SCSS styleguide" -[newlines-styleguide]: doc/development/newlines_styleguide.md "Newlines styleguide" -[UX Guide for GitLab]: http://docs.gitlab.com/ce/development/ux_guide/ -[license-finder-doc]: doc/development/licensing.md -[GitLab Inc engineering workflow]: https://about.gitlab.com/handbook/engineering/workflow/#labelling-issues -[polling-etag]: https://docs.gitlab.com/ce/development/polling.html -[testing]: doc/development/testing_guide/index.md -[us-english]: https://en.wikipedia.org/wiki/American_English - +This [documentation](doc/development/contributing/index.md) has been moved. ## Workflow labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Type labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Subject labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Team labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Release Scoping labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Priority labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Severity labels This [documentation](doc/development/contributing/issue_workflow.md) has been moved. @@ -250,17 +122,14 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Label for community contributors This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ## Implement design & UI elements This [documentation](doc/development/contributing/design.md) has been moved. - ## Issue tracker This [documentation](doc/development/contributing/issue_workflow.md) has been moved. @@ -269,7 +138,6 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Feature proposals This [documentation](doc/development/contributing/issue_workflow.md) has been moved. @@ -278,32 +146,26 @@ This [documentation](doc/development/contributing/issue_workflow.md) has been mo This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Issue weight This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Regression issues This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Technical and UX debt This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ### Stewardship This [documentation](doc/development/contributing/issue_workflow.md) has been moved. - ## Merge requests This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. - ### Merge request guidelines This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. @@ -313,12 +175,10 @@ This [documentation](doc/development/contributing/merge_request_workflow.md) has This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. - ## Definition of done This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. - ## Style guides This [documentation](doc/development/contributing/design.md) has been moved. diff --git a/Dangerfile b/Dangerfile index 10caacff4c..469e77b251 100644 --- a/Dangerfile +++ b/Dangerfile @@ -1,3 +1,4 @@ +danger.import_plugin('danger/plugins/helper.rb') danger.import_dangerfile(path: 'danger/metadata') danger.import_dangerfile(path: 'danger/changes_size') danger.import_dangerfile(path: 'danger/changelog') diff --git a/Dockerfile.assets b/Dockerfile.assets new file mode 100644 index 0000000000..403d16cc4a --- /dev/null +++ b/Dockerfile.assets @@ -0,0 +1,4 @@ +# Simple container to store assets for later use +FROM scratch +ADD public/assets /assets/ +CMD /bin/true diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 33e061fe7a..4db8830b11 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -0.125.1 +0.129.0 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 524cb55242..3a3cd8cc8b 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.1.1 +1.3.1 diff --git a/GITLAB_SHELL_VERSION b/GITLAB_SHELL_VERSION index d127a0ff9f..6da4de57dc 100644 --- a/GITLAB_SHELL_VERSION +++ b/GITLAB_SHELL_VERSION @@ -1 +1 @@ -8.3.3 +8.4.1 diff --git a/GITLAB_WORKHORSE_VERSION b/GITLAB_WORKHORSE_VERSION index 9fe9ff9d99..1996c50447 100644 --- a/GITLAB_WORKHORSE_VERSION +++ b/GITLAB_WORKHORSE_VERSION @@ -1 +1 @@ -7.0.1 +7.1.3 diff --git a/Gemfile b/Gemfile index ecbfba0827..c7efa790cf 100644 --- a/Gemfile +++ b/Gemfile @@ -79,13 +79,6 @@ gem 'gpgme' gem 'gitlab_omniauth-ldap', '~> 2.0.4', require: 'omniauth-ldap' gem 'net-ldap' -# Git Wiki -# Only used to compute wiki page slugs -gem 'gitlab-gollum-lib', '~> 4.2', require: false - -# Language detection -gem 'github-linguist', '~> 5.3.3', require: 'linguist' - # API gem 'grape', '~> 1.1' gem 'grape-entity', '~> 0.7.1' @@ -146,6 +139,7 @@ gem 'rouge', '~> 3.1' gem 'truncato', '~> 0.7.9' gem 'bootstrap_form', '~> 2.7.0' gem 'nokogiri', '~> 1.8.2' +gem 'escape_utils', '~> 1.1' # Calendar rendering gem 'icalendar' @@ -159,6 +153,11 @@ group :unicorn do gem 'unicorn-worker-killer', '~> 0.4.4' end +group :puma do + gem 'puma', '~> 3.12', require: false + gem 'puma_worker_killer', require: false +end + # State machine gem 'state_machines-activerecord', '~> 0.5.1' @@ -212,7 +211,7 @@ gem 'hipchat', '~> 1.5.0' gem 'jira-ruby', '~> 1.4' # Flowdock integration -gem 'gitlab-flowdock-git-hook', '~> 1.0.1' +gem 'flowdock', '~> 0.7' # Slack integration gem 'slack-notifier', '~> 1.5.1' @@ -245,9 +244,6 @@ gem 'rack-attack', '~> 4.4.1' # Ace editor gem 'ace-rails-ap', '~> 4.1.0' -# Keyboard shortcuts -gem 'mousetrap-rails', '~> 1.4.6' - # Detect and convert string character encoding gem 'charlock_holmes', '~> 0.7.5' @@ -420,11 +416,10 @@ group :ed25519 do end # Gitaly GRPC client -gem 'gitaly-proto', '~> 0.118.1', require: 'gitaly' -gem 'grpc', '~> 1.11.0' +gem 'gitaly-proto', '~> 0.123.0', require: 'gitaly' +gem 'grpc', '~> 1.15.0' -# Locked until https://github.com/google/protobuf/issues/4210 is closed -gem 'google-protobuf', '= 3.5.1' +gem 'google-protobuf', '~> 3.6' gem 'toml-rb', '~> 1.0.0', require: false @@ -436,6 +431,3 @@ gem 'flipper-active_support_cache_store', '~> 0.13.0' # Structured logging gem 'lograge', '~> 0.5' gem 'grape_logging', '~> 1.7' - -# Asset synchronization -gem 'asset_sync', '~> 2.4' diff --git a/Gemfile.lock b/Gemfile.lock index 9837a195d8..50e3ddef1e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -58,11 +58,6 @@ GEM asciidoctor (1.5.6.2) asciidoctor-plantuml (0.0.8) asciidoctor (~> 1.5) - asset_sync (2.4.0) - activemodel (>= 4.1.0) - fog-core - mime-types (>= 2.99) - unf ast (2.4.0) atomic (1.1.99) attr_encrypted (3.1.0) @@ -274,32 +269,9 @@ GEM gettext_i18n_rails (>= 0.7.1) po_to_json (>= 1.0.0) rails (>= 3.2.0) - gitaly-proto (0.118.1) - google-protobuf (~> 3.1) - grpc (~> 1.10) - github-linguist (5.3.3) - charlock_holmes (~> 0.7.5) - escape_utils (~> 1.1.0) - mime-types (>= 1.19) - rugged (>= 0.25.1) + gitaly-proto (0.123.0) + grpc (~> 1.0) github-markup (1.7.0) - gitlab-flowdock-git-hook (1.0.1) - flowdock (~> 0.7) - gitlab-grit (>= 2.4.1) - multi_json - gitlab-gollum-lib (4.2.7.5) - gemojione (~> 3.2) - github-markup (~> 1.6) - gollum-grit_adapter (~> 1.0) - nokogiri (>= 1.6.1, < 2.0) - rouge (~> 3.1) - sanitize (~> 4.6.4) - stringex (~> 2.6) - gitlab-grit (2.8.2) - charlock_holmes (~> 0.6) - diff-lcs (~> 1.1) - mime-types (>= 1.16) - posix-spawn (~> 0.3) gitlab-markup (1.6.4) gitlab-sidekiq-fetcher (0.3.0) sidekiq (~> 5) @@ -314,8 +286,6 @@ GEM rubyntlm (~> 0.5) globalid (0.4.1) activesupport (>= 4.2.0) - gollum-grit_adapter (1.0.1) - gitlab-grit (~> 2.7, >= 2.7.1) gon (6.2.0) actionpack (>= 3.0) multi_json @@ -327,16 +297,15 @@ GEM mime-types (~> 3.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - google-protobuf (3.5.1) - googleapis-common-protos-types (1.0.1) + google-protobuf (3.6.1) + googleapis-common-protos-types (1.0.2) google-protobuf (~> 3.0) - googleauth (0.6.2) + googleauth (0.6.6) faraday (~> 0.12) jwt (>= 1.4, < 3.0) - logging (~> 2.0) memoist (~> 0.12) multi_json (~> 1.11) - os (~> 0.9) + os (>= 0.9, < 2.0) signet (~> 0.7) gpgme (2.0.13) mini_portile2 (~> 2.1) @@ -360,10 +329,9 @@ GEM railties sprockets-rails graphql (1.8.1) - grpc (1.11.0) + grpc (1.15.0) google-protobuf (~> 3.1) googleapis-common-protos-types (~> 1.0.0) - googleauth (>= 0.5.1, < 0.7) haml (5.0.4) temple (>= 0.8.0) tilt @@ -465,11 +433,7 @@ GEM xml-simple licensee (8.9.2) rugged (~> 0.24) - little-plugger (1.1.4) locale (2.1.2) - logging (2.2.2) - little-plugger (~> 1.1) - multi_json (~> 1.10) lograge (0.10.0) actionpack (>= 4) activesupport (>= 4) @@ -493,7 +457,6 @@ GEM mini_mime (1.0.1) mini_portile2 (2.3.0) minitest (5.7.0) - mousetrap-rails (1.4.6) msgpack (1.2.4) multi_json (1.13.1) multi_xml (0.6.0) @@ -575,9 +538,9 @@ GEM org-ruby (0.9.12) rubypants (~> 0.2) orm_adapter (0.5.0) - os (0.9.6) + os (1.0.0) parallel (1.12.1) - parser (2.5.1.0) + parser (2.5.3.0) ast (~> 2.4.0) parslet (1.8.2) peek (1.0.1) @@ -605,7 +568,6 @@ GEM pg (0.18.4) po_to_json (1.0.1) json (>= 1.6.0) - posix-spawn (0.3.13) powerpack (0.1.1) premailer (1.10.4) addressable @@ -629,6 +591,10 @@ GEM pry-rails (0.3.6) pry (>= 0.10.4) public_suffix (3.0.3) + puma (3.12.0) + puma_worker_killer (0.1.0) + get_process_mem (~> 0.2) + puma (>= 2.7, < 4) pyu-ruby-sasl (0.0.3.3) rack (1.6.10) rack-accept (0.4.5) @@ -797,7 +763,7 @@ GEM rubyzip (1.2.2) rufus-scheduler (3.4.0) et-orbi (~> 1.0) - rugged (0.27.4) + rugged (0.27.5) safe_yaml (1.0.4) sanitize (4.6.6) crass (~> 1.0.2) @@ -843,7 +809,7 @@ GEM sidekiq-cron (0.6.0) rufus-scheduler (>= 3.3.0) sidekiq (>= 4.2.1) - signet (0.8.1) + signet (0.11.0) addressable (~> 2.3) faraday (~> 0.9) jwt (>= 1.5, < 3.0) @@ -876,7 +842,6 @@ GEM state_machines-activerecord (0.5.1) activerecord (>= 4.1, < 6.0) state_machines-activemodel (>= 0.5.0) - stringex (2.8.4) sys-filesystem (1.1.6) ffi sysexits (1.2.0) @@ -968,7 +933,6 @@ DEPENDENCIES asana (~> 0.6.0) asciidoctor (~> 1.5.6) asciidoctor-plantuml (= 0.0.8) - asset_sync (~> 2.4) attr_encrypted (~> 3.1.0) awesome_print babosa (~> 1.0.2) @@ -1006,6 +970,7 @@ DEPENDENCIES ed25519 (~> 1.2) email_reply_trimmer (~> 0.1) email_spec (~> 2.2.0) + escape_utils (~> 1.1) factory_bot_rails (~> 4.8.2) faraday (~> 0.12) fast_blank @@ -1013,6 +978,7 @@ DEPENDENCIES flipper (~> 0.13.0) flipper-active_record (~> 0.13.0) flipper-active_support_cache_store (~> 0.13.0) + flowdock (~> 0.7) fog-aliyun (~> 0.2.0) fog-aws (~> 2.0.1) fog-core (~> 1.44) @@ -1027,18 +993,15 @@ DEPENDENCIES gettext (~> 3.2.2) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly-proto (~> 0.118.1) - github-linguist (~> 5.3.3) + gitaly-proto (~> 0.123.0) github-markup (~> 1.7.0) - gitlab-flowdock-git-hook (~> 1.0.1) - gitlab-gollum-lib (~> 4.2) gitlab-markup (~> 1.6.4) gitlab-sidekiq-fetcher gitlab-styles (~> 2.4) gitlab_omniauth-ldap (~> 2.0.4) gon (~> 6.2) google-api-client (~> 0.23) - google-protobuf (= 3.5.1) + google-protobuf (~> 3.6) gpgme grape (~> 1.1) grape-entity (~> 0.7.1) @@ -1046,7 +1009,7 @@ DEPENDENCIES grape_logging (~> 1.7) graphiql-rails (~> 1.4.10) graphql (~> 1.8.0) - grpc (~> 1.11.0) + grpc (~> 1.15.0) haml_lint (~> 0.26.0) hamlit (~> 2.8.8) hangouts-chat (~> 0.0.5) @@ -1075,7 +1038,6 @@ DEPENDENCIES method_source (~> 0.8) mini_magick minitest (~> 5.7.0) - mousetrap-rails (~> 1.4.6) mysql2 (~> 0.4.10) net-ldap net-ssh (~> 5.0) @@ -1109,6 +1071,8 @@ DEPENDENCIES prometheus-client-mmap (~> 0.9.4) pry-byebug (~> 3.4.1) pry-rails (~> 0.3.4) + puma (~> 3.12) + puma_worker_killer rack-attack (~> 4.4.1) rack-cors (~> 1.0.0) rack-oauth2 (~> 1.2.1) @@ -1187,4 +1151,4 @@ DEPENDENCIES wikicloth (= 0.8.1) BUNDLED WITH - 1.16.4 + 1.17.1 diff --git a/Gemfile.rails5.lock b/Gemfile.rails5.lock index 9eab07d965..181f2db95b 100644 --- a/Gemfile.rails5.lock +++ b/Gemfile.rails5.lock @@ -61,11 +61,6 @@ GEM asciidoctor (1.5.6.2) asciidoctor-plantuml (0.0.8) asciidoctor (~> 1.5) - asset_sync (2.4.0) - activemodel (>= 4.1.0) - fog-core - mime-types (>= 2.99) - unf ast (2.4.0) atomic (1.1.99) attr_encrypted (3.1.0) @@ -277,32 +272,9 @@ GEM gettext_i18n_rails (>= 0.7.1) po_to_json (>= 1.0.0) rails (>= 3.2.0) - gitaly-proto (0.118.1) - google-protobuf (~> 3.1) - grpc (~> 1.10) - github-linguist (5.3.3) - charlock_holmes (~> 0.7.5) - escape_utils (~> 1.1.0) - mime-types (>= 1.19) - rugged (>= 0.25.1) + gitaly-proto (0.123.0) + grpc (~> 1.0) github-markup (1.7.0) - gitlab-flowdock-git-hook (1.0.1) - flowdock (~> 0.7) - gitlab-grit (>= 2.4.1) - multi_json - gitlab-gollum-lib (4.2.7.5) - gemojione (~> 3.2) - github-markup (~> 1.6) - gollum-grit_adapter (~> 1.0) - nokogiri (>= 1.6.1, < 2.0) - rouge (~> 3.1) - sanitize (~> 4.6.4) - stringex (~> 2.6) - gitlab-grit (2.8.2) - charlock_holmes (~> 0.6) - diff-lcs (~> 1.1) - mime-types (>= 1.16) - posix-spawn (~> 0.3) gitlab-markup (1.6.4) gitlab-sidekiq-fetcher (0.3.0) sidekiq (~> 5) @@ -317,8 +289,6 @@ GEM rubyntlm (~> 0.5) globalid (0.4.1) activesupport (>= 4.2.0) - gollum-grit_adapter (1.0.1) - gitlab-grit (~> 2.7, >= 2.7.1) gon (6.2.0) actionpack (>= 3.0) multi_json @@ -330,16 +300,15 @@ GEM mime-types (~> 3.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - google-protobuf (3.5.1) - googleapis-common-protos-types (1.0.1) + google-protobuf (3.6.1) + googleapis-common-protos-types (1.0.2) google-protobuf (~> 3.0) - googleauth (0.6.2) + googleauth (0.6.6) faraday (~> 0.12) jwt (>= 1.4, < 3.0) - logging (~> 2.0) memoist (~> 0.12) multi_json (~> 1.11) - os (~> 0.9) + os (>= 0.9, < 2.0) signet (~> 0.7) gpgme (2.0.13) mini_portile2 (~> 2.1) @@ -363,10 +332,9 @@ GEM railties sprockets-rails graphql (1.8.1) - grpc (1.11.0) + grpc (1.15.0) google-protobuf (~> 3.1) googleapis-common-protos-types (~> 1.0.0) - googleauth (>= 0.5.1, < 0.7) haml (5.0.4) temple (>= 0.8.0) tilt @@ -468,11 +436,7 @@ GEM xml-simple licensee (8.9.2) rugged (~> 0.24) - little-plugger (1.1.4) locale (2.1.2) - logging (2.2.2) - little-plugger (~> 1.1) - multi_json (~> 1.10) lograge (0.10.0) actionpack (>= 4) activesupport (>= 4) @@ -496,7 +460,6 @@ GEM mini_mime (1.0.1) mini_portile2 (2.3.0) minitest (5.7.0) - mousetrap-rails (1.4.6) msgpack (1.2.4) multi_json (1.13.1) multi_xml (0.6.0) @@ -579,9 +542,9 @@ GEM org-ruby (0.9.12) rubypants (~> 0.2) orm_adapter (0.5.0) - os (0.9.6) + os (1.0.0) parallel (1.12.1) - parser (2.5.1.0) + parser (2.5.1.2) ast (~> 2.4.0) parslet (1.8.2) peek (1.0.1) @@ -609,7 +572,6 @@ GEM pg (0.18.4) po_to_json (1.0.1) json (>= 1.6.0) - posix-spawn (0.3.13) powerpack (0.1.1) premailer (1.10.4) addressable @@ -633,6 +595,10 @@ GEM pry-rails (0.3.6) pry (>= 0.10.4) public_suffix (3.0.3) + puma (3.12.0) + puma_worker_killer (0.1.0) + get_process_mem (~> 0.2) + puma (>= 2.7, < 4) pyu-ruby-sasl (0.0.3.3) rack (2.0.5) rack-accept (0.4.5) @@ -805,7 +771,7 @@ GEM rubyzip (1.2.2) rufus-scheduler (3.4.0) et-orbi (~> 1.0) - rugged (0.27.4) + rugged (0.27.5) safe_yaml (1.0.4) sanitize (4.6.6) crass (~> 1.0.2) @@ -851,7 +817,7 @@ GEM sidekiq-cron (0.6.0) rufus-scheduler (>= 3.3.0) sidekiq (>= 4.2.1) - signet (0.8.1) + signet (0.11.0) addressable (~> 2.3) faraday (~> 0.9) jwt (>= 1.5, < 3.0) @@ -884,7 +850,6 @@ GEM state_machines-activerecord (0.5.1) activerecord (>= 4.1, < 6.0) state_machines-activemodel (>= 0.5.0) - stringex (2.8.4) sys-filesystem (1.1.6) ffi sysexits (1.2.0) @@ -977,7 +942,6 @@ DEPENDENCIES asana (~> 0.6.0) asciidoctor (~> 1.5.6) asciidoctor-plantuml (= 0.0.8) - asset_sync (~> 2.4) attr_encrypted (~> 3.1.0) awesome_print babosa (~> 1.0.2) @@ -1015,6 +979,7 @@ DEPENDENCIES ed25519 (~> 1.2) email_reply_trimmer (~> 0.1) email_spec (~> 2.2.0) + escape_utils (~> 1.1) factory_bot_rails (~> 4.8.2) faraday (~> 0.12) fast_blank @@ -1022,6 +987,7 @@ DEPENDENCIES flipper (~> 0.13.0) flipper-active_record (~> 0.13.0) flipper-active_support_cache_store (~> 0.13.0) + flowdock (~> 0.7) fog-aliyun (~> 0.2.0) fog-aws (~> 2.0.1) fog-core (~> 1.44) @@ -1036,18 +1002,15 @@ DEPENDENCIES gettext (~> 3.2.2) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly-proto (~> 0.118.1) - github-linguist (~> 5.3.3) + gitaly-proto (~> 0.123.0) github-markup (~> 1.7.0) - gitlab-flowdock-git-hook (~> 1.0.1) - gitlab-gollum-lib (~> 4.2) gitlab-markup (~> 1.6.4) gitlab-sidekiq-fetcher gitlab-styles (~> 2.4) gitlab_omniauth-ldap (~> 2.0.4) gon (~> 6.2) google-api-client (~> 0.23) - google-protobuf (= 3.5.1) + google-protobuf (~> 3.6) gpgme grape (~> 1.1) grape-entity (~> 0.7.1) @@ -1055,7 +1018,7 @@ DEPENDENCIES grape_logging (~> 1.7) graphiql-rails (~> 1.4.10) graphql (~> 1.8.0) - grpc (~> 1.11.0) + grpc (~> 1.15.0) haml_lint (~> 0.26.0) hamlit (~> 2.8.8) hangouts-chat (~> 0.0.5) @@ -1084,7 +1047,6 @@ DEPENDENCIES method_source (~> 0.8) mini_magick minitest (~> 5.7.0) - mousetrap-rails (~> 1.4.6) mysql2 (~> 0.4.10) net-ldap net-ssh (~> 5.0) @@ -1118,6 +1080,8 @@ DEPENDENCIES prometheus-client-mmap (~> 0.9.4) pry-byebug (~> 3.4.1) pry-rails (~> 0.3.4) + puma (~> 3.12) + puma_worker_killer rack-attack (~> 4.4.1) rack-cors (~> 1.0.0) rack-oauth2 (~> 1.2.1) @@ -1196,4 +1160,4 @@ DEPENDENCIES wikicloth (= 0.8.1) BUNDLED WITH - 1.16.4 + 1.17.1 diff --git a/PROCESS.md b/PROCESS.md index 38ec01f9de..5fc2c4cf1d 100644 --- a/PROCESS.md +++ b/PROCESS.md @@ -208,6 +208,7 @@ the stable branch are: * Fixes or improvements to automated QA scenarios * [Documentation updates](https://docs.gitlab.com/ee/development/documentation/workflow.html#documentation-shipped-late) for changes in the same release * New or updated translations (as long as they do not touch application code) +* Changes that are behind a feature flag and have the ~"feature flag" label During the feature freeze all merge requests that are meant to go into the upcoming release should have the correct milestone assigned _and_ the diff --git a/README.md b/README.md index 335736e53f..133c15a83a 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Instructions on how to start GitLab and how to run the tests can be found in the GitLab is a Ruby on Rails application that runs on the following software: - Ubuntu/Debian/CentOS/RHEL/OpenSUSE -- Ruby (MRI) 2.3 +- Ruby (MRI) 2.4 - Git 2.8.4+ - Redis 2.8+ - PostgreSQL (preferred) or MySQL diff --git a/VERSION b/VERSION index 27cb33e955..39eb3b4fbf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -11.4.9 +11.5.3 diff --git a/app/assets/images/cluster_app_logos/knative.png b/app/assets/images/cluster_app_logos/knative.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2510c8549c8f26399c5b2099573f653b3591a6 GIT binary patch literal 11259 zcmds7Wmgnjv}S0Kj+bTxBou)G>6Wem>F)0C?ixbrZV-@;8DM~+5ox4DLI`@i-LlJuc#oSfr0{{{NIC(`9g_J{tH1tVeeOz`KaZW zf4J_OuRY%(@if&kb-5t|8b^TeKA`bU43)`NwTnp{`-=7m^wEXix=1=Jd9<>!# zNMbX1F#?#PrjyViL{b7IASvv11;h)H>HjAY95zEoBuvR8ls`P4S1f~1MflnfaJ9mr z6)_w`4tM$fkvH@k^}4L7K&u;sS=iai!)t#NHH?gJI>7BDm+&2pa^jKP^+ej}9sxFf zQV(PLEbf%1#>EL1=vCD8$wRy_=Ek4q39j=kZF06>Lzq`TS(%aG0mS&)XoK?BNy;QV6K#Rlcdqyi;$1CXfnY<=#}V=8i>$CSjA~h#w0fGlL3}vPU<)8Y zWTMEYr}`SSgW)0ygJi*j$(DBeChrQz$L%S3c1i(}@)Nmef}9w3xY+8f&vR>lN@Ki` zu1<%!=82Psj{3HLjZ>H}=@t0#tWEppw~+!4RTe4x2T29-SY5+Dwq00iG~97r;^y>@ zB;BcPf5{N|CHzobIua8Jo=T<#Ss7>qENF$XkfahwZR+#&Ibo>R;Xai*-LIsOX+U*d z>NrJO?;FIgL{h`fmEa75 zSj>$sW49#y0haJFwBoc-cE1@z-p#5?1yf{%ecAV|WkX(WMrtY#1q2vw_a;n%j`I&( zdmp{*#c}ppAI@sA)+U>&St#7cLJxKLu#^Y;j7pvNPv^3d+t?JPU{Rc^duRg=R^)-= zP%oXe;fCDpZkKvs@hhlp8#D$l9tiV62fZDtn6uwXa0l(5$xv62?E&5Pqwj7ElEaG}V88&(fyrZ{- z0+Qs^^8Qm@?c(NomJ@wXk32Y!A3t3G0~Q`r5Bp-YQAmxI>3~}IXIlKTPGnQ zNt~Q_cjD38O=I{J4uSV4lC$Zejbad4c=f85#O4qV^q)ALyt_s8*h^m>M-~}2P32$M zyhta`09dIhRITM?satL1qsS2v*?2*FqSb#4(sVTK<8MHZKhPR2*n4H&IS&2?%CYPw zQ}J2-hA857Qo1D*y`2pdC;i4V$BjzCo?J-&=f2k{_@>r7R*B}?x2$tzZ}O3g>(>0P zaa?8k>+^W!;72GbEEk(9Y{WHsQXBZe6^SAm-53LYI8>(FXv`eu(+~VR+J__UvCHko zK`a+Wyp2|bN-jx(i0ymOnSY96E{J{7xVT-h#V?}$_XMniQuA`>H@nhGOK3#nYNL$_2tkfl1gyy>u@$KDC7cc~J3crAKJSu(=pnpl z$QIF|Nl7~Hgus;)PA(S_c%}EzInU}$WcNHK#OaNhsB?cC1Mk05#tMOlkT9E~tN!<% zmSOCOF^jfGL?YbHnyPVQPrSrz!?G8_^Ic zCT0{Nha1t1`XSdH$XeeHs|j=3737Rz6;75!o<7L(+yiAm%-^`h;=F+K@&o|lzFfkSv(yozW9+%GyISoN{(${b5|F{$ zJN5U*Zc~3UBNB^r7{Ab?+R=W#c+y3X^N~p-FvyCYq^&RKad@55Gww^1OK-y}p{kyt z0rCoymo)TfGqeo>?{)z)v`39m)=?NU=VOtp_o5zPHKV~Qa#=xu)`P$+H#MO8ax=wvzXV66UeS5w0O7b!&= zu}WxCk7zzpoX=QM`H3k!1W*bPhqp@^{=O5&XOv=){WqaG8*9rD?17WZo?O!PTy_oD z7m%wYq`4p=j&WEq{Z$$zGmII##PpwThRZ_mwy_*&ml0`!LE19M_5}AQqxMC^?kJyX z4-PHsY-b3|^wj@BBHsD?)uG8k2q*p<7MAUP5tA+<9?rka($_Bj0GneiBDaHPj77Mv zZuLow;_a}QA;siW@%IaQ4U6WdV)PgjUnYz4d=hOO?iwxOd`F}o8ey$p^X6Z#7U!3d@IsSpIJeE)MN&Jj0-U#%FPZXxhFsCHNx5s;Wo?yL)BYwUaqE$=F`sB0r~XRd7-!n`XKWk zuy|{k=d+KN)}9aDt#!VNMt!u$31v-w=rUir@HrLR7zesiRuu`oG&(K-1kwH>YORN) zv;yNwhiN1dI0`sDL$}4=y+iv@A8MhYXLX1gMuK%Mq-nH8$IAx(8)9K}F{A zQ~@+y=)OWa?#!9_{>tJe-EtEPxkmqfV2dPDr;Iyi55t4Ade8cuP5-L5j`gCk*eej7?-t5S zPxhu~7nEg~d(iyG=;0(MmRt&0o-WVc+eBPIj=xZNKJhM+H9T$ZCn;03+O5MvF;!OL zBs(9frJ7fcQTKQl!L=8!2&t%PVifIX8rjYZHd*-iI4>)oJAHoV83-Io07x@Fj?&P{ zekZkM|1Kn9c`9h3bXryvrWQ|#Gk6*99!HQVqR#=k$UHA_M1J#sR0m(by&ZXTa@a+Z z{=F9_t4Mvt8$I$1&<{e5R)qOgp+tk;iebi=d~DV=V3J8E$@?;2hj|sO9_j|Q>8cC9 zUrY(25$R`!J3*Kda z{ee`=3oN=lY$PAm)nh`*TC#1~Y}pSI5~Bw2G}TgcIpB0}wXMqal*wB5oB{Iv^kEu) zM=5<{S18~&7xcNzYeZj(Vn$;9ykS zlBKZL9KKBaF0}}tWbU#HHgqwfWGNq#mdATVLD#CYotc6kQi-!aExp5`KsNQ z;AnkcX9Uh=#&b>v$;+xAq*zxhK9Ed*pSTlb8YkO#_ziuKO7Pm_Z?@MsT^7L~k+dHK z8BI>ge3`Cw-jAMksTi6UX&`q!#xE8T#AZTQt8)&z?yz<=_V)R01!obhG(2ZY!EcyX z4|`XpMw<(Y=o@_BMJz*Vc%C{}Ga4_SS#!OB zpVxPrwCY078$qX({Sh26k1@${+Khy~Q^ZO1jITbKl!h0!9A3glOGB=G!vOE6Ucr|F z|15@>RqwWyy_m@j87aKoHM8K<0dcaXV5)XSkafl&q`NsOqYb|dM5GoGxepW8e*R)1 z1v1w|W!Yu!aEYJv&K>o?_qzJ2a=Ah)_-WoHMu?iRv`7`U-4q>rJ$_r>o0NSWnVXG0 z4ht0oX9pLN6x>2er`LAc^b}lT9~6qEvh(Q^VbiY%Vr#0X`vftt^gn^vFym(!9!(y0 z;ca6|$%7>;1g+OgYbTBO5ol7*u)%MItbm5+_Hm$6lbvvTjXC4EWNYi1sa zhZS%L*o!IqqKoQ#? z?w>y{sn0^{#Z%~G{Li0=qS=ze#^DiX2R@YMKXPWqhn??HE-P}Zz zD4<=^y&AC6uCb%yJ=++KlXbNlU3pJ5H?6KOGs@Qq?AJq=Y8(peAF6%ltuhw+rBAd(1!Xv*dOR(&o0a6h$v$Fe7$vb6#zpbq9 zU|cOUJ3L{y{)Oi>6=gu@eUX%RsEJj5Sp1l0GE)`WQ-B^^uLe8J%6qYkE2G z?i3G4ONAUXzScnAjl|6!{EAHk26fW((;5UEx!u?y^qi}HZSMqVSeFJdlomYtmvo@A zn7auBn&fev;J{&m%;F^sb>+oywMsq-$*q5 z;S@WV95h;JfX%bDLTip)TT{B~@?h~HR9;f{?<&{A)ovRLZnpg=GoXVPS5$}BGWuBEe; z^Kky{+z82o9mW@)dX{(rk#D#BQF0uDTR|q!b%Oc#)*BDRW!+m>7*~(M9rma(olG{P zs3K>^>-^-wHKK|o2B>j<-FM68UYDoOKH>qN+Tdv91F3y#{3kE613?>-{mEC?~E z$*KNaV~z7{rb$&7Tq!s_F!f0ryxh*>YXA~8W8-s8&!1$QEN@!fZyBl@Pw2ziXTSFD znv2;2ltm2{+Ij(_Zt1wht-ZJ&UR5ux&8=r3iz=sq#&#HI`d0McZRRP zbiqrF4eDv_mx#?-Fi`wt-)&x384nq{lW!Qi(u=FUS6-6p6ly!N8MEp&^i}R9~dns9JZ(lAovlxRAOTW^B-E zwT5k@qQn5uFjLBJw`B33YmUpd4I4edRgsOwH2WP!iT>`` z`u;dqht~%t7V$_Q9o7%A8;r$rTygQ#1^Vc;b&wO)Z)^IHmxK?CDV}5DiBnV3uAIE{ z`DLYoK(CVd>=?0l6CF~hlS-d7)SDZZ4Z3c=8q@6=?DhF+x6nXZi3diA2&70Wwff|( z(!JX$845H8>?DiFqOFsF3O}9w`9g7TY_*>UxeePb%tCp+p6ZyWnSlRlu*@@-Nq@l2 zeMN6J3d*kw3l1#fnRdw#Q|z>?nXY*&jT&<&6$41U;$rbU_}P~&`o^SXH(*lo_TiL! z?P-z#?6SM0O(Vw=a8*gPX3}@x>uf(iE%d$DBYi9JVGv4YBeOF}CB0Tib5}V#th#o- z;B#1eu$W`aI=|+4v5a;Gju6p^B($H;<_65^=2(t;4=D}_x+ZZ>$ZDjwUvP%%o5nE7 zi|{#;*0+K9^{f}m3Jp>?o<|d1KVyQMQ)|fl9y+(nBT&gi#cc&SIaIvGKF&rMTf-l% znN9BDDiox03VR7mVitg6HSO#8&uJFU*FP7Q8c7z69SAi=#LD#xIm!)k} z$?nzaltfe>W5(aNRbW|E>_2?J1-ngTog9ypJQclm<0-_?z7&by6#gi=s%^BLAB~}Z zYIAn=j#RieaqN8FL&FWB7ROkm3!tb(+fKU(XKTKXf17#?3aLpBySMeq*g9v`R?YW_N~Q(WIjEH(M0C!Eg4%R#-pD_)F%BMksV#^y>^^ zh#jWv&;DtBWURfxJLni}emApQ3Mn}A-zHLg7I&)uV9hvh5;sihiTs>R;;*H%)GSS< zq<(Y3^J`?>Xhp}+XHNG-thJ{ZZgl-B;F6mU!|eU&^FLtD_wg-7n44dz%~9Lc(&Wl)X!#z*2*(`SKCQwJ_0xmnX4)3Yx8MI7{ z6ZK6bOUne5hSPTy-uxGheLY1VQ}UfSw{_9c6Xv7P+ucE8^ML28M|bnBlU%4tCqIkU z-mb~b(j6=Esnhu{dvCDwMBd8LvY;~kE6M~aK}rp?F_7g4OKw-K8k?iK6<@OFB@OF+ z;)qBptlTa$^-;cC$Fr`HrM3G0^XVogtc|4(B-of@XkbHCPn0 zTtd%z5kw$g^6l?G_-HDMsIN9d0#BR%r^TQ4Lv$yHGVXOF@~e+XTC0qO7XtcI{c3$`>58=YExkO*Vg_S6SbBp|J!5M&yJy#H zL$1G@0vCHS9VGnUnAtt3jijxYOzgaJ*I|r6JH2N=S5GCbQw+>g&O3e9p_P;lEMhsL zs$Q+{l;fEso`{RWMz<$I$XOKAe+s#nnY^Z0e4c8lG(ag2MMRBAH7!>~D!g0rS8xl9 z7}+Hl$?w+!V(#nrzBK~?HQrw3#bU+z|nkdq7gwX5gyL;Ar$#&b+5BK7}Ko;+*%nQ|q$`(SA zWS`=JdjfAylm}T&r=2L#Wbt;f z+_o~`!O!jA!Vg+}UEZw*8js8-D<=0N*c!fa>^#iFP1W14C+B@PEcU5|RYPI?rYzc;1^UjrL1e zAAZt19ZO}+hr3tLU=w=uw&MW^825c&gNjL}Q7UbH>WpqWp;52A2(zZJ~Cf#WYWg#Ybb;AFw>nsNnB%RQ_g&q-&A&K zMsIZi?+<;;{2xj9{(VuGQJAd@mJr|;Ay`aWtVFf<(TJ*bflL#k4SW{*eu6Z=r0KJg zokS^KU#8qPJchldQB+?EVldH2jaaR;y*F1>oMMo|eR~^nEu&o&M#Z}!^@bIDPqB7j ze{02}cr&v)@^c1Jy?)+yAQ^S0@c5ppUoIy=nmGRLNo~{%$ z^idK6hi!*;N|a+eYPNBliP`AU$}W1e1PBSr`=#P#4+KR^Bw>0cBad)X;&Jf@UyA0l zIs_S)%}rhb4)G+cxfO}yi6K+O5IGU30$usdxb@!FU*TCm%FiUGkMT^?<`~T6{sX-K zA%$^Efevk;4GF&nK%8O^p;#7Hq}OR@X%*^-FMa`HiBJP=whJ*~e8vw4(HEso%jkTTR zwb#ITD_^gdUgyY)mrmY8ZD9uDVZ9p?t!QVW#LY*-gBP2@?lxVuhG&TF?!Cj7uBVR0 z%I)~jlY#I~AMi?%W@^L_xr*;FEhh9guSGYwkmjwgvX}67eb=HrBFb!!8k|QaLRXU` zuL^$MUEl8upZ=D|GJ>ie;}Q}ePC~L{A%e@a4WG@*cW;IwM2`AjvoIy&tdOx0+g5as zAgMbJzdDKi4K;0o(s$La@^&mt|5g~M$=MfP1H;tZ**XxsWnCpA6R0sB!+%JW!(G*y zgtSE4wo$}6T@clk2EqYHe(uINPSj*)KEq?qb1mGSFqIpJ$XB4Z!@EW84gwMJw3&pd z_g6GS`u?Ggd?rujKl!Qyg`YR{6DO=Ea*aN)3X%9uQ11&vRA7nC)dHitz&N}AKuS*M zAl<*}Tf{H@rerk$d7Hsmi#Am!9A$&AYX1h6#d^e2$E11H`BqGdmgV{9F8i82DJXKp zK=L<5nvTtuU~E@m#*qBkzO8lcw^Mwa)=g;EA4Ns1>*!BK!WhIokF5r2VI@m_O=k4< zvW8NDIC%Kg`Af84xP zp{8u+Y3IrR9Y2kSn@1XXx&9GCtdK))?Im$p4o1*Q6w2@m=C1WO)O<3kov=LknN1|> ze~bOb&W$sz*P;{~_u%sHknGADV|Wb!)_W_vHzt&Dd*aQ!*JAJa?-H{1W^v0^W40tT zZl*t6Y-J6ao6Z6#lRM?K*(iIl))eSeJA5adl-o*9TWt0;Bt-dnf37U3TaXftF0xn< zlu@2Cjr`C4@!oii`j(b5IJcG6Yi@oQ@uMiSbAQ;5fscjE*F;c;z*$6olFO=o{a$pR zu%kC?V35}kYrvX|18vLH?B6%E4EIYe&otAA)CIM_s%6vc+WiOtP}h3i-5u8l}>w&yQ?C#m{}Yt-C)c z*9OL?PHUb3xE#1!M?`27px>+t) zv10vxyHM2>ec;m_28Q0r!Xz73I3Bjd*tJ9?a2xr_Q=&MNeJ-~$t}1q0k2byXp$fe@ zLRxa%tOG`W1UsL_pH6*8Ajb);e>G`q9J30tB%Xe~n|-A_D%@3!eu-e^G`v7rT&LzniKOTsMgiLQ;( zBbPwE!aI*YDTCi#e0Uk{Kc+P*CZe(^W}xst$UkC69rofM2=)T#wlaPBbuDHV9KZ=t zBF2KEGvquULrfo&bNWJeI1){z9)I|h1zMu7AMBowu>Wh6?#3Ah2bd~fss%RCsfECR zZFMW6?F6lCu;2jx1fCsU`zb^2M&r7t-_WJ26qmAl3o=5oy$vjr>uos}IDur@Uzw6N zrX*v%o+^`;e~i*-ZUg1vr>nOnNFHR^eWSm7-Hb8!7h6>nHdDeYM87TNjh@sn++_Vz z%pLy`@^`4Jkj<${@Y?)2Sc%3CM(vVcPb2TEu_&?Vcr zjjeXAW4~_gknb7s$D09i49ZQ@kpjWu(-Z##vD#^aKi8&}g<=DCXCiIMxK}oquGf3s zL;B{JCQq&CwW^*PeI3+7AWXIKAD(oTCs=ose#XXadwl69U%1q#fM41P_58J|1O&tp zVQQ|L*E$o%{0~0M;=JB=E!-Qom|Zr9DC1)nXFIA({s&VhZq9#$(tA$k_)I3F8LB|% z$GQ^MUqdlBL#hKyI_NT-^?W6}l6pP@5)O!he~GsyT?;u}OH2YcSWWYPnT>Nd#I~>c z-~TGIIt5a_=d)6gv-Vkk*LG#6TRtrm(b3E{AW-{@JGr_5Ot?7^sztL--ojm zV=~!jzC5R|8~i*lK3RL&s*IeTkaq4zpDB6W#lF57!p!_Sjk4GT1SAATjy!rF2`*Hh z(Aj8Mfnr$XC1>oG`o`;9npXpZZPaTEa*A~Ge8iH6dM{Roys9ky5U=?(OMvfT1~|pG zDCIQkbPSXKec;l8c3*osJxkVL=0}`O5r`O4aTxy7*vRMc_?m^1+HBYV>eT#7;UH=0 zGVs|%(HC@BF4))-MI!%)sAQUqiJd_;dgl9}?^!Mue{sXW-bQw=5bALCe(D$l z#%g-`;CGbSH&#)KLfNb zeCm_p;^}IX?>US8e&ew}+wTq<{~dSlrNzqG{s;o>{9FYPR2C@hkG>C+%l0T|e!wbI z)BZ~zav!5j!nr#P2d>pAchPAN5rza0e>qekmvcvfr~1Ns2ltZwm^_osRPESZcKew4 z-vPKM4J*jXx|kl43vzyGv(q4VE~*S6#}EM?Uxb%0T9*!=`6&z+H>rR%@ia=FTYR^2 zyJ%;4-l9B<6H4#JcBGJt ze&Y;$5Tj+!$mn!AFAQ_9;c^`=?qA1_FO)n@IVb2Z(_#rRUcY-farf)iGW;2)yWucR z=L**PX0D8KekRq>pO)>P*y%kbdU)d;ITL(FzQGqERB~vBPp*={B#(HL>KjuIqLO>d z?uE4=W`dXZGkG?_7gNQTN$`ym1v3&!V)wP00uOi2(v1%5-^S>x6VsGr1O1=X3@3P$ zRb%Vxh{FtpS5#ohcId`2&cL$dnDoQh<4IYMRKKjH$>YS-s*96)T)2Q7pK)-IS8WGwZ}A(ik_EZI7c3jd#Rv1FK0-2(x>9 ziW?k&_=O}Y#qKfmLyU0D4?eZ?SPes8V&5elCvsgpg}FP_==!_O5HRz)u!V`{q!3pP zH8w>8hf7UEY`k=X3S7}4b3J_B`RT3Ur5{F!>>6J*AqORa*i)w~yHAjXcSS?df&>wRPWzOX{#Gx_~OOSMv`vY$V%P<~PM<$nq-ruU~1irWi9X}&Oc z07{_&Yhh@$C*MGw>`(pIsFhIsPe&qbVhwr4`CMw5gYHIU2BjerwLs$o;X^gQs1po` z=3|J+BHh!M7}W{JQgxoc2iL+&=Fj9@1-+D4%+1m(kwG8K@`b6hndaKr&mxB-K%b6$uQ1Hi7ZDP=#+p@|4dXjZ>Sz%CizugcdVP;?$j!du^D@<3|3=$fhPy+!a z9oMhm$I%u-KSl+6fFRX6ZGKf?lS#aS5|&;0_{fcDZ5i{O&(kLB!5bsU9|MqH-}zBU&!%4R zvE;flSbn5*xtWMiNZnO3NtpTZZLNya`0?Got{~(%`G)_wN9@MKA4h~Xg$FjjS05L` z_)XnV{9a_=G;@WM<##U=W!1)iZnu?aqdCT4Tw@feuQSFZyI~!A9Mwv&>Eb=h>>PZT)4=lOXo$};O~_8zVZXtOLt5zGm}3d7^BRQMtll;xL=t0 zO=&a`9xQNL8Yoa)x3YH}HR+y4U?Ri!21Uo-wH)*XKUBBTEoi_I}9qdRW9?$uC zETZK9ff^@M@paV85R=$Ov20k;4i;Eg)3@}pm3bb8Jv+%*6M^rC{FwQ!N5+*1h-1H} zs7m1dEQwvHNjlK6eC*=e`+UwRh0V|-jWmlQ>iir=EVU - - - - - - - \ No newline at end of file diff --git a/app/assets/javascripts/activities.js b/app/assets/javascripts/activities.js index de4566bb11..05de970e38 100644 --- a/app/assets/javascripts/activities.js +++ b/app/assets/javascripts/activities.js @@ -6,10 +6,12 @@ import Pager from './pager'; import { localTimeAgo } from './lib/utils/datetime_utility'; export default class Activities { - constructor() { - Pager.init(20, true, false, data => data, this.updateTooltips); + constructor(container = '') { + this.container = container; - $('.event-filter-link').on('click', (e) => { + Pager.init(20, true, false, data => data, this.updateTooltips, this.container); + + $('.event-filter-link').on('click', e => { e.preventDefault(); this.toggleFilter(e.currentTarget); this.reloadActivities(); @@ -22,7 +24,7 @@ export default class Activities { reloadActivities() { $('.content_list').html(''); - Pager.init(20, true, false, data => data, this.updateTooltips); + Pager.init(20, true, false, data => data, this.updateTooltips, this.container); } toggleFilter(sender) { diff --git a/app/assets/javascripts/badges/components/badge.vue b/app/assets/javascripts/badges/components/badge.vue index 97232d7f78..8512bf9dd7 100644 --- a/app/assets/javascripts/badges/components/badge.vue +++ b/app/assets/javascripts/badges/components/badge.vue @@ -1,12 +1,14 @@