From 591efccd8b4e1bf8ad99afa4afd1765919786a6d Mon Sep 17 00:00:00 2001 From: Sruthi Chandran Date: Fri, 15 Feb 2019 15:39:39 +0530 Subject: [PATCH] New upstream version 11.7.5 --- .babelrc.js | 6 + .eslintignore | 1 + .eslintrc.yml | 3 +- .gitignore | 4 +- .gitlab-ci.yml | 439 +-- .gitlab/CODEOWNERS.disabled | 8 +- .gitlab/issue_templates/Feature proposal.md | 12 +- .gitlab/issue_templates/Research proposal.md | 17 - .../Security developer workflow.md | 2 + .gitlab/issue_templates/Test plan.md | 4 +- .nvmrc | 2 +- .rubocop.yml | 9 +- .rubocop_todo.yml | 17 - .ruby-version | 2 +- CHANGELOG.md | 657 +++- CONTRIBUTING.md | 47 +- Dangerfile | 1 + GITALY_SERVER_VERSION | 2 +- GITLAB_SHELL_VERSION | 2 +- GITLAB_WORKHORSE_VERSION | 2 +- Gemfile | 90 +- Gemfile.lock | 332 +- Gemfile.rails5 | 7 - Gemfile.rails5.lock | 1164 ------- PHILOSOPHY.md | 1 + PROCESS.md | 107 +- VERSION | 2 +- .../images/cluster_app_logos/cert_manager.png | Bin 0 -> 1287 bytes app/assets/images/none-scheme-preview.png | Bin 0 -> 5971 bytes app/assets/javascripts/api.js | 87 +- .../javascripts/badges/components/badge.vue | 34 +- .../badges/components/badge_form.vue | 55 +- .../badges/components/badge_list.vue | 29 +- .../badges/components/badge_list_row.vue | 27 +- .../badges/components/badge_settings.vue | 13 +- .../behaviors/markdown/gfm_auto_complete.js | 4 +- .../behaviors/markdown/render_gfm.js | 2 + .../javascripts/behaviors/requires_input.js | 7 +- .../javascripts/behaviors/secret_values.js | 8 +- .../behaviors/shortcuts/shortcuts.js | 3 +- .../behaviors/shortcuts/shortcuts_issuable.js | 31 +- .../shortcuts/shortcuts_navigation.js | 1 + .../blob/file_template_mediator.js | 2 +- app/assets/javascripts/blob/viewer/index.js | 10 +- .../javascripts/blob_edit/blob_bundle.js | 22 +- app/assets/javascripts/blob_edit/edit_blob.js | 20 +- .../boards/components/board_blank_state.vue | 26 +- .../boards/components/board_card.vue | 5 +- .../boards/components/board_list.vue | 38 +- .../boards/components/board_new_issue.vue | 32 +- .../boards/components/issue_card_inner.vue | 32 +- .../boards/components/issue_due_date.vue | 47 +- .../boards/components/issue_time_estimate.vue | 18 +- .../boards/components/modal/empty_state.vue | 10 +- .../boards/components/modal/footer.vue | 23 +- .../boards/components/modal/header.vue | 8 +- .../boards/components/modal/index.vue | 17 +- .../boards/components/modal/list.vue | 36 +- .../components/modal/lists_dropdown.vue | 31 +- .../boards/components/modal/tabs.vue | 26 +- .../boards/components/new_list_dropdown.js | 4 +- .../boards/components/project_select.vue | 64 +- .../components/sidebar/remove_issue.vue | 10 +- app/assets/javascripts/boards/index.js | 4 +- app/assets/javascripts/boards/models/issue.js | 6 +- app/assets/javascripts/boards/models/list.js | 1 + .../javascripts/boards/stores/boards_store.js | 7 +- app/assets/javascripts/build_artifacts.js | 4 +- .../ci_variable_list/ajax_variable_list.js | 6 +- .../ci_variable_list/ci_variable_list.js | 8 +- .../javascripts/clusters/clusters_bundle.js | 28 +- .../javascripts/clusters/clusters_index.js | 24 - .../clusters/components/application_row.vue | 52 +- .../clusters/components/applications.vue | 305 +- app/assets/javascripts/clusters/constants.js | 8 + .../clusters/services/clusters_service.js | 1 + .../clusters/stores/clusters_store.js | 22 +- .../commit/pipelines/pipelines_table.vue | 12 +- app/assets/javascripts/contextual_sidebar.js | 3 +- .../cycle_analytics/components/banner.vue | 27 +- .../components/limit_warning_component.vue | 20 +- .../components/stage_code_component.vue | 31 +- .../components/stage_component.vue | 37 +- .../components/stage_plan_component.vue | 33 +- .../components/stage_review_component.vue | 53 +- .../components/stage_staging_component.vue | 59 +- .../components/stage_test_component.vue | 61 +- .../components/total_time_component.vue | 22 +- .../deploy_keys/components/action_btn.vue | 10 +- .../deploy_keys/components/app.vue | 24 +- .../deploy_keys/components/key.vue | 61 +- .../deploy_keys/components/keys_panel.vue | 23 +- .../components/jump_to_discussion.js | 2 +- .../javascripts/diffs/components/app.vue | 128 +- .../diffs/components/commit_item.vue | 67 +- .../diffs/components/commit_widget.vue | 6 +- .../diffs/components/compare_versions.vue | 55 +- .../components/compare_versions_dropdown.vue | 46 +- .../diffs/components/diff_content.vue | 51 +- .../diffs/components/diff_discussions.vue | 35 +- .../diffs/components/diff_file.vue | 76 +- .../diffs/components/diff_file_header.vue | 105 +- .../diffs/components/diff_gutter_avatars.vue | 13 +- .../components/diff_line_gutter_content.vue | 47 +- .../diffs/components/diff_line_note_form.vue | 12 +- .../diffs/components/diff_table_cell.vue | 17 +- .../diffs/components/edit_button.vue | 8 +- .../diffs/components/file_row_stats.vue | 13 +- .../diffs/components/hidden_files_warning.vue | 21 +- .../diffs/components/image_diff_overlay.vue | 19 +- .../components/inline_diff_comment_row.vue | 34 +- .../components/inline_diff_table_row.vue | 25 +- .../diffs/components/inline_diff_view.vue | 38 +- .../diffs/components/no_changes.vue | 66 +- .../components/parallel_diff_comment_row.vue | 73 +- .../components/parallel_diff_table_row.vue | 43 +- .../diffs/components/parallel_diff_view.vue | 34 +- .../diffs/components/tree_list.vue | 63 +- app/assets/javascripts/diffs/index.js | 9 +- app/assets/javascripts/diffs/store/actions.js | 84 +- app/assets/javascripts/diffs/store/getters.js | 44 +- .../diffs/store/modules/diff_state.js | 5 +- .../javascripts/diffs/store/mutation_types.js | 4 +- .../javascripts/diffs/store/mutations.js | 131 +- app/assets/javascripts/diffs/store/utils.js | 160 +- app/assets/javascripts/dismissable_callout.js | 27 - .../environments/components/container.vue | 8 +- .../environments/components/empty_state.vue | 12 +- .../components/environment_actions.vue | 29 +- .../components/environment_external_url.vue | 9 +- .../components/environment_item.vue | 140 +- .../components/environment_monitoring.vue | 8 +- .../components/environment_rollback.vue | 18 +- .../components/environment_stop.vue | 16 +- .../environment_terminal_button.vue | 13 +- .../components/environments_app.vue | 18 +- .../components/environments_table.vue | 68 +- .../components/stop_environment_modal.vue | 24 +- .../folder/environments_folder_bundle.js | 6 +- .../folder/environments_folder_view.vue | 14 +- app/assets/javascripts/environments/index.js | 8 +- .../components/error_tracking_list.vue | 118 + .../javascripts/error_tracking/index.js | 31 + .../error_tracking/services/index.js | 7 + .../error_tracking/store/actions.js | 31 + .../javascripts/error_tracking/store/index.js | 19 + .../error_tracking/store/mutation_types.js | 3 + .../error_tracking/store/mutations.js | 14 + .../javascripts/files_comment_button.js | 2 +- .../recent_searches_dropdown_content.vue | 21 +- .../filtered_search/dropdown_utils.js | 61 - .../filtered_search_visual_tokens.js | 19 +- .../issuable_filtered_search_token_keys.js | 7 +- .../frequent_items/components/app.vue | 11 +- .../components/frequent_items_list.vue | 6 +- .../components/frequent_items_list_item.vue | 31 +- .../frequent_items_search_input.vue | 6 +- app/assets/javascripts/gfm_auto_complete.js | 42 +- app/assets/javascripts/gl_form.js | 2 - .../javascripts/groups/components/app.vue | 2 +- .../groups/components/group_folder.vue | 15 +- .../groups/components/group_item.vue | 81 +- .../javascripts/groups/components/groups.vue | 16 +- .../groups/components/item_actions.vue | 10 +- .../groups/components/item_caret.vue | 7 +- .../groups/components/item_stats.vue | 10 +- .../groups/components/item_stats_value.vue | 8 +- .../groups/components/item_type_icon.vue | 4 +- app/assets/javascripts/groups/index.js | 3 +- app/assets/javascripts/groups_select.js | 7 +- app/assets/javascripts/header.js | 3 +- .../ide/components/activity_bar.vue | 24 +- .../ide/components/branches/item.vue | 24 +- .../ide/components/branches/search_list.vue | 29 +- .../ide/components/commit_sidebar/actions.vue | 6 +- .../commit_sidebar/editor_header.vue | 17 +- .../components/commit_sidebar/empty_state.vue | 20 +- .../ide/components/commit_sidebar/form.vue | 26 +- .../ide/components/commit_sidebar/list.vue | 54 +- .../commit_sidebar/list_collapsed.vue | 22 +- .../components/commit_sidebar/list_item.vue | 13 +- .../commit_sidebar/message_field.vue | 43 +- .../components/commit_sidebar/radio_group.vue | 19 +- .../commit_sidebar/stage_button.vue | 21 +- .../commit_sidebar/success_message.vue | 20 +- .../commit_sidebar/unstage_button.vue | 13 +- .../ide/components/editor_mode_dropdown.vue | 20 +- .../ide/components/error_message.vue | 17 +- .../ide/components/external_link.vue | 11 +- .../ide/components/file_finder/index.vue | 34 +- .../ide/components/file_finder/item.vue | 17 +- .../ide/components/file_row_extra.vue | 9 +- .../ide/components/file_templates/bar.vue | 11 +- .../components/file_templates/dropdown.vue | 41 +- app/assets/javascripts/ide/components/ide.vue | 59 +- .../ide/components/ide_project_header.vue | 14 +- .../javascripts/ide/components/ide_review.vue | 15 +- .../ide/components/ide_side_bar.vue | 23 +- .../ide/components/ide_status_bar.vue | 56 +- .../javascripts/ide/components/ide_tree.vue | 12 +- .../ide/components/ide_tree_list.vue | 21 +- .../ide/components/jobs/detail.vue | 37 +- .../components/jobs/detail/description.vue | 19 +- .../components/jobs/detail/scroll_button.vue | 4 +- .../javascripts/ide/components/jobs/item.vue | 12 +- .../javascripts/ide/components/jobs/list.vue | 8 +- .../javascripts/ide/components/jobs/stage.vue | 43 +- .../ide/components/merge_requests/info.vue | 9 +- .../ide/components/merge_requests/item.vue | 19 +- .../ide/components/merge_requests/list.vue | 40 +- .../ide/components/nav_dropdown.vue | 13 +- .../ide/components/nav_dropdown_button.vue | 25 +- .../javascripts/ide/components/nav_form.vue | 12 +- .../ide/components/new_dropdown/button.vue | 5 +- .../ide/components/new_dropdown/index.vue | 29 +- .../ide/components/new_dropdown/modal.vue | 21 +- .../ide/components/panes/right.vue | 20 +- .../ide/components/pipelines/list.vue | 89 +- .../ide/components/preview/clientside.vue | 23 +- .../ide/components/preview/navigator.vue | 29 +- .../ide/components/repo_commit_section.vue | 18 +- .../ide/components/repo_editor.vue | 41 +- .../ide/components/repo_file_status_icon.vue | 12 +- .../javascripts/ide/components/repo_tab.vue | 31 +- .../javascripts/ide/components/repo_tabs.vue | 11 +- .../ide/components/resizable_panel.vue | 4 +- .../ide/components/shared/tokened_input.vue | 27 +- app/assets/javascripts/ide/constants.js | 1 + app/assets/javascripts/ide/index.js | 14 +- app/assets/javascripts/ide/services/index.js | 6 +- .../javascripts/ide/stores/actions/file.js | 13 +- .../ide/stores/actions/merge_request.js | 7 +- .../javascripts/ide/stores/actions/project.js | 2 +- .../javascripts/ide/stores/actions/tree.js | 2 +- .../stores/modules/merge_requests/actions.js | 12 +- .../ide/stores/modules/pipelines/actions.js | 6 +- .../ide/stores/modules/pipelines/getters.js | 10 +- .../image_diff/helpers/badge_helper.js | 2 +- app/assets/javascripts/importer_status.js | 4 +- app/assets/javascripts/init_legacy_filters.js | 14 - .../issuable_suggestions/components/app.vue | 96 + .../issuable_suggestions/components/item.vue | 137 + .../javascripts/issuable_suggestions/index.js | 38 + .../queries/issues.graphql | 26 + .../javascripts/issue_show/components/app.vue | 6 +- .../issue_show/components/description.vue | 14 +- .../issue_show/components/edit_actions.vue | 26 +- .../issue_show/components/edited.vue | 19 +- .../components/fields/description.vue | 9 +- .../fields/description_template.vue | 52 +- .../issue_show/components/fields/title.vue | 9 +- .../issue_show/components/form.vue | 9 +- .../issue_show/components/locked_warning.vue | 7 +- .../issue_show/components/title.vue | 8 +- .../jobs/components/artifacts_block.vue | 44 +- .../jobs/components/commit_block.vue | 33 +- .../jobs/components/empty_state.vue | 25 +- .../jobs/components/environments_block.vue | 9 +- .../jobs/components/erased_block.vue | 14 +- .../javascripts/jobs/components/job_app.vue | 38 +- .../jobs/components/job_container_item.vue | 16 +- .../jobs/components/job_log_controllers.vue | 22 +- .../javascripts/jobs/components/sidebar.vue | 130 +- .../jobs/components/sidebar_detail_row.vue | 27 +- .../jobs/components/stages_dropdown.vue | 35 +- .../jobs/components/stuck_block.vue | 51 +- .../jobs/components/trigger_block.vue | 84 +- app/assets/javascripts/jobs/store/getters.js | 2 +- app/assets/javascripts/labels.js | 2 +- app/assets/javascripts/labels_select.js | 33 +- app/assets/javascripts/landing.js | 3 +- app/assets/javascripts/lazy_loader.js | 10 +- app/assets/javascripts/lib/graphql.js | 9 + .../javascripts/lib/utils/common_utils.js | 48 +- app/assets/javascripts/lib/utils/dom_utils.js | 5 + .../javascripts/lib/utils/file_upload.js | 13 + .../javascripts/lib/utils/http_status.js | 2 + .../javascripts/lib/utils/text_markdown.js | 205 +- .../javascripts/lib/utils/url_utility.js | 38 +- .../javascripts/lib/utils/users_cache.js | 28 + app/assets/javascripts/main.js | 2 + app/assets/javascripts/merge_request_tabs.js | 31 +- app/assets/javascripts/milestone_select.js | 8 +- app/assets/javascripts/mirrors/constants.js | 4 + .../show => mirrors}/mirror_repos.js | 15 + app/assets/javascripts/mirrors/ssh_mirror.js | 299 ++ .../monitoring/components/charts/area.vue | 101 + .../monitoring/components/dashboard.vue | 43 +- .../monitoring/components/empty_state.vue | 61 +- .../monitoring/components/graph.vue | 81 +- .../monitoring/components/graph/axis.vue | 15 +- .../components/graph/deployment.vue | 41 +- .../monitoring/components/graph/flag.vue | 56 +- .../monitoring/components/graph/legend.vue | 20 +- .../monitoring/components/graph/path.vue | 6 +- .../components/graph/track_line.vue | 4 +- .../monitoring/components/graph_group.vue | 16 +- .../monitoring/monitoring_bundle.js | 4 +- .../monitoring/stores/monitoring_store.js | 34 +- .../monitoring/utils/multiple_time_series.js | 32 +- app/assets/javascripts/mr_notes/index.js | 2 + app/assets/javascripts/namespace_select.js | 3 +- .../javascripts/notebook/cells/code.vue | 6 +- .../javascripts/notebook/cells/code/index.vue | 11 +- .../javascripts/notebook/cells/markdown.vue | 5 +- .../notebook/cells/output/image.vue | 5 +- .../notebook/cells/output/index.vue | 2 +- .../javascripts/notebook/cells/prompt.vue | 4 +- app/assets/javascripts/notebook/index.vue | 3 +- app/assets/javascripts/notes.js | 20 +- .../notes/components/comment_form.vue | 294 +- .../notes/components/diff_with_note.vue | 133 +- .../notes/components/discussion_counter.vue | 50 +- .../notes/components/discussion_filter.vue | 38 +- .../components/discussion_locked_widget.vue | 6 +- .../notes/components/note_actions.vue | 100 +- .../notes/components/note_attachment.vue | 23 +- .../notes/components/note_awards_list.vue | 27 +- .../notes/components/note_body.vue | 65 +- .../notes/components/note_edited_text.vue | 9 +- .../notes/components/note_form.vue | 95 +- .../notes/components/note_header.vue | 45 +- .../components/note_signed_out_widget.vue | 6 +- .../notes/components/noteable_discussion.vue | 471 ++- .../notes/components/noteable_note.vue | 103 +- .../notes/components/notes_app.vue | 122 +- .../components/toggle_replies_widget.vue | 31 +- app/assets/javascripts/notes/constants.js | 1 + .../notes/mixins/discussion_navigation.js | 53 +- .../javascripts/notes/mixins/resolvable.js | 2 +- .../notes/services/notes_service.js | 4 + .../javascripts/notes/stores/actions.js | 70 +- .../javascripts/notes/stores/getters.js | 65 +- .../javascripts/notes/stores/modules/index.js | 4 + .../notes/stores/mutation_types.js | 2 + .../javascripts/notes/stores/mutations.js | 56 +- .../javascripts/notifications_dropdown.js | 4 + .../admin/abuse_reports/abuse_reports.js | 3 +- .../index/components/delete_project_modal.vue | 24 +- .../users/components/delete_user_modal.vue | 24 +- .../pages/dashboard/issues/index.js | 10 +- .../pages/dashboard/merge_requests/index.js | 12 +- .../pages/dashboard/projects/index.js | 6 +- .../pages/groups/clusters/destroy/index.js | 5 + .../pages/groups/clusters/index/index.js | 7 + .../pages/groups/clusters/show/index.js | 5 + .../pages/groups/clusters/update/index.js | 5 + .../javascripts/pages/groups/edit/index.js | 4 + app/assets/javascripts/pages/groups/index.js | 22 + .../components/delete_milestone_modal.vue | 9 +- .../components/promote_milestone_modal.vue | 4 +- .../pages/profiles/show/emoji_menu.js | 1 + .../pages/profiles/two_factor_auths/index.js | 3 +- .../pages/projects/clusters/index/index.js | 6 +- .../pages/projects/commit/show/index.js | 5 +- .../javascripts/pages/projects/edit/index.js | 4 +- .../pages/projects/error_tracking/index.js | 5 + .../javascripts/pages/projects/index.js | 6 +- .../javascripts/pages/projects/issues/form.js | 5 + .../labels/components/promote_label_modal.vue | 8 +- .../components/interval_pattern_input.vue | 36 +- .../components/pipeline_schedules_callout.vue | 40 +- .../pages/projects/pipelines/index/index.js | 6 +- .../javascripts/pages/projects/project.js | 9 +- .../pages/projects/releases/index/index.js | 3 + .../pages/projects/serverless/index.js | 5 + .../projects/settings/repository/form.js | 2 + .../settings/repository/show/index.js | 2 +- .../components/project_feature_setting.vue | 18 +- .../components/project_setting_row.vue | 26 +- .../permissions/components/settings_panel.vue | 47 +- .../pages/projects/shared/project_avatar.js | 16 - .../pages/projects/tags/releases/index.js | 8 + .../wikis/components/delete_wiki_modal.vue | 30 +- .../javascripts/pages/projects/wikis/wikis.js | 4 +- app/assets/javascripts/pages/root/index.js | 5 + .../pages/users/activity_calendar.js | 5 +- .../pages/users/user_overview_block.js | 20 +- .../javascripts/pages/users/user_tabs.js | 114 +- app/assets/javascripts/pdf/index.vue | 4 +- app/assets/javascripts/pdf/page/index.vue | 7 +- .../components/detailed_metric.vue | 36 +- .../components/performance_bar_app.vue | 49 +- .../components/request_selector.vue | 6 +- .../components/simple_metric.vue | 14 +- .../services/performance_bar_service.js | 4 +- .../javascripts/persistent_user_callout.js | 34 + .../pipelines/components/blank_state.vue | 4 +- .../pipelines/components/empty_state.vue | 33 +- .../components/graph/action_component.vue | 26 +- .../components/graph/graph_component.vue | 18 +- .../components/graph/job_group_dropdown.vue | 26 +- .../pipelines/components/graph/job_item.vue | 35 +- .../components/graph/job_name_component.vue | 4 +- .../graph/stage_column_component.vue | 16 +- .../pipelines/components/header_component.vue | 8 +- .../pipelines/components/nav_controls.vue | 20 +- .../pipelines/components/pipeline_url.vue | 85 +- .../pipelines/components/pipelines.vue | 29 +- .../components/pipelines_actions.vue | 42 +- .../components/pipelines_artifacts.vue | 41 +- .../pipelines/components/pipelines_table.vue | 26 +- .../components/pipelines_table_row.vue | 44 +- .../pipelines/components/stage.vue | 33 +- .../pipelines/components/time_ago.vue | 28 +- .../javascripts/pipelines/mixins/pipelines.js | 2 +- .../components/delete_account_modal.vue | 33 +- .../account/components/update_username.vue | 8 +- app/assets/javascripts/profile/profile.js | 3 +- app/assets/javascripts/project_select.js | 5 + .../components/gke_dropdown_mixin.js | 2 +- .../components/gke_machine_type_dropdown.vue | 27 +- .../components/gke_project_id_dropdown.vue | 31 +- .../components/gke_zone_dropdown.vue | 25 +- .../commit_pipeline_status_component.vue | 13 +- .../javascripts/registry/components/app.vue | 25 +- .../components/collapsible_container.vue | 93 +- .../registry/components/table_registry.vue | 77 +- .../javascripts/registry/stores/actions.js | 36 +- .../javascripts/registry/stores/index.js | 28 +- .../javascripts/registry/stores/mutations.js | 1 + .../javascripts/registry/stores/state.js | 26 + .../javascripts/releases/components/app.vue | 82 + .../releases/components/release_block.vue | 129 + app/assets/javascripts/releases/index.js | 24 + .../javascripts/releases/store/actions.js | 37 + .../javascripts/releases/store/index.js | 14 + .../releases/store/mutation_types.js | 3 + .../javascripts/releases/store/mutations.js | 37 + .../javascripts/releases/store/state.js | 5 + .../components/grouped_test_reports_app.vue | 14 +- .../reports/components/issue_status_icon.vue | 5 +- .../javascripts/reports/components/modal.vue | 19 +- .../reports/components/modal_open_name.vue | 2 +- .../reports/components/report_item.vue | 18 +- .../reports/components/report_link.vue | 10 +- .../reports/components/report_section.vue | 12 +- .../reports/components/summary_row.vue | 22 +- .../reports/components/test_issue_body.vue | 10 +- app/assets/javascripts/right_sidebar.js | 15 +- app/assets/javascripts/search_autocomplete.js | 9 +- .../serverless/components/empty_state.vue | 40 + .../serverless/components/function_row.vue | 40 + .../serverless/components/functions.vue | 123 + .../javascripts/serverless/event_hub.js | 3 + .../serverless/serverless_bundle.js | 106 + .../services/get_functions_service.js | 11 + .../serverless/stores/serverless_store.js | 24 + .../set_status_modal/emoji_menu_in_modal.js | 3 +- .../set_status_modal_trigger.vue | 8 +- .../set_status_modal_wrapper.vue | 29 +- .../components/assignees/assignee_title.vue | 21 +- .../components/assignees/assignees.vue | 56 +- .../confidential_issue_sidebar.vue | 20 +- .../components/confidential/edit_form.vue | 10 +- .../confidential/edit_form_buttons.vue | 12 +- .../sidebar/components/lock/edit_form.vue | 17 +- .../components/lock/edit_form_buttons.vue | 12 +- .../components/lock/lock_issue_sidebar.vue | 32 +- .../components/participants/participants.vue | 30 +- .../subscriptions/subscriptions.vue | 9 +- .../time_tracking/collapsed_state.vue | 4 +- .../time_tracking/comparison_pane.vue | 23 +- .../time_tracking/estimate_only_pane.vue | 5 +- .../components/time_tracking/help_state.vue | 21 +- .../time_tracking/no_tracking_pane.vue | 4 +- .../time_tracking/spent_only_pane.vue | 3 +- .../components/time_tracking/time_tracker.vue | 34 +- .../sidebar/components/todo_toggle/todo.vue | 14 +- .../sidebar/stores/sidebar_store.js | 2 +- app/assets/javascripts/star.js | 15 +- app/assets/javascripts/terminal/index.js | 2 +- app/assets/javascripts/terminal/terminal.js | 57 +- app/assets/javascripts/toggle_buttons.js | 6 +- app/assets/javascripts/usage_ping_consent.js | 6 +- app/assets/javascripts/user_popovers.js | 107 + .../components/deployment.vue | 40 +- .../components/memory_usage.vue | 22 +- .../components/mr_widget_author.vue | 12 +- .../components/mr_widget_author_time.vue | 8 +- .../components/mr_widget_container.vue | 6 + .../components/mr_widget_header.vue | 51 +- .../components/mr_widget_icon.vue | 19 + .../components/mr_widget_merge_help.vue | 4 +- .../components/mr_widget_pipeline.vue | 140 +- .../mr_widget_pipeline_container.vue | 74 + .../components/mr_widget_related_links.vue | 10 +- .../components/mr_widget_status_icon.vue | 17 +- .../components/review_app_link.vue | 10 +- .../source_branch_removal_status.vue | 18 +- .../components/states/mr_widget_archived.vue | 14 +- .../states/mr_widget_auto_merge_failed.vue | 15 +- .../components/states/mr_widget_checking.vue | 9 +- .../components/states/mr_widget_closed.vue | 13 +- .../components/states/mr_widget_conflicts.vue | 28 +- .../states/mr_widget_failed_to_merge.vue | 34 +- ...mr_widget_merge_when_pipeline_succeeds.vue | 43 +- .../components/states/mr_widget_merged.vue | 19 +- .../components/states/mr_widget_merging.vue | 6 +- .../states/mr_widget_missing_branch.vue | 19 +- .../states/mr_widget_not_allowed.vue | 11 +- .../states/mr_widget_pipeline_blocked.vue | 11 +- .../components/states/mr_widget_rebase.vue | 36 +- .../components/states/nothing_to_merge.vue | 17 +- .../components/states/pipeline_failed.vue | 11 +- .../components/states/ready_to_merge.vue | 70 +- .../components/states/sha_mismatch.vue | 11 +- .../components/states/squash_before_merge.vue | 4 +- .../states/unresolved_discussions.vue | 9 +- .../components/states/work_in_progress.vue | 19 +- .../mr_widget_options.vue | 85 +- .../stores/get_state_key.js | 2 +- .../stores/mr_widget_store.js | 8 +- .../vue_shared/components/bar_chart.vue | 85 +- .../vue_shared/components/callout.vue | 11 +- .../components/changed_file_icon.vue | 19 +- .../vue_shared/components/ci_badge_link.vue | 6 +- .../vue_shared/components/ci_icon.vue | 7 +- .../components/clipboard_button.vue | 18 +- .../vue_shared/components/commit.vue | 51 +- .../viewers/download_viewer.vue | 15 +- .../content_viewer/viewers/image_viewer.vue | 17 +- .../viewers/markdown_viewer.vue | 11 +- .../components/deprecated_modal.vue | 52 +- .../components/diff_viewer/diff_viewer.vue | 31 +- .../viewers/download_diff_viewer.vue | 32 +- .../diff_viewer/viewers/empty_file.vue | 3 + .../viewers/image_diff/onion_skin_viewer.vue | 41 +- .../viewers/image_diff/swipe_viewer.vue | 22 +- .../viewers/image_diff/two_up_viewer.vue | 6 +- .../diff_viewer/viewers/image_diff_viewer.vue | 53 +- .../diff_viewer/viewers/mode_changed.vue | 30 + .../diff_viewer/viewers/renamed.vue | 3 + .../components/dropdown/dropdown_button.vue | 29 +- .../dropdown/dropdown_hidden_input.vue | 6 +- .../dropdown/dropdown_search_input.vue | 7 +- .../vue_shared/components/expand_button.vue | 12 +- .../vue_shared/components/file_icon.vue | 21 +- .../vue_shared/components/file_row.vue | 21 +- .../components/filtered_search_dropdown.vue | 35 +- .../vue_shared/components/gl_countdown.vue | 10 +- .../vue_shared/components/gl_modal.vue | 27 +- .../vue_shared/components/gl_modal_vuex.vue | 69 + .../components/header_ci_component.vue | 73 +- .../vue_shared/components/help_popover.vue | 6 +- .../vue_shared/components/icon.vue | 4 +- .../vue_shared/components/identicon.vue | 4 +- .../components/issue/issue_assignees.vue | 94 + .../components/issue/issue_milestone.vue | 90 + .../components/issue/issue_warning.vue | 16 +- .../vue_shared/components/loading_button.vue | 18 +- .../vue_shared/components/markdown/field.vue | 143 +- .../vue_shared/components/markdown/header.vue | 74 +- .../components/markdown/suggestion_diff.vue | 74 + .../markdown/suggestion_diff_header.vue | 60 + .../components/markdown/suggestions.vue | 135 + .../components/markdown/toolbar.vue | 81 +- .../components/markdown/toolbar_button.vue | 18 +- .../vue_shared/components/memory_graph.vue | 15 +- .../vue_shared/components/navigation_tabs.vue | 13 +- .../components/notes/placeholder_note.vue | 46 +- .../notes/placeholder_system_note.vue | 15 +- .../components/notes/skeleton_note.vue | 21 +- .../components/notes/system_note.vue | 66 +- .../components/notes/timeline_entry_item.vue | 11 + .../components/pagination_links.vue | 2 +- .../vue_shared/components/pikaday.vue | 17 +- .../components/project_avatar/default.vue | 12 +- .../components/project_avatar/image.vue | 2 +- .../vue_shared/components/recaptcha_modal.vue | 10 +- .../sidebar/collapsed_calendar_icon.vue | 11 +- .../sidebar/collapsed_grouped_date_picker.vue | 13 +- .../components/sidebar/date_picker.vue | 47 +- .../components/sidebar/labels_select/base.vue | 28 +- .../sidebar/labels_select/dropdown_button.vue | 11 +- .../labels_select/dropdown_create_label.vue | 24 +- .../sidebar/labels_select/dropdown_footer.vue | 13 +- .../sidebar/labels_select/dropdown_header.vue | 7 +- .../labels_select/dropdown_search_input.vue | 7 +- .../sidebar/labels_select/dropdown_title.vue | 12 +- .../sidebar/labels_select/dropdown_value.vue | 14 +- .../dropdown_value_collapsed.vue | 8 +- .../components/sidebar/toggle_sidebar.vue | 2 +- .../components/smart_virtual_list.vue | 13 +- .../components/stacked_progress_bar.vue | 12 +- .../vue_shared/components/svg_gradient.vue | 17 +- .../components/table_pagination.vue | 12 +- .../vue_shared/components/tabs/tab.vue | 2 +- .../components/time_ago_tooltip.vue | 13 +- .../vue_shared/components/toggle_button.vue | 17 +- .../components/tooltip_on_truncate.vue | 6 +- .../user_avatar/user_avatar_image.vue | 12 +- .../user_avatar/user_avatar_link.vue | 13 +- .../user_avatar/user_avatar_list.vue | 83 + .../user_avatar/user_avatar_svg.vue | 7 +- .../components/user_popover/user_popover.vue | 91 + .../vuex_shared/modules/modal/actions.js | 17 + .../vuex_shared/modules/modal/index.js | 10 + .../modules/modal/mutation_types.js | 4 + .../vuex_shared/modules/modal/mutations.js | 18 + .../vuex_shared/modules/modal/state.js | 4 + app/assets/stylesheets/application.scss | 6 + app/assets/stylesheets/bootstrap.scss | 2 +- .../stylesheets/bootstrap_migration.scss | 33 +- .../stylesheets/components/popover.scss | 9 + app/assets/stylesheets/csslab.scss | 1 + app/assets/stylesheets/framework.scss | 2 +- .../stylesheets/framework/animations.scss | 22 + app/assets/stylesheets/framework/avatar.scss | 4 + app/assets/stylesheets/framework/buttons.scss | 10 +- app/assets/stylesheets/framework/callout.scss | 6 +- app/assets/stylesheets/framework/common.scss | 24 +- .../framework/contextual_sidebar.scss | 2 +- .../stylesheets/framework/dropdowns.scss | 44 +- app/assets/stylesheets/framework/filters.scss | 16 +- app/assets/stylesheets/framework/flash.scss | 10 +- .../stylesheets/framework/flex_grid.scss | 52 + app/assets/stylesheets/framework/forms.scss | 18 +- .../stylesheets/framework/gitlab_theme.scss | 10 +- app/assets/stylesheets/framework/header.scss | 59 +- .../stylesheets/framework/highlight.scss | 8 +- app/assets/stylesheets/framework/icons.scss | 12 + .../stylesheets/framework/issue_box.scss | 7 +- app/assets/stylesheets/framework/layout.scss | 8 + .../stylesheets/framework/markdown_area.scss | 41 +- app/assets/stylesheets/framework/mobile.scss | 97 - app/assets/stylesheets/framework/modal.scss | 46 +- .../secondary_navigation_elements.scss | 4 + app/assets/stylesheets/framework/selects.scss | 23 + app/assets/stylesheets/framework/tables.scss | 9 + .../stylesheets/framework/timeline.scss | 10 - .../stylesheets/framework/typography.scss | 8 +- .../stylesheets/framework/variables.scss | 32 +- .../framework/variables_overrides.scss | 15 + app/assets/stylesheets/highlight/none.scss | 242 ++ .../stylesheets/page_bundles/_ide_mixins.scss | 18 + app/assets/stylesheets/page_bundles/ide.scss | 17 +- app/assets/stylesheets/pages/boards.scss | 2 +- app/assets/stylesheets/pages/builds.scss | 23 +- app/assets/stylesheets/pages/clusters.scss | 35 + app/assets/stylesheets/pages/diff.scss | 54 +- app/assets/stylesheets/pages/editor.scss | 12 +- .../stylesheets/pages/environments.scss | 15 - app/assets/stylesheets/pages/issuable.scss | 57 +- app/assets/stylesheets/pages/issues.scss | 18 + app/assets/stylesheets/pages/login.scss | 5 +- .../stylesheets/pages/merge_conflicts.scss | 24 +- .../stylesheets/pages/merge_requests.scss | 39 +- app/assets/stylesheets/pages/milestone.scss | 3 + app/assets/stylesheets/pages/note_form.scss | 14 +- app/assets/stylesheets/pages/notes.scss | 75 +- app/assets/stylesheets/pages/pages.scss | 7 +- app/assets/stylesheets/pages/pipelines.scss | 5 - app/assets/stylesheets/pages/profile.scss | 20 +- app/assets/stylesheets/pages/projects.scss | 418 ++- app/assets/stylesheets/pages/search.scss | 2 - app/assets/stylesheets/pages/tree.scss | 12 + app/assets/stylesheets/pages/wiki.scss | 2 +- .../admin/application_settings_controller.rb | 2 +- .../admin/background_jobs_controller.rb | 5 - .../admin/health_check_controller.rb | 8 +- .../admin/impersonations_controller.rb | 13 +- .../admin/requests_profiles_controller.rb | 2 +- app/controllers/admin/users_controller.rb | 5 + app/controllers/application_controller.rb | 46 +- app/controllers/boards/issues_controller.rb | 16 +- app/controllers/chaos_controller.rb | 10 +- .../clusters/applications_controller.rb | 2 +- .../clusters/clusters_controller.rb | 28 +- app/controllers/concerns/group_tree.rb | 4 +- .../concerns/invalid_utf8_error_handler.rb | 27 - app/controllers/concerns/issuable_actions.rb | 10 +- .../concerns/issuable_collections.rb | 70 +- app/controllers/concerns/lfs_request.rb | 6 + .../concerns/merge_requests_action.rb | 2 +- app/controllers/concerns/preview_markdown.rb | 10 +- app/controllers/concerns/renders_commits.rb | 6 + app/controllers/concerns/service_params.rb | 6 +- app/controllers/concerns/snippets_actions.rb | 2 + app/controllers/concerns/uploads_actions.rb | 20 +- .../dashboard/projects_controller.rb | 2 +- app/controllers/dashboard_controller.rb | 12 +- .../explore/projects_controller.rb | 2 +- app/controllers/graphql_controller.rb | 2 +- .../clusters/applications_controller.rb | 18 + app/controllers/groups/clusters_controller.rb | 29 + .../groups/milestones_controller.rb | 21 +- app/controllers/import/github_controller.rb | 2 +- app/controllers/metrics_controller.rb | 2 +- .../notification_settings_controller.rb | 10 +- .../profiles/accounts_controller.rb | 8 +- app/controllers/profiles/keys_controller.rb | 4 +- .../projects/artifacts_controller.rb | 9 - app/controllers/projects/blob_controller.rb | 17 +- .../projects/branches_controller.rb | 4 +- .../projects/ci/lints_controller.rb | 8 +- .../projects/commits_controller.rb | 19 +- .../projects/compare_controller.rb | 6 - .../projects/deploy_keys_controller.rb | 13 +- .../projects/environments_controller.rb | 6 +- .../projects/error_tracking_controller.rb | 44 + .../projects/git_http_controller.rb | 4 +- .../projects/imports_controller.rb | 16 +- app/controllers/projects/issues_controller.rb | 22 +- app/controllers/projects/jobs_controller.rb | 20 +- .../merge_requests/conflicts_controller.rb | 8 +- .../merge_requests/diffs_controller.rb | 7 +- .../projects/merge_requests_controller.rb | 29 +- .../projects/mirrors_controller.rb | 4 + .../projects/network_controller.rb | 10 +- .../projects/pipelines_controller.rb | 10 +- .../projects/protected_branches_controller.rb | 4 + .../projects/protected_refs_controller.rb | 4 +- .../projects/protected_tags_controller.rb | 4 + .../projects/releases_controller.rb | 36 +- .../serverless/functions_controller.rb | 37 + .../settings/operations_controller.rb | 46 + .../settings/repository_controller.rb | 14 + .../projects/tags/releases_controller.rb | 42 + app/controllers/projects/tags_controller.rb | 21 +- app/controllers/root_controller.rb | 4 +- app/controllers/sessions_controller.rb | 2 +- .../sherlock/transactions_controller.rb | 2 +- app/controllers/users_controller.rb | 4 +- app/finders/cluster_ancestors_finder.rb | 35 + .../finder_with_cross_project_access.rb | 30 +- app/finders/events_finder.rb | 47 +- app/finders/group_descendants_finder.rb | 8 +- app/finders/groups_finder.rb | 4 +- app/finders/issuable_finder.rb | 67 +- app/finders/pipelines_finder.rb | 2 +- .../projects/serverless/functions_finder.rb | 31 + app/finders/releases_finder.rb | 14 + app/finders/remote_mirror_finder.rb | 15 + app/graphql/resolvers/full_path_resolver.rb | 7 +- app/graphql/resolvers/issues_resolver.rb | 25 + .../resolvers/merge_request_resolver.rb | 7 +- app/graphql/types/issue_type.rb | 47 + app/graphql/types/label_type.rb | 12 + app/graphql/types/milestone_type.rb | 17 + app/graphql/types/order.rb | 8 + app/graphql/types/permission_types/issue.rb | 14 + app/graphql/types/project_type.rb | 5 + app/graphql/types/sort.rb | 10 + app/graphql/types/user_type.rb | 14 + app/helpers/appearances_helper.rb | 11 +- app/helpers/application_helper.rb | 19 +- app/helpers/application_settings_helper.rb | 17 +- app/helpers/auth_helper.rb | 21 + app/helpers/blob_helper.rb | 31 +- app/helpers/button_helper.rb | 5 +- app/helpers/ci_variables_helper.rb | 15 + app/helpers/commits_helper.rb | 2 +- app/helpers/dashboard_helper.rb | 4 +- app/helpers/diff_helper.rb | 24 - app/helpers/dropdowns_helper.rb | 9 + app/helpers/emails_helper.rb | 35 +- app/helpers/events_helper.rb | 4 + app/helpers/groups_helper.rb | 6 +- app/helpers/icons_helper.rb | 2 +- app/helpers/ide_helper.rb | 16 + app/helpers/import_helper.rb | 4 +- app/helpers/issuables_helper.rb | 111 +- app/helpers/milestones_helper.rb | 23 +- app/helpers/mirror_helper.rb | 5 +- app/helpers/nav_helper.rb | 16 +- app/helpers/projects/error_tracking_helper.rb | 15 + app/helpers/projects_helper.rb | 65 +- app/helpers/runners_helper.rb | 10 + app/helpers/search_helper.rb | 19 +- app/helpers/selects_helper.rb | 5 + app/helpers/sentry_helper.rb | 11 - app/helpers/snippets_helper.rb | 2 +- app/helpers/sorting_helper.rb | 62 +- app/helpers/user_callouts_helper.rb | 4 + app/helpers/users_helper.rb | 6 +- app/helpers/version_check_helper.rb | 3 +- app/helpers/visibility_level_helper.rb | 2 +- app/helpers/workhorse_helper.rb | 12 +- app/mailers/emails/issues.rb | 15 +- app/mailers/emails/merge_requests.rb | 4 +- app/mailers/emails/projects.rb | 15 + app/mailers/emails/remote_mirrors.rb | 12 + app/mailers/notify.rb | 10 +- app/mailers/previews/notify_preview.rb | 12 + app/models/appearance.rb | 32 + app/models/application_record.rb | 5 + app/models/application_setting.rb | 9 +- app/models/blob.rb | 22 +- app/models/blob_viewer/base.rb | 6 +- app/models/blob_viewer/gitlab_ci_yml.rb | 8 +- app/models/broadcast_message.rb | 27 +- app/models/ci/bridge.rb | 34 + app/models/ci/build.rb | 102 +- app/models/ci/build_metadata.rb | 12 +- app/models/ci/build_trace_chunk.rb | 21 +- app/models/ci/pipeline.rb | 127 +- app/models/ci/pipeline_enums.rb | 39 + app/models/ci/runner.rb | 21 +- .../clusters/applications/cert_manager.rb | 67 + app/models/clusters/applications/ingress.rb | 6 +- app/models/clusters/applications/jupyter.rb | 6 +- app/models/clusters/applications/knative.rb | 80 +- .../clusters/applications/prometheus.rb | 7 +- app/models/clusters/applications/runner.rb | 2 +- app/models/clusters/cluster.rb | 60 +- .../clusters/concerns/application_status.rb | 7 + app/models/clusters/kubernetes_namespace.rb | 41 +- app/models/clusters/platforms/kubernetes.rb | 28 +- app/models/commit.rb | 33 +- app/models/commit_collection.rb | 2 +- app/models/commit_status.rb | 15 +- app/models/commit_status_enums.rb | 20 + app/models/concerns/avatarable.rb | 15 +- app/models/concerns/awardable.rb | 13 +- app/models/concerns/blob_like.rb | 2 +- .../concerns/blocks_json_serialization.rb | 2 +- app/models/concerns/cacheable_attributes.rb | 7 +- .../concerns/chronic_duration_attribute.rb | 2 +- app/models/concerns/deployment_platform.rb | 13 + app/models/concerns/descendant.rb | 11 + app/models/concerns/discussion_on_diff.rb | 26 +- app/models/concerns/enum_with_nil.rb | 3 +- app/models/concerns/fast_destroy_all.rb | 5 +- app/models/concerns/issuable.rb | 29 +- app/models/concerns/mentionable.rb | 4 +- .../concerns/mentionable/reference_regexes.rb | 22 +- app/models/concerns/milestoneish.rb | 2 +- app/models/concerns/mirror_authentication.rb | 91 + app/models/concerns/noteable.rb | 8 + app/models/concerns/redis_cacheable.rb | 6 +- app/models/concerns/relative_positioning.rb | 46 +- app/models/concerns/shardable.rb | 18 + .../concerns/storage/legacy_namespace.rb | 2 + app/models/concerns/token_authenticatable.rb | 25 +- .../token_authenticatable_strategies/base.rb | 37 +- .../encrypted.rb | 103 + app/models/concerns/with_uploads.rb | 41 +- app/models/dashboard_group_milestone.rb | 21 +- app/models/dashboard_milestone.rb | 10 +- app/models/diff_note.rb | 13 + app/models/diff_viewer/base.rb | 39 +- app/models/diff_viewer/image.rb | 2 +- app/models/diff_viewer/rich.rb | 2 +- app/models/diff_viewer/server_side.rb | 12 + app/models/diff_viewer/simple.rb | 2 +- app/models/environment.rb | 5 +- app/models/environment_status.rb | 31 +- .../project_error_tracking_setting.rb | 59 + app/models/event.rb | 15 +- app/models/global_milestone.rb | 120 +- app/models/group.rb | 11 +- app/models/group_milestone.rb | 29 +- app/models/hooks/service_hook.rb | 4 +- app/models/hooks/web_hook.rb | 4 +- app/models/identity.rb | 8 +- app/models/identity/uniqueness_scopes.rb | 11 + app/models/issue.rb | 18 +- app/models/label.rb | 9 +- app/models/list.rb | 2 +- app/models/member.rb | 52 +- app/models/members/project_member.rb | 2 - app/models/merge_request.rb | 170 +- app/models/merge_request_diff.rb | 3 +- app/models/milestone.rb | 8 +- app/models/namespace.rb | 26 +- app/models/note.rb | 18 +- app/models/note_diff_file.rb | 15 + app/models/notification_setting.rb | 2 +- app/models/pool_repository.rb | 112 +- app/models/project.rb | 445 ++- app/models/project_feature.rb | 19 +- app/models/project_import_data.rb | 8 + app/models/project_import_state.rb | 29 + app/models/project_repository.rb | 13 + app/models/project_services/bamboo_service.rb | 20 +- .../chat_message/push_message.rb | 47 +- .../project_services/discord_service.rb | 57 + .../project_services/drone_ci_service.rb | 16 +- .../project_services/issue_tracker_service.rb | 2 +- app/models/project_services/jira_service.rb | 2 +- .../project_services/kubernetes_service.rb | 10 +- .../project_services/mock_ci_service.rb | 14 +- .../pipelines_email_service.rb | 4 +- .../project_services/teamcity_service.rb | 2 +- app/models/prometheus_metric.rb | 85 +- app/models/protected_branch.rb | 1 - app/models/protected_tag.rb | 1 - app/models/release.rb | 43 + app/models/releases/link.rb | 22 + app/models/releases/source.rb | 35 + app/models/remote_mirror.rb | 67 +- app/models/repository.rb | 22 +- app/models/service.rb | 7 +- app/models/shard.rb | 4 +- app/models/ssh_host_key.rb | 5 + app/models/storage/hashed_project.rb | 8 +- app/models/suggestion.rb | 63 + app/models/upload.rb | 19 + app/models/uploads/base.rb | 19 + app/models/uploads/fog.rb | 43 + app/models/uploads/local.rb | 56 + app/models/user.rb | 68 +- app/models/user_callout.rb | 8 +- app/models/user_callout_enums.rb | 16 + app/models/wiki_page.rb | 12 +- app/policies/ci/pipeline_policy.rb | 4 + app/policies/clusters/cluster_policy.rb | 6 +- app/policies/concerns/clusterable_actions.rb | 14 + app/policies/group_policy.rb | 17 +- app/policies/milestone_policy.rb | 5 + app/policies/project_policy.rb | 19 + app/policies/release_policy.rb | 5 + app/policies/suggestion_policy.rb | 11 + app/presenters/ci/pipeline_presenter.rb | 10 +- app/presenters/clusterable_presenter.rb | 16 + app/presenters/clusters/cluster_presenter.rb | 52 + app/presenters/group_clusterable_presenter.rb | 36 + app/presenters/issue_presenter.rb | 9 + app/presenters/member_presenter.rb | 8 + .../project_clusterable_presenter.rb | 16 + app/presenters/project_presenter.rb | 140 +- app/presenters/user_presenter.rb | 9 + app/serializers/README.md | 4 +- app/serializers/cluster_application_entity.rb | 1 + app/serializers/diff_file_base_entity.rb | 101 + app/serializers/diff_file_entity.rb | 98 +- app/serializers/diff_line_entity.rb | 2 + app/serializers/diff_viewer_entity.rb | 3 + .../discussion_diff_file_entity.rb | 4 + app/serializers/discussion_entity.rb | 15 +- app/serializers/entity_date_helper.rb | 16 +- app/serializers/environment_entity.rb | 16 + app/serializers/environment_status_entity.rb | 2 +- .../error_tracking/error_entity.rb | 10 + .../error_tracking/error_serializer.rb | 7 + .../issuable_sidebar_basic_entity.rb | 106 + ...y.rb => issuable_sidebar_extras_entity.rb} | 4 +- .../issuable_sidebar_todo_entity.rb | 11 + app/serializers/issue_board_entity.rb | 50 + app/serializers/issue_serializer.rb | 12 +- app/serializers/issue_sidebar_basic_entity.rb | 6 + ...tity.rb => issue_sidebar_extras_entity.rb} | 2 +- app/serializers/label_entity.rb | 4 + app/serializers/merge_request_basic_entity.rb | 2 +- .../merge_request_basic_serializer.rb | 5 - app/serializers/merge_request_serializer.rb | 9 +- .../merge_request_sidebar_basic_entity.rb | 11 + .../merge_request_widget_entity.rb | 2 + app/serializers/note_entity.rb | 1 + app/serializers/pipeline_entity.rb | 2 + app/serializers/project_mirror_entity.rb | 8 +- .../projects/serverless/service_entity.rb | 33 + .../projects/serverless/service_serializer.rb | 9 + app/serializers/remote_mirror_entity.rb | 15 + app/serializers/suggestion_entity.rb | 17 + app/serializers/trigger_variable_entity.rb | 3 +- .../access_token_validation_service.rb | 6 + app/services/ci/archive_trace_service.rb | 35 + .../ci/compare_reports_base_service.rb | 47 + .../ci/compare_test_reports_service.rb | 36 +- app/services/ci/create_pipeline_service.rb | 18 +- app/services/ci/destroy_pipeline_service.rb | 13 + app/services/ci/register_job_service.rb | 6 +- app/services/ci/retry_build_service.rb | 2 +- .../applications/base_helm_service.rb | 19 + .../check_ingress_ip_address_service.rb | 2 +- .../check_installation_progress_service.rb | 15 +- .../clusters/applications/create_service.rb | 14 + .../clusters/applications/install_service.rb | 6 +- app/services/clusters/build_service.rb | 21 + app/services/clusters/create_service.rb | 4 + .../clusters/gcp/fetch_operation_service.rb | 13 + .../clusters/gcp/finalize_creation_service.rb | 36 +- .../create_or_update_namespace_service.rb | 4 +- ...eate_or_update_service_account_service.rb} | 11 +- .../fetch_kubernetes_token_service.rb | 5 +- app/services/clusters/refresh_service.rb | 40 + app/services/commits/commit_patch_service.rb | 2 +- app/services/commits/tag_service.rb | 3 +- app/services/create_release_service.rb | 30 - app/services/deploy_keys/create_service.rb | 2 +- .../error_tracking/list_issues_service.rb | 49 + app/services/files/multi_service.rb | 11 + app/services/git_push_service.rb | 3 +- app/services/git_tag_push_service.rb | 3 +- app/services/groups/nested_create_service.rb | 2 +- app/services/groups/transfer_service.rb | 2 +- app/services/groups/update_service.rb | 2 +- .../issuable/clone/attributes_rewriter.rb | 62 + app/services/issuable/clone/base_service.rb | 60 + .../issuable/clone/content_rewriter.rb | 65 + .../issuable/common_system_notes_service.rb | 21 +- app/services/issuable_base_service.rb | 6 +- app/services/issues/import_csv_service.rb | 53 + app/services/issues/move_service.rb | 165 +- app/services/issues/update_service.rb | 13 + app/services/labels/promote_service.rb | 8 +- app/services/members/destroy_service.rb | 8 +- app/services/merge_requests/base_service.rb | 18 + app/services/merge_requests/build_service.rb | 1 + .../create_from_issue_service.rb | 6 +- app/services/merge_requests/create_service.rb | 21 +- .../merge_requests/refresh_service.rb | 23 +- app/services/merge_requests/update_service.rb | 15 +- app/services/notes/create_service.rb | 1 + app/services/notes/quick_actions_service.rb | 2 +- app/services/notes/update_service.rb | 11 + .../notification_recipient_service.rb | 23 + app/services/notification_service.rb | 44 +- app/services/preview_markdown_service.rb | 8 + app/services/projects/after_rename_service.rb | 1 + .../projects/auto_devops/disable_service.rb | 2 +- app/services/projects/cleanup_service.rb | 52 + app/services/projects/create_service.rb | 14 +- app/services/projects/destroy_service.rb | 2 + .../projects/disable_deploy_key_service.rb | 13 + .../projects/enable_deploy_key_service.rb | 14 +- app/services/projects/fork_service.rb | 2 + .../migrate_repository_service.rb | 15 + app/services/projects/import_service.rb | 4 + .../projects/operations/update_service.rb | 19 + app/services/projects/transfer_service.rb | 12 +- .../projects/update_remote_mirror_service.rb | 2 +- .../quick_actions/interpret_service.rb | 57 +- app/services/releases/concerns.rb | 48 + app/services/releases/create_service.rb | 55 + app/services/releases/destroy_service.rb | 25 + app/services/releases/update_service.rb | 32 + app/services/suggestions/apply_service.rb | 73 + app/services/suggestions/create_service.rb | 56 + app/services/system_note_service.rb | 8 +- app/services/tags/create_service.rb | 7 +- app/services/tags/destroy_service.rb | 10 +- app/services/test_hooks/project_service.rb | 2 +- .../todos/destroy/entity_leave_service.rb | 2 +- .../todos/destroy/private_features_service.rb | 6 +- app/services/update_release_service.rb | 28 - app/services/upload_service.rb | 2 +- app/services/users/build_service.rb | 10 +- .../refresh_authorized_projects_service.rb | 2 +- app/services/users/update_service.rb | 10 +- app/uploaders/file_uploader.rb | 6 +- app/validators/duration_validator.rb | 6 +- app/validators/url_validator.rb | 5 +- app/views/abuse_reports/new.html.haml | 8 +- app/views/admin/appearances/_form.html.haml | 6 +- .../application_settings/_ci_cd.html.haml | 7 + .../admin/background_jobs/show.html.haml | 35 - app/views/admin/dashboard/index.html.haml | 2 +- app/views/admin/groups/show.html.haml | 2 +- app/views/admin/hooks/edit.html.haml | 2 +- app/views/admin/hooks/index.html.haml | 2 +- app/views/admin/runners/_runner.html.haml | 5 +- .../admin/runners/_sort_dropdown.html.haml | 6 +- app/views/admin/users/_head.html.haml | 2 +- app/views/admin/users/_user.html.haml | 2 +- app/views/admin/users/index.html.haml | 24 +- app/views/ci/variables/_content.html.haml | 4 +- app/views/ci/variables/_header.html.haml | 11 + app/views/ci/variables/_index.html.haml | 5 + .../ci/variables/_variable_row.html.haml | 6 +- .../clusters/clusters/_buttons.html.haml | 6 + .../clusters/clusters/_cluster.html.haml | 40 +- .../clusters/clusters/_empty_state.html.haml | 8 +- .../_gcp_signup_offer_banner.html.haml | 4 +- .../clusters/clusters/_sidebar.html.haml | 9 +- .../clusters/clusters/gcp/_show.html.haml | 7 +- app/views/clusters/clusters/index.html.haml | 14 +- app/views/clusters/clusters/show.html.haml | 3 + .../clusters/clusters/user/_form.html.haml | 7 +- .../clusters/clusters/user/_show.html.haml | 7 +- app/views/dashboard/_activities.html.haml | 2 +- app/views/dashboard/activity.html.haml | 3 + app/views/dashboard/groups/index.html.haml | 2 + app/views/dashboard/issues.html.haml | 6 +- app/views/dashboard/merge_requests.html.haml | 6 +- .../dashboard/milestones/_milestone.html.haml | 2 +- app/views/dashboard/projects/index.html.haml | 2 + .../dashboard/projects/starred.html.haml | 2 + app/views/dashboard/snippets/index.html.haml | 5 - app/views/dashboard/todos/index.html.haml | 2 + ...firmation_instructions_secondary.html.haml | 2 +- app/views/devise/shared/_signin_box.html.haml | 6 +- app/views/devise/shared/_tabs_ldap.html.haml | 7 +- app/views/errors/access_denied.html.haml | 2 +- app/views/events/_events.html.haml | 5 +- app/views/explore/groups/index.html.haml | 2 + app/views/explore/projects/_filter.html.haml | 6 +- app/views/explore/projects/index.html.haml | 2 + app/views/explore/projects/starred.html.haml | 2 + app/views/explore/projects/trending.html.haml | 2 + app/views/groups/_activities.html.haml | 2 +- app/views/groups/_home_panel.html.haml | 4 +- app/views/groups/edit.html.haml | 1 + .../group_members/_new_group_member.html.haml | 2 +- app/views/groups/issues.html.haml | 2 +- app/views/groups/labels/edit.html.haml | 4 +- app/views/groups/labels/new.html.haml | 5 +- app/views/groups/merge_requests.html.haml | 2 +- app/views/groups/milestones/edit.html.haml | 5 +- app/views/groups/milestones/new.html.haml | 15 +- .../groups/settings/ci_cd/show.html.haml | 8 +- app/views/help/_shortcuts.html.haml | 7 + app/views/ide/_show.html.haml | 10 + app/views/ide/index.html.haml | 18 +- app/views/import/bitbucket/status.html.haml | 5 +- .../import/bitbucket_server/status.html.haml | 5 +- app/views/import/fogbugz/status.html.haml | 5 +- app/views/import/gitlab/status.html.haml | 5 +- app/views/import/google_code/status.html.haml | 5 +- app/views/invites/show.html.haml | 17 +- app/views/issues/_issues_calendar.ics.ruby | 2 +- app/views/layouts/_head.html.haml | 1 + app/views/layouts/_search.html.haml | 2 +- app/views/layouts/devise.html.haml | 4 +- app/views/layouts/header/_default.html.haml | 6 +- .../layouts/header/_help_dropdown.html.haml | 3 + app/views/layouts/header/_new_dropdown.haml | 28 +- app/views/layouts/nav/_dashboard.html.haml | 39 +- .../layouts/nav/sidebar/_group.html.haml | 15 +- .../layouts/nav/sidebar/_project.html.haml | 28 +- app/views/notify/_note_email.html.haml | 33 +- app/views/notify/_note_email.text.erb | 15 +- .../notify/autodevops_disabled_email.text.erb | 2 +- ...haml => changed_milestone_email.html.haml} | 2 + .../notify/changed_milestone_email.text.erb | 1 + .../changed_milestone_issue_email.text.erb | 1 - ...ed_milestone_merge_request_email.html.haml | 3 - ...ged_milestone_merge_request_email.text.erb | 1 - app/views/notify/closed_issue_email.html.haml | 2 +- app/views/notify/closed_issue_email.text.haml | 2 +- .../closed_merge_request_email.html.haml | 2 +- .../closed_merge_request_email.text.haml | 6 +- .../notify/import_issues_csv_email.html.haml | 18 + .../notify/import_issues_csv_email.text.erb | 11 + .../issue_status_changed_email.html.haml | 2 +- .../issue_status_changed_email.text.erb | 2 +- .../member_access_requested_email.text.erb | 2 +- .../member_invite_accepted_email.text.erb | 2 +- .../notify/member_invited_email.text.erb | 2 +- .../merge_request_status_email.html.haml | 2 +- .../merge_request_status_email.text.haml | 6 +- .../merge_request_unmergeable_email.text.haml | 4 +- .../merged_merge_request_email.text.haml | 4 +- app/views/notify/new_gpg_key_email.html.haml | 2 +- app/views/notify/new_gpg_key_email.text.erb | 2 +- app/views/notify/new_issue_email.text.erb | 2 +- .../new_mention_in_issue_email.text.erb | 4 +- ...ew_mention_in_merge_request_email.text.erb | 4 +- .../notify/new_merge_request_email.html.haml | 2 +- app/views/notify/new_ssh_key_email.html.haml | 2 +- app/views/notify/new_ssh_key_email.text.erb | 2 +- app/views/notify/new_user_email.html.haml | 2 +- app/views/notify/new_user_email.text.erb | 2 +- .../notify/pipeline_failed_email.text.erb | 6 +- .../notify/pipeline_success_email.text.erb | 6 +- .../push_to_merge_request_email.html.haml | 2 +- .../push_to_merge_request_email.text.haml | 2 +- .../notify/reassigned_issue_email.html.haml | 2 +- .../notify/reassigned_issue_email.text.erb | 2 +- .../reassigned_merge_request_email.html.haml | 4 +- .../reassigned_merge_request_email.text.erb | 4 +- ...emote_mirror_update_failed_email.html.haml | 46 + ...remote_mirror_update_failed_email.text.erb | 7 + .../repository_cleanup_failure_email.text.erb | 3 + .../repository_cleanup_success_email.text.erb | 3 + .../resolved_all_discussions_email.html.haml | 2 +- .../resolved_all_discussions_email.text.erb | 2 +- app/views/peek/views/_gc.html.haml | 4 +- app/views/profiles/accounts/show.html.haml | 9 +- .../personal_access_tokens/index.html.haml | 2 +- app/views/profiles/show.html.haml | 38 +- .../profiles/two_factor_auths/show.html.haml | 3 +- app/views/projects/_activity.html.haml | 4 +- app/views/projects/_export.html.haml | 3 +- app/views/projects/_files.html.haml | 6 + app/views/projects/_home_panel.html.haml | 130 +- .../projects/_issuable_by_email.html.haml | 7 +- app/views/projects/_md_preview.html.haml | 12 +- .../projects/_stat_anchor_list.html.haml | 4 +- app/views/projects/blob/_blob.html.haml | 2 +- app/views/projects/blob/_editor.html.haml | 8 +- .../projects/blob/_markdown_buttons.html.haml | 13 + app/views/projects/blob/preview.html.haml | 2 +- .../blob/viewers/_gitlab_ci_yml.html.haml | 4 +- .../projects/blob/viewers/_markup.html.haml | 2 +- app/views/projects/branches/new.html.haml | 4 +- app/views/projects/buttons/_clone.html.haml | 28 + .../projects/buttons/_download.html.haml | 2 +- app/views/projects/buttons/_fork.html.haml | 6 +- .../projects/buttons/_notifications.html.haml | 27 + app/views/projects/buttons/_star.html.haml | 12 +- app/views/projects/ci/builds/_build.html.haml | 2 +- app/views/projects/ci/lints/_create.html.haml | 9 +- app/views/projects/cleanup/_show.html.haml | 29 + .../projects/commit/_commit_box.html.haml | 6 +- app/views/projects/compare/_form.html.haml | 4 +- app/views/projects/diffs/_collapsed.html.haml | 4 +- app/views/projects/diffs/_diffs.html.haml | 8 +- app/views/projects/diffs/_file.html.haml | 5 +- .../projects/diffs/_file_header.html.haml | 2 +- .../projects/diffs/_render_error.html.haml | 6 +- app/views/projects/diffs/_stats.html.haml | 2 +- app/views/projects/diffs/_text_file.html.haml | 2 +- app/views/projects/diffs/_warning.html.haml | 14 +- .../projects/diffs/viewers/_added.html.haml | 2 +- .../projects/diffs/viewers/_deleted.html.haml | 2 +- .../diffs/viewers/_mode_changed.html.haml | 2 +- .../diffs/viewers/_no_preview.html.haml | 2 +- .../diffs/viewers/_not_diffable.html.haml | 2 +- .../projects/diffs/viewers/_renamed.html.haml | 2 +- app/views/projects/edit.html.haml | 6 +- app/views/projects/empty.html.haml | 122 +- .../environments/_external_url.html.haml | 2 +- .../projects/environments/_form.html.haml | 15 +- .../environments/_metrics_button.html.haml | 4 +- .../projects/environments/edit.html.haml | 4 +- .../projects/environments/folder.html.haml | 2 +- .../projects/environments/index.html.haml | 3 +- .../projects/environments/metrics.html.haml | 2 +- app/views/projects/environments/new.html.haml | 6 +- .../projects/environments/show.html.haml | 22 +- .../projects/environments/terminal.html.haml | 4 +- .../projects/error_tracking/index.html.haml | 3 + app/views/projects/find_file/show.html.haml | 2 +- app/views/projects/forks/index.html.haml | 2 +- .../_generic_commit_status.html.haml | 2 +- app/views/projects/graphs/charts.html.haml | 2 +- app/views/projects/imports/new.html.haml | 2 +- app/views/projects/imports/show.html.haml | 2 + app/views/projects/issues/_import_export.svg | 1 + app/views/projects/issues/_nav_btns.html.haml | 39 +- .../issues/import_csv/_button.html.haml | 9 + .../issues/import_csv/_modal.html.haml | 24 + app/views/projects/issues/index.html.haml | 5 +- app/views/projects/issues/show.html.haml | 4 +- app/views/projects/labels/edit.html.haml | 2 + app/views/projects/labels/index.html.haml | 2 +- app/views/projects/labels/new.html.haml | 3 +- .../merge_requests/_mr_title.html.haml | 2 +- .../merge_requests/conflicts.html.haml | 36 - .../merge_requests/conflicts/show.html.haml | 2 +- .../creations/_new_compare.html.haml | 4 +- .../projects/merge_requests/show.html.haml | 11 +- app/views/projects/milestones/edit.html.haml | 3 + app/views/projects/milestones/new.html.haml | 3 +- .../mirrors/_authentication_method.html.haml | 36 + .../projects/mirrors/_mirror_repos.html.haml | 14 +- .../mirrors/_mirror_repos_form.html.haml | 17 +- .../mirrors/_mirror_repos_push.html.haml | 8 + ...ate_public_ssh_key_confirm_modal.html.haml | 13 + app/views/projects/mirrors/_show.html.haml | 1 - .../projects/mirrors/_ssh_host_keys.html.haml | 33 + app/views/projects/new.html.haml | 6 +- .../projects/pages/_https_only.html.haml | 10 +- app/views/projects/pages/_list.html.haml | 8 +- app/views/projects/pipelines/_info.html.haml | 32 + app/views/projects/pipelines/charts.html.haml | 3 +- app/views/projects/pipelines/new.html.haml | 2 +- .../_new_project_group.html.haml | 2 +- .../_new_project_member.html.haml | 2 +- .../_built_in_templates.html.haml | 6 +- .../shared/_dropdown.html.haml | 2 +- .../protected_tags/shared/_dropdown.html.haml | 2 +- app/views/projects/releases/index.html.haml | 5 + app/views/projects/runners/_index.html.haml | 2 +- .../runners/_shared_runners.html.haml | 10 +- .../runners/_specific_runners.html.haml | 4 +- app/views/projects/runners/edit.html.haml | 2 +- .../serverless/functions/index.html.haml | 15 + .../services/prometheus/_metrics.html.haml | 2 +- .../services/prometheus/_show.html.haml | 2 +- .../projects/settings/ci_cd/_form.html.haml | 2 +- .../projects/settings/ci_cd/show.html.haml | 8 +- .../operations/_error_tracking.html.haml | 30 + .../settings/operations/show.html.haml | 5 + .../settings/repository/show.html.haml | 3 +- app/views/projects/show.html.haml | 16 +- app/views/projects/snippets/show.html.haml | 2 +- app/views/projects/tags/_tag.html.haml | 2 +- app/views/projects/tags/index.html.haml | 4 +- .../{ => tags}/releases/edit.html.haml | 0 app/views/projects/tags/show.html.haml | 2 +- .../projects/tree/_tree_content.html.haml | 2 +- .../projects/tree/_tree_header.html.haml | 8 +- .../wikis/_sidebar_wiki_page.html.haml | 2 +- app/views/projects/wikis/edit.html.haml | 10 +- app/views/projects/wikis/history.html.haml | 4 +- app/views/projects/wikis/show.html.haml | 8 +- .../repository_check_mailer/notify.html.haml | 4 +- .../repository_check_mailer/notify.text.haml | 5 +- app/views/search/_results.html.haml | 2 +- app/views/search/results/_blob.html.haml | 6 +- app/views/search/results/_wiki_blob.html.haml | 4 +- ...devops_implicitly_enabled_banner.html.haml | 4 +- .../shared/_flash_user_callout.html.haml | 11 + app/views/shared/_label.html.haml | 45 +- app/views/shared/_labels_row.html.haml | 5 - .../_milestones_sort_dropdown.html.haml | 14 +- .../shared/_mobile_clone_panel.html.haml | 20 +- .../shared/_new_project_item_select.html.haml | 2 +- ..._access_tokens_created_container.html.haml | 2 +- .../_personal_access_tokens_form.html.haml | 4 +- .../_personal_access_tokens_table.html.haml | 2 +- .../_remote_mirror_update_button.html.haml | 2 +- app/views/shared/_sort_dropdown.html.haml | 16 - .../shared/empty_states/_issues.html.haml | 20 +- .../empty_states/_merge_requests.html.haml | 21 +- app/views/shared/groups/_dropdown.html.haml | 2 +- .../shared/issuable/_feed_buttons.html.haml | 4 +- app/views/shared/issuable/_filter.html.haml | 32 - app/views/shared/issuable/_form.html.haml | 2 + app/views/shared/issuable/_nav.html.haml | 8 +- .../shared/issuable/_search_bar.html.haml | 20 +- app/views/shared/issuable/_sidebar.html.haml | 163 +- .../issuable/_sidebar_assignees.html.haml | 51 +- .../shared/issuable/_sidebar_todo.html.haml | 18 +- .../shared/issuable/_sort_dropdown.html.haml | 21 + .../issuable/form/_merge_params.html.haml | 2 +- .../shared/issuable/form/_metadata.html.haml | 3 +- ..._metadata_merge_request_assignee.html.haml | 2 +- .../shared/issuable/nav_links/_all.html.haml | 2 +- .../shared/labels/_sort_dropdown.html.haml | 4 +- .../members/_access_request_links.html.haml | 17 + .../members/_filter_2fa_dropdown.html.haml | 4 +- app/views/shared/members/_group.html.haml | 10 +- app/views/shared/members/_member.html.haml | 31 +- app/views/shared/members/_requests.html.haml | 2 +- .../shared/members/_sort_dropdown.html.haml | 2 +- .../shared/milestones/_milestone.html.haml | 14 +- .../shared/milestones/_sidebar.html.haml | 2 +- app/views/shared/milestones/_top.html.haml | 11 +- .../shared/notes/_comment_button.html.haml | 19 +- app/views/shared/notes/_edit.html.haml | 2 +- app/views/shared/notes/_edit_form.html.haml | 8 +- app/views/shared/notes/_form.html.haml | 6 +- app/views/shared/notes/_hints.html.haml | 12 +- app/views/shared/notes/_note.html.haml | 6 +- .../shared/notes/_notes_with_form.html.haml | 14 +- .../shared/notifications/_button.html.haml | 6 +- app/views/shared/projects/_list.html.haml | 13 +- app/views/shared/projects/_project.html.haml | 135 +- app/views/shared/runners/_form.html.haml | 2 +- app/views/shared/snippets/_snippet.html.haml | 2 +- .../shared/tokens/_scopes_form.html.haml | 2 +- app/views/snippets/_actions.html.haml | 26 +- app/views/snippets/_snippets.html.haml | 2 +- .../snippets/_snippets_scope_menu.html.haml | 8 +- app/views/snippets/edit.html.haml | 5 +- app/views/snippets/index.html.haml | 6 +- app/views/snippets/new.html.haml | 2 +- app/views/snippets/notes/_actions.html.haml | 4 +- app/views/snippets/show.html.haml | 4 +- app/views/u2f/_authenticate.html.haml | 10 +- app/views/u2f/_register.html.haml | 22 +- app/views/users/_overview.html.haml | 50 +- app/views/users/calendar_activities.html.haml | 2 +- app/views/users/show.html.haml | 20 +- app/workers/all_queues.yml | 15 +- app/workers/archive_trace_worker.rb | 2 +- app/workers/build_finished_worker.rb | 2 +- app/workers/ci/archive_traces_cron_worker.rb | 14 +- app/workers/cluster_configure_worker.rb | 12 + .../cluster_platform_configure_worker.rb | 22 - .../cluster_project_configure_worker.rb | 12 + app/workers/cluster_provision_worker.rb | 2 +- .../gitlab/github_import/stage_methods.rb | 2 +- app/workers/concerns/object_pool_queue.rb | 12 + .../concerns/project_import_options.rb | 2 +- app/workers/concerns/project_start_import.rb | 6 +- app/workers/delete_stored_files_worker.rb | 22 + app/workers/git_garbage_collect_worker.rb | 2 + .../github_import/advance_stage_worker.rb | 11 +- .../refresh_import_jid_worker.rb | 14 +- .../stage/import_base_data_worker.rb | 2 +- .../stage/import_pull_requests_worker.rb | 2 +- app/workers/import_issues_csv_worker.rb | 20 + .../notification_service_worker.rb | 23 +- app/workers/new_note_worker.rb | 9 +- app/workers/object_pool/create_worker.rb | 44 + app/workers/object_pool/destroy_worker.rb | 16 + app/workers/object_pool/join_worker.rb | 20 + .../object_pool/schedule_join_worker.rb | 19 + app/workers/pipeline_schedule_worker.rb | 32 +- app/workers/post_receive.rb | 20 +- app/workers/process_commit_worker.rb | 2 +- app/workers/reactive_caching_worker.rb | 2 +- .../remote_mirror_notification_worker.rb | 18 + .../remove_old_web_hook_logs_worker.rb | 14 - app/workers/repository_cleanup_worker.rb | 39 + app/workers/repository_fork_worker.rb | 4 +- app/workers/repository_import_worker.rb | 4 +- .../repository_update_remote_mirror_worker.rb | 3 +- app/workers/stuck_import_jobs_worker.rb | 2 +- app/workers/stuck_merge_jobs_worker.rb | 6 +- ..._head_pipeline_for_merge_request_worker.rb | 21 +- bin/rails | 10 - bin/rake | 10 - bin/rspec | 5 - bin/secpick | 23 +- bin/setup | 42 +- changelogs/archive.md | 2 +- config.ru | 4 + config/application.rb | 20 +- config/boot.rb | 11 +- config/dependency_decisions.yml | 18 +- config/environment.rb | 7 +- config/environments/production.rb | 10 +- config/environments/test.rb | 9 +- config/gitlab.yml.example | 21 +- config/initializers/1_settings.rb | 5 +- .../initializers/{devise.rb => 8_devise.rb} | 0 .../action_dispatch_http_mime_negotiation.rb | 19 + .../active_record_array_type_casting.rb | 23 - ...id_type_casting_in_uniqueness_validator.rb | 108 +- .../initializers/active_record_data_types.rb | 2 +- config/initializers/active_record_locking.rb | 35 +- .../application_controller_renderer.rb | 12 - config/initializers/ar5_batching.rb | 40 - config/initializers/ar5_pg_10_support.rb | 58 - config/initializers/ar_mysql_jsonb_support.rb | 31 + config/initializers/carrierwave_patch.rb | 29 - config/initializers/correlation_id.rb | 3 + config/initializers/kubeclient.rb | 15 - config/initializers/lograge.rb | 1 + .../mysql_set_length_for_binary_indexes.rb | 49 +- config/initializers/new_framework_defaults.rb | 39 +- .../postgresql_opclasses_support.rb | 35 +- config/initializers/sentry.rb | 2 +- config/initializers/sidekiq.rb | 9 +- config/initializers/static_files.rb | 23 +- config/initializers/trusted_proxies.rb | 12 +- .../{8_metrics.rb => zz_metrics.rb} | 3 + config/prometheus/common_metrics.yml | 48 +- config/routes/api.rb | 2 +- config/routes/group.rb | 2 + config/routes/import.rb | 2 +- config/routes/project.rb | 13 + config/routes/repository.rb | 2 +- config/routes/uploads.rb | 3 +- config/routes/wiki.rb | 2 +- config/settings.rb | 8 + config/sidekiq_queues.yml | 5 + config/webpack.config.js | 12 +- danger/changelog/Dangerfile | 2 +- danger/commit_messages/Dangerfile | 2 +- danger/documentation/Dangerfile | 25 +- danger/duplicate_yarn_dependencies/Dangerfile | 27 + danger/gemfile/Dangerfile | 2 +- db/fixtures/development/03_settings.rb | 8 + db/fixtures/development/04_project.rb | 14 +- db/fixtures/development/10_merge_requests.rb | 12 +- db/fixtures/development/14_pipelines.rb | 7 +- db/fixtures/development/24_forks.rb | 22 + .../production/001_application_settings.rb | 2 + .../production/{001_admin.rb => 002_admin.rb} | 0 db/importers/common_metrics_importer.rb | 4 +- db/migrate/20140313092127_init_schema.rb | 2 +- db/migrate/20140407135544_fix_namespaces.rb | 2 +- ...tate_to_allow_empty_merge_request_diffs.rb | 2 +- db/migrate/20140416074002_add_index_on_iid.rb | 2 +- ...40416185734_index_on_current_sign_in_at.rb | 2 +- ...140428105831_add_notes_index_updated_at.rb | 2 +- .../20140502115131_add_repo_size_to_db.rb | 2 +- .../20140502125220_migrate_repo_size.rb | 2 +- ...611135229_add_position_to_merge_request.rb | 2 +- ...140625115202_create_users_star_projects.rb | 2 +- db/migrate/20140729134820_create_labels.rb | 2 +- .../20140729140420_create_label_links.rb | 2 +- .../20140729145339_migrate_project_tags.rb | 2 +- .../20140729152420_migrate_taggable_labels.rb | 2 +- .../20140730111702_add_index_to_labels.rb | 2 +- .../20140903115954_migrate_to_new_shell.rb | 2 +- ...0907220153_serialize_service_properties.rb | 2 +- .../20140914113604_add_members_table.rb | 2 +- ...0914145549_migrate_to_new_members_model.rb | 2 +- ...20140914173417_remove_old_member_tables.rb | 2 +- ...006143943_move_slack_service_to_webhook.rb | 2 +- ...7100818_add_visibility_level_to_snippet.rb | 2 +- db/migrate/20141118150935_add_audit_event.rb | 2 +- ...0141121133009_add_timestamps_to_members.rb | 2 +- .../20141121161704_add_identity_table.rb | 2 +- ...erge_request_rebase_enabled_to_projects.rb | 2 +- ...05134006_add_locked_at_to_merge_request.rb | 2 +- ...20141216155758_create_doorkeeper_tables.rb | 2 +- ...20141217125223_add_owner_to_application.rb | 2 +- ...135007_add_import_data_to_project_table.rb | 2 +- ...velopers_can_push_to_protected_branches.rb | 2 +- ...50108073740_create_application_settings.rb | 2 +- ..._home_page_url_for_application_settings.rb | 2 +- ...6234545_add_gitlab_access_token_to_user.rb | 2 +- ...0_add_default_branch_protection_setting.rb | 2 +- ...0205211843_add_timestamps_to_identities.rb | 2 +- .../20150206181414_add_index_to_created_at.rb | 2 +- ...06222854_add_notification_email_to_user.rb | 2 +- .../20150209222013_add_missing_index.rb | 2 +- .../20150211172122_add_template_to_service.rb | 2 +- ...74341_allow_null_in_services_project_id.rb | 2 +- ...sharing_enabled_to_application_settings.rb | 2 +- ...0213114800_add_hide_no_password_to_user.rb | 2 +- ..._add_password_automatically_set_to_user.rb | 2 +- ...tbucket_access_token_and_secret_to_user.rb | 2 +- .../20150219004514_add_events_to_services.rb | 2 +- ...0223022001_set_missing_last_activity_at.rb | 2 +- ...50225065047_add_note_events_to_services.rb | 2 +- ...sibility_levels_to_application_settings.rb | 2 +- ...0150306023106_fix_namespace_duplication.rb | 2 +- ...306023112_add_unique_index_to_namespace.rb | 2 +- ...d_version_check_to_application_settings.rb | 2 +- ...150313012111_create_subscriptions_table.rb | 2 +- .../20150320234437_add_location_to_user.rb | 2 +- ...55957_set_incorrect_assignee_id_to_null.rb | 2 +- .../20150327122227_add_public_to_key.rb | 2 +- ...150327150017_add_import_data_to_project.rb | 2 +- ...27223628_add_devise_two_factor_to_users.rb | 2 +- ...attachment_size_to_application_settings.rb | 2 +- ...d_devise_two_factor_backupable_to_users.rb | 2 +- ...0150406133311_add_invite_data_to_member.rb | 2 +- db/migrate/20150411000035_fix_identities.rb | 2 +- .../20150411180045_rename_buildbox_service.rb | 2 +- ...0150413192223_add_public_email_to_users.rb | 2 +- ...150417121913_create_project_import_data.rb | 2 +- ...7122318_remove_import_data_from_project.rb | 2 +- ...000_remove_periods_at_ends_of_usernames.rb | 2 +- ...ect_visibililty_to_application_settings.rb | 2 +- ...or_tag_names.acts_as_taggable_on_engine.rb | 2 +- .../20150425164647_remove_duplicate_tags.rb | 2 +- ...ique_indices.acts_as_taggable_on_engine.rb | 2 +- ...ache_to_tags.acts_as_taggable_on_engine.rb | 2 +- ...ggable_index.acts_as_taggable_on_engine.rb | 2 +- ...or_tag_names.acts_as_taggable_on_engine.rb | 2 +- ...ault_snippet_visibility_to_app_settings.rb | 2 +- ..._remove_abandoned_group_members_records.rb | 2 +- ..._signup_domains_to_application_settings.rb | 2 +- ...09180749_convert_legacy_reference_notes.rb | 2 +- ...0516060434_add_note_events_to_web_hooks.rb | 2 +- ...th_applications_to_application_settings.rb | 2 +- ..._sign_out_path_for_application_settings.rb | 2 +- ...n_expire_delay_for_application_settings.rb | 2 +- .../20150610065936_add_dashboard_to_users.rb | 2 +- ...dd_default_otp_required_for_login_value.rb | 2 +- ...0150713160110_add_project_view_to_users.rb | 2 +- ...0717130904_add_commits_count_to_project.rb | 2 +- ...6_add_updated_by_to_issuables_and_notes.rb | 2 +- .../20150806104937_create_abuse_reports.rb | 2 +- ...50812080800_add_settings_import_sources.rb | 2 +- ...14065925_remove_oauth_tokens_from_users.rb | 2 +- ...50817163600_deduplicate_user_identities.rb | 2 +- .../20150818213832_add_sent_notifications.rb | 2 +- ...50824002011_add_enable_ssl_verification.rb | 2 +- db/migrate/20150826001931_add_ci_tables.rb | 2 +- ...1444_add_fast_forward_option_to_project.rb | 2 +- .../20150902001023_add_template_to_label.rb | 2 +- db/migrate/20150914215247_add_ci_tags.rb | 2 +- ...1905_enable_ssl_verification_by_default.rb | 2 +- ...5_enable_ssl_verification_for_web_hooks.rb | 2 +- ..._help_page_text_to_application_settings.rb | 2 +- ...45038_add_index_for_committed_at_and_id.rb | 2 +- ..._add_ci_enabled_to_application_settings.rb | 2 +- ..._invalid_milestones_from_merge_requests.rb | 2 +- ...20010715_add_consumed_timestep_to_users.rb | 2 +- ...1119_add_line_code_to_sent_notification.rb | 2 +- ...50924125150_add_project_id_to_ci_commit.rb | 2 +- ...25436_migrate_project_id_for_ci_commits.rb | 2 +- ...0150930001110_merge_request_error_field.rb | 2 +- ...095736_add_null_to_name_for_ci_projects.rb | 2 +- .../20150930110012_add_group_share_lock.rb | 2 +- .../20151002112914_add_stage_idx_to_builds.rb | 2 +- .../20151002121400_add_index_for_builds.rb | 2 +- ...0151002122929_add_ref_and_tag_to_builds.rb | 2 +- ...1002122943_migrate_ref_and_tag_to_build.rb | 2 +- .../20151005075649_add_user_id_to_build.rb | 2 +- ...51005150751_add_layout_option_for_users.rb | 2 +- ...ve_ci_enabled_from_application_settings.rb | 2 +- ..._namespaces_projects_path_lower_indexes.rb | 2 +- ..._add_users_lower_username_email_indexes.rb | 2 +- ...3042_add_type_and_description_to_builds.rb | 2 +- ..._migrate_name_to_description_for_builds.rb | 2 +- ...19_add_admin_notification_email_setting.rb | 2 +- ...20151012173029_set_jira_service_api_url.rb | 2 +- ...1013092124_add_artifacts_file_to_builds.rb | 2 +- ...433_add_ci_projects_gl_project_id_index.rb | 2 +- ...5451_add_ci_builds_and_projects_indexes.rb | 2 +- ...0151016195706_add_notes_line_code_index.rb | 2 +- db/migrate/20151019111551_fix_build_tags.rb | 2 +- ...20151019111703_fail_build_without_names.rb | 2 +- ...51020145526_add_services_template_index.rb | 2 +- .../20151020173516_ci_limits_to_mysql.rb | 2 +- ...20173906_add_ci_builds_index_for_status.rb | 2 +- ...151023112551_fail_build_with_empty_name.rb | 2 +- .../20151023144219_remove_satellites.rb | 2 +- .../20151026182941_add_project_path_index.rb | 2 +- ...ge_when_build_succeeds_to_merge_request.rb | 2 +- .../20151103001141_add_public_to_group.rb | 2 +- ...151103133339_add_shared_runners_setting.rb | 2 +- .../20151103134857_create_lfs_objects.rb | 2 +- ...51103134958_create_lfs_objects_projects.rb | 2 +- .../20151104105513_add_file_to_lfs_objects.rb | 2 +- db/migrate/20151105094515_create_releases.rb | 2 +- .../20151106000015_add_is_award_to_notes.rb | 2 +- ..._artifacts_size_to_application_settings.rb | 2 +- .../20151109134526_add_issues_state_index.rb | 2 +- ...916_add_projects_visibility_level_index.rb | 2 +- ...51110125604_add_import_error_to_project.rb | 2 +- ...14113410_add_index_for_lfs_oid_and_size.rb | 2 +- ...1116144118_add_unique_for_lfs_oid_index.rb | 2 +- ...0151118162244_add_projects_public_index.rb | 2 +- .../20151201203948_raise_hook_url_limit.rb | 2 +- ...3162133_add_hide_project_limit_to_users.rb | 2 +- ...1203162134_add_build_events_to_services.rb | 2 +- .../20151209144329_migrate_ci_web_hooks.rb | 2 +- .../20151209145909_migrate_ci_emails.rb | 2 +- ...20151210030143_add_unlock_token_to_user.rb | 2 +- ...istration_token_to_application_settings.rb | 2 +- ...20151210125232_migrate_ci_slack_service.rb | 2 +- ...51210125927_migrate_ci_hip_chat_service.rb | 2 +- .../20151210125928_add_ci_to_project.rb | 2 +- .../20151210125929_add_project_id_to_ci.rb | 2 +- .../20151210125930_migrate_ci_to_project.rb | 2 +- .../20151210125931_add_index_to_ci_tables.rb | 2 +- .../20151210125932_drop_null_for_ci_tables.rb | 2 +- ..._add_pages_size_to_application_settings.rb | 2 +- ...8154042_add_tfa_to_application_settings.rb | 2 +- ...0151221234414_add_tfa_additional_fields.rb | 2 +- db/migrate/20151224123230_rename_emojis.rb | 2 +- ...1228111122_remove_public_from_namespace.rb | 2 +- .../20151228150906_influxdb_settings.rb | 2 +- ...9_add_recaptcha_to_application_settings.rb | 2 +- ...0151229102248_influxdb_udp_port_setting.rb | 2 +- ...112614_influxdb_remote_database_setting.rb | 2 +- ...2518_add_artifacts_metadata_to_ci_build.rb | 2 +- ...326_add_akismet_to_application_settings.rb | 2 +- ...move_alert_type_from_broadcast_messages.rb | 2 +- ...160106162223_add_index_milestones_title.rb | 2 +- ...60106164438_remove_influxdb_credentials.rb | 2 +- db/migrate/20160109054846_create_spam_logs.rb | 2 +- ...60113111034_add_metrics_sample_interval.rb | 2 +- ...5830_add_sentry_to_application_settings.rb | 2 +- ...ocking_settings_to_application_settings.rb | 2 +- .../20160119111158_add_services_category.rb | 2 +- .../20160119112418_add_services_default.rb | 2 +- .../20160119145451_add_ldap_email_to_users.rb | 2 +- ..._base_commit_sha_to_merge_request_diffs.rb | 2 +- ..._author_in_body_to_application_settings.rb | 2 +- ...122185421_add_pending_delete_to_project.rb | 2 +- ...king_settings_from_application_settings.rb | 2 +- ...28233227_change_lfs_objects_size_column.rb | 2 +- ...remove_dot_atom_path_ending_of_projects.rb | 2 +- ..._add_merge_commit_sha_to_merge_requests.rb | 2 +- ...20160202091601_add_erasable_to_ci_build.rb | 2 +- ...dd_allow_guest_to_access_builds_project.rb | 2 +- ...58_add_real_size_to_merge_request_diffs.rb | 2 +- .../20160209130428_add_index_to_snippet.rb | 2 +- .../20160210105555_create_pages_domain.rb | 2 +- db/migrate/20160212123307_create_tasks.rb | 2 +- ...20160217100506_add_description_to_label.rb | 2 +- .../20160217174422_add_note_to_tasks.rb | 2 +- .../20160220123949_rename_tasks_to_todos.rb | 2 +- .../20160222153918_create_appearances_ce.rb | 2 +- ...160223192159_add_confidential_to_issues.rb | 2 +- .../20160225090018_add_delete_at_to_issues.rb | 2 +- ...5101956_add_delete_at_to_merge_requests.rb | 2 +- ...14608_add_trigram_indexes_for_searching.rb | 9 +- ...0227120001_add_event_field_for_web_hook.rb | 2 +- .../20160227120047_add_event_to_services.rb | 2 +- ...9193553_add_main_language_to_repository.rb | 2 +- ...01124843_add_visibility_level_to_groups.rb | 2 +- .../20160301174731_add_fingerprint_index.rb | 2 +- ...port_credentials_to_project_import_data.rb | 2 +- ...8_remove_wrong_import_url_from_projects.rb | 2 +- ...5220806_remove_expires_at_from_snippets.rb | 2 +- ...221555_disallow_blank_line_code_on_note.rb | 2 +- ...roup_visibility_to_application_settings.rb | 2 +- db/migrate/20160309140734_fix_todos.rb | 2 +- .../20160310124959_add_due_date_to_issues.rb | 2 +- ...160310185910_add_external_flag_to_users.rb | 2 +- .../20160314094147_add_priority_to_label.rb | 2 +- ...60314114439_add_requested_at_to_members.rb | 2 +- ...0314143402_projects_add_pushes_since_gc.rb | 2 +- ...0315135439_project_add_repository_check.rb | 2 +- .../20160316123110_ci_runners_token_index.rb | 2 +- ...92622_change_target_id_to_null_on_todos.rb | 2 +- .../20160316204731_add_commit_id_to_todos.rb | 2 +- .../20160317092222_add_moved_to_to_issue.rb | 2 +- ...12_index_namespaces_on_visibility_level.rb | 2 +- ...4020319_remove_todos_for_deleted_issues.rb | 2 +- ...0328112808_create_notification_settings.rb | 2 +- ...115649_migrate_new_notification_setting.rb | 2 +- ...28121138_add_notification_setting_index.rb | 2 +- ...52_add_index_on_pending_delete_projects.rb | 2 +- ...remove_todos_for_deleted_merge_requests.rb | 2 +- ...aring_enabled_from_application_settings.rb | 2 +- ...07120251_add_images_enabled_for_project.rb | 2 +- ...0_add_repository_checks_enabled_setting.rb | 2 +- .../20160412173416_add_fields_to_ci_commit.rb | 2 +- db/migrate/20160412173417_update_ci_commit.rb | 2 +- .../20160412173418_add_ci_commit_indexes.rb | 2 +- .../20160413115152_add_token_to_web_hooks.rb | 2 +- ...415062917_create_personal_access_tokens.rb | 2 +- ...ed_runners_text_to_application_settings.rb | 2 +- db/migrate/20160416180807_add_award_emoji.rb | 2 +- ...82152_convert_award_note_to_emoji_award.rb | 2 +- .../20160419120017_add_metrics_packet_size.rb | 2 +- ...low_merge_if_build_succeeds_to_projects.rb | 2 +- ...0160421130527_disable_repository_checks.rb | 2 +- ...20160425045124_create_u2f_registrations.rb | 2 +- ...sign_in_sources_to_application_settings.rb | 2 +- ...504112519_add_run_untagged_to_ci_runner.rb | 2 +- ...94200_remove_wall_enabled_from_projects.rb | 2 +- ...d_head_commit_id_to_merge_request_diffs.rb | 2 +- .../20160508215820_add_type_to_notes.rb | 2 +- ...60508215920_add_positions_to_diff_notes.rb | 2 +- ...508221410_set_type_on_legacy_diff_notes.rb | 2 +- .../20160509091049_add_locked_to_ci_runner.rb | 2 +- ...ck_access_token_to_application_settings.rb | 2 +- ...firmation_email_to_application_settings.rb | 2 +- ..._start_commit_id_to_merge_request_diffs.rb | 2 +- ..._add_artifacts_expire_date_to_ci_builds.rb | 2 +- ...elopers_can_merge_to_protected_branches.rb | 2 +- ..._type_and_position_to_sent_notification.rb | 2 +- ...5328_remove_main_language_from_projects.rb | 2 +- ...ification_settings_for_deleted_projects.rb | 2 +- .../20160528043124_add_users_state_index.rb | 2 +- ...en_expire_delay_to_application_settings.rb | 2 +- ..._has_external_issue_tracker_to_projects.rb | 2 +- ...remove_duplicated_notification_settings.rb | 2 +- ...2247_add_index_to_notification_settings.rb | 2 +- ...er_sign_up_text_to_application_settings.rb | 2 +- ...5742_add_repository_storage_to_projects.rb | 2 +- ...efault_external_to_application_settings.rb | 2 +- ...tification_setting_not_null_constraints.rb | 2 +- ...ed_issues_tracker_columns_from_projects.rb | 2 +- ...201627_migrate_users_notification_level.rb | 2 +- db/migrate/20160610204157_add_deployments.rb | 2 +- db/migrate/20160610204158_add_environments.rb | 2 +- ...0160610211845_add_environment_to_builds.rb | 2 +- ...27_remove_notification_level_from_users.rb | 2 +- ...ository_storage_to_application_settings.rb | 2 +- ...10_add_index_on_requested_at_to_members.rb | 2 +- ...ccess_protocols_to_application_settings.rb | 2 +- ...15191922_set_missing_stage_on_ci_builds.rb | 2 +- ...616084004_change_project_of_environment.rb | 2 +- .../20160616102642_remove_duplicated_keys.rb | 2 +- ...remove_keys_fingerprint_index_if_exists.rb | 2 +- ...48_add_unique_index_to_keys_fingerprint.rb | 2 +- ...627_add_events_to_notification_settings.rb | 2 +- ...60620115026_add_index_on_runners_locked.rb | 2 +- ...add_rebase_commit_sha_to_merge_requests.rb | 2 +- ...8085157_add_artifacts_size_to_ci_builds.rb | 2 +- ...ress_merge_commit_sha_to_merge_requests.rb | 2 +- ..._add_index_on_award_emoji_user_and_name.rb | 2 +- ...4938_add_protected_branches_push_access.rb | 2 +- ...952_add_protected_branches_merge_access.rb | 2 +- ...erge_to_protected_branches_merge_access.rb | 2 +- ..._push_to_protected_branches_push_access.rb | 2 +- ...lopers_can_push_from_protected_branches.rb | 2 +- ...opers_can_merge_from_protected_branches.rb | 2 +- ...63108_remove_requesters_that_are_owners.rb | 2 +- .../20160707104333_add_lock_to_issuables.rb | 2 +- ...171823_remove_award_emojis_with_no_user.rb | 2 +- ...38_add_repository_read_only_to_projects.rb | 2 +- ...omain_blacklist_to_application_settings.rb | 2 +- ..._add_usage_ping_to_application_settings.rb | 2 +- .../20160715132507_add_user_id_to_pipeline.rb | 2 +- ...15134306_add_index_for_pipeline_user_id.rb | 2 +- ..._add_request_access_enabled_to_projects.rb | 2 +- ...16_add_request_access_enabled_to_groups.rb | 2 +- ...tion_settings_restricted_signup_domains.rb | 2 +- ...dd_when_and_yaml_variables_to_ci_builds.rb | 2 +- ...160716115711_add_queued_at_to_ci_builds.rb | 2 +- ...53603_add_has_external_wiki_to_projects.rb | 2 +- ...and_readd_has_external_wiki_in_projects.rb | 2 +- ...60722221922_nullify_blank_type_on_notes.rb | 2 +- .../20160724205507_add_resolved_to_notes.rb | 2 +- ...5083350_add_external_url_to_enviroments.rb | 2 +- ...25104020_merge_request_diff_remove_uniq.rb | 2 +- ...0725104452_merge_request_diff_add_index.rb | 2 +- ...0160727163552_create_user_agent_details.rb | 2 +- db/migrate/20160727191041_create_boards.rb | 2 +- db/migrate/20160727193336_create_lists.rb | 2 +- ...081025_add_pipeline_events_to_web_hooks.rb | 2 +- ...8103734_add_pipeline_events_to_services.rb | 2 +- ...173930_remove_project_id_from_spam_logs.rb | 2 +- ...20160801163421_add_expires_at_to_member.rb | 2 +- ...63709_add_submitted_as_ham_to_spam_logs.rb | 2 +- ..._remove_builds_enable_index_on_projects.rb | 2 +- ...1903_add_unique_index_to_lists_label_id.rb | 2 +- ...804142904_add_ci_config_file_to_project.rb | 2 +- ...4150737_add_timestamps_to_members_again.rb | 2 +- ...0805041956_add_deleted_at_to_namespaces.rb | 2 +- .../20160808085531_add_token_to_build.rb | 2 +- ...0160808085602_add_index_for_build_token.rb | 2 +- ...102349_remove_ci_runner_trigram_indexes.rb | 2 +- ...20160810142633_remove_redundant_indexes.rb | 2 +- .../20160811172945_add_can_push_to_keys.rb | 2 +- ...12_add_column_name_to_u2f_registrations.rb | 2 +- ...3006_add_koding_to_application_settings.rb | 2 +- ...60817154936_add_discussion_ids_to_notes.rb | 2 +- ...8_add_expires_at_to_project_group_links.rb | 2 +- ...9221631_add_index_to_note_discussion_id.rb | 2 +- ...on_id_because_it_was_calculated_wrongly.rb | 2 +- ...32256_add_incoming_email_token_to_users.rb | 2 +- ...160823081327_change_merge_error_to_text.rb | 2 +- ...column_scopes_to_personal_access_tokens.rb | 2 +- ...60823213309_add_lfs_enabled_to_projects.rb | 2 +- .../20160824103857_drop_unused_ci_tables.rb | 2 +- .../20160824124900_add_table_issue_metrics.rb | 2 +- ...5052008_add_table_merge_request_metrics.rb | 2 +- ...1312_ensure_lock_version_has_no_default.rb | 2 +- ...160829114652_add_markdown_cache_columns.rb | 2 +- ...confidential_issues_events_to_web_hooks.rb | 2 +- ..._confidential_issues_events_to_services.rb | 2 +- ...0830232601_change_lock_version_not_null.rb | 2 +- .../20160831214002_create_project_features.rb | 2 +- ...20160831214543_migrate_project_features.rb | 2 +- ...0_remove_features_enabled_from_projects.rb | 2 +- ..._confidential_issues_events_on_webhooks.rb | 2 +- ...901213340_add_lfs_enabled_to_namespaces.rb | 2 +- ...torious_field_from_application_settings.rb | 2 +- ...11_add_environment_type_to_environments.rb | 2 +- ...3162434_remove_projects_pushes_since_gc.rb | 2 +- ...0913212128_change_artifacts_size_column.rb | 2 +- ...w_merge_if_all_discussions_are_resolved.rb | 2 +- ...21_create_merge_requests_closing_issues.rb | 2 +- .../20160919144305_add_type_to_labels.rb | 2 +- .../20160919145149_add_group_id_to_labels.rb | 2 +- ...0160920160832_add_index_to_labels_title.rb | 2 +- ...20160926145521_add_organization_to_user.rb | 2 +- ...20161006104309_add_state_to_environment.rb | 2 +- .../20161007073613_create_user_activities.rb | 2 +- ...07133303_precalculate_trending_projects.rb | 2 +- ...010142410_create_project_authorizations.rb | 2 +- ...ository_access_level_to_project_feature.rb | 2 +- .../20161014173530_create_label_priorities.rb | 2 +- ..._authorized_projects_populated_to_users.rb | 2 +- ...1017095000_add_properties_to_deployment.rb | 2 +- ...161017125927_add_unique_index_to_labels.rb | 2 +- .../20161018024215_migrate_labels_priority.rb | 2 +- ...61018024550_remove_priority_from_labels.rb | 2 +- ...61018124658_make_project_owners_masters.rb | 2 +- ...736_migrate_sidekiq_queues_from_default.rb | 2 +- ...5_generate_project_feature_for_projects.rb | 2 +- ...020075734_default_request_access_groups.rb | 2 +- ...0075830_default_request_access_projects.rb | 2 +- ...dd_pipeline_id_to_merge_request_metrics.rb | 2 +- ...imum_key_length_to_application_settings.rb | 2 +- ...add_lock_version_to_build_and_pipelines.rb | 2 +- ...317_migrate_mailroom_queue_from_default.rb | 2 +- .../20161025231710_migrate_jira_to_gem.rb | 2 +- ...dd_housekeeping_to_application_settings.rb | 2 +- ...1171301_add_project_id_to_subscriptions.rb | 2 +- ...174110_migrate_subscriptions_project_id.rb | 2 +- ...81638_add_unique_index_to_subscriptions.rb | 2 +- ...171205_rename_repository_storage_column.rb | 2 +- ...ekiq_throttling_to_application_settings.rb | 2 +- ...0_add_project_import_data_project_index.rb | 2 +- ...1113184239_create_user_chat_names_table.rb | 2 +- ...1114024742_add_coverage_regex_to_builds.rb | 2 +- ...1115173905_add_start_date_to_milestones.rb | 2 +- .../20161117114805_remove_undeleted_groups.rb | 2 +- ...118183841_add_commit_events_to_services.rb | 2 +- ...161124111390_add_parent_id_to_namespace.rb | 2 +- .../20161124111395_add_index_to_parent_id.rb | 2 +- db/migrate/20161124111402_add_routes_table.rb | 2 +- ...1322_migrate_process_commit_worker_jobs.rb | 2 +- ..._to_discussion_id_to_sent_notifications.rb | 2 +- ...161128142110_remove_unnecessary_indexes.rb | 2 +- ..._emails_enabled_to_application_settings.rb | 2 +- .../20161130095245_fill_routes_table.rb | 2 +- ...161130101252_fill_projects_routes_table.rb | 2 +- ...d_plant_uml_url_to_application_settings.rb | 2 +- ...0161201155511_create_project_statistics.rb | 2 +- ...161201160452_migrate_project_statistics.rb | 2 +- ...202152031_remove_duplicates_from_routes.rb | 2 +- .../20161202152035_add_index_to_routes.rb | 2 +- ...ant_uml_enabled_to_application_settings.rb | 2 +- ...9_remove_uniq_path_index_from_namespace.rb | 2 +- ...61206153751_add_path_index_to_namespace.rb | 2 +- ...3_remove_uniq_name_index_from_namespace.rb | 2 +- ...61206153754_add_name_index_to_namespace.rb | 2 +- ...31620_fixup_environment_name_uniqueness.rb | 5 +- ...21_create_environment_name_unique_index.rb | 2 +- .../20161207231626_add_environment_slug.rb | 5 +- ...0_add_unique_index_for_environment_slug.rb | 2 +- ...create_doorkeeper_openid_connect_tables.rb | 2 +- ...12142807_add_lower_path_index_to_routes.rb | 2 +- ...k_service_to_slack_notification_service.rb | 2 +- ...0141214_remove_dot_git_from_group_names.rb | 2 +- .../20161221152132_add_last_used_at_to_key.rb | 2 +- ...1223034433_add_estimate_to_issuables_ce.rb | 2 +- .../20161223034646_create_timelogs_ce.rb | 2 +- ...226122833_remove_dot_git_from_usernames.rb | 2 +- ...ck_and_mattermost_notification_services.rb | 2 +- ...es_at_to_date_in_personal_access_tokens.rb | 2 +- ...impersonation_to_personal_access_tokens.rb | 2 +- .../20170120131253_create_chat_teams.rb | 2 +- ...ci_builds_for_status_runner_id_and_type.rb | 2 +- ...5_add_index_to_ci_runners_for_is_shared.rb | 2 +- ...0124174637_add_foreign_keys_to_timelogs.rb | 2 +- ...47_add_two_factor_columns_to_namespaces.rb | 2 +- ...4193205_add_two_factor_columns_to_users.rb | 2 +- ...ax_session_time_to_application_settings.rb | 2 +- ...032550_remove_backlog_lists_from_boards.rb | 2 +- ...620_add_index_to_project_authorizations.rb | 2 +- db/migrate/20170130221926_create_uploads.rb | 2 +- ...1221752_add_relative_position_to_issues.rb | 2 +- .../20170204172458_add_name_to_route.rb | 2 +- ...dd_index_to_labels_for_type_and_project.rb | 2 +- ...414_add_recaptcha_verified_to_spam_logs.rb | 2 +- ...0170206115204_add_column_ghost_to_users.rb | 2 +- ...d_index_to_labels_for_title_and_project.rb | 2 +- ...ex_to_ci_trigger_requests_for_commit_id.rb | 2 +- ...10103609_add_index_to_user_agent_detail.rb | 2 +- ...nique_ips_limit_to_application_settings.rb | 2 +- ...acts_expiration_to_application_settings.rb | 2 +- ...dd_index_for_latest_successful_pipeline.rb | 2 +- ...40_drop_index_for_builds_project_status.rb | 2 +- ...132157_rename_merge_when_build_succeeds.rb | 2 +- ...name_only_allow_merge_if_build_succeeds.rb | 2 +- ...20170217151948_add_owner_id_to_triggers.rb | 2 +- ...70217151949_add_description_to_triggers.rb | 2 +- db/migrate/20170222111732_create_gpg_keys.rb | 2 +- db/migrate/20170222143317_drop_ci_projects.rb | 2 +- ...222143500_remove_old_project_id_columns.rb | 2 +- ...3603_rename_gl_project_id_to_project_id.rb | 2 +- ...20170301101006_add_ci_runner_namespaces.rb | 2 +- ...g_merge_request_link_enabled_to_project.rb | 2 +- ...95939_rename_ci_commits_to_ci_pipelines.rb | 2 +- ...639_remove_unused_ci_tables_and_columns.rb | 2 +- ...uto_cancel_pending_pipelines_to_project.rb | 2 +- ...20170305203726_add_owner_id_foreign_key.rb | 2 +- ...307125949_add_last_activity_on_to_users.rb | 2 +- .../20170309173138_create_protected_tags.rb | 2 +- ...329_add_auto_canceled_by_id_to_pipeline.rb | 2 +- ..._canceled_by_id_foreign_key_to_pipeline.rb | 2 +- .../20170313213916_add_index_to_user_ghost.rb | 2 +- ...70314082049_create_system_note_metadata.rb | 2 +- ...t_add_notified_of_own_activity_to_users.rb | 2 +- .../20170315194013_add_closed_at_to_issues.rb | 2 +- ...readd_notified_of_own_activity_to_users.rb | 2 +- ...170316163845_move_uploads_to_system_dir.rb | 2 +- ...170317203554_index_routes_path_for_like.rb | 2 +- .../20170320173259_migrate_assignees.rb | 2 +- ...70322013926_create_container_repository.rb | 2 +- ...750_add_created_at_index_to_deployments.rb | 2 +- ...010804_add_uuid_to_application_settings.rb | 2 +- .../20170329095325_add_ref_to_triggers.rb | 2 +- ...70329095907_create_ci_trigger_schedules.rb | 2 +- ...rval_multiplier_to_application_settings.rb | 2 +- ...1723_disable_invalid_service_templates2.rb | 2 +- ...move_index_for_users_current_sign_in_at.rb | 2 +- ...170404163427_add_trigger_id_foreign_key.rb | 2 +- ...170405080720_add_import_jid_to_projects.rb | 2 +- ...58_add_auto_canceled_by_id_to_ci_builds.rb | 2 +- ...canceled_by_id_foreign_key_to_ci_builds.rb | 2 +- ...07114956_add_ref_to_ci_trigger_schedule.rb | 2 +- ...22426_add_active_to_ci_trigger_schedule.rb | 2 +- ...dd_foreigh_key_trigger_requests_trigger.rb | 2 +- ...450_add_index_to_next_run_at_and_active.rb | 2 +- ...135_add_version_field_to_markdown_cache.rb | 2 +- ...3035209_add_preferred_language_to_users.rb | 2 +- ...908_delete_orphan_notification_settings.rb | 2 +- ...01229_add_index_to_system_note_metadata.rb | 2 +- ...20170421102337_remove_nil_type_services.rb | 2 +- ...64036_add_index_on_ci_builds_updated_at.rb | 2 +- ...24095707_add_index_on_ci_builds_user_id.rb | 2 +- ...70424142900_add_index_to_web_hooks_type.rb | 2 +- ...5112128_create_pipeline_schedules_table.rb | 2 +- ...remove_foreigh_key_ci_trigger_schedules.rb | 2 +- ...1_add_pipeline_schedule_id_to_pipelines.rb | 2 +- ...ll_missing_uuid_on_application_settings.rb | 2 +- ...40_add_index_on_ci_runners_contacted_at.rb | 2 +- .../20170427103502_create_web_hook_logs.rb | 2 +- .../20170427215854_create_redirect_routes.rb | 2 +- ...307_add_column_delete_error_to_projects.rb | 2 +- ..._cancel_pending_pipelines_on_by_default.rb | 2 +- ..._index_ci_pipelines_auto_canceled_by_id.rb | 2 +- ...ate_index_ci_builds_auto_canceled_by_id.rb | 2 +- ..._last_repository_updated_at_to_projects.rb | 2 +- ..._last_repository_updated_at_on_projects.rb | 2 +- .../20170503004426_add_retried_to_ci_build.rb | 2 +- ...ited_at_and_last_edited_by_id_to_issues.rb | 2 +- ...and_last_edited_by_id_to_merge_requests.rb | 2 +- ...d_repository_update_events_to_web_hooks.rb | 2 +- ...70503114228_add_description_to_snippets.rb | 2 +- ...40201_reschedule_project_authorizations.rb | 2 +- ...ed_groups_into_regular_groups_for_mysql.rb | 2 +- ...0503184421_add_index_to_redirect_routes.rb | 2 +- ...032_index_redirect_routes_path_for_like.rb | 2 +- ...ientside_sentry_to_application_settings.rb | 2 +- ..._add_index_project_group_links_group_id.rb | 2 +- ..._index_to_pipeline_pipeline_schedule_id.rb | 2 +- ...4_add_foreign_key_to_pipeline_schedules.rb | 2 +- ...gn_key_pipeline_schedules_and_pipelines.rb | 2 +- ..._add_head_pipeline_id_to_merge_requests.rb | 2 +- ...add_not_null_contraints_to_ci_variables.rb | 2 +- ...8190732_add_foreign_key_to_ci_variables.rb | 2 +- ...me_web_hooks_build_events_to_job_events.rb | 2 +- ...ame_services_build_events_to_job_events.rb | 2 +- ...3305_migrate_assignee_to_separate_table.rb | 2 +- ...16183131_add_indices_to_issue_assignees.rb | 2 +- ...prometheus_settings_to_metrics_settings.rb | 2 +- ...0521184006_add_change_position_to_notes.rb | 2 +- .../20170523091700_add_rss_token_to_users.rb | 2 +- ...onversational_development_index_metrics.rb | 2 +- ...0170524125940_add_source_to_ci_pipeline.rb | 2 +- ...524161101_add_protected_to_ci_variables.rb | 2 +- ...0525130346_create_group_variables_table.rb | 2 +- ...0758_add_foreign_key_to_group_variables.rb | 2 +- .../20170525132202_create_pipeline_stages.rb | 2 +- .../20170525174156_create_feature_tables.rb | 2 +- ...0170526185602_add_stage_id_to_ci_builds.rb | 2 +- ...ect_foreign_keys_with_cascading_deletes.rb | 2 +- ...ed_keys_enabled_to_application_settings.rb | 2 +- ...name_users_ldap_email_to_external_email.rb | 2 +- ...1163708_add_artifacts_store_to_ci_build.rb | 2 +- ...mercial_content_to_application_settings.rb | 2 +- ...age_support_url_to_application_settings.rb | 2 +- ...70603200744_add_email_provider_to_users.rb | 2 +- ...154216_add_notification_setting_columns.rb | 2 +- ..._events_table_for_push_events_migration.rb | 2 +- ...52748_create_push_event_payloads_tables.rb | 2 +- ...8171156_create_merge_request_diff_files.rb | 2 +- .../20170613154149_create_gpg_signatures.rb | 2 +- ...33147_create_merge_request_diff_commits.rb | 2 +- ...d_index_for_head_pipeline_merge_request.rb | 2 +- ...8_create_ci_pipeline_schedule_variables.rb | 2 +- ...n_key_to_ci_pipeline_schedule_variables.rb | 2 +- ...correct_protected_branches_foreign_keys.rb | 2 +- ...add_foreign_key_for_merge_request_diffs.rb | 2 +- ...22135451_rename_duplicated_variable_key.rb | 2 +- ...8_add_environment_scope_to_ci_variables.rb | 2 +- ...8_add_unique_constraint_to_ci_variables.rb | 2 +- ...162730_add_ref_fetched_to_merge_request.rb | 2 +- ...05_remove_ci_variables_project_id_index.rb | 2 +- ...bled_to_password_authentication_enabled.rb | 2 +- ...2400_add_stage_id_foreign_key_to_builds.rb | 2 +- ...llowed_group_id_to_application_settings.rb | 2 +- ...170707183807_add_group_id_to_milestones.rb | 2 +- ...07184243_add_group_milestone_id_indexes.rb | 2 +- ...ove_wrong_versions_from_schema_versions.rb | 2 +- ...3355_clean_stage_id_reference_migration.rb | 2 +- .../20170711145320_add_status_to_ci_stages.rb | 2 +- ...04829_add_foreign_key_to_merge_requests.rb | 2 +- ...0170717074009_move_system_upload_folder.rb | 2 +- ...dd_trusted_column_to_oauth_applications.rb | 2 +- ...720111708_add_lock_version_to_ci_stages.rb | 2 +- ...720122741_create_user_custom_attributes.rb | 2 +- ...0720130522_create_ci_pipeline_variables.rb | 2 +- ...dd_foreign_key_to_ci_pipeline_variables.rb | 2 +- ...add_lower_path_index_to_redirect_routes.rb | 2 +- ..._add_binary_to_merge_request_diff_files.rb | 2 +- ...23534_add_index_on_events_project_id_id.rb | 2 +- ...70731175128_add_percentages_to_conv_dev.rb | 2 +- ...1183033_add_merge_jid_to_merge_requests.rb | 2 +- ...802013652_add_storage_fields_to_project.rb | 2 +- ...anise_issues_indexes_for_faster_sorting.rb | 2 +- ...07071105_add_hashed_storage_to_settings.rb | 2 +- ...0809133343_add_broadcast_messages_index.rb | 2 +- ..._broadcast_message_not_null_constraints.rb | 2 +- ...170809142252_cleanup_appearances_schema.rb | 2 +- ..._export_enabled_to_application_settings.rb | 2 +- ...21154_add_discussion_locked_to_issuable.rb | 2 +- ...16133938_add_access_level_to_ci_runners.rb | 2 +- ...170816133940_add_protected_to_ci_builds.rb | 2 +- ...816143940_add_protected_to_ci_pipelines.rb | 2 +- ...153940_add_index_on_ci_builds_protected.rb | 2 +- .../20170816234252_add_theme_id_to_users.rb | 2 +- ...d_verification_status_to_gpg_signatures.rb | 2 +- ...558_correct_protected_tags_foreign_keys.rb | 2 +- ..._create_user_synced_attributes_metadata.rb | 2 +- ..._devops_enabled_to_application_settings.rb | 2 +- ...allow_appearances_description_html_null.rb | 2 +- ...825015534_add_file_store_to_lfs_objects.rb | 2 +- ...0825104051_migrate_issues_to_ghost_user.rb | 2 +- ...54015_resolve_outdated_diff_discussions.rb | 2 +- ..._index_on_merge_request_diff_commit_sha.rb | 2 +- ...70828093725_create_project_auto_dev_ops.rb | 2 +- ...8135939_migrate_user_external_mail_data.rb | 2 +- ...0125940_add_failure_reason_to_ci_builds.rb | 2 +- ...19_steal_remaining_event_migration_jobs.rb | 2 +- ...70830131015_swap_event_migration_tables.rb | 2 +- ...31092813_add_config_source_to_pipelines.rb | 2 +- ...1071411_add_foreign_key_to_issue_author.rb | 2 +- .../20170904092148_add_email_confirmation.rb | 2 +- ...905112933_add_resolved_by_push_to_notes.rb | 2 +- ...70906133745_add_runners_token_to_groups.rb | 2 +- ...0909090114_add_email_confirmation_index.rb | 2 +- ...20170909150936_add_spent_at_to_timelogs.rb | 2 +- ...2113435_clean_stages_statuses_migration.rb | 2 +- ...131410_environments_project_id_not_null.rb | 2 +- ...135630_add_index_for_recent_push_events.rb | 2 +- .../20170918072948_create_job_artifacts.rb | 2 +- ...0918072949_add_file_store_job_artifacts.rb | 2 +- ...111708_create_project_custom_attributes.rb | 2 +- ...18140927_create_group_custom_attributes.rb | 2 +- ...18222253_reorganize_deployments_indexes.rb | 2 +- ...d_deployments_index_for_last_deployment.rb | 2 +- ...211300_remove_temporary_ci_builds_index.rb | 2 +- ...09_add_project_repository_storage_index.rb | 2 +- .../20170924094327_create_gcp_clusters.rb | 2 +- ...170925184228_add_favicon_to_appearances.rb | 2 +- ..._add_ci_builds_index_for_jobscontroller.rb | 2 +- ...9_add_partial_index_for_labels_template.rb | 2 +- .../20170927161718_create_gpg_key_subkeys.rb | 2 +- ...ndex_on_merge_requests_merge_commit_sha.rb | 2 +- .../20170928124105_create_fork_networks.rb | 2 +- ...70928133643_create_fork_network_members.rb | 2 +- ...9080234_add_failure_reason_to_pipelines.rb | 2 +- .../20170929131201_populate_fork_networks.rb | 2 +- ...44_make_sure_fast_forward_option_exists.rb | 2 +- ...06090001_create_ci_build_trace_sections.rb | 2 +- ..._foreign_key_to_ci_build_trace_sections.rb | 2 +- ...100_create_ci_build_trace_section_names.rb | 2 +- ..._foreign_key_to_ci_build_trace_sections.rb | 2 +- ...bal_rate_limits_to_application_settings.rb | 2 +- ...aker_properties_to_application_settings.rb | 2 +- ...tication_token_to_personal_access_token.rb | 2 +- ...94327_create_new_clusters_architectures.rb | 2 +- ...reaker_settings_to_application_settings.rb | 2 +- .../20171019141859_fix_dev_timezone_schema.rb | 2 +- ...merge_request_diff_id_to_merge_requests.rb | 2 +- ...10_create_clusters_kubernetes_helm_apps.rb | 2 +- ...eout_properties_to_application_settings.rb | 2 +- ...3000000_set_uploads_path_size_for_mysql.rb | 2 +- ...create_clusters_kubernetes_ingress_apps.rb | 2 +- ...1106132212_issues_confidential_not_null.rb | 2 +- ...password_authentication_enabled_for_web.rb | 2 +- ...enabled_for_git_to_application_settings.rb | 2 +- ...6135924_issues_milestone_id_foreign_key.rb | 2 +- ...150657_issues_updated_by_id_foreign_key.rb | 2 +- ...06151218_issues_moved_to_id_foreign_key.rb | 2 +- ..._issues_due_date_index_to_partial_index.rb | 2 +- ...171453_add_timezone_to_issues_closed_at.rb | 2 +- ...59_merge_requests_author_id_foreign_key.rb | 2 +- ..._merge_requests_assignee_id_foreign_key.rb | 2 +- ...erge_requests_updated_by_id_foreign_key.rb | 2 +- ...erge_requests_merge_user_id_foreign_key.rb | 2 +- ..._requests_source_project_id_foreign_key.rb | 2 +- ...merge_requests_milestone_id_foreign_key.rb | 2 +- ...s_latest_merge_request_diff_id_take_two.rb | 2 +- ...35628_add_environment_scope_to_clusters.rb | 2 +- ...up_from_merge_request_diffs_and_commits.rb | 2 +- ...lines_index_on_project_id_ref_status_id.rb | 2 +- ...d_new_project_guidelines_to_appearances.rb | 2 +- ..._check_interval_to_application_settings.rb | 2 +- ..._default_values_to_merge_request_states.rb | 2 +- ...populate_missing_merge_request_statuses.rb | 2 +- ...36_make_merge_request_statuses_not_null.rb | 2 +- ...elated_columns_to_merge_request_metrics.rb | 2 +- ...4204233_add_permanent_to_redirect_route.rb | 2 +- ...9_add_permanent_index_to_redirect_route.rb | 2 +- ...207185153_add_merge_request_state_index.rb | 2 +- ...25_add_can_push_to_deploy_keys_projects.rb | 2 +- ...create_clusters_applications_prometheus.rb | 2 +- ...71214144320_add_store_column_to_uploads.rb | 2 +- ...late_can_push_from_deploy_keys_projects.rb | 2 +- .../20171216111734_clean_up_for_members.rb | 2 +- ...71216112339_add_foreign_key_for_members.rb | 2 +- ...1323_add_index_on_namespaces_lower_name.rb | 2 +- ...d_confidential_note_events_to_web_hooks.rb | 2 +- ...2183504_add_jobs_cache_index_to_project.rb | 2 +- ...oject_limit_not_null_and_remove_default.rb | 2 +- ..._rebase_commit_sha_to_merge_requests_ce.rb | 2 +- ...0180101160629_create_prometheus_metrics.rb | 2 +- ...hange_project_id_for_prometheus_metrics.rb | 2 +- ...220145_add_pages_https_only_to_projects.rb | 2 +- ...dd_confidential_note_events_to_services.rb | 2 +- ...add_commits_count_to_merge_request_diff.rb | 2 +- ...ange_default_value_for_pages_https_only.rb | 2 +- ...13220114_rework_redirect_routes_indexes.rb | 2 +- ...15201419_add_index_updated_at_to_issues.rb | 2 +- .../20180116193854_create_lfs_file_locks.rb | 2 +- ...119135717_add_uploader_index_to_uploads.rb | 2 +- ...0180119160751_optimize_ci_job_artifacts.rb | 2 +- ...o_devops_domain_to_application_settings.rb | 2 +- .../20180125214301_create_user_callouts.rb | 2 +- ...80129193323_add_uploads_builder_context.rb | 2 +- ...straint_to_trending_projects_project_id.rb | 2 +- ...0180201110056_add_foreign_keys_to_todos.rb | 2 +- ...5907_migrate_remaining_issues_closed_at.rb | 2 +- ...00543_reset_events_primary_key_sequence.rb | 2 +- ...le_populate_untracked_uploads_if_needed.rb | 2 +- .../20180209165249_add_closed_by_to_issues.rb | 2 +- ...nal_ip_to_clusters_applications_ingress.rb | 2 +- ..._index_to_projects_for_index_only_scans.rb | 2 +- db/migrate/20180214093516_create_badges.rb | 2 +- ...05_create_clusters_applications_runners.rb | 2 +- .../20180215181245_users_name_lower_index.rb | 2 +- ...216120000_add_pages_domain_verification.rb | 2 +- ...0010_add_pages_domain_verified_at_index.rb | 2 +- ...llow_domain_verification_to_be_disabled.rb | 2 +- ...16120030_add_pages_domain_enabled_until.rb | 2 +- ...40_add_pages_domain_enabled_until_index.rb | 2 +- ...pages_domains_verification_grace_period.rb | 2 +- ...53455_add_maximum_timeout_to_ci_runners.rb | 2 +- ...ow_maintainer_to_push_to_merge_requests.rb | 2 +- ...20180222043024_add_ip_address_to_runner.rb | 2 +- ...3_create_user_interacted_projects_table.rb | 2 +- ...ks_and_services_to_application_settings.rb | 2 +- ...050030_add_checksum_to_ci_job_artifacts.rb | 2 +- ...0180227182112_add_group_id_to_boards_ce.rb | 2 +- ..._include_private_contributions_to_users.rb | 2 +- ...1010859_create_ci_builds_metadata_table.rb | 2 +- ...e_foreign_keys_on_clusters_applications.rb | 2 +- ...0180305095250_create_internal_ids_table.rb | 2 +- ...20180305144721_add_privileged_to_runner.rb | 2 +- ...sing_indexes_acts_as_taggable_on_engine.rb | 2 +- ...ame_id_index_on_ci_build_trace_sections.rb | 2 +- ...r_internal_regex_to_application_setting.rb | 2 +- ...le_commits_count_for_merge_request_diff.rb | 2 +- ...0309160427_add_partial_indexes_on_todos.rb | 2 +- .../20180319190020_create_deploy_tokens.rb | 2 +- ...9_add_indexes_for_user_activity_queries.rb | 2 +- ..._merge_request_to_notification_settings.rb | 2 +- ...0326202229_create_ci_build_trace_chunks.rb | 2 +- ...27101207_remove_index_from_events_table.rb | 2 +- ..._add_issue_due_to_notification_settings.rb | 2 +- ...403035759_create_project_ci_cd_settings.rb | 2 +- ...0405142733_create_project_deploy_tokens.rb | 2 +- ...i_build_trace_chunks_raw_data_for_mysql.rb | 2 +- ...54_rename_users_rss_token_to_feed_token.rb | 2 +- ...te_missing_namespace_for_internal_users.rb | 4 +- ...ther_scope_columns_to_internal_id_table.rb | 2 +- ..._index_constraints_to_internal_id_table.rb | 2 +- ...d_tmp_stage_priority_index_to_ci_builds.rb | 2 +- .../20180417101940_add_index_to_ci_stage.rb | 2 +- ...dd_index_to_ci_job_artifacts_file_store.rb | 2 +- ...20010016_add_pipeline_build_foreign_key.rb | 2 +- ...420010616_cleanup_build_stage_migration.rb | 2 +- ...d_pages_access_level_to_project_feature.rb | 2 +- ...d_enforce_terms_to_application_settings.rb | 2 +- ...134533_create_application_setting_terms.rb | 2 +- ...160449_add_pipeline_iid_to_ci_pipelines.rb | 2 +- .../20180425075446_create_term_agreements.rb | 2 +- ...re_commits_count_for_merge_request_diff.rb | 2 +- ...9_add_index_constraints_to_pipeline_iid.rb | 2 +- ...180426102016_add_accepted_term_to_users.rb | 2 +- ...430101916_add_runner_type_to_ci_runners.rb | 2 +- ...180502122856_create_project_mirror_data.rb | 2 +- .../20180503131624_create_remote_mirrors.rb | 2 +- ...mirror_available_overridden_to_projects.rb | 2 +- ...7_add_index_to_namespaces_runners_token.rb | 2 +- ..._missing_columns_to_project_mirror_data.rb | 2 +- ...5054_add_indexes_to_project_mirror_data.rb | 2 +- ...0503193542_add_indexes_to_remote_mirror.rb | 2 +- ...irror_available_to_application_settings.rb | 2 +- ...20_enable_prometheus_metrics_by_default.rb | 2 +- ...20180504195842_project_name_lower_index.rb | 2 +- ...make_remote_mirrors_disabled_by_default.rb | 2 +- ...aint_to_project_mirror_data_foreign_key.rb | 2 +- ...to_project_mirror_data_project_id_index.rb | 2 +- ...20180508135515_set_runner_type_not_null.rb | 2 +- ...724_add_index_on_ci_runners_runner_type.rb | 2 +- ...58_create_clusters_applications_jupyter.rb | 2 +- ...0515005612_add_squash_to_merge_requests.rb | 2 +- .../20180515121227_create_notes_diff_files.rb | 2 +- ...l_constraints_to_project_authorizations.rb | 2 +- ...merge_requests_allow_maintainer_to_push.rb | 2 +- ...uests_target_id_iid_state_partial_index.rb | 2 +- ...0529093006_ensure_remote_mirror_columns.rb | 2 +- ...0530135500_add_index_to_stages_position.rb | 2 +- ...20180531185349_add_repository_languages.rb | 2 +- ...e_default_value_for_dsa_key_restriction.rb | 2 +- ..._deploy_strategy_to_project_auto_devops.rb | 2 +- ..._push_events_branch_filter_to_web_hooks.rb | 2 +- .../20180608091413_add_group_to_todos.rb | 2 +- ...name_merge_requests_allow_collaboration.rb | 2 +- ...dd_columns_for_helm_tiller_certificates.rb | 2 +- ...3081317_create_ci_builds_runner_session.rb | 2 +- ...0625113853_create_import_export_uploads.rb | 2 +- ...add_index_on_deployable_for_deployments.rb | 2 +- ...80628124813_alter_web_hook_logs_indexes.rb | 4 +- .../20180629153018_create_site_statistics.rb | 2 +- .../20180702124358_remove_orphaned_routes.rb | 2 +- .../20180702134423_generate_missing_routes.rb | 2 +- ...rd_party_offers_to_application_settings.rb | 2 +- ...945_add_file_format_to_ci_job_artifacts.rb | 2 +- ...key_from_notification_settings_to_users.rb | 2 +- ...711103851_drop_duplicate_protected_tags.rb | 2 +- ...20180711103922_add_protected_tags_index.rb | 2 +- .../20180713092803_create_user_statuses.rb | 2 +- .../20180717125853_remove_restricted_todos.rb | 2 +- ...stics_visibility_to_application_setting.rb | 2 +- ..._max_input_size_to_application_settings.rb | 2 +- ...0722103201_add_private_profile_to_users.rb | 2 +- ...preview_enabled_to_application_settings.rb | 2 +- ...0726172057_create_resource_label_events.rb | 2 +- ...ove_redundant_status_index_on_ci_builds.rb | 2 +- ...ssh_key_message_to_application_settings.rb | 2 +- ...ge_default_of_auto_devops_instance_wide.rb | 2 +- ..._auto_devops_instance_wide_for_everyone.rb | 2 +- ...0180814153625_add_commit_email_to_users.rb | 2 +- ...on_type_to_cluster_platforms_kubernetes.rb | 2 +- ...9_add_file_location_to_ci_job_artifacts.rb | 2 +- ...rtial_index_to_ci_builds_artifacts_file.rb | 2 +- .../20180815175440_add_index_on_list_type.rb | 2 +- ...4904_fix_prometheus_metric_query_limits.rb | 2 +- ...164905_add_common_to_prometheus_metrics.rb | 2 +- ..._index_on_common_for_prometheus_metrics.rb | 2 +- ...908_add_identifier_to_prometheus_metric.rb | 2 +- ...dex_for_identifier_to_prometheus_metric.rb | 2 +- .../20180831164910_import_common_metrics.rb | 2 +- ..._config_source_status_index_to_pipeline.rb | 2 +- ...d_resource_label_event_reference_fields.rb | 2 +- ...er_ping_consent_to_application_settings.rb | 2 +- ...dd_legacy_abac_to_cluster_providers_gcp.rb | 2 +- ..._add_attr_encrypted_columns_to_web_hook.rb | 2 +- ..._token_digest_to_personal_access_tokens.rb | 2 +- ..._token_digest_on_personal_access_tokens.rb | 2 +- .../20180912111628_add_knative_application.rb | 2 +- ...9_add_index_pipelines_project_id_source.rb | 2 +- ...max_patch_bytes_to_application_settings.rb | 2 +- ...924190739_add_scheduled_at_to_ci_builds.rb | 2 +- ...01039_add_partial_index_to_scheduled_at.rb | 2 +- .../20180925200829_create_user_preferences.rb | 2 +- ...o_project_deploy_tokens_deploy_token_id.rb | 2 +- ...172433_remove_restricted_todos_with_cte.rb | 2 +- ...927_add_index_to_lfs_objects_file_store.rb | 2 +- ...181005125926_add_index_to_uploads_store.rb | 2 +- ...6004100_import_common_metrics_nginx_vts.rb | 15 + ...8_create_clusters_kubernetes_namespaces.rb | 2 +- ...5606_create_board_project_recent_visits.rb | 2 +- .../20181014203236_create_cluster_groups.rb | 2 +- ...15155839_add_finished_at_to_deployments.rb | 2 +- ...0181016141739_add_status_to_deployments.rb | 2 +- ...152238_create_board_group_recent_visits.rb | 2 +- ...1017001059_add_cluster_type_to_clusters.rb | 2 +- db/migrate/20181019032400_add_shards_table.rb | 2 +- .../20181019032408_add_repositories_table.rb | 2 +- ...projects_pool_repository_id_foreign_key.rb | 2 +- ...5539_add_index_on_status_to_deployments.rb | 2 +- ...builds_duration_to_application_settings.rb | 2 +- ...index_for_legacy_successful_deployments.rb | 2 +- ..._email_hostname_to_application_settings.rb | 2 +- ...ate_snippets_access_level_default_value.rb | 2 +- ...46_add_missing_indexes_for_foreign_keys.rb | 65 + ...ed_ci_variables_to_application_settings.rb | 17 + ...181031190558_drop_fk_gcp_clusters_table.rb | 37 + .../20181031190559_drop_gcp_clusters_table.rb | 53 + ...1101144347_add_index_for_stuck_mr_query.rb | 2 +- ...eate_clusters_applications_cert_manager.rb | 19 + ...20181106135939_add_index_to_deployments.rb | 2 +- ...91549_cleanup_environments_external_url.rb | 2 +- ...rop_default_value_on_status_deployments.rb | 14 + ...add_encrypted_runners_token_to_settings.rb | 11 + .../20181116050532_knative_external_ip.rb | 14 + ...d_encrypted_runners_token_to_namespaces.rb | 11 + ...add_encrypted_runners_token_to_projects.rb | 11 + ...39_add_merge_request_id_to_ci_pipelines.rb | 13 + ..._add_indexes_to_ci_builds_and_pipelines.rb | 44 + ...1_rename_repositories_pool_repositories.rb | 11 + ...eign_key_to_ci_pipelines_merge_requests.rb | 22 + ...51656_add_token_encrypted_to_ci_runners.rb | 11 + ..._partial_index_on_project_id_and_status.rb | 33 + ...emove_redundant_ci_builds_partial_index.rb | 33 + ...81122160027_create_project_repositories.rb | 18 + ...ll_constraint_pool_repository_disk_path.rb | 9 + .../20181123144235_create_suggestions.rb | 20 + ...ents_index_on_project_id_and_created_at.rb | 32 + ...153547_remove_notes_index_on_updated_at.rb | 32 + ...1128123704_add_state_to_pool_repository.rb | 19 + ...104854_add_token_encrypted_to_ci_builds.rb | 11 + ..._add_index_to_ci_builds_token_encrypted.rb | 17 + ...02526_add_project_bfg_object_map_column.rb | 9 + ..._add_name_author_id_and_sha_to_releases.rb | 13 + ..._add_author_id_index_and_fk_to_releases.rb | 21 + ...41_backfill_releases_name_with_tag_name.rb | 17 + ...12171634_create_error_tracking_settings.rb | 17 + ...219145521_add_options_to_build_metadata.rb | 15 + ...181228175414_create_releases_link_table.rb | 19 + ...0190103140724_make_legacy_false_default.rb | 9 + ...ror_notification_sent_to_remote_mirrors.rb | 11 + db/migrate/gpg_keys_limits_to_mysql.rb | 2 +- ...i_build_trace_chunks_raw_data_for_mysql.rb | 2 +- db/migrate/limits_to_mysql.rb | 2 +- db/migrate/markdown_cache_limits_to_mysql.rb | 2 +- ...merge_request_diff_file_limits_to_mysql.rb | 2 +- .../prometheus_metrics_limits_to_mysql.rb | 2 +- .../composite_primary_keys.rb | 2 +- ...cess_tokens_default_back_to_empty_array.rb | 2 +- ...remove_inactive_jira_service_properties.rb | 2 +- ...project_records_with_invalid_visibility.rb | 5 +- ...161128170531_drop_user_activities_table.rb | 2 +- ...20161221140236_remove_unneeded_services.rb | 2 +- ...221153951_rename_reserved_project_names.rb | 3 +- ...4150317_requeue_pending_delete_projects.rb | 2 +- ...20170106142508_fill_authorized_projects.rb | 2 +- ...remove_project_authorizations_id_column.rb | 2 +- ...set_users_authorized_projects_populated.rb | 2 +- ..._remove_inactive_default_email_services.rb | 2 +- ..._remove_trackable_columns_from_timelogs.rb | 2 +- ...01030_validate_foreign_keys_on_timelogs.rb | 2 +- ...e_foreign_keys_on_oauth_openid_requests.rb | 2 +- ...73944_disable_invalid_service_templates.rb | 2 +- ...112_delete_deprecated_gitlab_ci_service.rb | 2 +- ...170215200045_remove_theme_id_from_users.rb | 2 +- ...migrate_build_events_to_pipeline_events.rb | 2 +- ...306170512_migrate_legacy_manual_actions.rb | 2 +- ...71644_reset_relative_position_for_issue.rb | 2 +- ...3418_rename_more_reserved_project_names.rb | 3 +- ...317162059_update_upload_paths_to_system.rb | 2 +- ...er_activities_to_users_last_activity_on.rb | 5 +- ...532_remove_notes_original_discussion_id.rb | 2 +- .../20170406111121_clean_upload_symlinks.rb | 2 +- ...0170406142253_migrate_user_project_view.rb | 2 +- ...0408033905_remove_old_cache_directories.rb | 2 +- ...412174900_rename_reserved_dynamic_paths.rb | 2 +- ...trigger_schedules_to_pipeline_schedules.rb | 2 +- ...5130047_drop_ci_trigger_schedules_table.rb | 2 +- ...e_auto_cancel_pending_pipelines_for_all.rb | 2 +- ...p_namespaceless_pending_delete_projects.rb | 2 +- ...70503004427_update_retried_for_ci_build.rb | 2 +- ...ove_users_authorized_projects_populated.rb | 2 +- ...dd_head_pipeline_for_each_merge_request.rb | 2 +- ..._foreign_key_on_pipeline_schedule_owner.rb | 2 +- ...me_web_hooks_build_events_to_job_events.rb | 2 +- ...ame_services_build_events_to_job_events.rb | 2 +- ...170516165238_cleanup_trigger_for_issues.rb | 2 +- ...dd_constraints_to_issue_assignees_table.rb | 2 +- ...835_rename_users_with_renamed_namespace.rb | 2 +- ...170518231126_fix_wrongly_renamed_routes.rb | 2 +- ...523073948_remove_assignee_id_from_issue.rb | 2 +- .../20170523083112_migrate_old_artifacts.rb | 2 +- ...5140254_rename_all_reserved_paths_again.rb | 2 +- .../20170526185842_migrate_pipeline_stages.rb | 2 +- ...6185858_create_index_in_pipeline_stages.rb | 2 +- ...85901_remove_stage_id_index_from_builds.rb | 2 +- ...526185921_migrate_build_stage_reference.rb | 2 +- ...000_migrate_build_stage_reference_again.rb | 2 +- ...1203055_cleanup_users_ldap_email_rename.rb | 2 +- ...606202615_move_appearance_to_system_dir.rb | 2 +- ...custom_notification_settings_to_columns.rb | 2 +- ...09183112_remove_position_from_issuables.rb | 2 +- ...0612071012_move_personal_snippets_files.rb | 2 +- ...0170613111224_clean_appearance_symlinks.rb | 2 +- ...0621102400_add_stage_id_index_to_builds.rb | 2 +- ...0170627101016_schedule_event_migrations.rb | 2 +- ...igrate_stage_id_reference_in_background.rb | 2 +- ...lication_settings_signin_enabled_rename.rb | 2 +- ..._schedule_merge_request_diff_migrations.rb | 2 +- .../20170711145558_migrate_stages_statuses.rb | 2 +- ...eanup_move_system_upload_folder_symlink.rb | 2 +- ...ue_migrate_system_uploads_to_new_folder.rb | 2 +- ...rge_issuable_reopened_into_opened_state.rb | 2 +- ...emove_events_from_notification_settings.rb | 2 +- ...03_calculate_conv_dev_index_percentages.rb | 2 +- ...ve_locked_at_column_from_merge_requests.rb | 2 +- ...sonal_snippet_files_into_correct_folder.rb | 2 +- ...170815060945_remove_duplicate_mr_events.rb | 2 +- ...sting_namespace_pending_delete_projects.rb | 2 +- ...2101017_migrate_pipeline_sidekiq_queues.rb | 2 +- ..._deploy_migrate_user_external_mail_data.rb | 2 +- ...70513_remove_user_email_provider_column.rb | 2 +- ...70516_remove_user_external_mail_columns.rb | 2 +- .../20170830084744_destroy_gpg_signatures.rb | 2 +- ...0150306_drop_events_for_migration_table.rb | 2 +- ...ove_valid_signature_from_gpg_signatures.rb | 2 +- ...0235_delete_conflicting_redirect_routes.rb | 2 +- ...00_fix_projects_without_project_feature.rb | 2 +- ...170921101004_normalize_ldap_extern_uids.rb | 2 +- ..._merge_request_diff_migrations_take_two.rb | 2 +- ...pdate_legacy_diff_notes_type_for_import.rb | 2 +- ...0927112319_update_notes_type_for_import.rb | 2 +- ...le_create_gpg_key_subkeys_from_gpg_keys.rb | 2 +- ...150314_remove_user_authentication_token.rb | 2 +- ..._clusters_to_new_clusters_architectures.rb | 2 +- ...latest_merge_request_diff_id_migrations.rb | 2 +- ..._remove_ref_fetched_from_merge_requests.rb | 2 +- .../20171103140253_track_untracked_uploads.rb | 2 +- ..._password_authentication_enabled_rename.rb | 2 +- ...0171106154015_remove_issues_branch_name.rb | 2 +- ...leanup_add_timezone_to_issues_closed_at.rb | 2 +- ...171114104051_remove_empty_fork_networks.rb | 2 +- ...ge_request_diff_st_commits_and_st_diffs.rb | 2 +- ...23101020_update_circuitbreaker_defaults.rb | 2 +- ...101046_remove_old_circuitbreaker_config.rb | 2 +- ...e_request_diffs_merge_request_id_and_id.rb | 2 +- ...rge_request_diffs_merge_request_diff_id.rb | 2 +- ...s_service_to_new_clusters_architectures.rb | 2 +- ...150326_reschedule_fork_network_creation.rb | 2 +- ..._merge_request_metrics_with_events_data.rb | 2 +- ...reschedule_fork_network_creation_caller.rb | 2 +- ...300_remove_project_labels_group_id_copy.rb | 2 +- ...71207150343_remove_soft_removed_objects.rb | 2 +- ...0171207150344_remove_deleted_at_columns.rb | 2 +- ...ub_importer_advance_stage_sidekiq_queue.rb | 2 +- ...late_can_push_from_deploy_keys_projects.rb | 2 +- ...0171215121259_remove_can_push_from_keys.rb | 2 +- ...01_normalize_extern_uid_from_identities.rb | 2 +- ...0_schedule_issues_closed_at_type_change.rb | 2 +- ...et_confidential_note_events_on_webhooks.rb | 2 +- ...121225_remove_redundant_pipeline_stages.rb | 2 +- ...et_confidential_note_events_on_services.rb | 2 +- ...02111106_remove_project_labels_group_id.rb | 2 +- ...6_change_author_id_to_not_null_in_todos.rb | 2 +- ...28_add_tmp_partial_null_index_to_builds.rb | 2 +- ...12101928_schedule_build_stage_migration.rb | 2 +- ...move_tmp_partial_null_index_from_builds.rb | 2 +- ...020_fill_pages_domain_verification_code.rb | 2 +- ...030_enqueue_verify_pages_domain_workers.rb | 2 +- ...emove_empty_extern_uid_auth0_identities.rb | 2 +- ...27_build_user_interacted_projects_table.rb | 6 +- ...53_change_project_namespace_id_not_null.rb | 2 +- ...0_remove_permanent_from_redirect_routes.rb | 2 +- ...ate_create_trace_artifact_sidekiq_queue.rb | 2 +- ...64012_add_path_index_to_redirect_routes.rb | 2 +- ...ipeline_for_merge_request_sidekiq_queue.rb | 2 +- ...1928_reschedule_builds_stages_migration.rb | 2 +- ...08143355_cleanup_users_rss_token_rename.rb | 2 +- ...populate_missing_project_ci_cd_settings.rb | 2 +- ...0080616_schedule_stages_index_migration.rb | 2 +- .../20180424151928_fill_file_store.rb | 2 +- ...runner_type_for_ci_runners_post_migrate.rb | 2 +- ...ta_from_projects_to_project_mirror_data.rb | 2 +- ...83701_set_minimal_project_build_timeout.rb | 2 +- ...nstraint_to_project_features_project_id.rb | 2 +- ...nstraint_to_project_features_project_id.rb | 2 +- ...20180514161336_remove_gemnasium_service.rb | 2 +- ...metrics_populating_background_migration.rb | 2 +- ...equests_allow_maintainer_to_push_rename.rb | 2 +- ...52628_schedule_to_archive_legacy_traces.rb | 2 +- ...ate_object_storage_upload_sidekiq_queue.rb | 2 +- ...23514_cleanup_stages_position_migration.rb | 2 +- ...rge_requests_allow_collaboration_rename.rb | 2 +- ...21030_enqueue_delete_diff_files_workers.rb | 2 +- ...o_projects_for_last_repository_check_at.rb | 2 +- ...7_enqueue_fix_cross_project_label_links.rb | 2 +- .../20180704145007_update_project_indexes.rb | 2 +- ...20180706223200_populate_site_statistics.rb | 2 +- ...delete_inconsistent_internal_id_records.rb | 2 +- ...9195358_migrate_null_wiki_access_levels.rb | 2 +- ...grate_legacy_artifacts_to_job_artifacts.rb | 2 +- ...0816193530_rename_login_root_namespaces.rb | 2 +- ...80826111825_recalculate_site_statistics.rb | 2 +- ...80906051323_remove_orphaned_label_links.rb | 2 +- ...sume_remaining_diff_files_deletion_jobs.rb | 2 +- ..._schedule_digest_personal_access_tokens.rb | 2 +- ...0180914162043_encrypt_web_hooks_columns.rb | 2 +- ...iq_throttling_from_application_settings.rb | 2 +- ...14356_populate_external_pipeline_source.rb | 2 +- ...remove_wikis_count_from_site_statistics.rb | 2 +- .../20181008145341_steal_encrypt_columns.rb | 2 +- ...08145359_remove_web_hooks_token_and_url.rb | 2 +- .../20181008200441_remove_circuit_breaker.rb | 2 +- ...ackfill_store_project_full_path_in_repo.rb | 27 + ...remove_koding_from_application_settings.rb | 2 +- .../20181014121030_enqueue_redact_links.rb | 2 +- ...e_populate_cluster_kubernetes_namespace.rb | 2 +- ...6091631_migrate_forbidden_redirect_uris.rb | 2 +- ...4_fill_empty_finished_at_in_deployments.rb | 2 +- .../20181105201455_steal_fill_store_upload.rb | 2 +- ...107054254_remove_restricted_todos_again.rb | 2 +- ...11200_schedule_runners_token_encryption.rb | 38 + .../20181123042307_drop_site_statistics.rb | 2 +- ...32_backfill_hashed_project_repositories.rb | 26 + ...19_populate_mr_metrics_with_events_data.rb | 38 + ..._update_project_import_visibility_level.rb | 2 +- ..._cluster_configure_worker_sidekiq_queue.rb | 15 + db/schema.rb | 1077 ++++--- doc/README.md | 571 +++- doc/administration/auth/README.md | 2 +- doc/administration/auth/authentiq.md | 36 +- .../how_to_configure_ldap_gitlab_ce/index.md | 2 +- doc/administration/auth/jwt.md | 36 +- doc/administration/auth/okta.md | 2 +- doc/administration/container_registry.md | 46 + doc/administration/git_protocol.md | 14 +- doc/administration/gitaly/index.md | 115 +- .../high_availability/gitlab.md | 2 +- doc/administration/high_availability/nfs.md | 10 +- doc/administration/high_availability/redis.md | 8 +- doc/administration/incoming_email.md | 70 +- doc/administration/index.md | 1 + doc/administration/job_artifacts.md | 12 - doc/administration/logs.md | 31 +- .../img/request_profiling_token.png | Bin 10217 -> 17425 bytes .../performance/influxdb_configuration.md | 6 +- .../monitoring/performance/performance_bar.md | 4 +- .../performance/request_profiling.md | 19 +- .../monitoring/prometheus/index.md | 129 +- .../operations/fast_ssh_key_lookup.md | 16 +- .../operations/filesystem_benchmarking.md | 14 +- .../reply_by_email_postfix_setup.md | 2 +- .../repository_storage_paths.md | 19 + .../repository_storage_types.md | 17 + doc/administration/troubleshooting/debug.md | 6 +- doc/administration/uploads.md | 59 +- doc/api/README.md | 158 +- doc/api/access_requests.md | 16 +- doc/api/applications.md | 6 +- doc/api/avatar.md | 2 +- doc/api/award_emoji.md | 16 +- doc/api/boards.md | 14 +- doc/api/branches.md | 14 +- doc/api/broadcast_messages.md | 10 +- doc/api/commits.md | 26 +- doc/api/custom_attributes.md | 8 +- doc/api/deploy_key_multiple_projects.md | 8 +- doc/api/deploy_keys.md | 14 +- doc/api/deployments.md | 4 +- doc/api/discussions.md | 62 +- doc/api/environments.md | 10 +- doc/api/events.md | 6 +- doc/api/features.md | 4 +- doc/api/graphql/index.md | 2 +- doc/api/group_badges.md | 12 +- doc/api/group_boards.md | 14 +- doc/api/group_level_variables.md | 10 +- doc/api/group_milestones.md | 2 +- doc/api/groups.md | 12 +- doc/api/issues.md | 46 +- doc/api/jobs.md | 201 +- doc/api/labels.md | 12 +- doc/api/lint.md | 2 +- doc/api/members.md | 24 +- doc/api/merge_requests.md | 100 +- doc/api/milestones.md | 5 +- doc/api/namespaces.md | 8 +- doc/api/notes.md | 28 +- doc/api/notification_settings.md | 12 +- doc/api/oauth2.md | 205 +- doc/api/pages_domains.md | 18 +- doc/api/pipeline_triggers.md | 12 +- doc/api/pipelines.md | 27 +- doc/api/project_badges.md | 12 +- doc/api/project_clusters.md | 346 +++ doc/api/project_import_export.md | 12 +- doc/api/project_level_variables.md | 10 +- doc/api/project_snippets.md | 2 +- doc/api/projects.md | 24 +- doc/api/protected_branches.md | 8 +- doc/api/protected_tags.md | 8 +- doc/api/releases/index.md | 482 +++ doc/api/releases/links.md | 177 ++ doc/api/repositories.md | 13 +- doc/api/repository_files.md | 22 +- doc/api/repository_submodules.md | 2 +- doc/api/resource_label_events.md | 8 +- doc/api/runners.md | 18 +- doc/api/search.md | 62 +- doc/api/services.md | 40 +- doc/api/settings.md | 4 +- doc/api/sidekiq_metrics.md | 8 +- doc/api/snippets.md | 48 +- doc/api/suggestions.md | 36 + doc/api/system_hooks.md | 8 +- doc/api/tags.md | 2 +- doc/api/templates/gitlab_ci_ymls.md | 2 +- doc/api/templates/licenses.md | 2 +- doc/api/todos.md | 7 +- doc/api/users.md | 34 +- doc/api/version.md | 2 +- doc/api/wikis.md | 26 +- doc/ci/README.md | 1 + doc/ci/autodeploy/img/auto_deploy_btn.png | Bin 16779 -> 0 bytes doc/ci/autodeploy/img/auto_deploy_button.png | Bin 13321 -> 0 bytes .../autodeploy/img/auto_deploy_dropdown.png | Bin 28357 -> 0 bytes doc/ci/autodeploy/img/auto_monitoring.png | Bin 56765 -> 0 bytes .../autodeploy/img/guide_connect_cluster.png | Bin 15225 -> 0 bytes doc/ci/autodeploy/img/guide_integration.png | Bin 15042 -> 0 bytes doc/ci/autodeploy/img/guide_secret.png | Bin 4803 -> 0 bytes doc/ci/autodeploy/quick_start_guide.md | 96 +- doc/ci/caching/index.md | 17 +- doc/ci/docker/using_docker_build.md | 8 +- doc/ci/docker/using_docker_images.md | 3 + doc/ci/docker/using_kaniko.md | 23 + doc/ci/environments.md | 4 +- doc/ci/examples/README.md | 12 +- .../img/cloud_foundry_secret_variables.png | Bin 49735 -> 0 bytes .../img/cloud_foundry_variables.png | Bin 0 -> 11852 bytes .../index.md | 6 +- doc/ci/examples/deployment/README.md | 8 +- .../deployment/composer-npm-deploy.md | 26 +- .../index.md | 4 +- .../img/container_registry_checkbox.png | Bin 4730 -> 0 bytes .../img/secret_variables_page.png | Bin 96864 -> 0 bytes .../img/variables_page.png | Bin 0 -> 11836 bytes .../laravel_with_gitlab_and_envoy/index.md | 20 +- ...and-deploy-python-application-to-heroku.md | 14 +- ...t-and-deploy-ruby-application-to-heroku.md | 11 +- doc/ci/img/pipelines-goal.png | Bin 0 -> 15284 bytes doc/ci/img/pipelines-goal.svg | 4 - doc/ci/img/types-of-pipelines.png | Bin 0 -> 12268 bytes doc/ci/img/types-of-pipelines.svg | 4 - doc/ci/img/view_on_mr_widget.png | Bin 21969 -> 21942 bytes doc/ci/interactive_web_terminal/index.md | 16 +- doc/ci/junit_test_reports.md | 6 +- .../img/merge_request.png | Bin 0 -> 18834 bytes .../img/pipeline_detail.png | Bin 0 -> 15561 bytes doc/ci/merge_request_pipelines/index.md | 83 + doc/ci/pipelines.md | 6 +- doc/ci/quick_start/README.md | 4 +- doc/ci/runners/README.md | 6 +- doc/ci/services/mysql.md | 4 +- doc/ci/services/redis.md | 2 +- doc/ci/triggers/README.md | 3 +- doc/ci/triggers/img/trigger_variables.png | Bin 3637 -> 10853 bytes doc/ci/variables/README.md | 182 +- doc/ci/variables/img/variables.png | Bin 116263 -> 34838 bytes .../variables/where_variables_can_be_used.md | 2 +- doc/ci/yaml/README.md | 368 ++- doc/development/README.md | 3 +- doc/development/adding_database_indexes.md | 6 +- doc/development/architecture.md | 189 +- doc/development/automatic_ce_ee_merge.md | 110 +- doc/development/background_migrations.md | 4 +- doc/development/build_test_package.md | 13 +- doc/development/changelog.md | 18 +- doc/development/code_review.md | 137 +- doc/development/contributing/index.md | 9 +- .../contributing/issue_workflow.md | 2 +- .../contributing/merge_request_workflow.md | 1 - doc/development/contributing/style_guides.md | 3 +- doc/development/db_dump.md | 2 +- doc/development/diffs.md | 24 +- .../documentation/feature-change-workflow.md | 112 + .../documentation/improvement-workflow.md | 49 + doc/development/documentation/index.md | 670 ++--- .../site_architecture/global_nav.md | 342 +++ .../documentation/site_architecture/index.md | 66 + doc/development/documentation/structure.md | 168 +- doc/development/documentation/styleguide.md | 421 ++- doc/development/documentation/workflow.md | 185 +- doc/development/ee_features.md | 157 +- doc/development/emails.md | 30 +- doc/development/fe_guide/components.md | 4 +- doc/development/fe_guide/droplab/droplab.md | 2 +- doc/development/fe_guide/graphql.md | 83 + doc/development/fe_guide/index.md | 3 + doc/development/fe_guide/style_guide_scss.md | 6 +- doc/development/fe_guide/vue.md | 8 + doc/development/fe_guide/vuex.md | 18 +- doc/development/feature_flags.md | 12 +- doc/development/github_importer.md | 20 +- doc/development/gotchas.md | 6 +- doc/development/i18n/proofreader.md | 49 +- doc/development/instrumentation.md | 10 +- doc/development/logging.md | 144 + doc/development/migration_style_guide.md | 54 +- .../new_fe_guide/development/performance.md | 2 +- .../new_fe_guide/development/testing.md | 303 +- .../new_fe_guide/style/prettier.md | 39 +- doc/development/performance.md | 22 +- doc/development/post_deployment_migrations.md | 6 +- doc/development/profiling.md | 7 +- doc/development/prometheus_metrics.md | 2 +- doc/development/query_count_limits.md | 4 +- doc/development/sidekiq_style_guide.md | 4 +- doc/development/sql.md | 4 +- doc/development/swapping_tables.md | 4 +- .../testing_guide/best_practices.md | 18 +- doc/development/testing_guide/ci.md | 4 - .../testing_guide/end_to_end_tests.md | 69 +- doc/development/testing_guide/review_apps.md | 153 +- doc/development/testing_guide/smoke.md | 9 +- .../testing_guide/testing_levels.md | 93 +- doc/development/ui_guide.md | 110 +- doc/development/ux_guide/animation.md | 68 +- doc/development/ux_guide/basics.md | 83 +- doc/development/ux_guide/components.md | 388 +-- doc/development/ux_guide/copy.md | 203 +- doc/development/ux_guide/features.md | 58 +- doc/development/ux_guide/illustrations.md | 87 +- doc/development/ux_guide/index.md | 71 +- doc/development/ux_guide/principles.md | 20 +- doc/development/ux_guide/resources.md | 20 +- doc/development/ux_guide/surfaces.md | 48 +- doc/development/ux_guide/tips.md | 43 +- doc/development/ux_guide/users.md | 311 +- doc/development/what_requires_downtime.md | 16 +- doc/gitlab-basics/create-your-ssh-keys.md | 2 +- doc/img/devops-stages.png | Bin 0 -> 10666 bytes doc/img/devops_lifecycle.png | Bin 18611 -> 0 bytes doc/install/README.md | 101 +- .../aws/img/associate_subnet_gateway_2.png | Bin 10617 -> 10616 bytes doc/install/aws/img/choose_ami.png | Bin 4892 -> 4888 bytes doc/install/aws/img/ec_az.png | Bin 10476 -> 10470 bytes doc/install/aws/img/ec_subnet.png | Bin 23517 -> 23505 bytes doc/install/aws/index.md | 4 +- doc/install/azure/index.md | 2 +- doc/install/database_mysql.md | 57 +- doc/install/docker.md | 7 +- doc/install/installation.md | 16 +- doc/install/kubernetes/gitlab_chart.md | 19 +- doc/install/kubernetes/gitlab_omnibus.md | 2 +- doc/install/kubernetes/gitlab_runner_chart.md | 6 +- doc/install/kubernetes/index.md | 42 +- doc/install/openshift_and_gitlab/index.md | 10 +- doc/install/requirements.md | 12 +- doc/integration/akismet.md | 16 +- doc/integration/auth0.md | 2 +- doc/integration/bitbucket.md | 1 + doc/integration/github.md | 27 +- doc/integration/google.md | 1 - doc/integration/img/github_app.png | Bin 29330 -> 42278 bytes doc/integration/img/github_app_entry.png | Bin 0 -> 26765 bytes doc/integration/img/github_register_app.png | Bin 0 -> 40228 bytes doc/integration/recaptcha.md | 20 +- doc/integration/shibboleth.md | 144 +- doc/raketasks/backup_restore.md | 31 +- doc/raketasks/web_hooks.md | 6 +- doc/security/rack_attack.md | 31 +- doc/security/two_factor_authentication.md | 6 +- doc/ssh/README.md | 25 +- doc/topics/authentication/index.md | 3 +- doc/topics/autodevops/index.md | 133 +- doc/topics/git/how_to_install_git/index.md | 2 +- doc/university/bookclub/booklist.md | 52 +- doc/university/glossary/README.md | 14 +- .../high-availability/aws/README.md | 50 +- .../aws/img/reference-arch2.png | Bin 184033 -> 53523 bytes doc/university/training/end-user/README.md | 71 +- .../training/topics/additional_resources.md | 12 +- doc/university/training/topics/bisect.md | 12 +- .../training/topics/getting_started.md | 9 +- doc/university/training/topics/git_log.md | 10 +- .../training/topics/merge_conflicts.md | 18 +- .../training/topics/rollback_commits.md | 18 +- doc/university/training/topics/stash.md | 12 +- doc/university/training/topics/tags.md | 2 +- doc/university/training/user_training.md | 2 +- doc/update/10.0-to-10.1.md | 2 +- doc/update/10.1-to-10.2.md | 2 +- doc/update/10.2-to-10.3.md | 2 +- doc/update/10.3-to-10.4.md | 2 +- doc/update/10.4-to-10.5.md | 2 +- doc/update/10.5-to-10.6.md | 2 +- doc/update/10.6-to-10.7.md | 2 +- doc/update/10.7-to-10.8.md | 2 +- doc/update/10.8-to-11.0.md | 2 +- doc/update/11.0-to-11.1.md | 2 +- doc/update/11.1-to-11.2.md | 2 +- doc/update/11.2-to-11.3.md | 10 +- doc/update/11.3-to-11.4.md | 10 +- doc/update/11.4-to-11.5.md | 2 +- doc/update/11.5-to-11.6.md | 390 +++ doc/update/11.6-to-11.7.md | 390 +++ doc/update/6.9-to-7.0.md | 2 +- doc/update/6.x-or-7.x-to-7.14.md | 4 +- doc/update/7.0-to-7.1.md | 2 +- doc/update/8.10-to-8.11.md | 2 +- doc/update/8.11-to-8.12.md | 2 +- doc/update/8.12-to-8.13.md | 2 +- doc/update/8.13-to-8.14.md | 2 +- doc/update/8.14-to-8.15.md | 2 +- doc/update/8.15-to-8.16.md | 2 +- doc/update/8.16-to-8.17.md | 2 +- doc/update/8.17-to-9.0.md | 4 +- doc/update/9.0-to-9.1.md | 4 +- doc/update/9.1-to-9.2.md | 4 +- doc/update/9.2-to-9.3.md | 4 +- doc/update/9.3-to-9.4.md | 4 +- doc/update/9.4-to-9.5.md | 2 +- doc/update/9.5-to-10.0.md | 2 +- doc/update/README.md | 8 +- doc/update/upgrader.md | 91 - doc/user/abuse_reports.md | 53 + doc/user/admin_area/abuse_reports.md | 31 + .../admin_area/custom_project_templates.md | 25 + .../img/abuse_report_blocked_user.png | Bin 0 -> 13821 bytes .../admin_area/img/abuse_reports_page.png | Bin 0 -> 215813 bytes .../img/admin_area_settings_button.png | Bin 7993 -> 7974 bytes .../settings/img/import_sources.png | Bin 0 -> 5891 bytes .../settings/sign_up_restrictions.md | 2 +- .../visibility_and_access_controls.md | 7 + .../discussions/img/insert_suggestion.png | Bin 0 -> 19913 bytes doc/user/discussions/img/make_suggestion.png | Bin 0 -> 28447 bytes doc/user/discussions/img/suggestion.png | Bin 0 -> 39775 bytes doc/user/discussions/index.md | 45 + doc/user/group/clusters/index.md | 132 + doc/user/group/custom_project_templates.md | 23 + doc/user/group/img/add_new_members.png | Bin 66523 -> 66513 bytes .../img/create_new_project_from_group.png | Bin 37234 -> 37231 bytes doc/user/group/index.md | 8 +- doc/user/group/subgroups/index.md | 1 - .../img/color_inline_colorchip_render_gfm.png | Bin 11534 -> 4724 bytes doc/user/img/math_inline_sup_render_gfm.png | Bin 1359 -> 1119 bytes doc/user/img/mermaid_diagram_render_gfm.png | Bin 4587 -> 2202 bytes doc/user/img/task_list_ordered_render_gfm.png | Bin 6247 -> 2860 bytes .../img/unordered_check_list_render_gfm.png | Bin 6207 -> 2789 bytes doc/user/index.md | 1 + doc/user/markdown.md | 103 +- doc/user/permissions.md | 2 + doc/user/profile/account/delete_account.md | 3 +- .../account/two_factor_authentication.md | 4 +- doc/user/profile/index.md | 6 +- .../project/clusters/eks_and_gitlab/index.md | 26 +- doc/user/project/clusters/index.md | 249 +- .../runbooks/img/authorize-jupyter.png | Bin 126425 -> 35652 bytes .../clusters/runbooks/img/demo-runbook.png | Bin 132436 -> 36091 bytes .../runbooks/img/gitlab-variables.png | Bin 179611 -> 54167 bytes .../clusters/runbooks/img/helm-install.png | Bin 201348 -> 71741 bytes .../clusters/runbooks/img/ingress-install.png | Bin 140880 -> 44380 bytes .../runbooks/img/jupyterhub-install.png | Bin 116775 -> 41655 bytes .../clusters/runbooks/img/postgres-query.png | Bin 209435 -> 63480 bytes .../clusters/runbooks/img/sample-runbook.png | Bin 145728 -> 40947 bytes .../clusters/serverless/img/deploy-stage.png | Bin 12029 -> 5036 bytes .../clusters/serverless/img/dns-entry.png | Bin 56600 -> 19583 bytes .../serverless/img/function-execution.png | Bin 0 -> 223762 bytes .../serverless/img/install-knative.png | Bin 102861 -> 13003 bytes .../clusters/serverless/img/knative-app.png | Bin 28998 -> 9440 bytes .../serverless/img/serverless-page.png | Bin 0 -> 194708 bytes doc/user/project/clusters/serverless/index.md | 263 +- doc/user/project/container_registry.md | 4 +- doc/user/project/cycle_analytics.md | 3 +- doc/user/project/deploy_tokens/index.md | 12 +- doc/user/project/img/issue_board.png | Bin 289964 -> 284759 bytes .../img/issue_board_summed_weights.png | Bin 26691 -> 26687 bytes doc/user/project/img/issue_boards_core.png | Bin 119989 -> 119602 bytes .../project/img/issue_boards_multiple.png | Bin 6086 -> 22623 bytes doc/user/project/img/issue_boards_premium.png | Bin 99171 -> 98490 bytes doc/user/project/import/bitbucket_server.md | 2 +- doc/user/project/import/clearcase.md | 2 +- doc/user/project/import/github.md | 31 +- doc/user/project/import/manifest.md | 10 +- doc/user/project/import/repo_by_url.md | 2 +- doc/user/project/index.md | 29 +- doc/user/project/integrations/bugzilla.md | 5 +- .../integrations/discord_notifications.md | 29 + .../project/integrations/emails_on_push.md | 16 +- .../integrations/img/emails_on_push_email.png | Bin 0 -> 62816 bytes .../img/emails_on_push_service.png | Bin 28535 -> 26788 bytes .../integrations/img/jira_api_token.png | Bin 160587 -> 61394 bytes .../integrations/img/jira_api_token_menu.png | Bin 68564 -> 25059 bytes .../integrations/img/jira_service_page.png | Bin 74893 -> 30398 bytes .../integrations/jira_cloud_configuration.md | 5 +- .../integrations/jira_server_configuration.md | 12 +- doc/user/project/integrations/mattermost.md | 6 +- .../project/integrations/project_services.md | 1 + doc/user/project/integrations/prometheus.md | 9 +- .../prometheus_library/cloudwatch.md | 2 +- .../prometheus_library/haproxy.md | 2 +- .../integrations/prometheus_library/index.md | 34 + .../prometheus_library/metrics.md | 20 +- .../integrations/prometheus_library/nginx.md | 2 +- .../prometheus_library/nginx_ingress.md | 30 +- .../prometheus_library/nginx_ingress_vts.md | 58 + doc/user/project/integrations/redmine.md | 7 +- doc/user/project/integrations/webhooks.md | 8 +- doc/user/project/issue_board.md | 1 + .../project/issues/automatic_issue_closing.md | 9 +- doc/user/project/issues/create_new_issue.md | 46 +- doc/user/project/issues/csv_import.md | 45 + .../project/issues/img/import_csv_button.png | Bin 0 -> 4342 bytes doc/user/project/issues/img/issue_board.png | Bin 86095 -> 85331 bytes .../project/issues/img/similar_issues.png | Bin 0 -> 25407 bytes doc/user/project/issues/index.md | 13 + doc/user/project/issues/similar_issues.md | 16 + doc/user/project/labels.md | 4 +- .../img/comment-on-any-diff-line.png | Bin 177323 -> 55614 bytes .../merge_requests/img/create_from_email.png | Bin 55777 -> 112256 bytes .../img/filter_wip_merge_requests.png | Bin 17346 -> 6285 bytes .../img/merge_request_pipeline.png | Bin 31046 -> 31026 bytes .../img/merge_request_widget.png | Bin 11036 -> 8936 bytes doc/user/project/merge_requests/index.md | 42 +- .../merge_requests/resolve_conflicts.md | 36 +- .../project/merge_requests/revert_changes.md | 6 + doc/user/project/milestones/index.md | 20 + .../project/new_ci_build_permissions_model.md | 2 +- doc/user/project/operations/error_tracking.md | 30 + .../operations/img/error_tracking_list.png | Bin 0 -> 230740 bytes .../pages/getting_started_part_three.md | 31 +- doc/user/project/pages/img/icons/click.png | Bin 10148 -> 4863 bytes doc/user/project/pages/img/icons/cogs.png | Bin 9670 -> 4425 bytes doc/user/project/pages/img/icons/fork.png | Bin 9597 -> 4562 bytes doc/user/project/pages/img/icons/free.png | Bin 8689 -> 3681 bytes doc/user/project/pages/img/icons/lock.png | Bin 7892 -> 3426 bytes doc/user/project/pages/img/icons/monitor.png | Bin 5039 -> 2025 bytes doc/user/project/pages/img/icons/terminal.png | Bin 4972 -> 1983 bytes doc/user/project/pages/index.md | 4 +- doc/user/project/pages/introduction.md | 4 +- .../pages/lets_encrypt_for_gitlab_pages.md | 158 + doc/user/project/pipelines/schedules.md | 12 +- doc/user/project/quick_actions.md | 1 + doc/user/project/releases.md | 1 + doc/user/project/releases/img/releases.png | Bin 0 -> 126093 bytes doc/user/project/releases/index.md | 62 + .../branches/img/branch_filter_search_box.png | Bin 83225 -> 23539 bytes .../repository/gpg_signed_commits/index.md | 62 +- .../repository/img/repository_cleanup.png | Bin 0 -> 8117 bytes doc/user/project/repository/index.md | 2 +- .../reducing_the_repo_size_using_git.md | 107 +- doc/user/project/settings/import_export.md | 7 +- doc/user/project/settings/index.md | 8 + doc/user/project/web_ide/index.md | 33 +- doc/user/search/img/dashboard_links.png | Bin 0 -> 10220 bytes .../search/img/issues_assigned_to_you.png | Bin 49079 -> 19706 bytes doc/user/search/img/left_menu_bar.png | Bin 37433 -> 0 bytes doc/user/search/index.md | 16 +- doc/user/snippets.md | 2 +- .../img/repository_mirroring_force_update.png | Bin 45730 -> 13586 bytes doc/workflow/notifications.md | 1 + doc/workflow/releases.md | 17 +- doc/workflow/repository_mirroring.md | 53 +- doc/workflow/shortcuts.md | 3 +- doc/workflow/time_tracking.md | 3 +- .../migration/create_table_migration.rb | 2 +- .../active_record/migration/migration.rb | 2 +- .../post_deployment_migration/migration.rb | 2 +- jest.config.js | 34 + lib/api/access_requests.rb | 2 +- lib/api/api.rb | 16 +- lib/api/api_guard.rb | 6 + lib/api/award_emoji.rb | 2 +- lib/api/badges.rb | 2 +- lib/api/boards.rb | 2 +- lib/api/branches.rb | 8 +- lib/api/commit_statuses.rb | 8 +- lib/api/commits.rb | 10 +- lib/api/deploy_keys.rb | 2 +- lib/api/deployments.rb | 2 +- lib/api/discussions.rb | 2 +- lib/api/entities.rb | 117 +- lib/api/environments.rb | 2 +- lib/api/events.rb | 44 +- lib/api/files.rb | 6 +- lib/api/group_boards.rb | 2 +- lib/api/group_milestones.rb | 2 +- lib/api/group_variables.rb | 2 +- lib/api/groups.rb | 18 +- lib/api/helpers.rb | 23 +- lib/api/helpers/runner.rb | 32 +- lib/api/helpers/version.rb | 29 + lib/api/internal.rb | 3 +- lib/api/issues.rb | 4 +- lib/api/job_artifacts.rb | 26 +- lib/api/jobs.rb | 4 +- lib/api/labels.rb | 2 +- lib/api/lint.rb | 3 +- lib/api/members.rb | 2 +- lib/api/merge_request_diffs.rb | 2 +- lib/api/merge_requests.rb | 39 +- lib/api/namespaces.rb | 19 +- lib/api/notes.rb | 2 +- lib/api/notification_settings.rb | 2 +- lib/api/pages_domains.rb | 4 +- lib/api/pipeline_schedules.rb | 2 +- lib/api/pipelines.rb | 19 +- lib/api/project_clusters.rb | 142 + lib/api/project_hooks.rb | 2 +- lib/api/project_import.rb | 2 +- lib/api/project_milestones.rb | 2 +- lib/api/project_snippets.rb | 2 +- lib/api/projects.rb | 6 +- lib/api/protected_branches.rb | 4 +- lib/api/protected_tags.rb | 4 +- lib/api/release/links.rb | 115 + lib/api/releases.rb | 143 + lib/api/repositories.rb | 2 +- lib/api/resource_label_events.rb | 2 +- lib/api/runner.rb | 14 +- lib/api/runners.rb | 2 +- lib/api/search.rb | 11 +- lib/api/services.rb | 13 +- lib/api/snippets.rb | 1 + lib/api/subscriptions.rb | 2 +- lib/api/suggestions.rb | 31 + lib/api/tags.rb | 74 +- lib/api/todos.rb | 2 +- lib/api/triggers.rb | 2 +- lib/api/variables.rb | 2 +- lib/api/wikis.rb | 4 +- lib/backup/manager.rb | 2 +- lib/backup/repository.rb | 16 +- lib/banzai/filter/absolute_link_filter.rb | 1 + lib/banzai/filter/front_matter_filter.rb | 34 + .../filter/milestone_reference_filter.rb | 68 +- lib/banzai/filter/suggestion_filter.rb | 24 + lib/banzai/filter/syntax_highlight_filter.rb | 2 +- lib/banzai/filter/user_reference_filter.rb | 2 +- lib/banzai/filter/yaml_front_matter_filter.rb | 27 - lib/banzai/pipeline/gfm_pipeline.rb | 1 + lib/banzai/pipeline/post_process_pipeline.rb | 3 +- lib/banzai/pipeline/pre_process_pipeline.rb | 2 +- lib/banzai/suggestions_parser.rb | 14 + lib/bitbucket_server/connection.rb | 22 +- lib/bitbucket_server/paginator.rb | 12 +- lib/constraints/feature_constrainer.rb | 8 +- lib/declarative_policy.rb | 12 +- lib/extracts_path.rb | 5 - lib/gitlab.rb | 4 + lib/gitlab/auth.rb | 6 +- lib/gitlab/auth/saml/auth_hash.rb | 2 +- lib/gitlab/auth/user_auth_finders.rb | 3 + .../backfill_hashed_project_repositories.rb | 15 + .../backfill_legacy_project_repositories.rb | 15 + ...ackfill_project_fullpath_in_repo_config.rb | 209 ++ .../backfill_project_repositories.rb | 219 ++ .../background_migration/encrypt_columns.rb | 19 +- .../encrypt_runners_tokens.rb | 32 + .../models/encrypt_columns/namespace.rb | 28 + .../models/encrypt_columns/project.rb | 28 + .../models/encrypt_columns/runner.rb | 28 + .../models/encrypt_columns/settings.rb | 37 + .../models/encrypt_columns/web_hook.rb | 4 +- ...quest_metrics_with_events_data_improved.rb | 99 + .../background_migration/redact_links.rb | 23 +- .../redact_links/redactable.rb | 21 + lib/gitlab/badge/coverage/report.rb | 2 +- lib/gitlab/badge/pipeline/status.rb | 2 +- lib/gitlab/bitbucket_import/importer.rb | 2 +- .../bitbucket_server_import/importer.rb | 8 +- lib/gitlab/blob_helper.rb | 10 +- .../branch_push_merge_commit_analyzer.rb | 132 + .../cache/ci/project_pipeline_status.rb | 40 +- lib/gitlab/checks/base_checker.rb | 58 + lib/gitlab/checks/branch_check.rb | 110 + lib/gitlab/checks/change_access.rb | 243 +- lib/gitlab/checks/commit_check.rb | 65 - lib/gitlab/checks/diff_check.rb | 98 + lib/gitlab/checks/lfs_check.rb | 23 + lib/gitlab/checks/push_check.rb | 22 + lib/gitlab/checks/tag_check.rb | 46 + lib/gitlab/ci/build/policy/changes.rb | 2 +- lib/gitlab/ci/build/policy/refs.rb | 12 +- lib/gitlab/ci/build/step.rb | 1 - lib/gitlab/ci/charts.rb | 4 +- lib/gitlab/ci/config.rb | 21 +- lib/gitlab/ci/config/entry/artifacts.rb | 8 +- lib/gitlab/ci/config/entry/attributable.rb | 29 - lib/gitlab/ci/config/entry/boolean.rb | 20 - lib/gitlab/ci/config/entry/cache.rb | 8 +- lib/gitlab/ci/config/entry/commands.rb | 4 +- lib/gitlab/ci/config/entry/configurable.rb | 83 - lib/gitlab/ci/config/entry/coverage.rb | 4 +- lib/gitlab/ci/config/entry/environment.rb | 4 +- lib/gitlab/ci/config/entry/factory.rb | 75 - lib/gitlab/ci/config/entry/global.rb | 6 +- lib/gitlab/ci/config/entry/hidden.rb | 4 +- lib/gitlab/ci/config/entry/image.rb | 4 +- lib/gitlab/ci/config/entry/job.rb | 24 +- lib/gitlab/ci/config/entry/jobs.rb | 6 +- lib/gitlab/ci/config/entry/key.rb | 4 +- .../config/entry/legacy_validation_helpers.rb | 72 - lib/gitlab/ci/config/entry/node.rb | 103 - lib/gitlab/ci/config/entry/paths.rb | 4 +- lib/gitlab/ci/config/entry/policy.rb | 14 +- lib/gitlab/ci/config/entry/reports.rb | 6 +- lib/gitlab/ci/config/entry/retry.rb | 16 +- lib/gitlab/ci/config/entry/script.rb | 4 +- lib/gitlab/ci/config/entry/service.rb | 2 +- lib/gitlab/ci/config/entry/services.rb | 6 +- lib/gitlab/ci/config/entry/simplifiable.rb | 45 - lib/gitlab/ci/config/entry/stage.rb | 4 +- lib/gitlab/ci/config/entry/stages.rb | 4 +- lib/gitlab/ci/config/entry/undefined.rb | 42 - lib/gitlab/ci/config/entry/unspecified.rb | 21 - lib/gitlab/ci/config/entry/validatable.rb | 40 - lib/gitlab/ci/config/entry/validator.rb | 28 - lib/gitlab/ci/config/entry/validators.rb | 198 -- lib/gitlab/ci/config/entry/variables.rb | 4 +- lib/gitlab/ci/config/external/file/base.rb | 20 +- lib/gitlab/ci/config/external/file/local.rb | 9 +- lib/gitlab/ci/config/external/file/project.rb | 72 + lib/gitlab/ci/config/external/file/remote.rb | 6 + .../ci/config/external/file/template.rb | 51 + lib/gitlab/ci/config/external/mapper.rb | 56 +- lib/gitlab/ci/config/external/processor.rb | 6 +- lib/gitlab/ci/parsers.rb | 21 + lib/gitlab/ci/parsers/parser_error.rb | 9 + lib/gitlab/ci/parsers/test.rb | 21 - lib/gitlab/ci/parsers/test/junit.rb | 4 +- lib/gitlab/ci/pipeline/chain/build.rb | 1 + lib/gitlab/ci/pipeline/chain/command.rb | 4 +- lib/gitlab/ci/pipeline/chain/skip.rb | 7 +- lib/gitlab/ci/status/bridge/common.rb | 27 + lib/gitlab/ci/status/bridge/factory.rb | 15 + lib/gitlab/ci/status/build/scheduled.rb | 2 +- .../ci/templates/Auto-DevOps.gitlab-ci.yml | 78 +- lib/gitlab/ci/templates/Ruby.gitlab-ci.yml | 1 - lib/gitlab/ci/trace.rb | 73 +- lib/gitlab/ci/trace/chunked_io.rb | 29 +- lib/gitlab/ci/trace/stream.rb | 11 +- lib/gitlab/ci/variables/collection/item.rb | 2 +- lib/gitlab/ci/yaml_processor.rb | 5 +- lib/gitlab/cleanup/remote_uploads.rb | 2 +- lib/gitlab/color_schemes.rb | 3 +- lib/gitlab/config/entry/attributable.rb | 27 + lib/gitlab/config/entry/boolean.rb | 18 + lib/gitlab/config/entry/configurable.rb | 81 + lib/gitlab/config/entry/factory.rb | 73 + .../config/entry/legacy_validation_helpers.rb | 70 + lib/gitlab/config/entry/node.rb | 101 + lib/gitlab/config/entry/simplifiable.rb | 43 + lib/gitlab/config/entry/undefined.rb | 40 + lib/gitlab/config/entry/unspecified.rb | 19 + lib/gitlab/config/entry/validatable.rb | 38 + lib/gitlab/config/entry/validator.rb | 26 + lib/gitlab/config/entry/validators.rb | 196 ++ lib/gitlab/config/loader/format_error.rb | 9 + .../loader.rb => config/loader/yaml.rb} | 12 +- lib/gitlab/conflict/file.rb | 2 + lib/gitlab/conflict/file_collection.rb | 2 + lib/gitlab/correlation_id.rb | 40 + .../cross_project_access/check_collection.rb | 2 + lib/gitlab/cross_project_access/check_info.rb | 2 + .../cross_project_access/class_methods.rb | 2 + lib/gitlab/crypto_helper.rb | 6 +- lib/gitlab/current_settings.rb | 31 +- .../cycle_analytics/base_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/base_query.rb | 2 + lib/gitlab/cycle_analytics/base_stage.rb | 2 + .../cycle_analytics/code_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/code_stage.rb | 2 + lib/gitlab/cycle_analytics/event_fetcher.rb | 2 + .../cycle_analytics/issue_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/issue_stage.rb | 2 + lib/gitlab/cycle_analytics/metrics_tables.rb | 2 + lib/gitlab/cycle_analytics/permissions.rb | 2 + .../cycle_analytics/plan_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/plan_stage.rb | 2 + .../production_event_fetcher.rb | 2 + .../cycle_analytics/production_helper.rb | 2 + .../cycle_analytics/production_stage.rb | 2 + .../cycle_analytics/review_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/review_stage.rb | 2 + lib/gitlab/cycle_analytics/stage.rb | 2 + lib/gitlab/cycle_analytics/stage_summary.rb | 2 + .../cycle_analytics/staging_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/staging_stage.rb | 2 + lib/gitlab/cycle_analytics/summary/base.rb | 2 + lib/gitlab/cycle_analytics/summary/commit.rb | 2 + lib/gitlab/cycle_analytics/summary/deploy.rb | 2 + lib/gitlab/cycle_analytics/summary/issue.rb | 2 + .../cycle_analytics/test_event_fetcher.rb | 2 + lib/gitlab/cycle_analytics/test_stage.rb | 2 + lib/gitlab/cycle_analytics/updater.rb | 2 + lib/gitlab/cycle_analytics/usage_data.rb | 2 + lib/gitlab/data_builder/build.rb | 2 + lib/gitlab/data_builder/note.rb | 2 + lib/gitlab/data_builder/pipeline.rb | 2 + lib/gitlab/data_builder/push.rb | 15 +- lib/gitlab/data_builder/repository.rb | 2 + lib/gitlab/data_builder/wiki_page.rb | 2 + lib/gitlab/database.rb | 17 +- lib/gitlab/database/arel_methods.rb | 18 - lib/gitlab/database/count.rb | 87 +- .../database/count/exact_count_strategy.rb | 33 + .../count/reltuples_count_strategy.rb | 79 + .../count/tablesample_count_strategy.rb | 66 + lib/gitlab/database/date_time.rb | 2 + lib/gitlab/database/grant.rb | 2 + lib/gitlab/database/median.rb | 19 +- lib/gitlab/database/migration_helpers.rb | 9 +- .../database/multi_threaded_migration.rb | 2 + lib/gitlab/database/read_only_relation.rb | 2 + .../rename_reserved_paths_migration/v1.rb | 2 + .../v1/migration_classes.rb | 2 + .../v1/rename_base.rb | 6 +- .../v1/rename_namespaces.rb | 2 + .../v1/rename_projects.rb | 2 + lib/gitlab/database/sha_attribute.rb | 39 +- lib/gitlab/database/subquery.rb | 14 +- lib/gitlab/dependency_linker/base_linker.rb | 2 + .../dependency_linker/cartfile_linker.rb | 2 + lib/gitlab/dependency_linker/cocoapods.rb | 2 + .../dependency_linker/composer_json_linker.rb | 2 + .../dependency_linker/gemfile_linker.rb | 2 + .../dependency_linker/gemspec_linker.rb | 2 + .../dependency_linker/godeps_json_linker.rb | 2 + lib/gitlab/dependency_linker/json_linker.rb | 2 + lib/gitlab/dependency_linker/method_linker.rb | 2 + .../dependency_linker/package_json_linker.rb | 2 + .../dependency_linker/podfile_linker.rb | 2 + .../dependency_linker/podspec_json_linker.rb | 2 + .../dependency_linker/podspec_linker.rb | 2 + .../requirements_txt_linker.rb | 2 + lib/gitlab/diff/diff_refs.rb | 4 +- lib/gitlab/diff/file.rb | 70 +- lib/gitlab/diff/file_collection/base.rb | 12 + lib/gitlab/diff/file_collection/commit.rb | 2 + lib/gitlab/diff/file_collection/compare.rb | 6 + .../file_collection/merge_request_diff.rb | 2 + lib/gitlab/diff/formatters/base_formatter.rb | 2 + lib/gitlab/diff/formatters/image_formatter.rb | 2 + lib/gitlab/diff/formatters/text_formatter.rb | 2 + lib/gitlab/diff/highlight.rb | 2 + lib/gitlab/diff/image_point.rb | 2 + lib/gitlab/diff/inline_diff.rb | 4 +- .../diff/inline_diff_markdown_marker.rb | 2 + lib/gitlab/diff/inline_diff_marker.rb | 2 + lib/gitlab/diff/line.rb | 6 + lib/gitlab/diff/line_mapper.rb | 2 + lib/gitlab/diff/parallel_diff.rb | 2 + lib/gitlab/diff/parser.rb | 2 + lib/gitlab/diff/position.rb | 2 + lib/gitlab/diff/position_tracer.rb | 2 + .../discussions_diff/file_collection.rb | 76 + .../discussions_diff/highlight_cache.rb | 67 + lib/gitlab/downtime_check/message.rb | 8 +- lib/gitlab/ee_compat_check.rb | 2 +- lib/gitlab/email/attachment_uploader.rb | 6 +- lib/gitlab/email/handler/base_handler.rb | 4 +- .../email/handler/create_issue_handler.rb | 28 +- .../handler/create_merge_request_handler.rb | 24 +- .../email/handler/create_note_handler.rb | 2 + lib/gitlab/email/handler/reply_processing.rb | 19 +- .../email/handler/unsubscribe_handler.rb | 24 +- .../hook/additional_headers_interceptor.rb | 2 + .../email/hook/delivery_metrics_observer.rb | 2 + .../email/hook/disable_email_interceptor.rb | 2 + .../email/hook/email_template_interceptor.rb | 2 + lib/gitlab/email/html_parser.rb | 2 + lib/gitlab/email/message/repository_push.rb | 6 +- lib/gitlab/email/receiver.rb | 2 + lib/gitlab/email/reply_parser.rb | 2 + lib/gitlab/error_tracking/error.rb | 14 + lib/gitlab/etag_caching/middleware.rb | 2 + lib/gitlab/etag_caching/router.rb | 2 + lib/gitlab/etag_caching/store.rb | 2 + lib/gitlab/exclusive_lease_helpers.rb | 2 + lib/gitlab/fake_application_settings.rb | 4 + lib/gitlab/file_finder.rb | 57 +- lib/gitlab/fogbugz_import/client.rb | 2 + lib/gitlab/fogbugz_import/importer.rb | 2 + lib/gitlab/fogbugz_import/project_creator.rb | 2 + lib/gitlab/fogbugz_import/repository.rb | 2 + lib/gitlab/gfm/reference_rewriter.rb | 24 +- lib/gitlab/gfm/uploads_rewriter.rb | 9 +- lib/gitlab/git/attributes_at_ref_parser.rb | 2 + lib/gitlab/git/attributes_parser.rb | 2 + lib/gitlab/git/blame.rb | 2 + lib/gitlab/git/blob.rb | 6 +- lib/gitlab/git/branch.rb | 2 + lib/gitlab/git/commit.rb | 30 +- lib/gitlab/git/commit_stats.rb | 2 + lib/gitlab/git/compare.rb | 2 + lib/gitlab/git/conflict/file.rb | 2 + lib/gitlab/git/conflict/parser.rb | 2 + lib/gitlab/git/conflict/resolution.rb | 2 + lib/gitlab/git/conflict/resolver.rb | 2 + lib/gitlab/git/diff.rb | 2 + lib/gitlab/git/diff_collection.rb | 2 + lib/gitlab/git/gitmodules_parser.rb | 2 + lib/gitlab/git/hook_env.rb | 2 + lib/gitlab/git/index.rb | 2 + lib/gitlab/git/lfs_changes.rb | 2 + lib/gitlab/git/lfs_pointer_file.rb | 2 + lib/gitlab/git/object_pool.rb | 55 + lib/gitlab/git/operation_service.rb | 2 + lib/gitlab/git/path_helper.rb | 2 + lib/gitlab/git/pre_receive_error.rb | 2 + lib/gitlab/git/raw_diff_change.rb | 2 + lib/gitlab/git/ref.rb | 2 + lib/gitlab/git/remote_mirror.rb | 18 +- lib/gitlab/git/remote_repository.rb | 2 + lib/gitlab/git/repository.rb | 39 +- lib/gitlab/git/repository_cleaner.rb | 28 + lib/gitlab/git/repository_mirroring.rb | 2 + lib/gitlab/git/tag.rb | 16 +- lib/gitlab/git/tree.rb | 2 + lib/gitlab/git/user.rb | 2 + lib/gitlab/git/util.rb | 2 + lib/gitlab/git/version.rb | 2 + lib/gitlab/git/wiki.rb | 2 + lib/gitlab/git/wiki_file.rb | 2 + lib/gitlab/git/wiki_page.rb | 2 + lib/gitlab/git/wiki_page_version.rb | 2 + lib/gitlab/git/wraps_gitaly_errors.rb | 2 + lib/gitlab/git_access.rb | 46 +- lib/gitlab/git_access_wiki.rb | 2 +- lib/gitlab/git_post_receive.rb | 5 +- lib/gitlab/git_ref_validator.rb | 6 +- lib/gitlab/gitaly_client.rb | 179 +- lib/gitlab/gitaly_client/attributes_bag.rb | 2 + lib/gitlab/gitaly_client/blob_service.rb | 6 +- lib/gitlab/gitaly_client/blobs_stitcher.rb | 2 + lib/gitlab/gitaly_client/cleanup_service.rb | 37 + lib/gitlab/gitaly_client/commit_service.rb | 16 +- .../gitaly_client/conflict_files_stitcher.rb | 4 +- lib/gitlab/gitaly_client/conflicts_service.rb | 2 + lib/gitlab/gitaly_client/diff.rb | 2 + lib/gitlab/gitaly_client/diff_stitcher.rb | 4 +- .../gitaly_client/health_check_service.rb | 2 + lib/gitlab/gitaly_client/namespace_service.rb | 2 + .../gitaly_client/notification_service.rb | 2 + .../gitaly_client/object_pool_service.rb | 48 + lib/gitlab/gitaly_client/operation_service.rb | 5 +- lib/gitlab/gitaly_client/queue_enumerator.rb | 2 + lib/gitlab/gitaly_client/ref_service.rb | 4 +- lib/gitlab/gitaly_client/remote_service.rb | 11 +- .../gitaly_client/repository_service.rb | 19 +- lib/gitlab/gitaly_client/server_service.rb | 2 + lib/gitlab/gitaly_client/storage_service.rb | 2 + lib/gitlab/gitaly_client/storage_settings.rb | 2 + lib/gitlab/gitaly_client/util.rb | 2 + lib/gitlab/gitaly_client/wiki_file.rb | 2 + lib/gitlab/gitaly_client/wiki_page.rb | 2 + lib/gitlab/gitaly_client/wiki_service.rb | 6 +- .../importer/repository_importer.rb | 2 +- lib/gitlab/github_import/parallel_importer.rb | 3 +- lib/gitlab/gitlab_import/client.rb | 2 + lib/gitlab/gitlab_import/importer.rb | 12 +- lib/gitlab/gitlab_import/project_creator.rb | 2 + lib/gitlab/gon_helper.rb | 12 +- lib/gitlab/google_code_import/client.rb | 2 + lib/gitlab/google_code_import/importer.rb | 2 + .../google_code_import/project_creator.rb | 2 + lib/gitlab/google_code_import/repository.rb | 2 + lib/gitlab/gpg.rb | 8 +- lib/gitlab/gpg/commit.rb | 26 +- .../gpg/invalid_gpg_signature_updater.rb | 2 + .../formatters/lograge_with_timestamp.rb | 2 + .../loggers/correlation_id_logger.rb | 14 + .../loggers/queue_duration_logger.rb | 2 + .../grape_logging/loggers/user_logger.rb | 2 + lib/gitlab/graphql.rb | 4 + lib/gitlab/graphql/authorize.rb | 2 + .../graphql/authorize/authorize_resource.rb | 2 + .../graphql/authorize/instrumentation.rb | 2 + lib/gitlab/graphql/connections.rb | 2 + .../graphql/connections/keyset_connection.rb | 2 + lib/gitlab/graphql/errors.rb | 2 + lib/gitlab/graphql/expose_permissions.rb | 2 + .../graphql/loaders/batch_model_loader.rb | 29 + lib/gitlab/graphql/present.rb | 2 + lib/gitlab/graphql/present/instrumentation.rb | 2 + lib/gitlab/graphql/variables.rb | 2 + lib/gitlab/graphs/commits.rb | 2 + lib/gitlab/hashed_storage/migrator.rb | 2 + lib/gitlab/hashed_storage/rake_helper.rb | 2 + .../health_checks/base_abstract_check.rb | 2 + lib/gitlab/health_checks/db_check.rb | 2 + lib/gitlab/health_checks/gitaly_check.rb | 2 + lib/gitlab/health_checks/metric.rb | 5 +- .../health_checks/prometheus_text_format.rb | 2 + lib/gitlab/health_checks/redis/cache_check.rb | 2 + .../health_checks/redis/queues_check.rb | 2 + lib/gitlab/health_checks/redis/redis_check.rb | 2 + .../health_checks/redis/shared_state_check.rb | 2 + lib/gitlab/health_checks/result.rb | 5 +- .../health_checks/simple_abstract_check.rb | 2 + lib/gitlab/hook_data/base_builder.rb | 2 + lib/gitlab/hook_data/issuable_builder.rb | 2 + lib/gitlab/hook_data/issue_builder.rb | 2 + lib/gitlab/hook_data/merge_request_builder.rb | 2 + lib/gitlab/hook_data/note_builder.rb | 2 + lib/gitlab/hook_data/wiki_page_builder.rb | 2 + lib/gitlab/http_io.rb | 20 +- lib/gitlab/i18n/metadata_entry.rb | 2 + lib/gitlab/i18n/po_linter.rb | 4 +- lib/gitlab/i18n/translation_entry.rb | 2 + lib/gitlab/import/logger.rb | 2 + lib/gitlab/import/merge_request_creator.rb | 8 +- .../base_after_export_strategy.rb | 2 + .../download_notification_strategy.rb | 2 + .../web_upload_strategy.rb | 2 + .../after_export_strategy_builder.rb | 2 + lib/gitlab/import_export/attribute_cleaner.rb | 2 + lib/gitlab/import_export/attributes_finder.rb | 2 + lib/gitlab/import_export/avatar_restorer.rb | 2 + lib/gitlab/import_export/avatar_saver.rb | 2 + lib/gitlab/import_export/command_line_util.rb | 4 +- lib/gitlab/import_export/error.rb | 2 + lib/gitlab/import_export/file_importer.rb | 2 + .../group_project_object_builder.rb | 2 + lib/gitlab/import_export/hash_util.rb | 2 + lib/gitlab/import_export/import_export.yml | 30 +- lib/gitlab/import_export/importer.rb | 2 + lib/gitlab/import_export/json_hash_builder.rb | 2 + lib/gitlab/import_export/lfs_restorer.rb | 2 + lib/gitlab/import_export/lfs_saver.rb | 2 + lib/gitlab/import_export/members_mapper.rb | 2 + .../import_export/merge_request_parser.rb | 2 + .../import_export/project_tree_restorer.rb | 6 +- .../import_export/project_tree_saver.rb | 4 + lib/gitlab/import_export/reader.rb | 2 + lib/gitlab/import_export/relation_factory.rb | 13 +- .../import_export/relation_rename_service.rb | 48 + lib/gitlab/import_export/repo_restorer.rb | 3 +- lib/gitlab/import_export/repo_saver.rb | 2 + lib/gitlab/import_export/saver.rb | 2 + lib/gitlab/import_export/shared.rb | 4 + .../import_export/statistics_restorer.rb | 2 + lib/gitlab/import_export/uploads_manager.rb | 4 +- lib/gitlab/import_export/uploads_restorer.rb | 2 + lib/gitlab/import_export/uploads_saver.rb | 2 + lib/gitlab/import_export/version_checker.rb | 2 + lib/gitlab/import_export/version_saver.rb | 2 + lib/gitlab/import_export/wiki_repo_saver.rb | 2 + lib/gitlab/import_export/wiki_restorer.rb | 2 + lib/gitlab/import_sources.rb | 4 +- lib/gitlab/incoming_email.rb | 6 +- lib/gitlab/json_cache.rb | 87 + lib/gitlab/json_logger.rb | 1 + lib/gitlab/kubernetes.rb | 4 +- lib/gitlab/kubernetes/config_map.rb | 2 + lib/gitlab/kubernetes/helm.rb | 4 +- lib/gitlab/kubernetes/helm/api.rb | 38 +- lib/gitlab/kubernetes/helm/base_command.rb | 4 +- lib/gitlab/kubernetes/helm/client_command.rb | 28 + lib/gitlab/kubernetes/helm/init_command.rb | 4 +- lib/gitlab/kubernetes/helm/install_command.rb | 30 +- lib/gitlab/kubernetes/helm/pod.rb | 2 + lib/gitlab/kubernetes/helm/upgrade_command.rb | 12 +- lib/gitlab/kubernetes/kube_client.rb | 60 +- lib/gitlab/kubernetes/logger.rb | 11 + lib/gitlab/kubernetes/namespace.rb | 6 +- lib/gitlab/kubernetes/pod.rb | 2 + .../legacy_github_import/base_formatter.rb | 2 + .../legacy_github_import/branch_formatter.rb | 2 + lib/gitlab/legacy_github_import/client.rb | 2 + .../legacy_github_import/comment_formatter.rb | 2 + lib/gitlab/legacy_github_import/importer.rb | 5 +- .../issuable_formatter.rb | 2 + .../legacy_github_import/issue_formatter.rb | 2 + .../legacy_github_import/label_formatter.rb | 2 + .../milestone_formatter.rb | 2 + .../legacy_github_import/project_creator.rb | 2 + .../pull_request_formatter.rb | 2 + .../legacy_github_import/release_formatter.rb | 2 + .../legacy_github_import/user_formatter.rb | 2 + .../legacy_github_import/wiki_formatter.rb | 2 + lib/gitlab/lfs_token.rb | 123 +- lib/gitlab/manifest_import/manifest.rb | 4 +- lib/gitlab/manifest_import/project_creator.rb | 2 + lib/gitlab/metrics/background_transaction.rb | 2 + lib/gitlab/metrics/delta.rb | 2 + lib/gitlab/metrics/influx_db.rb | 2 + lib/gitlab/metrics/instrumentation.rb | 2 + lib/gitlab/metrics/method_call.rb | 2 + lib/gitlab/metrics/methods.rb | 2 + lib/gitlab/metrics/methods/metric_options.rb | 2 + lib/gitlab/metrics/metric.rb | 2 + lib/gitlab/metrics/null_metric.rb | 2 + lib/gitlab/metrics/prometheus.rb | 2 + lib/gitlab/metrics/rack_middleware.rb | 2 + .../metrics/requests_rack_middleware.rb | 2 + lib/gitlab/metrics/samplers/base_sampler.rb | 2 + lib/gitlab/metrics/samplers/influx_sampler.rb | 2 + lib/gitlab/metrics/samplers/ruby_sampler.rb | 2 + .../metrics/samplers/unicorn_sampler.rb | 2 + .../metrics/sidekiq_metrics_exporter.rb | 2 + lib/gitlab/metrics/sidekiq_middleware.rb | 2 + lib/gitlab/metrics/subscribers/action_view.rb | 2 + .../metrics/subscribers/active_record.rb | 2 + lib/gitlab/metrics/subscribers/rails_cache.rb | 2 + lib/gitlab/metrics/system.rb | 2 + lib/gitlab/metrics/transaction.rb | 2 + lib/gitlab/metrics/web_transaction.rb | 4 +- lib/gitlab/middleware/correlation_id.rb | 31 + lib/gitlab/middleware/go.rb | 25 +- lib/gitlab/middleware/multipart.rb | 4 +- lib/gitlab/middleware/rails_queue_duration.rb | 2 + lib/gitlab/middleware/read_only.rb | 2 + lib/gitlab/middleware/read_only/controller.rb | 2 + lib/gitlab/middleware/release_env.rb | 5 +- lib/gitlab/middleware/static.rb | 2 + ...group_hierarchy.rb => object_hierarchy.rb} | 77 +- .../performance_bar/peek_query_tracker.rb | 2 + lib/gitlab/popen/runner.rb | 2 + lib/gitlab/private_commit_email.rb | 4 + lib/gitlab/profiler.rb | 39 +- .../profiler/total_time_flat_printer.rb | 2 + .../with_nested_groups.rb | 2 + .../without_nested_groups.rb | 2 + lib/gitlab/project_search_results.rb | 43 +- .../prometheus/additional_metrics_parser.rb | 2 + lib/gitlab/prometheus/metric.rb | 2 + lib/gitlab/prometheus/metric_group.rb | 12 +- lib/gitlab/prometheus/parsing_error.rb | 2 + .../additional_metrics_deployment_query.rb | 2 + .../additional_metrics_environment_query.rb | 2 + lib/gitlab/prometheus/queries/base_query.rb | 2 + .../prometheus/queries/deployment_query.rb | 2 + .../prometheus/queries/environment_query.rb | 2 + .../queries/matched_metric_query.rb | 2 + .../queries/query_additional_metrics.rb | 9 +- lib/gitlab/prometheus/query_variables.rb | 15 + .../active_support_subscriber.rb | 2 + lib/gitlab/query_limiting/transaction.rb | 4 +- .../quick_actions/command_definition.rb | 18 +- lib/gitlab/quick_actions/dsl.rb | 8 + lib/gitlab/quick_actions/extractor.rb | 2 + .../spend_time_and_date_separator.rb | 2 + .../quick_actions/substitution_definition.rb | 2 + lib/gitlab/redis/cache.rb | 2 + lib/gitlab/redis/queues.rb | 2 + lib/gitlab/redis/shared_state.rb | 2 + lib/gitlab/redis/wrapper.rb | 2 + lib/gitlab/request_profiler/middleware.rb | 2 + lib/gitlab/request_profiler/profile.rb | 2 + lib/gitlab/safe_request_store.rb | 8 + lib/gitlab/sanitizers/svg.rb | 2 + lib/gitlab/sanitizers/svg/whitelist.rb | 2 + lib/gitlab/search/found_blob.rb | 162 + lib/gitlab/search/parsed_query.rb | 2 + lib/gitlab/search/query.rb | 8 +- lib/gitlab/search_results.rb | 36 - lib/gitlab/sentry.rb | 25 +- lib/gitlab/serializer/ci/variables.rb | 2 + lib/gitlab/serializer/pagination.rb | 2 + lib/gitlab/shell.rb | 6 +- lib/gitlab/sherlock/collection.rb | 2 + lib/gitlab/sherlock/file_sample.rb | 2 + lib/gitlab/sherlock/line_profiler.rb | 2 + lib/gitlab/sherlock/line_sample.rb | 2 + lib/gitlab/sherlock/location.rb | 2 + lib/gitlab/sherlock/middleware.rb | 2 + lib/gitlab/sherlock/query.rb | 4 +- lib/gitlab/sherlock/transaction.rb | 2 + lib/gitlab/sidekiq_config.rb | 9 +- lib/gitlab/sidekiq_logging/json_formatter.rb | 2 + .../sidekiq_logging/structured_logger.rb | 2 + .../sidekiq_middleware/arguments_logger.rb | 2 + .../correlation_injector.rb | 14 + .../sidekiq_middleware/correlation_logger.rb | 15 + .../request_store_middleware.rb | 2 + lib/gitlab/sidekiq_middleware/shutdown.rb | 2 + .../sidekiq_status/client_middleware.rb | 2 + .../sidekiq_status/server_middleware.rb | 2 + lib/gitlab/sidekiq_versioning/manager.rb | 2 + lib/gitlab/slash_commands/base_command.rb | 2 + lib/gitlab/slash_commands/command.rb | 2 + lib/gitlab/slash_commands/deploy.rb | 2 + lib/gitlab/slash_commands/help.rb | 2 + lib/gitlab/slash_commands/issue_command.rb | 2 + lib/gitlab/slash_commands/issue_move.rb | 2 + lib/gitlab/slash_commands/issue_new.rb | 2 + lib/gitlab/slash_commands/issue_search.rb | 2 + lib/gitlab/slash_commands/issue_show.rb | 2 + .../slash_commands/presenters/access.rb | 2 + lib/gitlab/slash_commands/presenters/base.rb | 2 + .../slash_commands/presenters/deploy.rb | 2 + lib/gitlab/slash_commands/presenters/help.rb | 2 + .../slash_commands/presenters/issue_base.rb | 2 + .../slash_commands/presenters/issue_move.rb | 2 + .../slash_commands/presenters/issue_new.rb | 2 + .../slash_commands/presenters/issue_search.rb | 2 + .../slash_commands/presenters/issue_show.rb | 8 +- lib/gitlab/slash_commands/result.rb | 5 +- lib/gitlab/sql/cte.rb | 2 + lib/gitlab/sql/glob.rb | 2 + lib/gitlab/sql/pattern.rb | 2 + lib/gitlab/sql/recursive_cte.rb | 2 + lib/gitlab/sql/union.rb | 2 + lib/gitlab/ssh_public_key.rb | 6 +- lib/gitlab/template/base_template.rb | 2 + lib/gitlab/template/dockerfile_template.rb | 2 + .../template/finders/base_template_finder.rb | 2 + .../finders/global_template_finder.rb | 4 +- .../template/finders/repo_template_finder.rb | 4 +- lib/gitlab/template/gitignore_template.rb | 2 + lib/gitlab/template/gitlab_ci_yml_template.rb | 2 + lib/gitlab/template/issue_template.rb | 2 + lib/gitlab/template/merge_request_template.rb | 2 + .../testing/request_blocker_middleware.rb | 2 + .../testing/request_inspector_middleware.rb | 4 +- lib/gitlab/upgrader.rb | 111 - lib/gitlab/url_blocker.rb | 25 +- lib/gitlab/url_sanitizer.rb | 1 + lib/gitlab/usage_data.rb | 23 +- lib/gitlab/utils.rb | 27 +- lib/gitlab/utils/merge_hash.rb | 2 + lib/gitlab/utils/override.rb | 111 +- lib/gitlab/utils/strong_memoize.rb | 2 + lib/gitlab/verify/batch_verifier.rb | 2 + lib/gitlab/verify/job_artifacts.rb | 2 + lib/gitlab/verify/lfs_objects.rb | 2 + lib/gitlab/verify/rake_task.rb | 2 + lib/gitlab/verify/uploads.rb | 2 + lib/gitlab/view/presenter/base.rb | 6 +- lib/gitlab/view/presenter/delegated.rb | 2 + lib/gitlab/view/presenter/factory.rb | 2 + lib/gitlab/view/presenter/simple.rb | 2 + lib/gitlab/webpack/dev_server_middleware.rb | 2 + lib/gitlab/webpack/manifest.rb | 2 + lib/gitlab/wiki_file_finder.rb | 6 +- lib/gitlab/workhorse.rb | 2 +- lib/json_web_token/hmac_token.rb | 28 + lib/json_web_token/rsa_token.rb | 3 +- lib/json_web_token/token.rb | 9 +- lib/mysql_zero_date.rb | 2 +- lib/omni_auth/strategies/jwt.rb | 17 +- lib/peek/views/gitaly.rb | 1 - lib/sentry/client.rb | 104 + lib/serializers/json.rb | 34 + lib/system_check/app/git_version_check.rb | 2 +- lib/system_check/app/ruby_version_check.rb | 2 +- lib/system_check/gitaly_check.rb | 19 + lib/system_check/gitlab_shell_check.rb | 56 + lib/system_check/incoming_email_check.rb | 27 + lib/system_check/ldap_check.rb | 60 + lib/system_check/orphans/repository_check.rb | 1 - lib/system_check/rake_task/app_task.rb | 38 + lib/system_check/rake_task/gitaly_task.rb | 18 + .../rake_task/gitlab_shell_task.rb | 18 + lib/system_check/rake_task/gitlab_task.rb | 33 + .../rake_task/incoming_email_task.rb | 18 + lib/system_check/rake_task/ldap_task.rb | 18 + .../rake_task/orphans/namespace_task.rb | 20 + .../rake_task/orphans/repository_task.rb | 20 + lib/system_check/rake_task/orphans_task.rb | 21 + .../rake_task/rake_task_helpers.rb | 32 + lib/system_check/rake_task/sidekiq_task.rb | 18 + lib/system_check/sidekiq_check.rb | 58 + lib/tasks/gettext.rake | 4 +- lib/tasks/gitlab/check.rake | 296 +- lib/tasks/gitlab/cleanup.rake | 4 +- lib/tasks/gitlab/storage.rake | 10 +- lib/tasks/gitlab/web_hook.rake | 45 +- lib/tasks/haml-lint.rake | 17 + lib/tasks/import.rake | 4 +- lib/tasks/rubocop.rake | 5 + lib/tasks/scss-lint.rake | 10 + lib/version_check.rb | 7 +- locale/ar_SA/gitlab.po | 4 +- locale/bg/gitlab.po | 4 +- locale/ca_ES/gitlab.po | 4 +- locale/cs_CZ/gitlab.po | 4 +- locale/da_DK/gitlab.po | 4 +- locale/de/gitlab.po | 4 +- locale/eo/gitlab.po | 4 +- locale/es/gitlab.po | 4 +- locale/et_EE/gitlab.po | 4 +- locale/fil_PH/gitlab.po | 4 +- locale/gitlab.pot | 1042 ++++++- locale/gl_ES/gitlab.po | 4 +- locale/he_IL/gitlab.po | 4 +- locale/id_ID/gitlab.po | 4 +- locale/it/gitlab.po | 4 +- locale/ko/gitlab.po | 4 +- locale/mn_MN/gitlab.po | 4 +- locale/nb_NO/gitlab.po | 4 +- locale/nl_NL/gitlab.po | 4 +- locale/pl_PL/gitlab.po | 4 +- locale/ro_RO/gitlab.po | 4 +- locale/ru/gitlab.po | 4 +- locale/sq_AL/gitlab.po | 4 +- locale/tr_TR/gitlab.po | 4 +- locale/zh_HK/gitlab.po | 4 +- package.json | 44 +- public/robots.txt | 2 + qa/Dockerfile | 2 +- qa/Gemfile | 3 +- qa/Gemfile.lock | 15 +- qa/README.md | 9 + qa/Rakefile | 6 + qa/qa.rb | 8 + qa/qa/fixtures/auto_devops_rack/Gemfile.lock | 4 +- qa/qa/fixtures/auto_devops_rack/config.ru | 2 +- qa/qa/page/base.rb | 36 +- qa/qa/page/component/clone_panel.rb | 31 +- qa/qa/page/component/legacy_clone_panel.rb | 52 + qa/qa/page/component/note.rb | 55 + qa/qa/page/component/select2.rb | 7 +- qa/qa/page/main/login.rb | 12 +- qa/qa/page/main/menu.rb | 8 +- qa/qa/page/merge_request/new.rb | 8 + qa/qa/page/merge_request/show.rb | 38 +- qa/qa/page/profile/personal_access_tokens.rb | 38 +- qa/qa/page/project/commit/show.rb | 27 + qa/qa/page/project/issue/show.rb | 7 +- qa/qa/page/project/menu.rb | 98 +- .../operations/kubernetes/add_existing.rb | 4 +- .../settings/mirroring_repositories.rb | 91 + qa/qa/page/project/settings/repository.rb | 10 + qa/qa/page/project/show.rb | 94 +- qa/qa/page/project/wiki/show.rb | 2 +- qa/qa/resource/api_fabricator.rb | 7 +- qa/qa/resource/base.rb | 5 +- qa/qa/resource/file.rb | 2 +- qa/qa/resource/group.rb | 4 + qa/qa/resource/kubernetes_cluster.rb | 2 +- qa/qa/resource/merge_request.rb | 16 +- qa/qa/resource/project.rb | 6 +- qa/qa/resource/repository/project_push.rb | 21 +- qa/qa/resource/repository/wiki_push.rb | 5 + qa/qa/resource/user.rb | 29 +- qa/qa/runtime/browser.rb | 16 + qa/qa/runtime/env.rb | 23 +- qa/qa/runtime/namespace.rb | 2 +- qa/qa/runtime/user.rb | 4 + .../browser_ui/1_manage/login/log_in_spec.rb | 11 +- .../project/view_project_activity_spec.rb | 10 +- .../collapse_comments_in_discussions_spec.rb | 37 + .../2_plan/issue/issue_suggestions_spec.rb | 35 + .../create_merge_request_spec.rb | 4 + .../squash_merge_request_spec.rb | 7 +- .../repository/add_file_template_spec.rb | 14 +- .../3_create/repository/add_ssh_key_spec.rb | 2 +- .../3_create/repository/clone_spec.rb | 18 +- .../repository/protocol_v2_push_http_spec.rb | 49 + .../push_mirroring_over_http_spec.rb | 45 + .../repository/push_over_http_spec.rb | 4 +- .../3_create/repository/use_ssh_key_spec.rb | 3 +- ...user_views_raw_diff_patch_requests_spec.rb | 68 + .../web_ide/add_file_template_spec.rb | 12 +- .../create_project_with_auto_devops_spec.rb | 82 +- qa/qa/support/api.rb | 28 + qa/qa/support/page/logging.rb | 33 +- .../revoke_all_personal_access_tokens.rb | 44 + qa/spec/page/logging_spec.rb | 16 + qa/spec/resource/base_spec.rb | 4 - qa/spec/resource/user_spec.rb | 118 + .../cop/inject_enterprise_edition_module.rb | 47 + rubocop/cop/migration/add_reference.rb | 9 +- rubocop/cop/safe_params.rb | 34 + rubocop/rubocop.rb | 2 + scripts/build_assets_image | 6 + scripts/frontend/prettier.js | 2 +- scripts/prepare_build.sh | 25 +- scripts/rails5-gemfile-lock-check | 19 - scripts/review_apps/review-apps.sh | 186 +- scripts/trigger-build | 9 +- spec/config/settings_spec.rb | 98 + .../abuse_reports_controller_spec.rb | 12 +- .../application_settings_controller_spec.rb | 10 +- .../admin/applications_controller_spec.rb | 10 +- .../admin/groups_controller_spec.rb | 28 +- .../admin/hooks_controller_spec.rb | 2 +- .../admin/identities_controller_spec.rb | 4 +- .../admin/projects_controller_spec.rb | 6 +- .../requests_profiles_controller_spec.rb | 47 + .../admin/runners_controller_spec.rb | 12 +- .../admin/services_controller_spec.rb | 6 +- .../admin/spam_logs_controller_spec.rb | 6 +- .../admin/users_controller_spec.rb | 46 +- .../application_controller_spec.rb | 48 +- .../autocomplete_controller_spec.rb | 40 +- .../boards/issues_controller_spec.rb | 30 +- .../boards/lists_controller_spec.rb | 42 +- ...er_with_cross_project_access_check_spec.rb | 16 +- spec/controllers/concerns/group_tree_spec.rb | 12 +- .../concerns/issuable_collections_spec.rb | 18 +- spec/controllers/concerns/lfs_request_spec.rb | 6 +- .../concerns/send_file_upload_spec.rb | 2 +- .../dashboard/groups_controller_spec.rb | 2 +- .../dashboard/milestones_controller_spec.rb | 4 +- .../dashboard/todos_controller_spec.rb | 24 +- .../explore/projects_controller_spec.rb | 4 +- .../authorizations_controller_spec.rb | 2 +- spec/controllers/graphql_controller_spec.rb | 2 +- .../groups/avatars_controller_spec.rb | 2 +- .../groups/boards_controller_spec.rb | 8 +- .../groups/children_controller_spec.rb | 42 +- .../clusters/applications_controller_spec.rb | 87 + .../groups/clusters_controller_spec.rb | 580 ++++ .../groups/group_members_controller_spec.rb | 60 +- .../groups/labels_controller_spec.rb | 6 +- .../groups/milestones_controller_spec.rb | 70 +- .../groups/runners_controller_spec.rb | 8 +- .../groups/settings/ci_cd_controller_spec.rb | 6 +- .../groups/shared_projects_controller_spec.rb | 2 +- .../groups/uploads_controller_spec.rb | 2 +- .../groups/variables_controller_spec.rb | 8 +- spec/controllers/groups_controller_spec.rb | 99 +- .../health_check_controller_spec.rb | 6 +- spec/controllers/health_controller_spec.rb | 4 +- spec/controllers/help_controller_spec.rb | 16 +- .../import/bitbucket_controller_spec.rb | 16 +- .../bitbucket_server_controller_spec.rb | 16 +- .../import/github_controller_spec.rb | 9 + .../import/gitlab_controller_spec.rb | 14 +- .../import/gitlab_projects_controller_spec.rb | 6 +- .../import/google_code_controller_spec.rb | 2 +- spec/controllers/invites_controller_spec.rb | 4 +- .../omniauth_callbacks_controller_spec.rb | 4 +- .../notification_settings_controller_spec.rb | 60 +- .../oauth/applications_controller_spec.rb | 6 +- .../oauth/authorizations_controller_spec.rb | 6 +- spec/controllers/passwords_controller_spec.rb | 2 +- .../profiles/accounts_controller_spec.rb | 6 +- .../profiles/emails_controller_spec.rb | 6 +- .../profiles/keys_controller_spec.rb | 17 +- .../profiles/notifications_controller_spec.rb | 4 +- .../personal_access_tokens_controller_spec.rb | 4 +- .../profiles/preferences_controller_spec.rb | 4 +- .../two_factor_auths_controller_spec.rb | 2 +- spec/controllers/profiles_controller_spec.rb | 28 +- .../projects/artifacts_controller_spec.rb | 30 +- .../projects/avatars_controller_spec.rb | 7 +- .../projects/badges_controller_spec.rb | 2 +- .../projects/blame_controller_spec.rb | 8 +- .../projects/blob_controller_spec.rb | 69 +- .../projects/boards_controller_spec.rb | 14 +- .../projects/branches_controller_spec.rb | 175 +- .../projects/ci/lints_controller_spec.rb | 11 +- .../clusters/applications_controller_spec.rb | 2 +- .../projects/clusters_controller_spec.rb | 198 +- .../projects/commit_controller_spec.rb | 106 +- .../projects/commits_controller_spec.rb | 62 +- .../projects/compare_controller_spec.rb | 10 +- .../cycle_analytics_controller_spec.rb | 12 +- .../projects/deploy_keys_controller_spec.rb | 189 +- .../projects/deployments_controller_spec.rb | 18 +- .../projects/discussions_controller_spec.rb | 34 +- .../projects/environments_controller_spec.rb | 73 +- .../error_tracking_controller_spec.rb | 130 + .../projects/find_file_controller_spec.rb | 16 +- .../projects/forks_controller_spec.rb | 20 +- .../projects/graphs_controller_spec.rb | 4 +- .../projects/group_links_controller_spec.rb | 28 +- .../projects/hooks_controller_spec.rb | 4 +- .../projects/imports_controller_spec.rb | 29 +- .../projects/issues_controller_spec.rb | 240 +- .../projects/jobs_controller_spec.rb | 161 +- .../projects/labels_controller_spec.rb | 30 +- .../projects/mattermosts_controller_spec.rb | 14 +- .../conflicts_controller_spec.rb | 42 +- .../creations_controller_spec.rb | 32 +- .../merge_requests/diffs_controller_spec.rb | 16 +- .../merge_requests_controller_spec.rb | 220 +- .../projects/milestones_controller_spec.rb | 24 +- .../projects/mirrors_controller_spec.rb | 29 +- .../projects/notes_controller_spec.rb | 92 +- .../projects/pages_controller_spec.rb | 16 +- .../projects/pages_domains_controller_spec.rb | 34 +- .../pipeline_schedules_controller_spec.rb | 42 +- .../projects/pipelines_controller_spec.rb | 56 +- .../pipelines_settings_controller_spec.rb | 2 +- .../project_members_controller_spec.rb | 156 +- .../prometheus/metrics_controller_spec.rb | 10 +- .../protected_branches_controller_spec.rb | 14 +- .../protected_tags_controller_spec.rb | 4 +- .../projects/raw_controller_spec.rb | 17 +- .../projects/refs_controller_spec.rb | 24 +- .../registry/repositories_controller_spec.rb | 14 +- .../projects/registry/tags_controller_spec.rb | 18 +- .../projects/releases_controller_spec.rb | 74 +- .../projects/repositories_controller_spec.rb | 16 +- .../projects/runners_controller_spec.rb | 8 +- .../serverless/functions_controller_spec.rb | 72 + .../projects/services_controller_spec.rb | 66 +- .../settings/ci_cd_controller_spec.rb | 16 +- .../settings/integrations_controller_spec.rb | 2 +- .../settings/operations_controller_spec.rb | 157 + .../settings/repository_controller_spec.rb | 15 +- .../projects/snippets_controller_spec.rb | 48 +- .../projects/tags/releases_controller_spec.rb | 58 + .../projects/tags_controller_spec.rb | 4 +- .../projects/templates_controller_spec.rb | 8 +- .../projects/todos_controller_spec.rb | 20 +- .../projects/tree_controller_spec.rb | 30 +- .../projects/uploads_controller_spec.rb | 4 +- .../projects/variables_controller_spec.rb | 10 +- .../projects/wikis_controller_spec.rb | 33 +- spec/controllers/projects_controller_spec.rb | 203 +- .../registrations_controller_spec.rb | 24 +- spec/controllers/root_controller_spec.rb | 4 +- spec/controllers/search_controller_spec.rb | 12 +- .../sent_notifications_controller_spec.rb | 10 +- spec/controllers/sessions_controller_spec.rb | 26 +- .../snippets/notes_controller_spec.rb | 28 +- spec/controllers/snippets_controller_spec.rb | 67 +- spec/controllers/uploads_controller_spec.rb | 102 +- .../user_callouts_controller_spec.rb | 2 +- .../users/terms_controller_spec.rb | 14 +- spec/controllers/users_controller_spec.rb | 66 +- .../importers/common_metrics_importer_spec.rb | 8 +- spec/db/schema_spec.rb | 104 + spec/factories/appearances.rb | 4 + spec/factories/ci/bridge.rb | 17 + spec/factories/ci/builds.rb | 56 +- spec/factories/clusters/applications/helm.rb | 6 + spec/factories/clusters/clusters.rb | 4 + .../clusters/kubernetes_namespaces.rb | 9 +- .../clusters/platforms/kubernetes.rb | 6 +- spec/factories/error_tracking/error.rb | 24 + spec/factories/import_state.rb | 7 +- spec/factories/notes.rb | 15 + spec/factories/pool_repositories.rb | 30 + .../project_error_tracking_settings.rb | 10 + spec/factories/project_repositories.rb | 12 + spec/factories/projects.rb | 9 + spec/factories/releases.rb | 8 + spec/factories/releases/link.rb | 9 + spec/factories/shards.rb | 5 + spec/factories/suggestions.rb | 20 + spec/fast_spec_helper.rb | 1 + ...admin_disables_git_access_protocol_spec.rb | 59 +- spec/features/admin/admin_users_spec.rb | 176 +- spec/features/atom/dashboard_issues_spec.rb | 12 +- spec/features/boards/modal_filter_spec.rb | 2 +- spec/features/boards/new_issue_spec.rb | 21 + spec/features/calendar_spec.rb | 24 +- .../dashboard/issuables_counter_spec.rb | 4 +- spec/features/dashboard/issues_filter_spec.rb | 31 +- spec/features/dashboard/issues_spec.rb | 27 +- spec/features/dashboard/label_filter_spec.rb | 15 +- .../features/dashboard/merge_requests_spec.rb | 16 +- .../dashboard/milestone_filter_spec.rb | 77 - spec/features/dashboard/root_explore_spec.rb | 33 + spec/features/explore/new_menu_spec.rb | 167 -- .../explore/user_explores_projects_spec.rb | 18 - spec/features/groups/clusters/user_spec.rb | 126 + .../groups/members/list_members_spec.rb | 9 +- .../groups/members/manage_members_spec.rb | 9 +- spec/features/groups/milestone_spec.rb | 5 +- .../groups/milestones_sorting_spec.rb | 1 + spec/features/groups/show_spec.rb | 4 +- spec/features/help_pages_spec.rb | 20 +- spec/features/ics/project_issues_spec.rb | 9 + spec/features/ide_spec.rb | 2 +- .../issuables/default_sort_order_spec.rb | 179 -- spec/features/issuables/sorting_list_spec.rb | 226 ++ .../filtered_search/dropdown_label_spec.rb | 13 +- .../filtered_search/filter_issues_spec.rb | 4 +- spec/features/issues/form_spec.rb | 2 +- spec/features/issues/gfm_autocomplete_spec.rb | 57 +- ...r_creates_branch_and_merge_request_spec.rb | 8 +- .../issues/user_creates_issue_spec.rb | 16 +- .../issues/user_sees_breadcrumb_links_spec.rb | 8 +- .../features/issues/user_sorts_issues_spec.rb | 10 +- .../issues/user_uses_quick_actions_spec.rb | 58 + spec/features/issues/user_views_issue_spec.rb | 6 +- spec/features/issues_spec.rb | 27 + .../user_assigns_themselves_spec.rb | 2 +- .../merge_request/user_awards_emoji_spec.rb | 12 + .../user_creates_image_diff_notes_spec.rb | 33 +- .../merge_request/user_expands_diff_spec.rb | 26 + ...user_merges_when_pipeline_succeeds_spec.rb | 2 + ...diff_notes_and_discussions_resolve_spec.rb | 31 +- .../user_sees_breadcrumb_links_spec.rb | 8 +- .../user_sees_deployment_widget_spec.rb | 31 +- .../merge_request/user_sees_diff_spec.rb | 70 +- .../user_sees_discussions_spec.rb | 21 +- .../user_sees_empty_state_spec.rb | 12 +- .../user_sees_merge_request_pipelines_spec.rb | 365 +++ .../user_sees_merge_widget_spec.rb | 2 +- .../user_sees_mini_pipeline_graph_spec.rb | 2 +- .../merge_request/user_sees_versions_spec.rb | 13 +- .../user_suggests_changes_on_diff_spec.rb | 85 + .../user_sorts_merge_requests_spec.rb | 16 +- .../user_sees_breadcrumb_links_spec.rb | 19 + .../profiles/user_edit_profile_spec.rb | 14 + .../projects/clusters/applications_spec.rb | 66 + spec/features/projects/clusters/gcp_spec.rb | 58 +- spec/features/projects/clusters/user_spec.rb | 36 +- spec/features/projects/clusters_spec.rb | 31 - spec/features/projects/commit/builds_spec.rb | 2 +- .../commits/user_browses_commits_spec.rb | 2 +- spec/features/projects/compare_spec.rb | 15 + .../projects/environments/environment_spec.rb | 10 +- .../environments/environments_spec.rb | 6 +- .../projects/files/user_browses_files_spec.rb | 1 + .../files/user_browses_lfs_files_spec.rb | 4 +- spec/features/projects/jobs_spec.rb | 105 +- .../labels/issues_sorted_by_priority_spec.rb | 4 +- .../labels/update_prioritization_spec.rb | 15 + .../labels/user_sees_breadcrumb_links_spec.rb | 17 + .../projects/labels/user_views_labels_spec.rb | 8 +- spec/features/projects/members/list_spec.rb | 9 +- spec/features/projects/pages_spec.rb | 2 +- .../projects/pipelines/pipeline_spec.rb | 152 +- .../projects/pipelines/pipelines_spec.rb | 15 +- .../projects/serverless/functions_spec.rb | 49 + .../settings/operations_settings_spec.rb | 23 + .../settings/repository_settings_spec.rb | 84 + ...er_manages_merge_requests_settings_spec.rb | 6 +- ...r_views_empty_project_instructions_spec.rb | 49 +- .../show/user_manages_notifications_spec.rb | 15 +- .../user_sees_collaboration_links_spec.rb | 23 - .../show/user_sees_git_instructions_spec.rb | 4 +- .../user_sees_setup_shortcut_buttons_spec.rb | 90 +- .../projects/tags/user_edits_tags_spec.rb | 82 + .../wiki/user_creates_wiki_page_spec.rb | 18 +- .../wiki/user_updates_wiki_page_spec.rb | 392 ++- .../wiki/user_views_wiki_page_spec.rb | 266 +- spec/features/projects_spec.rb | 2 +- .../user_uses_header_search_field_spec.rb | 16 +- spec/features/signed_commits_spec.rb | 94 +- spec/features/tags/master_views_tags_spec.rb | 2 +- spec/features/user_sorts_things_spec.rb | 2 +- spec/features/users/login_spec.rb | 24 +- spec/features/users/overview_spec.rb | 17 +- spec/finders/cluster_ancestors_finder_spec.rb | 77 + .../finder_with_cross_project_access_spec.rb | 16 + spec/finders/events_finder_spec.rb | 17 + spec/finders/group_descendants_finder_spec.rb | 7 + spec/finders/group_members_finder_spec.rb | 2 +- spec/finders/issues_finder_spec.rb | 163 +- spec/finders/merge_requests_finder_spec.rb | 32 +- spec/finders/pending_todos_finder_spec.rb | 2 +- .../finders/pipeline_schedules_finder_spec.rb | 2 +- spec/finders/pipelines_finder_spec.rb | 2 +- .../serverless/functions_finder_spec.rb | 60 + spec/finders/releases_finder_spec.rb | 42 + .../finders/user_recent_events_finder_spec.rb | 3 +- spec/fixtures/api/schemas/cluster_status.json | 3 +- .../api/schemas/entities/diff_line.json | 3 +- .../api/schemas/entities/diff_viewer.json | 16 +- .../entities/issuable_sidebar_todo.json | 8 + .../api/schemas/entities/issue_board.json | 2 +- .../api/schemas/entities/issue_boards.json | 15 + .../api/schemas/entities/issue_sidebar.json | 54 +- .../entities/issue_sidebar_extras.json | 18 + .../schemas/entities/merge_request_basic.json | 6 - .../entities/merge_request_sidebar.json | 56 + .../merge_request_sidebar_extras.json | 21 + .../entities/merge_request_widget.json | 3 +- .../api/schemas/error_tracking/error.json | 21 + .../api/schemas/error_tracking/index.json | 15 + spec/fixtures/api/schemas/job/trigger.json | 3 +- .../api/schemas/public_api/v4/milestone.json | 22 + .../api/schemas/public_api/v4/milestones.json | 21 +- spec/fixtures/api/schemas/release.json | 29 + spec/fixtures/api/schemas/release/link.json | 11 + spec/fixtures/api/schemas/release/links.json | 4 + spec/fixtures/api/schemas/releases.json | 4 + .../authentication/saml2_response.xml | 56 + spec/fixtures/bfg_object_map.txt | 1 + spec/fixtures/csv_comma.csv | 4 + spec/fixtures/csv_semicolon.csv | 5 + spec/fixtures/csv_tab.csv | 4 + .../emails/merge_request_multiple_patches.eml | 2 +- .../merge_request_with_conflicting_patch.eml | 2 +- ...e_request_with_patch_and_target_branch.eml | 2 +- spec/fixtures/emails/paragraphs.eml | 2 +- .../emails/valid_merge_request_with_patch.eml | 2 +- spec/fixtures/emails/valid_new_issue.eml | 4 +- .../fixtures/emails/valid_new_issue_empty.eml | 4 +- .../emails/valid_new_issue_legacy.eml | 23 + .../emails/valid_new_issue_with_quote.eml | 4 +- .../emails/valid_new_merge_request.eml | 6 +- .../emails/valid_new_merge_request_legacy.eml | 20 + ...valid_new_merge_request_no_description.eml | 4 +- .../valid_new_merge_request_no_subject.eml | 4 +- ...l => wrong_issue_incoming_email_token.eml} | 4 +- ...ong_merge_request_incoming_email_token.eml | 18 + .../external_files/.gitlab-ci-template-1.yml | 1 - .../gl-dependency-scanning-report.json | 178 ++ .../deprecated/gl-sast-report.json | 944 ++++++ .../security-reports/feature-branch.zip | Bin 7163 -> 7140 bytes .../gl-container-scanning-report.json | 30 +- .../gl-dependency-scanning-report.json | 227 +- .../gl-license-management-report.json | 222 +- .../feature-branch/gl-sast-report.json | 1881 ++++++------ spec/fixtures/security-reports/master.zip | Bin 6710 -> 9413 bytes .../master/gl-container-scanning-report.json | 106 +- .../master/gl-dependency-scanning-report.json | 216 +- .../master/gl-license-management-report.json | 705 ++++- .../master/gl-sast-report.json | 1881 ++++++------ .../sentry/issues_sample_response.json | 42 + spec/fixtures/trace/sample_trace | 24 +- spec/frontend/.eslintrc.yml | 9 + spec/frontend/helpers/test_constants.js | 2 + .../pages/profiles/show/emoji_menu_spec.js | 6 +- spec/frontend/test_setup.js | 16 + .../notes/timeline_entry_item_spec.js | 40 + .../graphql/resolvers/issues_resolver_spec.rb | 40 + spec/graphql/types/issue_type_spec.rb | 7 + .../types/permission_types/issue_spec.rb | 12 + spec/graphql/types/project_type_spec.rb | 4 + .../application_settings_helper_spec.rb | 39 + spec/helpers/auth_helper_spec.rb | 10 + spec/helpers/commits_helper_spec.rb | 2 +- spec/helpers/diff_helper_spec.rb | 37 - spec/helpers/emails_helper_spec.rb | 69 + spec/helpers/events_helper_spec.rb | 32 + spec/helpers/issuables_helper_spec.rb | 36 +- .../projects/error_tracking_helper_spec.rb | 58 + spec/helpers/projects_helper_spec.rb | 257 +- spec/helpers/runners_helper_spec.rb | 36 + spec/helpers/search_helper_spec.rb | 35 + spec/helpers/sorting_helper_spec.rb | 47 + spec/helpers/storage_helper_spec.rb | 6 +- spec/helpers/user_callouts_helper_spec.rb | 9 + spec/helpers/version_check_helper_spec.rb | 12 +- .../active_record_locking_spec.rb | 44 + spec/initializers/lograge_spec.rb | 38 + spec/initializers/secret_token_spec.rb | 2 +- .../{8_metrics_spec.rb => zz_metrics_spec.rb} | 2 +- spec/javascripts/api_spec.js | 63 +- .../shortcuts/shortcuts_issuable_spec.js | 146 +- .../javascripts/blob_edit/blob_bundle_spec.js | 30 + spec/javascripts/boards/boards_store_spec.js | 7 + spec/javascripts/boards/issue_spec.js | 18 +- spec/javascripts/boards/mock_data.js | 69 + .../ci_variable_list/ci_variable_list_spec.js | 2 + .../clusters/components/applications_spec.js | 121 +- .../clusters/services/mock_data.js | 13 + .../clusters/stores/clusters_store_spec.js | 10 + spec/javascripts/diffs/components/app_spec.js | 118 +- .../diffs/components/commit_item_spec.js | 32 +- .../diffs/components/commit_widget_spec.js | 2 +- .../diffs/components/compare_versions_spec.js | 21 + .../diffs/components/diff_content_spec.js | 60 +- .../diffs/components/diff_file_header_spec.js | 97 +- .../diffs/components/diff_file_spec.js | 42 +- .../components/diff_gutter_avatars_spec.js | 29 + .../diff_line_gutter_content_spec.js | 25 +- .../components/diff_line_note_form_spec.js | 7 +- .../diffs/components/diff_table_cell_spec.js | 37 + .../components/inline_diff_table_row_spec.js | 42 + .../diffs/components/inline_diff_view_spec.js | 9 +- .../diffs/components/no_changes_spec.js | 41 +- .../parallel_diff_table_row_spec.js | 85 + .../components/parallel_diff_view_spec.js | 2 +- .../diffs/components/tree_list_spec.js | 2 +- .../diffs/mock_data/diff_discussions.js | 17 +- spec/javascripts/diffs/mock_data/diff_file.js | 238 +- .../diffs/mock_data/diff_with_commit.js | 4 +- spec/javascripts/diffs/store/actions_spec.js | 257 +- spec/javascripts/diffs/store/getters_spec.js | 85 +- .../javascripts/diffs/store/mutations_spec.js | 421 ++- spec/javascripts/diffs/store/utils_spec.js | 232 +- .../environment_terminal_button_spec.js | 48 +- .../components/error_tracking_list_spec.js | 100 + .../error_tracking/store/mutation_spec.js | 36 + .../filtered_search/dropdown_utils_spec.js | 126 - .../filtered_search_visual_tokens_spec.js | 43 - spec/javascripts/fixtures/blob.rb | 9 +- spec/javascripts/fixtures/boards.rb | 7 +- spec/javascripts/fixtures/branches.rb | 3 +- spec/javascripts/fixtures/clusters.rb | 3 +- spec/javascripts/fixtures/commit.rb | 2 +- spec/javascripts/fixtures/deploy_keys.rb | 6 +- spec/javascripts/fixtures/groups.rb | 6 +- spec/javascripts/fixtures/issues.rb | 6 +- spec/javascripts/fixtures/jobs.rb | 16 +- spec/javascripts/fixtures/labels.rb | 12 +- spec/javascripts/fixtures/merge_requests.rb | 12 +- .../fixtures/merge_requests_diffs.rb | 4 +- .../fixtures/pipeline_schedules.rb | 6 +- spec/javascripts/fixtures/pipelines.rb | 6 +- spec/javascripts/fixtures/projects.rb | 15 +- .../fixtures/prometheus_service.rb | 3 +- spec/javascripts/fixtures/services.rb | 3 +- spec/javascripts/fixtures/snippet.rb | 2 +- spec/javascripts/fixtures/todos.rb | 6 +- spec/javascripts/fixtures/u2f.rb | 2 +- spec/javascripts/gfm_auto_complete_spec.js | 36 + .../helpers/scroll_into_view_promise.js | 28 + .../helpers/wait_for_attribute_change.js | 16 + .../ide/components/file_finder/index_spec.js | 1 - spec/javascripts/ide/components/ide_spec.js | 2 +- .../ide/stores/actions/file_spec.js | 4 +- .../ide/stores/actions/merge_request_spec.js | 37 +- .../ide/stores/actions/tree_spec.js | 2 +- .../stores/modules/branches/actions_spec.js | 2 +- .../modules/merge_requests/actions_spec.js | 58 +- .../stores/modules/pipelines/actions_spec.js | 6 +- .../image_diff/helpers/badge_helper_spec.js | 4 + .../components/app_spec.js | 96 + .../components/item_spec.js | 139 + .../issuable_suggestions/mock_data.js | 26 + .../issue_show/components/edited_spec.js | 10 - .../jobs/components/artifacts_block_spec.js | 13 +- .../jobs/components/empty_state_spec.js | 1 + .../jobs/components/job_app_spec.js | 12 +- .../jobs/components/sidebar_spec.js | 8 - .../jobs/components/trigger_block_spec.js | 28 +- spec/javascripts/lazy_loader_spec.js | 166 +- .../lib/utils/common_utils_spec.js | 34 +- spec/javascripts/lib/utils/dom_utils_spec.js | 54 +- .../javascripts/lib/utils/file_upload_spec.js | 36 + .../lib/utils/text_markdown_spec.js | 390 ++- .../javascripts/lib/utils/url_utility_spec.js | 24 +- .../javascripts/lib/utils/users_cache_spec.js | 110 +- spec/javascripts/merge_request_tabs_spec.js | 34 + spec/javascripts/monitoring/graph_spec.js | 20 + spec/javascripts/monitoring/mock_data.js | 53 +- .../monitoring/monitoring_store_spec.js | 32 +- .../notes/components/comment_form_spec.js | 1 - .../notes/components/diff_with_note_spec.js | 8 +- .../components/discussion_filter_spec.js | 36 +- .../notes/components/note_app_spec.js | 23 + .../notes/components/note_edited_text_spec.js | 2 +- .../notes/components/note_header_spec.js | 3 + .../components/noteable_discussion_spec.js | 187 +- spec/javascripts/notes/mock_data.js | 4 + spec/javascripts/notes/stores/actions_spec.js | 65 +- spec/javascripts/notes/stores/getters_spec.js | 26 +- .../javascripts/notes/stores/mutation_spec.js | 74 + .../components/detailed_metric_spec.js | 2 +- .../pipelines/graph/job_item_spec.js | 54 +- .../pipelines/pipeline_url_spec.js | 7 +- .../registry/components/app_spec.js | 61 +- .../components/collapsible_container_spec.js | 43 +- .../registry/stores/actions_spec.js | 50 +- .../releases/components/app_spec.js | 79 + .../releases/components/release_block_spec.js | 140 + spec/javascripts/releases/mock_data.js | 128 + .../releases/store/actions_spec.js | 98 + spec/javascripts/releases/store/helpers.js | 6 + .../releases/store/mutations_spec.js | 47 + spec/javascripts/search_autocomplete_spec.js | 12 +- spec/javascripts/shared/popover_spec.js | 8 +- spec/javascripts/sidebar/mock_data.js | 4 +- .../sidebar/sidebar_mediator_spec.js | 4 +- spec/javascripts/signin_tabs_memoizer_spec.js | 4 +- spec/javascripts/user_popovers_spec.js | 69 + .../components/deployment_spec.js | 75 +- .../components/mr_widget_container_spec.js | 51 + .../components/mr_widget_icon_spec.js | 30 + .../mr_widget_pipeline_container_spec.js | 90 + .../components/mr_widget_rebase_spec.js | 9 +- .../states/mr_widget_missing_branch_spec.js | 2 +- .../states/mr_widget_nothing_to_merge_spec.js | 4 +- .../components/states/mr_widget_wip_spec.js | 4 +- spec/javascripts/vue_mr_widget/mock_data.js | 13 + .../vue_mr_widget/mr_widget_options_spec.js | 53 +- .../stores/get_state_key_spec.js | 2 +- .../stores/mr_widget_store_spec.js | 27 +- .../vue_shared/components/callout_spec.js | 65 +- .../components/clipboard_button_spec.js | 2 - .../diff_viewer/diff_viewer_spec.js | 26 + .../diff_viewer/viewers/mode_changed_spec.js | 23 + .../components/expand_button_spec.js | 2 +- .../components/gl_modal_vuex_spec.js | 151 + .../components/issue/issue_assignees_spec.js | 114 + .../components/issue/issue_milestone_spec.js | 234 ++ .../components/markdown/field_spec.js | 2 +- .../components/markdown/header_spec.js | 15 + .../markdown/suggestion_diff_header_spec.js | 69 + .../markdown/suggestion_diff_spec.js | 79 + .../components/markdown/suggestions_spec.js | 125 + .../components/time_ago_tooltip_spec.js | 13 - .../user_avatar/user_avatar_image_spec.js | 13 + .../user_avatar/user_avatar_link_spec.js | 4 +- .../user_avatar/user_avatar_list_spec.js | 130 + .../user_popover/user_popover_spec.js | 149 + .../vuex_shared/modules/modal/actions_spec.js | 31 + .../modules/modal/mutations_spec.js | 49 + spec/lib/api/api_spec.rb | 21 + spec/lib/api/helpers/version_spec.rb | 26 + spec/lib/api/helpers_spec.rb | 32 + spec/lib/backup/repository_spec.rb | 13 + .../filter/absolute_link_filter_spec.rb | 2 +- .../banzai/filter/front_matter_filter_spec.rb | 140 + .../filter/milestone_reference_filter_spec.rb | 77 +- .../banzai/filter/suggestion_filter_spec.rb | 26 + .../filter/user_reference_filter_spec.rb | 2 +- .../filter/yaml_front_matter_filter_spec.rb | 53 - spec/lib/banzai/suggestions_parser_spec.rb | 32 + spec/lib/bitbucket_server/paginator_spec.rb | 11 + .../constraints/feature_constrainer_spec.rb | 11 + spec/lib/extracts_path_spec.rb | 26 +- spec/lib/gitlab/auth/o_auth/user_spec.rb | 2 +- spec/lib/gitlab/auth/saml/auth_hash_spec.rb | 11 + .../lib/gitlab/auth/user_auth_finders_spec.rb | 15 + ...ckfill_hashed_project_repositories_spec.rb | 7 + ...ckfill_legacy_project_repositories_spec.rb | 7 + ...ll_project_fullpath_in_repo_config_spec.rb | 85 + .../backfill_project_repositories_spec.rb | 94 + .../encrypt_runners_tokens_spec.rb | 77 + .../migrate_build_stage_spec.rb | 20 +- .../migrate_stage_status_spec.rb | 32 +- .../populate_external_pipeline_source_spec.rb | 5 + ..._metrics_with_events_data_improved_spec.rb | 57 + .../bare_repository_import/importer_spec.rb | 2 +- .../bitbucket_server_import/importer_spec.rb | 17 +- spec/lib/gitlab/blob_helper_spec.rb | 4 +- .../branch_push_merge_commit_analyzer_spec.rb | 62 + .../cache/ci/project_pipeline_status_spec.rb | 96 +- spec/lib/gitlab/checks/branch_check_spec.rb | 90 + spec/lib/gitlab/checks/change_access_spec.rb | 253 +- spec/lib/gitlab/checks/diff_check_spec.rb | 89 + spec/lib/gitlab/checks/lfs_check_spec.rb | 52 + spec/lib/gitlab/checks/push_check_spec.rb | 22 + spec/lib/gitlab/checks/tag_check_spec.rb | 64 + .../gitlab/ci/build/policy/changes_spec.rb | 14 +- spec/lib/gitlab/ci/build/policy/refs_spec.rb | 6 +- spec/lib/gitlab/ci/build/step_spec.rb | 9 +- .../gitlab/ci/config/entry/artifacts_spec.rb | 2 +- .../lib/gitlab/ci/config/entry/global_spec.rb | 10 +- spec/lib/gitlab/ci/config/entry/job_spec.rb | 15 +- spec/lib/gitlab/ci/config/entry/jobs_spec.rb | 10 +- .../lib/gitlab/ci/config/entry/policy_spec.rb | 2 +- .../gitlab/ci/config/entry/reports_spec.rb | 2 +- .../ci/config/external/file/base_spec.rb | 36 +- .../ci/config/external/file/local_spec.rb | 36 +- .../ci/config/external/file/project_spec.rb | 151 + .../ci/config/external/file/remote_spec.rb | 31 +- .../ci/config/external/file/template_spec.rb | 93 + .../gitlab/ci/config/external/mapper_spec.rb | 139 +- .../ci/config/external/processor_spec.rb | 12 +- spec/lib/gitlab/ci/config_spec.rb | 28 +- .../{parsers/test_spec.rb => parsers_spec.rb} | 8 +- .../gitlab/ci/pipeline/chain/build_spec.rb | 29 + .../ci/pipeline/chain/validate/config_spec.rb | 30 + .../pipeline/expression/lexeme/string_spec.rb | 2 +- .../lib/gitlab/ci/pipeline/seed/build_spec.rb | 5 +- spec/lib/gitlab/ci/trace/chunked_io_spec.rb | 63 + spec/lib/gitlab/ci/trace/stream_spec.rb | 25 +- .../ci/variables/collection/item_spec.rb | 2 +- spec/lib/gitlab/ci/yaml_processor_spec.rb | 26 +- .../lib/gitlab/cleanup/remote_uploads_spec.rb | 2 +- .../config/entry/attributable_spec.rb | 6 +- .../{ci => }/config/entry/boolean_spec.rb | 2 +- .../config/entry/configurable_spec.rb | 8 +- .../{ci => }/config/entry/factory_spec.rb | 14 +- .../config/entry/simplifiable_spec.rb | 2 +- .../{ci => }/config/entry/undefined_spec.rb | 2 +- .../{ci => }/config/entry/unspecified_spec.rb | 2 +- .../{ci => }/config/entry/validatable_spec.rb | 8 +- .../{ci => }/config/entry/validator_spec.rb | 2 +- .../loader/yaml_spec.rb} | 6 +- .../lib/gitlab/contributions_calendar_spec.rb | 2 +- spec/lib/gitlab/correlation_id_spec.rb | 77 + .../cross_project_access/check_info_spec.rb | 4 +- spec/lib/gitlab/crypto_helper_spec.rb | 37 + spec/lib/gitlab/current_settings_spec.rb | 76 +- .../count/exact_count_strategy_spec.rb | 40 + .../count/reltuples_count_strategy_spec.rb | 48 + .../count/tablesample_count_strategy_spec.rb | 65 + spec/lib/gitlab/database/count_spec.rb | 72 +- .../v1/rename_namespaces_spec.rb | 2 +- spec/lib/gitlab/database_spec.rb | 29 +- .../diff/file_collection/commit_spec.rb | 4 + .../merge_request_diff_spec.rb | 43 +- spec/lib/gitlab/diff/file_spec.rb | 97 +- .../gitlab/diff/inline_diff_marker_spec.rb | 2 +- spec/lib/gitlab/diff/lines_unfolder_spec.rb | 2 +- .../discussions_diff/file_collection_spec.rb | 61 + .../discussions_diff/highlight_cache_spec.rb | 102 + .../handler/create_issue_handler_spec.rb | 65 +- .../create_merge_request_handler_spec.rb | 73 +- .../email/handler/unsubscribe_handler_spec.rb | 38 +- spec/lib/gitlab/email/handler_spec.rb | 3 +- spec/lib/gitlab/email/reply_parser_spec.rb | 2 +- spec/lib/gitlab/encoding_helper_spec.rb | 2 +- .../gitlab/exclusive_lease_helpers_spec.rb | 8 + spec/lib/gitlab/git/blob_spec.rb | 20 +- spec/lib/gitlab/git/commit_spec.rb | 224 +- spec/lib/gitlab/git/merge_base_spec.rb | 2 +- spec/lib/gitlab/git/object_pool_spec.rb | 79 + spec/lib/gitlab/git/remote_mirror_spec.rb | 28 + .../lib/gitlab/git/repository_cleaner_spec.rb | 62 + spec/lib/gitlab/git/repository_spec.rb | 27 + spec/lib/gitlab/git/tag_spec.rb | 33 +- spec/lib/gitlab/git/tree_spec.rb | 14 +- spec/lib/gitlab/git_access_spec.rb | 36 +- spec/lib/gitlab/git_access_wiki_spec.rb | 2 +- spec/lib/gitlab/git_ref_validator_spec.rb | 1 + .../gitaly_client/blobs_stitcher_spec.rb | 4 +- .../gitaly_client/cleanup_service_spec.rb | 19 + .../gitaly_client/object_pool_service_spec.rb | 46 + .../gitaly_client/remote_service_spec.rb | 4 +- .../gitaly_client/repository_service_spec.rb | 4 +- spec/lib/gitlab/gitaly_client_spec.rb | 208 +- .../importer/repository_importer_spec.rb | 2 +- .../github_import/parallel_importer_spec.rb | 2 +- spec/lib/gitlab/gon_helper_spec.rb | 9 + spec/lib/gitlab/gpg/commit_spec.rb | 22 + spec/lib/gitlab/gpg_spec.rb | 2 +- .../loaders/batch_model_loader_spec.rb | 28 + .../gitlab/hashed_storage/migrator_spec.rb | 34 +- spec/lib/gitlab/import_export/all_models.yml | 21 +- spec/lib/gitlab/import_export/project.json | 10 +- .../project_tree_restorer_spec.rb | 4 +- .../import_export/project_tree_saver_spec.rb | 10 +- .../relation_rename_service_spec.rb | 111 + .../import_export/safe_model_attributes.yml | 16 + spec/lib/gitlab/incoming_email_spec.rb | 2 +- spec/lib/gitlab/json_cache_spec.rb | 401 +++ spec/lib/gitlab/json_logger_spec.rb | 6 + spec/lib/gitlab/kubernetes/helm/api_spec.rb | 56 +- .../kubernetes/helm/init_command_spec.rb | 4 +- .../kubernetes/helm/install_command_spec.rb | 52 +- spec/lib/gitlab/kubernetes/helm/pod_spec.rb | 2 +- .../kubernetes/helm/upgrade_command_spec.rb | 20 +- .../lib/gitlab/kubernetes/kube_client_spec.rb | 93 + spec/lib/gitlab/kubernetes/namespace_spec.rb | 2 +- spec/lib/gitlab/kubernetes_spec.rb | 24 +- .../legacy_github_import/importer_spec.rb | 4 +- spec/lib/gitlab/lfs_token_spec.rb | 226 +- spec/lib/gitlab/middleware/go_spec.rb | 43 +- spec/lib/gitlab/middleware/multipart_spec.rb | 24 +- spec/lib/gitlab/middleware/read_only_spec.rb | 1 - .../gitlab/multi_collection_paginator_spec.rb | 2 +- ...archy_spec.rb => object_hierarchy_spec.rb} | 32 +- spec/lib/gitlab/private_commit_email_spec.rb | 24 +- spec/lib/gitlab/profiler_spec.rb | 42 +- .../lib/gitlab/project_authorizations_spec.rb | 4 +- .../lib/gitlab/project_search_results_spec.rb | 131 +- .../gitlab/prometheus/metric_group_spec.rb | 7 + .../gitlab/prometheus/query_variables_spec.rb | 33 + .../quick_actions/command_definition_spec.rb | 13 + spec/lib/gitlab/quick_actions/dsl_spec.rb | 8 + spec/lib/gitlab/safe_request_store_spec.rb | 12 + spec/lib/gitlab/search/found_blob_spec.rb | 138 + spec/lib/gitlab/sentry_spec.rb | 44 +- .../sidekiq_logging/structured_logger_spec.rb | 3 +- .../correlation_injector_spec.rb | 47 + .../correlation_logger_spec.rb | 35 + spec/lib/gitlab/sql/glob_spec.rb | 3 +- spec/lib/gitlab/upgrader_spec.rb | 40 - spec/lib/gitlab/url_blocker_spec.rb | 21 + spec/lib/gitlab/url_sanitizer_spec.rb | 1 + spec/lib/gitlab/usage_data_spec.rb | 45 +- spec/lib/gitlab/utils/override_spec.rb | 32 +- spec/lib/gitlab/utils_spec.rb | 60 + spec/lib/gitlab/workhorse_spec.rb | 2 - spec/lib/json_web_token/hmac_token_spec.rb | 133 + spec/lib/json_web_token/rsa_token_spec.rb | 4 +- spec/lib/mattermost/session_spec.rb | 12 +- spec/lib/omni_auth/strategies/jwt_spec.rb | 70 +- spec/lib/sentry/client_spec.rb | 119 + spec/lib/serializers/json_spec.rb | 102 + spec/mailers/emails/issues_spec.rb | 33 + spec/mailers/notify_spec.rb | 30 +- ...ckfill_releases_name_with_tag_name_spec.rb | 23 + ...ll_store_project_full_path_in_repo_spec.rb | 98 + spec/migrations/clean_up_for_members_spec.rb | 5 +- ...e_inconsistent_internal_id_records_spec.rb | 22 +- ...ter_configure_worker_sidekiq_queue_spec.rb | 68 + .../migrate_issues_to_ghost_user_spec.rb | 12 +- ...pulate_mr_metrics_with_events_data_spec.rb | 47 + .../schedule_runners_token_encryption_spec.rb | 38 + spec/models/appearance_spec.rb | 39 +- spec/models/blob_spec.rb | 44 +- spec/models/blob_viewer/gitlab_ci_yml_spec.rb | 10 +- spec/models/broadcast_message_spec.rb | 18 +- spec/models/ci/bridge_spec.rb | 25 + spec/models/ci/build_metadata_spec.rb | 6 +- spec/models/ci/build_spec.rb | 631 ++-- spec/models/ci/build_trace_chunk_spec.rb | 128 +- spec/models/ci/job_artifact_spec.rb | 2 + spec/models/ci/pipeline_spec.rb | 333 ++- spec/models/ci/runner_spec.rb | 11 + spec/models/ci/stage_spec.rb | 2 + .../applications/cert_manager_spec.rb | 79 + .../models/clusters/applications/helm_spec.rb | 10 +- .../clusters/applications/ingress_spec.rb | 12 +- .../clusters/applications/jupyter_spec.rb | 10 +- .../clusters/applications/knative_spec.rb | 119 +- .../clusters/applications/prometheus_spec.rb | 27 +- .../clusters/applications/runner_spec.rb | 18 +- spec/models/clusters/cluster_spec.rb | 148 +- .../clusters/kubernetes_namespace_spec.rb | 8 +- .../clusters/platforms/kubernetes_spec.rb | 63 +- spec/models/clusters/providers/gcp_spec.rb | 12 +- spec/models/commit_spec.rb | 26 +- spec/models/commit_status_spec.rb | 2 + spec/models/concerns/avatarable_spec.rb | 37 + .../concerns/cacheable_attributes_spec.rb | 8 +- .../chronic_duration_attribute_spec.rb | 7 +- .../concerns/deployment_platform_spec.rb | 75 +- .../concerns/discussion_on_diff_spec.rb | 38 +- .../concerns/relative_positioning_spec.rb | 8 + .../concerns/token_authenticatable_spec.rb | 121 +- .../base_spec.rb | 65 + .../encrypted_spec.rb | 156 + spec/models/deployment_spec.rb | 2 + spec/models/diff_note_spec.rb | 33 +- spec/models/diff_viewer/base_spec.rb | 23 +- spec/models/diff_viewer/server_side_spec.rb | 20 + spec/models/environment_status_spec.rb | 39 +- .../project_error_tracking_setting_spec.rb | 109 + spec/models/global_milestone_spec.rb | 121 +- spec/models/gpg_signature_spec.rb | 2 + spec/models/group_milestone_spec.rb | 27 +- spec/models/group_spec.rb | 35 +- spec/models/internal_id_spec.rb | 2 + spec/models/list_spec.rb | 6 +- spec/models/member_spec.rb | 23 + spec/models/members/group_member_spec.rb | 22 + spec/models/members/project_member_spec.rb | 19 +- spec/models/merge_request_diff_spec.rb | 2 +- spec/models/merge_request_spec.rb | 307 +- spec/models/milestone_spec.rb | 9 + spec/models/namespace_spec.rb | 56 +- spec/models/note_spec.rb | 15 + spec/models/notification_setting_spec.rb | 9 +- spec/models/pool_repository_spec.rb | 47 + spec/models/project_auto_devops_spec.rb | 2 + spec/models/project_import_data_spec.rb | 42 + spec/models/project_import_state_spec.rb | 112 + spec/models/project_repository_spec.rb | 23 + .../chat_message/push_message_spec.rb | 65 +- .../project_services/discord_service_spec.rb | 11 + .../hangouts_chat_service_spec.rb | 249 +- spec/models/project_spec.rb | 646 ++-- spec/models/project_wiki_spec.rb | 276 +- spec/models/prometheus_metric_spec.rb | 56 + spec/models/push_event_payload_spec.rb | 2 + spec/models/release_spec.rb | 30 +- spec/models/releases/link_spec.rb | 70 + spec/models/releases/source_spec.rb | 41 + spec/models/remote_mirror_spec.rb | 80 +- spec/models/repository_spec.rb | 457 ++- spec/models/resource_label_event_spec.rb | 2 + spec/models/ssh_host_key_spec.rb | 6 + spec/models/suggestion_spec.rb | 57 + spec/models/todo_spec.rb | 5 +- spec/models/uploads/fog_spec.rb | 69 + spec/models/uploads/local_spec.rb | 45 + spec/models/user_callout_spec.rb | 2 + spec/models/user_spec.rb | 119 +- spec/models/wiki_page_spec.rb | 306 +- spec/policies/ci/pipeline_policy_spec.rb | 18 + .../ci/pipeline_schedule_policy_spec.rb | 4 +- spec/policies/clusters/cluster_policy_spec.rb | 42 + spec/policies/group_policy_spec.rb | 25 +- spec/policies/project_policy_spec.rb | 27 +- spec/presenters/clusterable_presenter_spec.rb | 64 + .../clusters/cluster_presenter_spec.rb | 147 +- .../group_clusterable_presenter_spec.rb | 77 + .../presenters/group_member_presenter_spec.rb | 8 + .../project_member_presenter_spec.rb | 6 + spec/presenters/project_presenter_spec.rb | 96 +- spec/requests/api/access_requests_spec.rb | 2 +- spec/requests/api/applications_spec.rb | 16 +- spec/requests/api/avatar_spec.rb | 12 +- spec/requests/api/award_emoji_spec.rb | 20 +- spec/requests/api/badges_spec.rb | 20 +- spec/requests/api/boards_spec.rb | 6 +- spec/requests/api/branches_spec.rb | 38 +- spec/requests/api/broadcast_messages_spec.rb | 24 +- spec/requests/api/commit_statuses_spec.rb | 40 +- spec/requests/api/commits_spec.rb | 108 +- spec/requests/api/deploy_keys_spec.rb | 20 +- spec/requests/api/doorkeeper_access_spec.rb | 10 +- spec/requests/api/environments_spec.rb | 18 +- spec/requests/api/events_spec.rb | 66 +- spec/requests/api/features_spec.rb | 24 +- spec/requests/api/files_spec.rb | 129 +- .../api/graphql/project/issues_spec.rb | 59 + spec/requests/api/group_boards_spec.rb | 2 +- spec/requests/api/group_variables_spec.rb | 8 +- spec/requests/api/groups_spec.rb | 94 +- spec/requests/api/helpers_spec.rb | 45 +- spec/requests/api/internal_spec.rb | 175 +- spec/requests/api/issues_spec.rb | 316 +- spec/requests/api/jobs_spec.rb | 142 +- spec/requests/api/labels_spec.rb | 152 +- spec/requests/api/lint_spec.rb | 6 +- spec/requests/api/markdown_spec.rb | 2 +- spec/requests/api/members_spec.rb | 65 +- spec/requests/api/merge_requests_spec.rb | 212 +- spec/requests/api/namespaces_spec.rb | 2 +- spec/requests/api/notes_spec.rb | 6 +- .../api/notification_settings_spec.rb | 10 +- spec/requests/api/oauth_tokens_spec.rb | 2 +- spec/requests/api/pages_domains_spec.rb | 28 +- spec/requests/api/pipeline_schedules_spec.rb | 24 +- spec/requests/api/pipelines_spec.rb | 125 +- spec/requests/api/project_clusters_spec.rb | 450 +++ spec/requests/api/project_export_spec.rb | 6 +- spec/requests/api/project_hooks_spec.rb | 17 +- spec/requests/api/project_import_spec.rb | 62 +- spec/requests/api/project_milestones_spec.rb | 2 +- spec/requests/api/project_snapshots_spec.rb | 4 +- spec/requests/api/project_snippets_spec.rb | 16 +- spec/requests/api/project_templates_spec.rb | 6 +- spec/requests/api/projects_spec.rb | 182 +- spec/requests/api/protected_branches_spec.rb | 24 +- spec/requests/api/protected_tags_spec.rb | 18 +- spec/requests/api/redacted_events_spec.rb | 68 - spec/requests/api/release/links_spec.rb | 359 +++ spec/requests/api/releases_spec.rb | 628 ++++ spec/requests/api/repositories_spec.rb | 26 +- spec/requests/api/runner_spec.rb | 220 +- spec/requests/api/runners_spec.rb | 24 +- spec/requests/api/search_spec.rb | 70 +- spec/requests/api/services_spec.rb | 16 +- spec/requests/api/settings_spec.rb | 54 +- spec/requests/api/snippets_spec.rb | 20 +- spec/requests/api/submodules_spec.rb | 12 +- spec/requests/api/suggestions_spec.rb | 83 + spec/requests/api/system_hooks_spec.rb | 18 +- spec/requests/api/tags_spec.rb | 63 +- spec/requests/api/todos_spec.rb | 12 +- spec/requests/api/triggers_spec.rb | 32 +- spec/requests/api/users_spec.rb | 228 +- spec/requests/api/variables_spec.rb | 8 +- spec/requests/api/wikis_spec.rb | 52 +- spec/requests/git_http_spec.rb | 8 +- spec/requests/jwt_controller_spec.rb | 28 +- spec/requests/lfs_http_spec.rb | 26 +- spec/requests/lfs_locks_api_spec.rb | 4 +- spec/requests/oauth_tokens_spec.rb | 12 +- spec/requests/openid_connect_spec.rb | 16 +- spec/requests/rack_attack_global_spec.rb | 4 +- spec/requests/request_profiler_spec.rb | 2 +- spec/routing/project_routing_spec.rb | 20 +- .../inject_enterprise_edition_module_spec.rb | 133 + .../cop/migration/add_reference_spec.rb | 12 +- .../cop/migration/add_timestamps_spec.rb | 6 +- spec/rubocop/cop/migration/datetime_spec.rb | 8 +- spec/rubocop/cop/migration/timestamps_spec.rb | 6 +- spec/rubocop/cop/safe_params_spec.rb | 39 + spec/serializers/diff_file_entity_spec.rb | 33 - .../discussion_diff_file_entity_spec.rb | 39 + spec/serializers/discussion_entity_spec.rb | 8 - spec/serializers/entity_date_helper_spec.rb | 12 +- spec/serializers/environment_entity_spec.rb | 30 + .../environment_status_entity_spec.rb | 8 - spec/serializers/issue_board_entity_spec.rb | 42 + spec/serializers/issue_serializer_spec.rb | 18 +- .../merge_request_basic_serializer_spec.rb | 16 - .../merge_request_serializer_spec.rb | 12 +- spec/serializers/pipeline_entity_spec.rb | 2 +- spec/serializers/pipeline_serializer_spec.rb | 2 +- .../serializers/project_mirror_entity_spec.rb | 12 + spec/serializers/remote_mirror_entity_spec.rb | 16 + spec/serializers/suggestion_entity_spec.rb | 23 + .../trigger_variable_entity_spec.rb | 49 + ...er_registry_authentication_service_spec.rb | 2 +- .../services/ci/archive_trace_service_spec.rb | 51 + .../ci/create_pipeline_service_spec.rb | 370 ++- .../ci/destroy_pipeline_service_spec.rb | 60 + .../ci/process_pipeline_service_spec.rb | 6 +- spec/services/ci/register_job_service_spec.rb | 11 +- spec/services/ci/retry_build_service_spec.rb | 6 +- .../ci/retry_pipeline_service_spec.rb | 2 +- .../check_ingress_ip_address_service_spec.rb | 38 +- ...heck_installation_progress_service_spec.rb | 57 +- .../applications/create_service_spec.rb | 67 +- .../applications/install_service_spec.rb | 72 +- spec/services/clusters/build_service_spec.rb | 25 + .../gcp/finalize_creation_service_spec.rb | 31 +- ...create_or_update_namespace_service_spec.rb | 133 +- ...or_update_service_account_service_spec.rb} | 12 +- .../fetch_kubernetes_token_service_spec.rb | 15 +- .../services/clusters/refresh_service_spec.rb | 107 + spec/services/clusters/update_service_spec.rb | 29 +- spec/services/create_release_service_spec.rb | 34 - .../list_issues_service_spec.rb | 87 + spec/services/files/multi_service_spec.rb | 39 +- spec/services/groups/create_service_spec.rb | 4 +- .../groups/nested_create_service_spec.rb | 2 +- spec/services/groups/transfer_service_spec.rb | 2 +- .../clone/attributes_rewriter_spec.rb | 79 + .../issuable/clone/content_rewriter_spec.rb | 153 + .../common_system_notes_service_spec.rb | 47 +- .../issues/import_csv_service_spec.rb | 64 + spec/services/issues/move_service_spec.rb | 268 +- .../merge_requests/build_service_spec.rb | 34 +- .../create_from_issue_service_spec.rb | 10 +- .../merge_requests/create_service_spec.rb | 101 +- ...rge_when_pipeline_succeeds_service_spec.rb | 2 +- .../merge_requests/refresh_service_spec.rb | 161 + spec/services/notes/update_service_spec.rb | 23 + spec/services/notification_service_spec.rb | 62 +- .../services/preview_markdown_service_spec.rb | 25 + .../projects/after_rename_service_spec.rb | 20 + .../services/projects/cleanup_service_spec.rb | 44 + .../create_from_template_service_spec.rb | 2 +- spec/services/projects/create_service_spec.rb | 26 + spec/services/projects/fork_service_spec.rb | 30 +- .../migrate_repository_service_spec.rb | 14 + spec/services/projects/import_service_spec.rb | 2 +- .../operations/update_service_spec.rb | 86 + .../projects/transfer_service_spec.rb | 46 + .../update_remote_mirror_service_spec.rb | 14 +- .../quick_actions/interpret_service_spec.rb | 53 + spec/services/releases/create_service_spec.rb | 72 + .../services/releases/destroy_service_spec.rb | 61 + spec/services/releases/update_service_spec.rb | 50 + .../suggestions/apply_service_spec.rb | 399 +++ .../suggestions/create_service_spec.rb | 110 + spec/services/system_hooks_service_spec.rb | 2 +- spec/services/system_note_service_spec.rb | 14 + spec/services/update_release_service_spec.rb | 34 - spec/services/upload_service_spec.rb | 4 +- spec/services/users/build_service_spec.rb | 8 +- .../services/users/set_status_service_spec.rb | 2 +- spec/spec_helper.rb | 12 +- spec/support/active_record_enum.rb | 12 + spec/support/api/boards_shared_examples.rb | 15 +- .../support/api/milestones_shared_examples.rb | 31 +- .../api/scopes/read_user_shared_examples.rb | 2 +- .../api/time_tracking_shared_examples.rb | 22 +- spec/support/carrierwave.rb | 2 +- ...ubish_import_controller_shared_examples.rb | 34 +- ...ionless_auth_controller_shared_examples.rb | 14 +- spec/support/db_cleaner.rb | 6 +- .../discussion_comments_shared_example.rb | 41 +- .../features/variable_list_shared_examples.rb | 46 + spec/support/gitaly.rb | 16 - spec/support/gitlab_stubs/gitlab_ci.yml | 3 +- spec/support/helpers/email_helpers.rb | 9 + spec/support/helpers/fake_blob_helpers.rb | 2 +- .../support/helpers/fake_migration_classes.rb | 2 +- .../helpers/features/branches_helpers.rb | 2 +- .../helpers/features/list_rows_helpers.rb | 28 + .../helpers/features/sorting_helpers.rb | 4 +- .../helpers/filter_item_select_helper.rb | 19 - spec/support/helpers/git_http_helpers.rb | 13 +- spec/support/helpers/gpg_helpers.rb | 6 +- spec/support/helpers/graphql_helpers.rb | 2 +- .../helpers/javascript_fixtures_helpers.rb | 7 + spec/support/helpers/kubernetes_helpers.rb | 123 +- spec/support/helpers/migrations_helpers.rb | 16 + spec/support/helpers/sorting_helper.rb | 2 +- spec/support/helpers/stub_configuration.rb | 5 + spec/support/helpers/test_env.rb | 11 +- spec/support/helpers/test_request_helpers.rb | 6 +- spec/support/helpers/user_login_helper.rb | 26 + .../import_export/export_file_helper.rb | 2 +- ...uables_requiring_filter_shared_examples.rb | 2 +- ...e_to_ghost_user_service_shared_examples.rb | 2 +- spec/support/setup_builds_storage.rb | 2 +- .../change_access_checks_shared_context.rb | 29 + ...ared_blocks.rb => email_shared_context.rb} | 0 .../ci_trace_shared_examples.rb | 15 +- .../common_system_notes_examples.rb | 4 +- .../issuable_notes_filter_shared_examples.rb | 14 +- ...er_from_user_preference_shared_examples.rb | 32 + .../uploads_actions_shared_examples.rb | 11 +- .../shared_examples/diff_file_collections.rb | 16 + spec/support/shared_examples/file_finder.rb | 13 +- .../shared_examples/helm_generated_script.rb | 4 +- ...issuables_list_metadata_shared_examples.rb | 8 +- .../backfill_project_repositories_examples.rb | 44 + .../milestone_tabs_examples.rb | 2 +- .../models/chat_service_spec.rb | 242 ++ ...ster_application_status_shared_examples.rb | 32 +- .../models/member_shared_examples.rb | 77 + .../models/with_uploads_shared_examples.rb | 60 +- .../shared_examples/notify_shared_examples.rb | 4 +- .../policies/clusterable_shared_examples.rb | 37 + .../project_list_shared_examples.rb | 19 + .../api/custom_attributes_shared_examples.rb | 18 +- .../requests/api/diff_discussions.rb | 8 +- .../requests/api/discussions.rb | 16 +- .../requests/api/merge_requests_list.rb | 29 +- .../shared_examples/requests/api/notes.rb | 26 +- .../requests/api/resolvable_discussions.rb | 16 +- .../requests/api/status_shared_examples.rb | 4 +- .../serializers/diff_file_entity_examples.rb | 46 + ...ress_ip_address_service_shared_examples.rb | 33 + .../update_invalid_issuable.rb | 6 +- spec/tasks/cache/clear/redis_spec.rb | 5 +- spec/tasks/gitlab/backup_rake_spec.rb | 1 + spec/tasks/gitlab/check_rake_spec.rb | 108 +- spec/tasks/gitlab/storage_rake_spec.rb | 14 +- spec/tasks/gitlab/web_hook_rake_spec.rb | 92 + spec/uploaders/file_uploader_spec.rb | 29 +- .../uploaders/namespace_file_uploader_spec.rb | 85 +- spec/uploaders/object_storage_spec.rb | 2 +- spec/uploaders/personal_file_uploader_spec.rb | 27 +- spec/validators/url_validator_spec.rb | 80 + .../layouts/header/_new_dropdown.haml_spec.rb | 134 + .../nav/sidebar/_admin.html.haml_spec.rb} | 34 +- .../nav/sidebar/_project.html.haml_spec.rb | 8 + .../changed_milestone_email.html.haml_spec.rb | 35 + .../projects/_home_panel.html.haml_spec.rb | 2 +- .../merge_requests/show.html.haml_spec.rb | 34 + .../operations/show.html.haml_spec.rb | 37 + spec/workers/archive_trace_worker_spec.rb | 8 +- .../ci/archive_traces_cron_worker_spec.rb | 10 +- spec/workers/cluster_configure_worker_spec.rb | 69 + .../cluster_platform_configure_worker_spec.rb | 47 - spec/workers/cluster_provision_worker_spec.rb | 4 +- .../github_import/stage_methods_spec.rb | 6 +- .../concerns/project_import_options_spec.rb | 14 +- spec/workers/emails_on_push_worker_spec.rb | 2 +- spec/workers/every_sidekiq_worker_spec.rb | 6 +- .../advance_stage_worker_spec.rb | 30 +- .../refresh_import_jid_worker_spec.rb | 22 +- .../stage/import_base_data_worker_spec.rb | 3 +- .../stage/import_pull_requests_worker_spec.rb | 5 +- spec/workers/import_issues_csv_worker_spec.rb | 21 + .../notification_service_worker_spec.rb | 17 +- .../workers/object_pool/create_worker_spec.rb | 59 + .../object_pool/destroy_worker_spec.rb | 31 + spec/workers/object_pool/join_worker_spec.rb | 35 + spec/workers/pipeline_schedule_worker_spec.rb | 91 +- .../prune_web_hook_logs_worker_spec.rb | 16 +- spec/workers/rebase_worker_spec.rb | 2 +- .../remote_mirror_notification_worker_spec.rb | 39 + .../remove_old_web_hook_logs_worker_spec.rb | 18 - .../workers/repository_cleanup_worker_spec.rb | 55 + spec/workers/repository_import_worker_spec.rb | 29 +- ...sitory_update_remote_mirror_worker_spec.rb | 20 +- spec/workers/stuck_ci_jobs_worker_spec.rb | 2 +- spec/workers/stuck_merge_jobs_worker_spec.rb | 3 +- ..._pipeline_for_merge_request_worker_spec.rb | 38 +- vendor/cert_manager/cluster_issuer.yaml | 11 + vendor/cert_manager/values.yaml | 5 + vendor/gitignore/CMake.gitignore | 1 + vendor/gitignore/Drupal.gitignore | 77 +- vendor/gitignore/Global/Emacs.gitignore | 4 + vendor/gitignore/Global/PuTTY.gitignore | 2 + vendor/gitignore/Global/Virtuoso.gitignore | 18 + vendor/gitignore/Global/Xcode.gitignore | 74 +- vendor/gitignore/Node.gitignore | 5 +- vendor/gitignore/Python.gitignore | 1 + vendor/gitignore/Smalltalk.gitignore | 9 + vendor/gitignore/TeX.gitignore | 4 + vendor/gitignore/Unity.gitignore | 4 + vendor/gitignore/VisualStudio.gitignore | 4 + vendor/jupyter/values.yaml | 1 + vendor/licenses.csv | 155 +- vendor/prometheus/values.yaml | 102 + yarn.lock | 2662 ++++++++++++++--- 4882 files changed, 81170 insertions(+), 37777 deletions(-) delete mode 100644 .gitlab/issue_templates/Research proposal.md delete mode 100644 Gemfile.rails5 delete mode 100644 Gemfile.rails5.lock create mode 100644 PHILOSOPHY.md create mode 100644 app/assets/images/cluster_app_logos/cert_manager.png create mode 100644 app/assets/images/none-scheme-preview.png delete mode 100644 app/assets/javascripts/clusters/clusters_index.js delete mode 100644 app/assets/javascripts/dismissable_callout.js create mode 100644 app/assets/javascripts/error_tracking/components/error_tracking_list.vue create mode 100644 app/assets/javascripts/error_tracking/index.js create mode 100644 app/assets/javascripts/error_tracking/services/index.js create mode 100644 app/assets/javascripts/error_tracking/store/actions.js create mode 100644 app/assets/javascripts/error_tracking/store/index.js create mode 100644 app/assets/javascripts/error_tracking/store/mutation_types.js create mode 100644 app/assets/javascripts/error_tracking/store/mutations.js delete mode 100644 app/assets/javascripts/init_legacy_filters.js create mode 100644 app/assets/javascripts/issuable_suggestions/components/app.vue create mode 100644 app/assets/javascripts/issuable_suggestions/components/item.vue create mode 100644 app/assets/javascripts/issuable_suggestions/index.js create mode 100644 app/assets/javascripts/issuable_suggestions/queries/issues.graphql create mode 100644 app/assets/javascripts/lib/graphql.js create mode 100644 app/assets/javascripts/lib/utils/file_upload.js create mode 100644 app/assets/javascripts/mirrors/constants.js rename app/assets/javascripts/{pages/projects/settings/repository/show => mirrors}/mirror_repos.js (88%) create mode 100644 app/assets/javascripts/mirrors/ssh_mirror.js create mode 100644 app/assets/javascripts/monitoring/components/charts/area.vue create mode 100644 app/assets/javascripts/pages/groups/clusters/destroy/index.js create mode 100644 app/assets/javascripts/pages/groups/clusters/index/index.js create mode 100644 app/assets/javascripts/pages/groups/clusters/show/index.js create mode 100644 app/assets/javascripts/pages/groups/clusters/update/index.js create mode 100644 app/assets/javascripts/pages/groups/index.js create mode 100644 app/assets/javascripts/pages/projects/error_tracking/index.js create mode 100644 app/assets/javascripts/pages/projects/releases/index/index.js create mode 100644 app/assets/javascripts/pages/projects/serverless/index.js delete mode 100644 app/assets/javascripts/pages/projects/shared/project_avatar.js create mode 100644 app/assets/javascripts/pages/projects/tags/releases/index.js create mode 100644 app/assets/javascripts/pages/root/index.js create mode 100644 app/assets/javascripts/persistent_user_callout.js create mode 100644 app/assets/javascripts/registry/stores/state.js create mode 100644 app/assets/javascripts/releases/components/app.vue create mode 100644 app/assets/javascripts/releases/components/release_block.vue create mode 100644 app/assets/javascripts/releases/index.js create mode 100644 app/assets/javascripts/releases/store/actions.js create mode 100644 app/assets/javascripts/releases/store/index.js create mode 100644 app/assets/javascripts/releases/store/mutation_types.js create mode 100644 app/assets/javascripts/releases/store/mutations.js create mode 100644 app/assets/javascripts/releases/store/state.js create mode 100644 app/assets/javascripts/serverless/components/empty_state.vue create mode 100644 app/assets/javascripts/serverless/components/function_row.vue create mode 100644 app/assets/javascripts/serverless/components/functions.vue create mode 100644 app/assets/javascripts/serverless/event_hub.js create mode 100644 app/assets/javascripts/serverless/serverless_bundle.js create mode 100644 app/assets/javascripts/serverless/services/get_functions_service.js create mode 100644 app/assets/javascripts/serverless/stores/serverless_store.js create mode 100644 app/assets/javascripts/user_popovers.js create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/mr_widget_container.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/mr_widget_icon.vue create mode 100644 app/assets/javascripts/vue_merge_request_widget/components/mr_widget_pipeline_container.vue create mode 100644 app/assets/javascripts/vue_shared/components/diff_viewer/viewers/empty_file.vue create mode 100644 app/assets/javascripts/vue_shared/components/diff_viewer/viewers/mode_changed.vue create mode 100644 app/assets/javascripts/vue_shared/components/diff_viewer/viewers/renamed.vue create mode 100644 app/assets/javascripts/vue_shared/components/gl_modal_vuex.vue create mode 100644 app/assets/javascripts/vue_shared/components/issue/issue_assignees.vue create mode 100644 app/assets/javascripts/vue_shared/components/issue/issue_milestone.vue create mode 100644 app/assets/javascripts/vue_shared/components/markdown/suggestion_diff.vue create mode 100644 app/assets/javascripts/vue_shared/components/markdown/suggestion_diff_header.vue create mode 100644 app/assets/javascripts/vue_shared/components/markdown/suggestions.vue create mode 100644 app/assets/javascripts/vue_shared/components/notes/timeline_entry_item.vue create mode 100644 app/assets/javascripts/vue_shared/components/user_avatar/user_avatar_list.vue create mode 100644 app/assets/javascripts/vue_shared/components/user_popover/user_popover.vue create mode 100644 app/assets/javascripts/vuex_shared/modules/modal/actions.js create mode 100644 app/assets/javascripts/vuex_shared/modules/modal/index.js create mode 100644 app/assets/javascripts/vuex_shared/modules/modal/mutation_types.js create mode 100644 app/assets/javascripts/vuex_shared/modules/modal/mutations.js create mode 100644 app/assets/javascripts/vuex_shared/modules/modal/state.js create mode 100644 app/assets/stylesheets/components/popover.scss create mode 100644 app/assets/stylesheets/csslab.scss create mode 100644 app/assets/stylesheets/framework/flex_grid.scss delete mode 100644 app/assets/stylesheets/framework/mobile.scss create mode 100644 app/assets/stylesheets/highlight/none.scss create mode 100644 app/assets/stylesheets/page_bundles/_ide_mixins.scss delete mode 100644 app/controllers/concerns/invalid_utf8_error_handler.rb create mode 100644 app/controllers/groups/clusters/applications_controller.rb create mode 100644 app/controllers/groups/clusters_controller.rb create mode 100644 app/controllers/projects/error_tracking_controller.rb create mode 100644 app/controllers/projects/serverless/functions_controller.rb create mode 100644 app/controllers/projects/settings/operations_controller.rb create mode 100644 app/controllers/projects/tags/releases_controller.rb create mode 100644 app/finders/cluster_ancestors_finder.rb create mode 100644 app/finders/projects/serverless/functions_finder.rb create mode 100644 app/finders/releases_finder.rb create mode 100644 app/finders/remote_mirror_finder.rb create mode 100644 app/graphql/resolvers/issues_resolver.rb create mode 100644 app/graphql/types/issue_type.rb create mode 100644 app/graphql/types/label_type.rb create mode 100644 app/graphql/types/milestone_type.rb create mode 100644 app/graphql/types/order.rb create mode 100644 app/graphql/types/permission_types/issue.rb create mode 100644 app/graphql/types/sort.rb create mode 100644 app/graphql/types/user_type.rb create mode 100644 app/helpers/ci_variables_helper.rb create mode 100644 app/helpers/ide_helper.rb create mode 100644 app/helpers/projects/error_tracking_helper.rb delete mode 100644 app/helpers/sentry_helper.rb create mode 100644 app/mailers/emails/remote_mirrors.rb create mode 100644 app/models/application_record.rb create mode 100644 app/models/ci/bridge.rb create mode 100644 app/models/ci/pipeline_enums.rb create mode 100644 app/models/clusters/applications/cert_manager.rb create mode 100644 app/models/commit_status_enums.rb create mode 100644 app/models/concerns/descendant.rb create mode 100644 app/models/concerns/mirror_authentication.rb create mode 100644 app/models/concerns/shardable.rb create mode 100644 app/models/concerns/token_authenticatable_strategies/encrypted.rb create mode 100644 app/models/error_tracking/project_error_tracking_setting.rb create mode 100644 app/models/identity/uniqueness_scopes.rb create mode 100644 app/models/project_repository.rb create mode 100644 app/models/project_services/discord_service.rb create mode 100644 app/models/releases/link.rb create mode 100644 app/models/releases/source.rb create mode 100644 app/models/suggestion.rb create mode 100644 app/models/uploads/base.rb create mode 100644 app/models/uploads/fog.rb create mode 100644 app/models/uploads/local.rb create mode 100644 app/models/user_callout_enums.rb create mode 100644 app/policies/concerns/clusterable_actions.rb create mode 100644 app/policies/milestone_policy.rb create mode 100644 app/policies/release_policy.rb create mode 100644 app/policies/suggestion_policy.rb create mode 100644 app/presenters/group_clusterable_presenter.rb create mode 100644 app/presenters/issue_presenter.rb create mode 100644 app/presenters/user_presenter.rb create mode 100644 app/serializers/diff_file_base_entity.rb create mode 100644 app/serializers/discussion_diff_file_entity.rb create mode 100644 app/serializers/error_tracking/error_entity.rb create mode 100644 app/serializers/error_tracking/error_serializer.rb create mode 100644 app/serializers/issuable_sidebar_basic_entity.rb rename app/serializers/{issuable_sidebar_entity.rb => issuable_sidebar_extras_entity.rb} (86%) create mode 100644 app/serializers/issuable_sidebar_todo_entity.rb create mode 100644 app/serializers/issue_board_entity.rb create mode 100644 app/serializers/issue_sidebar_basic_entity.rb rename app/serializers/{issue_sidebar_entity.rb => issue_sidebar_extras_entity.rb} (59%) delete mode 100644 app/serializers/merge_request_basic_serializer.rb create mode 100644 app/serializers/merge_request_sidebar_basic_entity.rb create mode 100644 app/serializers/projects/serverless/service_entity.rb create mode 100644 app/serializers/projects/serverless/service_serializer.rb create mode 100644 app/serializers/remote_mirror_entity.rb create mode 100644 app/serializers/suggestion_entity.rb create mode 100644 app/services/ci/archive_trace_service.rb create mode 100644 app/services/ci/compare_reports_base_service.rb create mode 100644 app/services/ci/destroy_pipeline_service.rb create mode 100644 app/services/clusters/build_service.rb rename app/services/clusters/gcp/kubernetes/{create_service_account_service.rb => create_or_update_service_account_service.rb} (89%) create mode 100644 app/services/clusters/refresh_service.rb delete mode 100644 app/services/create_release_service.rb create mode 100644 app/services/error_tracking/list_issues_service.rb create mode 100644 app/services/issuable/clone/attributes_rewriter.rb create mode 100644 app/services/issuable/clone/base_service.rb create mode 100644 app/services/issuable/clone/content_rewriter.rb create mode 100644 app/services/issues/import_csv_service.rb create mode 100644 app/services/projects/cleanup_service.rb create mode 100644 app/services/projects/disable_deploy_key_service.rb create mode 100644 app/services/projects/operations/update_service.rb create mode 100644 app/services/releases/concerns.rb create mode 100644 app/services/releases/create_service.rb create mode 100644 app/services/releases/destroy_service.rb create mode 100644 app/services/releases/update_service.rb create mode 100644 app/services/suggestions/apply_service.rb create mode 100644 app/services/suggestions/create_service.rb delete mode 100644 app/services/update_release_service.rb create mode 100644 app/views/ci/variables/_header.html.haml create mode 100644 app/views/clusters/clusters/_buttons.html.haml create mode 100644 app/views/ide/_show.html.haml rename app/views/notify/{changed_milestone_issue_email.html.haml => changed_milestone_email.html.haml} (50%) create mode 100644 app/views/notify/changed_milestone_email.text.erb delete mode 100644 app/views/notify/changed_milestone_issue_email.text.erb delete mode 100644 app/views/notify/changed_milestone_merge_request_email.html.haml delete mode 100644 app/views/notify/changed_milestone_merge_request_email.text.erb create mode 100644 app/views/notify/import_issues_csv_email.html.haml create mode 100644 app/views/notify/import_issues_csv_email.text.erb create mode 100644 app/views/notify/remote_mirror_update_failed_email.html.haml create mode 100644 app/views/notify/remote_mirror_update_failed_email.text.erb create mode 100644 app/views/notify/repository_cleanup_failure_email.text.erb create mode 100644 app/views/notify/repository_cleanup_success_email.text.erb create mode 100644 app/views/projects/blob/_markdown_buttons.html.haml create mode 100644 app/views/projects/buttons/_clone.html.haml create mode 100644 app/views/projects/buttons/_notifications.html.haml create mode 100644 app/views/projects/cleanup/_show.html.haml create mode 100644 app/views/projects/error_tracking/index.html.haml create mode 100644 app/views/projects/issues/_import_export.svg create mode 100644 app/views/projects/issues/import_csv/_button.html.haml create mode 100644 app/views/projects/issues/import_csv/_modal.html.haml delete mode 100644 app/views/projects/merge_requests/conflicts.html.haml create mode 100644 app/views/projects/mirrors/_authentication_method.html.haml create mode 100644 app/views/projects/mirrors/_mirror_repos_push.html.haml create mode 100644 app/views/projects/mirrors/_regenerate_public_ssh_key_confirm_modal.html.haml delete mode 100644 app/views/projects/mirrors/_show.html.haml create mode 100644 app/views/projects/mirrors/_ssh_host_keys.html.haml create mode 100644 app/views/projects/releases/index.html.haml create mode 100644 app/views/projects/serverless/functions/index.html.haml create mode 100644 app/views/projects/settings/operations/_error_tracking.html.haml create mode 100644 app/views/projects/settings/operations/show.html.haml rename app/views/projects/{ => tags}/releases/edit.html.haml (100%) create mode 100644 app/views/shared/_flash_user_callout.html.haml delete mode 100644 app/views/shared/_labels_row.html.haml delete mode 100644 app/views/shared/_sort_dropdown.html.haml delete mode 100644 app/views/shared/issuable/_filter.html.haml create mode 100644 app/views/shared/issuable/_sort_dropdown.html.haml create mode 100644 app/views/shared/members/_access_request_links.html.haml create mode 100644 app/workers/cluster_configure_worker.rb delete mode 100644 app/workers/cluster_platform_configure_worker.rb create mode 100644 app/workers/cluster_project_configure_worker.rb create mode 100644 app/workers/concerns/object_pool_queue.rb create mode 100644 app/workers/delete_stored_files_worker.rb create mode 100644 app/workers/import_issues_csv_worker.rb create mode 100644 app/workers/object_pool/create_worker.rb create mode 100644 app/workers/object_pool/destroy_worker.rb create mode 100644 app/workers/object_pool/join_worker.rb create mode 100644 app/workers/object_pool/schedule_join_worker.rb create mode 100644 app/workers/remote_mirror_notification_worker.rb delete mode 100644 app/workers/remove_old_web_hook_logs_worker.rb create mode 100644 app/workers/repository_cleanup_worker.rb rename config/initializers/{devise.rb => 8_devise.rb} (100%) create mode 100644 config/initializers/action_dispatch_http_mime_negotiation.rb delete mode 100644 config/initializers/active_record_array_type_casting.rb delete mode 100644 config/initializers/application_controller_renderer.rb delete mode 100644 config/initializers/ar5_batching.rb delete mode 100644 config/initializers/ar5_pg_10_support.rb create mode 100644 config/initializers/ar_mysql_jsonb_support.rb delete mode 100644 config/initializers/carrierwave_patch.rb create mode 100644 config/initializers/correlation_id.rb rename config/initializers/{8_metrics.rb => zz_metrics.rb} (98%) create mode 100644 danger/duplicate_yarn_dependencies/Dangerfile create mode 100644 db/fixtures/development/03_settings.rb create mode 100644 db/fixtures/development/24_forks.rb create mode 100644 db/fixtures/production/001_application_settings.rb rename db/fixtures/production/{001_admin.rb => 002_admin.rb} (100%) create mode 100644 db/migrate/20181006004100_import_common_metrics_nginx_vts.rb create mode 100644 db/migrate/20181030154446_add_missing_indexes_for_foreign_keys.rb create mode 100644 db/migrate/20181031145139_add_protected_ci_variables_to_application_settings.rb create mode 100644 db/migrate/20181031190558_drop_fk_gcp_clusters_table.rb create mode 100644 db/migrate/20181031190559_drop_gcp_clusters_table.rb create mode 100644 db/migrate/20181101191341_create_clusters_applications_cert_manager.rb create mode 100644 db/migrate/20181112103239_drop_default_value_on_status_deployments.rb create mode 100644 db/migrate/20181115140140_add_encrypted_runners_token_to_settings.rb create mode 100644 db/migrate/20181116050532_knative_external_ip.rb create mode 100644 db/migrate/20181116141415_add_encrypted_runners_token_to_namespaces.rb create mode 100644 db/migrate/20181116141504_add_encrypted_runners_token_to_projects.rb create mode 100644 db/migrate/20181119081539_add_merge_request_id_to_ci_pipelines.rb create mode 100644 db/migrate/20181119132520_add_indexes_to_ci_builds_and_pipelines.rb create mode 100644 db/migrate/20181120082911_rename_repositories_pool_repositories.rb create mode 100644 db/migrate/20181120091639_add_foreign_key_to_ci_pipelines_merge_requests.rb create mode 100644 db/migrate/20181120151656_add_token_encrypted_to_ci_runners.rb create mode 100644 db/migrate/20181121101842_add_ci_builds_partial_index_on_project_id_and_status.rb create mode 100644 db/migrate/20181121101843_remove_redundant_ci_builds_partial_index.rb create mode 100644 db/migrate/20181122160027_create_project_repositories.rb create mode 100644 db/migrate/20181123135036_drop_not_null_constraint_pool_repository_disk_path.rb create mode 100644 db/migrate/20181123144235_create_suggestions.rb create mode 100644 db/migrate/20181126150622_add_events_index_on_project_id_and_created_at.rb create mode 100644 db/migrate/20181126153547_remove_notes_index_on_updated_at.rb create mode 100644 db/migrate/20181128123704_add_state_to_pool_repository.rb create mode 100644 db/migrate/20181129104854_add_token_encrypted_to_ci_builds.rb create mode 100644 db/migrate/20181129104944_add_index_to_ci_builds_token_encrypted.rb create mode 100644 db/migrate/20181203002526_add_project_bfg_object_map_column.rb create mode 100644 db/migrate/20181211092510_add_name_author_id_and_sha_to_releases.rb create mode 100644 db/migrate/20181211092514_add_author_id_index_and_fk_to_releases.rb create mode 100644 db/migrate/20181212104941_backfill_releases_name_with_tag_name.rb create mode 100644 db/migrate/20181212171634_create_error_tracking_settings.rb create mode 100644 db/migrate/20181219145521_add_options_to_build_metadata.rb create mode 100644 db/migrate/20181228175414_create_releases_link_table.rb create mode 100644 db/migrate/20190103140724_make_legacy_false_default.rb create mode 100644 db/migrate/20190115054216_add_error_notification_sent_to_remote_mirrors.rb create mode 100644 db/post_migrate/20181010133639_backfill_store_project_full_path_in_repo.rb create mode 100644 db/post_migrate/20181121111200_schedule_runners_token_encryption.rb create mode 100644 db/post_migrate/20181130102132_backfill_hashed_project_repositories.rb create mode 100644 db/post_migrate/20181204154019_populate_mr_metrics_with_events_data.rb create mode 100644 db/post_migrate/20181219145520_migrate_cluster_configure_worker_sidekiq_queue.rb create mode 100644 doc/api/project_clusters.md create mode 100644 doc/api/releases/index.md create mode 100644 doc/api/releases/links.md create mode 100644 doc/api/suggestions.md delete mode 100644 doc/ci/autodeploy/img/auto_deploy_btn.png delete mode 100644 doc/ci/autodeploy/img/auto_deploy_button.png delete mode 100644 doc/ci/autodeploy/img/auto_deploy_dropdown.png delete mode 100644 doc/ci/autodeploy/img/auto_monitoring.png delete mode 100644 doc/ci/autodeploy/img/guide_connect_cluster.png delete mode 100644 doc/ci/autodeploy/img/guide_integration.png delete mode 100644 doc/ci/autodeploy/img/guide_secret.png delete mode 100644 doc/ci/examples/deploy_spring_boot_to_cloud_foundry/img/cloud_foundry_secret_variables.png create mode 100644 doc/ci/examples/deploy_spring_boot_to_cloud_foundry/img/cloud_foundry_variables.png delete mode 100644 doc/ci/examples/laravel_with_gitlab_and_envoy/img/container_registry_checkbox.png delete mode 100644 doc/ci/examples/laravel_with_gitlab_and_envoy/img/secret_variables_page.png create mode 100644 doc/ci/examples/laravel_with_gitlab_and_envoy/img/variables_page.png create mode 100644 doc/ci/img/pipelines-goal.png delete mode 100644 doc/ci/img/pipelines-goal.svg create mode 100644 doc/ci/img/types-of-pipelines.png delete mode 100644 doc/ci/img/types-of-pipelines.svg create mode 100644 doc/ci/merge_request_pipelines/img/merge_request.png create mode 100644 doc/ci/merge_request_pipelines/img/pipeline_detail.png create mode 100644 doc/ci/merge_request_pipelines/index.md create mode 100644 doc/development/documentation/feature-change-workflow.md create mode 100644 doc/development/documentation/improvement-workflow.md create mode 100644 doc/development/documentation/site_architecture/global_nav.md create mode 100644 doc/development/documentation/site_architecture/index.md create mode 100644 doc/development/fe_guide/graphql.md create mode 100644 doc/development/logging.md create mode 100644 doc/img/devops-stages.png delete mode 100644 doc/img/devops_lifecycle.png create mode 100644 doc/integration/img/github_app_entry.png create mode 100644 doc/integration/img/github_register_app.png create mode 100644 doc/update/11.5-to-11.6.md create mode 100644 doc/update/11.6-to-11.7.md delete mode 100644 doc/update/upgrader.md create mode 100644 doc/user/abuse_reports.md create mode 100644 doc/user/admin_area/abuse_reports.md create mode 100644 doc/user/admin_area/custom_project_templates.md create mode 100644 doc/user/admin_area/img/abuse_report_blocked_user.png create mode 100644 doc/user/admin_area/img/abuse_reports_page.png create mode 100644 doc/user/admin_area/settings/img/import_sources.png create mode 100644 doc/user/discussions/img/insert_suggestion.png create mode 100644 doc/user/discussions/img/make_suggestion.png create mode 100644 doc/user/discussions/img/suggestion.png create mode 100644 doc/user/group/clusters/index.md create mode 100644 doc/user/group/custom_project_templates.md create mode 100644 doc/user/project/clusters/serverless/img/function-execution.png create mode 100644 doc/user/project/clusters/serverless/img/serverless-page.png create mode 100644 doc/user/project/integrations/discord_notifications.md create mode 100644 doc/user/project/integrations/img/emails_on_push_email.png create mode 100644 doc/user/project/integrations/prometheus_library/index.md create mode 100644 doc/user/project/integrations/prometheus_library/nginx_ingress_vts.md create mode 100644 doc/user/project/issues/csv_import.md create mode 100644 doc/user/project/issues/img/import_csv_button.png create mode 100644 doc/user/project/issues/img/similar_issues.png create mode 100644 doc/user/project/issues/similar_issues.md create mode 100644 doc/user/project/operations/error_tracking.md create mode 100644 doc/user/project/operations/img/error_tracking_list.png create mode 100644 doc/user/project/pages/lets_encrypt_for_gitlab_pages.md create mode 100644 doc/user/project/releases.md create mode 100644 doc/user/project/releases/img/releases.png create mode 100644 doc/user/project/releases/index.md create mode 100644 doc/user/project/repository/img/repository_cleanup.png create mode 100644 doc/user/search/img/dashboard_links.png delete mode 100644 doc/user/search/img/left_menu_bar.png create mode 100644 jest.config.js create mode 100644 lib/api/helpers/version.rb create mode 100644 lib/api/project_clusters.rb create mode 100644 lib/api/release/links.rb create mode 100644 lib/api/releases.rb create mode 100644 lib/api/suggestions.rb create mode 100644 lib/banzai/filter/front_matter_filter.rb create mode 100644 lib/banzai/filter/suggestion_filter.rb delete mode 100644 lib/banzai/filter/yaml_front_matter_filter.rb create mode 100644 lib/banzai/suggestions_parser.rb create mode 100644 lib/gitlab/background_migration/backfill_hashed_project_repositories.rb create mode 100644 lib/gitlab/background_migration/backfill_legacy_project_repositories.rb create mode 100644 lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config.rb create mode 100644 lib/gitlab/background_migration/backfill_project_repositories.rb create mode 100644 lib/gitlab/background_migration/encrypt_runners_tokens.rb create mode 100644 lib/gitlab/background_migration/models/encrypt_columns/namespace.rb create mode 100644 lib/gitlab/background_migration/models/encrypt_columns/project.rb create mode 100644 lib/gitlab/background_migration/models/encrypt_columns/runner.rb create mode 100644 lib/gitlab/background_migration/models/encrypt_columns/settings.rb create mode 100644 lib/gitlab/background_migration/populate_merge_request_metrics_with_events_data_improved.rb create mode 100644 lib/gitlab/background_migration/redact_links/redactable.rb create mode 100644 lib/gitlab/branch_push_merge_commit_analyzer.rb create mode 100644 lib/gitlab/checks/base_checker.rb create mode 100644 lib/gitlab/checks/branch_check.rb delete mode 100644 lib/gitlab/checks/commit_check.rb create mode 100644 lib/gitlab/checks/diff_check.rb create mode 100644 lib/gitlab/checks/lfs_check.rb create mode 100644 lib/gitlab/checks/push_check.rb create mode 100644 lib/gitlab/checks/tag_check.rb delete mode 100644 lib/gitlab/ci/config/entry/attributable.rb delete mode 100644 lib/gitlab/ci/config/entry/boolean.rb delete mode 100644 lib/gitlab/ci/config/entry/configurable.rb delete mode 100644 lib/gitlab/ci/config/entry/factory.rb delete mode 100644 lib/gitlab/ci/config/entry/legacy_validation_helpers.rb delete mode 100644 lib/gitlab/ci/config/entry/node.rb delete mode 100644 lib/gitlab/ci/config/entry/simplifiable.rb delete mode 100644 lib/gitlab/ci/config/entry/undefined.rb delete mode 100644 lib/gitlab/ci/config/entry/unspecified.rb delete mode 100644 lib/gitlab/ci/config/entry/validatable.rb delete mode 100644 lib/gitlab/ci/config/entry/validator.rb delete mode 100644 lib/gitlab/ci/config/entry/validators.rb create mode 100644 lib/gitlab/ci/config/external/file/project.rb create mode 100644 lib/gitlab/ci/config/external/file/template.rb create mode 100644 lib/gitlab/ci/parsers.rb create mode 100644 lib/gitlab/ci/parsers/parser_error.rb delete mode 100644 lib/gitlab/ci/parsers/test.rb create mode 100644 lib/gitlab/ci/status/bridge/common.rb create mode 100644 lib/gitlab/ci/status/bridge/factory.rb create mode 100644 lib/gitlab/config/entry/attributable.rb create mode 100644 lib/gitlab/config/entry/boolean.rb create mode 100644 lib/gitlab/config/entry/configurable.rb create mode 100644 lib/gitlab/config/entry/factory.rb create mode 100644 lib/gitlab/config/entry/legacy_validation_helpers.rb create mode 100644 lib/gitlab/config/entry/node.rb create mode 100644 lib/gitlab/config/entry/simplifiable.rb create mode 100644 lib/gitlab/config/entry/undefined.rb create mode 100644 lib/gitlab/config/entry/unspecified.rb create mode 100644 lib/gitlab/config/entry/validatable.rb create mode 100644 lib/gitlab/config/entry/validator.rb create mode 100644 lib/gitlab/config/entry/validators.rb create mode 100644 lib/gitlab/config/loader/format_error.rb rename lib/gitlab/{ci/config/loader.rb => config/loader/yaml.rb} (66%) create mode 100644 lib/gitlab/correlation_id.rb delete mode 100644 lib/gitlab/database/arel_methods.rb create mode 100644 lib/gitlab/database/count/exact_count_strategy.rb create mode 100644 lib/gitlab/database/count/reltuples_count_strategy.rb create mode 100644 lib/gitlab/database/count/tablesample_count_strategy.rb create mode 100644 lib/gitlab/discussions_diff/file_collection.rb create mode 100644 lib/gitlab/discussions_diff/highlight_cache.rb create mode 100644 lib/gitlab/error_tracking/error.rb create mode 100644 lib/gitlab/git/object_pool.rb create mode 100644 lib/gitlab/git/repository_cleaner.rb create mode 100644 lib/gitlab/gitaly_client/cleanup_service.rb create mode 100644 lib/gitlab/gitaly_client/object_pool_service.rb create mode 100644 lib/gitlab/grape_logging/loggers/correlation_id_logger.rb create mode 100644 lib/gitlab/graphql/loaders/batch_model_loader.rb create mode 100644 lib/gitlab/import_export/relation_rename_service.rb create mode 100644 lib/gitlab/json_cache.rb create mode 100644 lib/gitlab/kubernetes/helm/client_command.rb create mode 100644 lib/gitlab/kubernetes/logger.rb create mode 100644 lib/gitlab/middleware/correlation_id.rb rename lib/gitlab/{group_hierarchy.rb => object_hierarchy.rb} (62%) create mode 100644 lib/gitlab/prometheus/query_variables.rb create mode 100644 lib/gitlab/search/found_blob.rb create mode 100644 lib/gitlab/sidekiq_middleware/correlation_injector.rb create mode 100644 lib/gitlab/sidekiq_middleware/correlation_logger.rb delete mode 100644 lib/gitlab/upgrader.rb create mode 100644 lib/json_web_token/hmac_token.rb create mode 100644 lib/sentry/client.rb create mode 100644 lib/serializers/json.rb create mode 100644 lib/system_check/gitaly_check.rb create mode 100644 lib/system_check/gitlab_shell_check.rb create mode 100644 lib/system_check/incoming_email_check.rb create mode 100644 lib/system_check/ldap_check.rb create mode 100644 lib/system_check/rake_task/app_task.rb create mode 100644 lib/system_check/rake_task/gitaly_task.rb create mode 100644 lib/system_check/rake_task/gitlab_shell_task.rb create mode 100644 lib/system_check/rake_task/gitlab_task.rb create mode 100644 lib/system_check/rake_task/incoming_email_task.rb create mode 100644 lib/system_check/rake_task/ldap_task.rb create mode 100644 lib/system_check/rake_task/orphans/namespace_task.rb create mode 100644 lib/system_check/rake_task/orphans/repository_task.rb create mode 100644 lib/system_check/rake_task/orphans_task.rb create mode 100644 lib/system_check/rake_task/rake_task_helpers.rb create mode 100644 lib/system_check/rake_task/sidekiq_task.rb create mode 100644 lib/system_check/sidekiq_check.rb create mode 100644 lib/tasks/haml-lint.rake create mode 100644 lib/tasks/rubocop.rake create mode 100644 lib/tasks/scss-lint.rake create mode 100644 qa/Rakefile create mode 100644 qa/qa/page/component/legacy_clone_panel.rb create mode 100644 qa/qa/page/component/note.rb create mode 100644 qa/qa/page/project/commit/show.rb create mode 100644 qa/qa/page/project/settings/mirroring_repositories.rb create mode 100644 qa/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb create mode 100644 qa/qa/specs/features/browser_ui/3_create/repository/user_views_raw_diff_patch_requests_spec.rb create mode 100644 qa/qa/support/api.rb create mode 100644 qa/qa/tools/revoke_all_personal_access_tokens.rb create mode 100644 qa/spec/resource/user_spec.rb create mode 100644 rubocop/cop/inject_enterprise_edition_module.rb create mode 100644 rubocop/cop/safe_params.rb delete mode 100755 scripts/rails5-gemfile-lock-check create mode 100644 spec/controllers/admin/requests_profiles_controller_spec.rb create mode 100644 spec/controllers/groups/clusters/applications_controller_spec.rb create mode 100644 spec/controllers/groups/clusters_controller_spec.rb create mode 100644 spec/controllers/projects/error_tracking_controller_spec.rb create mode 100644 spec/controllers/projects/serverless/functions_controller_spec.rb create mode 100644 spec/controllers/projects/settings/operations_controller_spec.rb create mode 100644 spec/controllers/projects/tags/releases_controller_spec.rb create mode 100644 spec/db/schema_spec.rb create mode 100644 spec/factories/ci/bridge.rb create mode 100644 spec/factories/error_tracking/error.rb create mode 100644 spec/factories/pool_repositories.rb create mode 100644 spec/factories/project_error_tracking_settings.rb create mode 100644 spec/factories/project_repositories.rb create mode 100644 spec/factories/releases/link.rb create mode 100644 spec/factories/shards.rb create mode 100644 spec/factories/suggestions.rb delete mode 100644 spec/features/dashboard/milestone_filter_spec.rb create mode 100644 spec/features/dashboard/root_explore_spec.rb delete mode 100644 spec/features/explore/new_menu_spec.rb create mode 100644 spec/features/groups/clusters/user_spec.rb delete mode 100644 spec/features/issuables/default_sort_order_spec.rb create mode 100644 spec/features/issuables/sorting_list_spec.rb create mode 100644 spec/features/merge_request/user_expands_diff_spec.rb create mode 100644 spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb create mode 100644 spec/features/merge_request/user_suggests_changes_on_diff_spec.rb create mode 100644 spec/features/milestones/user_sees_breadcrumb_links_spec.rb create mode 100644 spec/features/projects/labels/user_sees_breadcrumb_links_spec.rb create mode 100644 spec/features/projects/serverless/functions_spec.rb create mode 100644 spec/features/projects/settings/operations_settings_spec.rb create mode 100644 spec/features/projects/tags/user_edits_tags_spec.rb create mode 100644 spec/finders/cluster_ancestors_finder_spec.rb create mode 100644 spec/finders/projects/serverless/functions_finder_spec.rb create mode 100644 spec/finders/releases_finder_spec.rb create mode 100644 spec/fixtures/api/schemas/entities/issuable_sidebar_todo.json create mode 100644 spec/fixtures/api/schemas/entities/issue_boards.json create mode 100644 spec/fixtures/api/schemas/entities/issue_sidebar_extras.json create mode 100644 spec/fixtures/api/schemas/entities/merge_request_sidebar.json create mode 100644 spec/fixtures/api/schemas/entities/merge_request_sidebar_extras.json create mode 100644 spec/fixtures/api/schemas/error_tracking/error.json create mode 100644 spec/fixtures/api/schemas/error_tracking/index.json create mode 100644 spec/fixtures/api/schemas/public_api/v4/milestone.json create mode 100644 spec/fixtures/api/schemas/release.json create mode 100644 spec/fixtures/api/schemas/release/link.json create mode 100644 spec/fixtures/api/schemas/release/links.json create mode 100644 spec/fixtures/api/schemas/releases.json create mode 100644 spec/fixtures/authentication/saml2_response.xml create mode 100644 spec/fixtures/bfg_object_map.txt create mode 100644 spec/fixtures/csv_comma.csv create mode 100644 spec/fixtures/csv_semicolon.csv create mode 100644 spec/fixtures/csv_tab.csv create mode 100644 spec/fixtures/emails/valid_new_issue_legacy.eml create mode 100644 spec/fixtures/emails/valid_new_merge_request_legacy.eml rename spec/fixtures/emails/{wrong_incoming_email_token.eml => wrong_issue_incoming_email_token.eml} (88%) create mode 100644 spec/fixtures/emails/wrong_merge_request_incoming_email_token.eml create mode 100644 spec/fixtures/security-reports/deprecated/gl-dependency-scanning-report.json create mode 100644 spec/fixtures/security-reports/deprecated/gl-sast-report.json create mode 100644 spec/fixtures/sentry/issues_sample_response.json create mode 100644 spec/frontend/.eslintrc.yml create mode 100644 spec/frontend/helpers/test_constants.js rename spec/{javascripts => frontend}/pages/profiles/show/emoji_menu_spec.js (94%) create mode 100644 spec/frontend/test_setup.js create mode 100644 spec/frontend/vue_shared/components/notes/timeline_entry_item_spec.js create mode 100644 spec/graphql/resolvers/issues_resolver_spec.rb create mode 100644 spec/graphql/types/issue_type_spec.rb create mode 100644 spec/graphql/types/permission_types/issue_spec.rb create mode 100644 spec/helpers/application_settings_helper_spec.rb create mode 100644 spec/helpers/projects/error_tracking_helper_spec.rb create mode 100644 spec/helpers/sorting_helper_spec.rb create mode 100644 spec/initializers/active_record_locking_spec.rb create mode 100644 spec/initializers/lograge_spec.rb rename spec/initializers/{8_metrics_spec.rb => zz_metrics_spec.rb} (92%) create mode 100644 spec/javascripts/blob_edit/blob_bundle_spec.js create mode 100644 spec/javascripts/diffs/components/diff_table_cell_spec.js create mode 100644 spec/javascripts/diffs/components/inline_diff_table_row_spec.js create mode 100644 spec/javascripts/diffs/components/parallel_diff_table_row_spec.js create mode 100644 spec/javascripts/error_tracking/components/error_tracking_list_spec.js create mode 100644 spec/javascripts/error_tracking/store/mutation_spec.js create mode 100644 spec/javascripts/helpers/scroll_into_view_promise.js create mode 100644 spec/javascripts/helpers/wait_for_attribute_change.js create mode 100644 spec/javascripts/issuable_suggestions/components/app_spec.js create mode 100644 spec/javascripts/issuable_suggestions/components/item_spec.js create mode 100644 spec/javascripts/issuable_suggestions/mock_data.js create mode 100644 spec/javascripts/lib/utils/file_upload_spec.js create mode 100644 spec/javascripts/releases/components/app_spec.js create mode 100644 spec/javascripts/releases/components/release_block_spec.js create mode 100644 spec/javascripts/releases/mock_data.js create mode 100644 spec/javascripts/releases/store/actions_spec.js create mode 100644 spec/javascripts/releases/store/helpers.js create mode 100644 spec/javascripts/releases/store/mutations_spec.js create mode 100644 spec/javascripts/user_popovers_spec.js create mode 100644 spec/javascripts/vue_mr_widget/components/mr_widget_container_spec.js create mode 100644 spec/javascripts/vue_mr_widget/components/mr_widget_icon_spec.js create mode 100644 spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_container_spec.js create mode 100644 spec/javascripts/vue_shared/components/diff_viewer/viewers/mode_changed_spec.js create mode 100644 spec/javascripts/vue_shared/components/gl_modal_vuex_spec.js create mode 100644 spec/javascripts/vue_shared/components/issue/issue_assignees_spec.js create mode 100644 spec/javascripts/vue_shared/components/issue/issue_milestone_spec.js create mode 100644 spec/javascripts/vue_shared/components/markdown/suggestion_diff_header_spec.js create mode 100644 spec/javascripts/vue_shared/components/markdown/suggestion_diff_spec.js create mode 100644 spec/javascripts/vue_shared/components/markdown/suggestions_spec.js create mode 100644 spec/javascripts/vue_shared/components/user_avatar/user_avatar_list_spec.js create mode 100644 spec/javascripts/vue_shared/components/user_popover/user_popover_spec.js create mode 100644 spec/javascripts/vuex_shared/modules/modal/actions_spec.js create mode 100644 spec/javascripts/vuex_shared/modules/modal/mutations_spec.js create mode 100644 spec/lib/api/api_spec.rb create mode 100644 spec/lib/api/helpers/version_spec.rb create mode 100644 spec/lib/banzai/filter/front_matter_filter_spec.rb create mode 100644 spec/lib/banzai/filter/suggestion_filter_spec.rb delete mode 100644 spec/lib/banzai/filter/yaml_front_matter_filter_spec.rb create mode 100644 spec/lib/banzai/suggestions_parser_spec.rb create mode 100644 spec/lib/constraints/feature_constrainer_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_hashed_project_repositories_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_legacy_project_repositories_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_project_fullpath_in_repo_config_spec.rb create mode 100644 spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb create mode 100644 spec/lib/gitlab/background_migration/encrypt_runners_tokens_spec.rb create mode 100644 spec/lib/gitlab/background_migration/populate_merge_request_metrics_with_events_data_improved_spec.rb create mode 100644 spec/lib/gitlab/branch_push_merge_commit_analyzer_spec.rb create mode 100644 spec/lib/gitlab/checks/branch_check_spec.rb create mode 100644 spec/lib/gitlab/checks/diff_check_spec.rb create mode 100644 spec/lib/gitlab/checks/lfs_check_spec.rb create mode 100644 spec/lib/gitlab/checks/push_check_spec.rb create mode 100644 spec/lib/gitlab/checks/tag_check_spec.rb create mode 100644 spec/lib/gitlab/ci/config/external/file/project_spec.rb create mode 100644 spec/lib/gitlab/ci/config/external/file/template_spec.rb rename spec/lib/gitlab/ci/{parsers/test_spec.rb => parsers_spec.rb} (64%) rename spec/lib/gitlab/{ci => }/config/entry/attributable_spec.rb (87%) rename spec/lib/gitlab/{ci => }/config/entry/boolean_spec.rb (93%) rename spec/lib/gitlab/{ci => }/config/entry/configurable_spec.rb (82%) rename spec/lib/gitlab/{ci => }/config/entry/factory_spec.rb (86%) rename spec/lib/gitlab/{ci => }/config/entry/simplifiable_spec.rb (97%) rename spec/lib/gitlab/{ci => }/config/entry/undefined_spec.rb (93%) rename spec/lib/gitlab/{ci => }/config/entry/unspecified_spec.rb (92%) rename spec/lib/gitlab/{ci => }/config/entry/validatable_spec.rb (84%) rename spec/lib/gitlab/{ci => }/config/entry/validator_spec.rb (96%) rename spec/lib/gitlab/{ci/config/loader_spec.rb => config/loader/yaml_spec.rb} (84%) create mode 100644 spec/lib/gitlab/correlation_id_spec.rb create mode 100644 spec/lib/gitlab/crypto_helper_spec.rb create mode 100644 spec/lib/gitlab/database/count/exact_count_strategy_spec.rb create mode 100644 spec/lib/gitlab/database/count/reltuples_count_strategy_spec.rb create mode 100644 spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb create mode 100644 spec/lib/gitlab/discussions_diff/file_collection_spec.rb create mode 100644 spec/lib/gitlab/discussions_diff/highlight_cache_spec.rb create mode 100644 spec/lib/gitlab/git/object_pool_spec.rb create mode 100644 spec/lib/gitlab/git/remote_mirror_spec.rb create mode 100644 spec/lib/gitlab/git/repository_cleaner_spec.rb create mode 100644 spec/lib/gitlab/gitaly_client/cleanup_service_spec.rb create mode 100644 spec/lib/gitlab/gitaly_client/object_pool_service_spec.rb create mode 100644 spec/lib/gitlab/graphql/loaders/batch_model_loader_spec.rb create mode 100644 spec/lib/gitlab/import_export/relation_rename_service_spec.rb create mode 100644 spec/lib/gitlab/json_cache_spec.rb rename spec/lib/gitlab/{group_hierarchy_spec.rb => object_hierarchy_spec.rb} (80%) create mode 100644 spec/lib/gitlab/prometheus/query_variables_spec.rb create mode 100644 spec/lib/gitlab/search/found_blob_spec.rb create mode 100644 spec/lib/gitlab/sidekiq_middleware/correlation_injector_spec.rb create mode 100644 spec/lib/gitlab/sidekiq_middleware/correlation_logger_spec.rb delete mode 100644 spec/lib/gitlab/upgrader_spec.rb create mode 100644 spec/lib/json_web_token/hmac_token_spec.rb create mode 100644 spec/lib/sentry/client_spec.rb create mode 100644 spec/lib/serializers/json_spec.rb create mode 100644 spec/mailers/emails/issues_spec.rb create mode 100644 spec/migrations/backfill_releases_name_with_tag_name_spec.rb create mode 100644 spec/migrations/backfill_store_project_full_path_in_repo_spec.rb create mode 100644 spec/migrations/migrate_cluster_configure_worker_sidekiq_queue_spec.rb create mode 100644 spec/migrations/populate_mr_metrics_with_events_data_spec.rb create mode 100644 spec/migrations/schedule_runners_token_encryption_spec.rb create mode 100644 spec/models/ci/bridge_spec.rb create mode 100644 spec/models/clusters/applications/cert_manager_spec.rb create mode 100644 spec/models/concerns/token_authenticatable_strategies/base_spec.rb create mode 100644 spec/models/concerns/token_authenticatable_strategies/encrypted_spec.rb create mode 100644 spec/models/error_tracking/project_error_tracking_setting_spec.rb create mode 100644 spec/models/pool_repository_spec.rb create mode 100644 spec/models/project_import_data_spec.rb create mode 100644 spec/models/project_repository_spec.rb create mode 100644 spec/models/project_services/discord_service_spec.rb create mode 100644 spec/models/releases/link_spec.rb create mode 100644 spec/models/releases/source_spec.rb create mode 100644 spec/models/suggestion_spec.rb create mode 100644 spec/models/uploads/fog_spec.rb create mode 100644 spec/models/uploads/local_spec.rb create mode 100644 spec/presenters/group_clusterable_presenter_spec.rb create mode 100644 spec/requests/api/graphql/project/issues_spec.rb create mode 100644 spec/requests/api/project_clusters_spec.rb delete mode 100644 spec/requests/api/redacted_events_spec.rb create mode 100644 spec/requests/api/release/links_spec.rb create mode 100644 spec/requests/api/releases_spec.rb create mode 100644 spec/requests/api/suggestions_spec.rb create mode 100644 spec/rubocop/cop/inject_enterprise_edition_module_spec.rb create mode 100644 spec/rubocop/cop/safe_params_spec.rb create mode 100644 spec/serializers/discussion_diff_file_entity_spec.rb create mode 100644 spec/serializers/issue_board_entity_spec.rb delete mode 100644 spec/serializers/merge_request_basic_serializer_spec.rb create mode 100644 spec/serializers/project_mirror_entity_spec.rb create mode 100644 spec/serializers/remote_mirror_entity_spec.rb create mode 100644 spec/serializers/suggestion_entity_spec.rb create mode 100644 spec/serializers/trigger_variable_entity_spec.rb create mode 100644 spec/services/ci/archive_trace_service_spec.rb create mode 100644 spec/services/ci/destroy_pipeline_service_spec.rb create mode 100644 spec/services/clusters/build_service_spec.rb rename spec/services/clusters/gcp/kubernetes/{create_service_account_service_spec.rb => create_or_update_service_account_service_spec.rb} (89%) create mode 100644 spec/services/clusters/refresh_service_spec.rb delete mode 100644 spec/services/create_release_service_spec.rb create mode 100644 spec/services/error_tracking/list_issues_service_spec.rb create mode 100644 spec/services/issuable/clone/attributes_rewriter_spec.rb create mode 100644 spec/services/issuable/clone/content_rewriter_spec.rb create mode 100644 spec/services/issues/import_csv_service_spec.rb create mode 100644 spec/services/projects/cleanup_service_spec.rb create mode 100644 spec/services/projects/operations/update_service_spec.rb create mode 100644 spec/services/releases/create_service_spec.rb create mode 100644 spec/services/releases/destroy_service_spec.rb create mode 100644 spec/services/releases/update_service_spec.rb create mode 100644 spec/services/suggestions/apply_service_spec.rb create mode 100644 spec/services/suggestions/create_service_spec.rb delete mode 100644 spec/services/update_release_service_spec.rb create mode 100644 spec/support/active_record_enum.rb delete mode 100644 spec/support/gitaly.rb create mode 100644 spec/support/helpers/features/list_rows_helpers.rb delete mode 100644 spec/support/helpers/filter_item_select_helper.rb create mode 100644 spec/support/helpers/user_login_helper.rb create mode 100644 spec/support/shared_contexts/change_access_checks_shared_context.rb rename spec/support/shared_contexts/{email_shared_blocks.rb => email_shared_context.rb} (100%) create mode 100644 spec/support/shared_examples/controllers/set_sort_order_from_user_preference_shared_examples.rb create mode 100644 spec/support/shared_examples/lib/gitlab/background_migration/backfill_project_repositories_examples.rb create mode 100644 spec/support/shared_examples/models/chat_service_spec.rb create mode 100644 spec/support/shared_examples/models/member_shared_examples.rb create mode 100644 spec/support/shared_examples/policies/clusterable_shared_examples.rb create mode 100644 spec/support/shared_examples/project_list_shared_examples.rb create mode 100644 spec/support/shared_examples/serializers/diff_file_entity_examples.rb create mode 100644 spec/support/shared_examples/services/check_ingress_ip_address_service_shared_examples.rb create mode 100644 spec/tasks/gitlab/web_hook_rake_spec.rb create mode 100644 spec/views/layouts/header/_new_dropdown.haml_spec.rb rename spec/{features/admin/admin_active_tab_spec.rb => views/layouts/nav/sidebar/_admin.html.haml_spec.rb} (57%) create mode 100644 spec/views/notify/changed_milestone_email.html.haml_spec.rb create mode 100644 spec/views/projects/settings/operations/show.html.haml_spec.rb create mode 100644 spec/workers/cluster_configure_worker_spec.rb delete mode 100644 spec/workers/cluster_platform_configure_worker_spec.rb create mode 100644 spec/workers/import_issues_csv_worker_spec.rb create mode 100644 spec/workers/object_pool/create_worker_spec.rb create mode 100644 spec/workers/object_pool/destroy_worker_spec.rb create mode 100644 spec/workers/object_pool/join_worker_spec.rb create mode 100644 spec/workers/remote_mirror_notification_worker_spec.rb delete mode 100644 spec/workers/remove_old_web_hook_logs_worker_spec.rb create mode 100644 spec/workers/repository_cleanup_worker_spec.rb create mode 100644 vendor/cert_manager/cluster_issuer.yaml create mode 100644 vendor/cert_manager/values.yaml create mode 100644 vendor/gitignore/Global/PuTTY.gitignore create mode 100644 vendor/gitignore/Global/Virtuoso.gitignore diff --git a/.babelrc.js b/.babelrc.js index 27caf378b9..bfcc7d9663 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -35,4 +35,10 @@ if (BABEL_ENV === 'karma' || BABEL_ENV === 'coverage') { plugins.push('babel-plugin-rewire'); } +// Jest is running in node environment +if (BABEL_ENV === 'jest') { + plugins.push('transform-es2015-modules-commonjs'); + plugins.push('dynamic-import-node'); +} + module.exports = { presets, plugins }; diff --git a/.eslintignore b/.eslintignore index 33a8186fad..f78840e67b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,6 +2,7 @@ /config/ /builds/ /coverage/ +/coverage-frontend/ /coverage-javascript/ /node_modules/ /public/ diff --git a/.eslintrc.yml b/.eslintrc.yml index fe0d5f5dce..b0794bb743 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -29,9 +29,8 @@ rules: import/no-useless-path-segments: off lines-between-class-members: off # Disabled for now, to make the plugin-vue 4.5 -> 5.0 update smoother - vue/html-closing-bracket-newline: off - vue/html-closing-bracket-spacing: off vue/no-confusing-v-for-v-if: error vue/no-unused-components: off vue/no-use-v-if-with-v-for: off vue/no-v-html: off + vue/use-v-on-exact: off diff --git a/.gitignore b/.gitignore index aecaae95b8..65f61e1fad 100644 --- a/.gitignore +++ b/.gitignore @@ -78,5 +78,5 @@ eslint-report.html /plugins/* /.gitlab_pages_secret package-lock.json -/junit_rspec.xml -/junit_karma.xml +/junit_*.xml +/coverage-frontend/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e218910f9e..45de5ce61c 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.5-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.5.3-golang-1.9-git-2.18-chrome-69.0-node-10.x-yarn-1.12-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.5-golang-1.9-git - gitlab-org .default-cache: &default-cache - key: "ruby-2.4.5-debian-stretch-with-yarn" + key: "debian-stretch-ruby-2.5.3-node-10.x" paths: - vendor/ruby - .yarn-cache/ @@ -32,6 +32,7 @@ variables: GET_SOURCES_ATTEMPTS: "3" KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master.json FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json + BUILD_ASSETS_IMAGE: "false" before_script: - bundle --version @@ -47,6 +48,7 @@ after_script: stages: - build - prepare + - merge - test - post-test - pages @@ -75,16 +77,6 @@ stages: - mysql:5.7 - redis:alpine -.rails5: &rails5 - allow_failure: true - only: - variables: - - $CI_COMMIT_REF_NAME =~ /rails5/ - - $RAILS5_ENABLED - variables: - BUNDLE_GEMFILE: "Gemfile.rails5" - RAILS5: "true" - # Skip all jobs except the ones that begin with 'docs/'. # Used for commits including ONLY documentation changes. # https://docs.gitlab.com/ce/development/documentation/#testing @@ -121,7 +113,7 @@ stages: <<: *except-docs-and-qa .single-script-job: &single-script-job - image: ruby:2.4-alpine + image: ruby:2.5-alpine stage: test cache: {} dependencies: [] @@ -148,13 +140,12 @@ stages: stage: test script: - JOB_NAME=( $CI_JOB_NAME ) - - export CI_NODE_INDEX=${JOB_NAME[-2]} - - export CI_NODE_TOTAL=${JOB_NAME[-1]} - - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json + - TEST_TOOL=${JOB_NAME[0]} + - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - export KNAPSACK_GENERATE_REPORT=true - export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH} - - export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - - export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json + - export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json + - export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - export FLAKY_RSPEC_GENERATE_REPORT=true - export CACHE_CLASSES=true - cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH} @@ -177,18 +168,10 @@ stages: <<: *rspec-metadata <<: *use-pg -.rspec-metadata-pg-rails5: &rspec-metadata-pg-rails5 - <<: *rspec-metadata-pg - <<: *rails5 - .rspec-metadata-mysql: &rspec-metadata-mysql <<: *rspec-metadata <<: *use-mysql -.rspec-metadata-mysql-rails5: &rspec-metadata-mysql-rails5 - <<: *rspec-metadata-mysql - <<: *rails5 - .only-canonical-masters: &only-canonical-masters only: - master@gitlab-org/gitlab-ce @@ -227,6 +210,8 @@ stages: script: - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v9.3.0 - git checkout -f FETCH_HEAD + - sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile + - bundle update google-protobuf grpc - bundle install $BUNDLE_INSTALL_FLAGS - date - cp config/gitlab.yml.example config/gitlab.yml @@ -246,10 +231,16 @@ package-and-qa: <<: *single-script-job variables: <<: *single-script-job-variables + API_TOKEN: "${GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN}" SCRIPT_NAME: trigger-build retry: 0 script: - gem install gitlab --no-document + - apk add --update openssl curl jq + - wget $CI_PROJECT_URL/raw/$CI_COMMIT_SHA/scripts/review_apps/review-apps.sh + - chmod 755 review-apps.sh + - source ./review-apps.sh + - wait_for_job_to_be_done "gitlab:assets:compile" - ./$SCRIPT_NAME omnibus when: manual only: @@ -316,7 +307,7 @@ review-docs-cleanup: # Trigger a docker image build in CNG (Cloud Native GitLab) repository # cloud-native-image: - image: ruby:2.4-alpine + image: ruby:2.5-alpine before_script: [] dependencies: [] stage: post-test @@ -324,6 +315,7 @@ cloud-native-image: variables: GIT_DEPTH: "1" cache: {} + when: always script: - gem install gitlab --no-document - CNG_PROJECT_PATH="gitlab-org/build/CNG" BUILD_TRIGGER_TOKEN=$CI_JOB_TOKEN ./scripts/trigger-build cng @@ -369,7 +361,7 @@ update-tests-metadata: flaky-examples-check: <<: *dedicated-runner - image: ruby:2.4-alpine + image: ruby:2.5-alpine services: [] before_script: [] variables: @@ -427,7 +419,6 @@ setup-test-env: script: - bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init' - scripts/gitaly-test-build # Do not use 'bundle exec' here - - BUNDLE_GEMFILE=Gemfile.rails5 bundle install $BUNDLE_INSTALL_FLAGS artifacts: expire_in: 7d paths: @@ -435,11 +426,54 @@ setup-test-env: - config/secrets.yml - vendor/gitaly-ruby +# GitLab Review apps +.review-base: &review-base + <<: *dedicated-no-docs-no-db-pull-cache-job + image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base + stage: test + cache: {} + dependencies: [] + environment: &review-environment + name: review/${CI_COMMIT_REF_NAME} + url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN} + only: + refs: + - branches@gitlab-org/gitlab-ce + - branches@gitlab-org/gitlab-ee + kubernetes: active + except: + refs: + - master + - /(^docs[\/-].*|.*-docs$)/ + before_script: [] + +.review-docker: &review-docker + <<: *review-base + image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine + services: + - docker:stable-dind + tags: + - gitlab-org + - docker + variables: &review-docker-variables + GIT_DEPTH: "1" + DOCKER_DRIVER: overlay2 + DOCKER_HOST: tcp://docker:2375 + LATEST_QA_IMAGE: "gitlab/${CI_PROJECT_NAME}-qa:nightly" + QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab/${CI_PROJECT_NAME}-qa:${CI_COMMIT_REF_SLUG}" + +build-qa-image: + <<: *review-docker + stage: prepare + script: + - time docker build --cache-from ${LATEST_QA_IMAGE} --tag ${QA_IMAGE} ./qa/ + - echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY} + - time docker push ${QA_IMAGE} + danger-review: <<: *pull-cache image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger stage: test - allow_failure: true dependencies: [] before_script: [] only: @@ -457,129 +491,13 @@ danger-review: - yarn install --frozen-lockfile --cache-folder .yarn-cache - danger --fail-on-errors=true -rspec-pg 0 30: *rspec-metadata-pg -rspec-pg 1 30: *rspec-metadata-pg -rspec-pg 2 30: *rspec-metadata-pg -rspec-pg 3 30: *rspec-metadata-pg -rspec-pg 4 30: *rspec-metadata-pg -rspec-pg 5 30: *rspec-metadata-pg -rspec-pg 6 30: *rspec-metadata-pg -rspec-pg 7 30: *rspec-metadata-pg -rspec-pg 8 30: *rspec-metadata-pg -rspec-pg 9 30: *rspec-metadata-pg -rspec-pg 10 30: *rspec-metadata-pg -rspec-pg 11 30: *rspec-metadata-pg -rspec-pg 12 30: *rspec-metadata-pg -rspec-pg 13 30: *rspec-metadata-pg -rspec-pg 14 30: *rspec-metadata-pg -rspec-pg 15 30: *rspec-metadata-pg -rspec-pg 16 30: *rspec-metadata-pg -rspec-pg 17 30: *rspec-metadata-pg -rspec-pg 18 30: *rspec-metadata-pg -rspec-pg 19 30: *rspec-metadata-pg -rspec-pg 20 30: *rspec-metadata-pg -rspec-pg 21 30: *rspec-metadata-pg -rspec-pg 22 30: *rspec-metadata-pg -rspec-pg 23 30: *rspec-metadata-pg -rspec-pg 24 30: *rspec-metadata-pg -rspec-pg 25 30: *rspec-metadata-pg -rspec-pg 26 30: *rspec-metadata-pg -rspec-pg 27 30: *rspec-metadata-pg -rspec-pg 28 30: *rspec-metadata-pg -rspec-pg 29 30: *rspec-metadata-pg +rspec-pg: + <<: *rspec-metadata-pg + parallel: 50 -rspec-mysql 0 30: *rspec-metadata-mysql -rspec-mysql 1 30: *rspec-metadata-mysql -rspec-mysql 2 30: *rspec-metadata-mysql -rspec-mysql 3 30: *rspec-metadata-mysql -rspec-mysql 4 30: *rspec-metadata-mysql -rspec-mysql 5 30: *rspec-metadata-mysql -rspec-mysql 6 30: *rspec-metadata-mysql -rspec-mysql 7 30: *rspec-metadata-mysql -rspec-mysql 8 30: *rspec-metadata-mysql -rspec-mysql 9 30: *rspec-metadata-mysql -rspec-mysql 10 30: *rspec-metadata-mysql -rspec-mysql 11 30: *rspec-metadata-mysql -rspec-mysql 12 30: *rspec-metadata-mysql -rspec-mysql 13 30: *rspec-metadata-mysql -rspec-mysql 14 30: *rspec-metadata-mysql -rspec-mysql 15 30: *rspec-metadata-mysql -rspec-mysql 16 30: *rspec-metadata-mysql -rspec-mysql 17 30: *rspec-metadata-mysql -rspec-mysql 18 30: *rspec-metadata-mysql -rspec-mysql 19 30: *rspec-metadata-mysql -rspec-mysql 20 30: *rspec-metadata-mysql -rspec-mysql 21 30: *rspec-metadata-mysql -rspec-mysql 22 30: *rspec-metadata-mysql -rspec-mysql 23 30: *rspec-metadata-mysql -rspec-mysql 24 30: *rspec-metadata-mysql -rspec-mysql 25 30: *rspec-metadata-mysql -rspec-mysql 26 30: *rspec-metadata-mysql -rspec-mysql 27 30: *rspec-metadata-mysql -rspec-mysql 28 30: *rspec-metadata-mysql -rspec-mysql 29 30: *rspec-metadata-mysql - -rspec-pg-rails5 0 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 1 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 2 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 3 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 4 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 5 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 6 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 7 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 8 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 9 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 10 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 11 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 12 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 13 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 14 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 15 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 16 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 17 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 18 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 19 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 20 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 21 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 22 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 23 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 24 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 25 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 26 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 27 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 28 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 29 30: *rspec-metadata-pg-rails5 - -rspec-mysql-rails5 0 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 1 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 2 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 3 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 4 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 5 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 6 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 7 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 8 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 9 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 10 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 11 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 12 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 13 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 14 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 15 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 16 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 17 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 18 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 19 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 20 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 21 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 22 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 23 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 24 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 25 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 26 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 27 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 28 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 29 30: *rspec-metadata-mysql-rails5 +rspec-mysql: + <<: *rspec-metadata-mysql + parallel: 50 static-analysis: <<: *dedicated-no-docs-no-db-pull-cache-job @@ -589,7 +507,7 @@ static-analysis: script: - scripts/static-analysis cache: - key: "ruby-2.4.5-debian-stretch-with-yarn-and-rubocop" + key: "debian-stretch-ruby-2.5.3-node-10.x-and-rubocop" paths: - vendor/ruby - .yarn-cache/ @@ -614,8 +532,7 @@ docs lint: # Build HTML from Markdown - bundle exec nanoc # Check the internal links - # Disabled until https://gitlab.com/gitlab-com/gitlab-docs/issues/305 is resolved - # - bundle exec nanoc check internal_links + - bundle exec nanoc check internal_links downtime_check: <<: *rake-exec @@ -626,14 +543,9 @@ downtime_check: - /(^docs[\/-].*|.*-docs$)/ - /(^qa[\/-].*|.*-qa$)/ -rails5_gemfile_lock_check: - <<: *dedicated-no-docs-no-db-pull-cache-job - <<: *except-docs-and-qa - script: - - scripts/rails5-gemfile-lock-check - ee_compat_check: <<: *rake-exec + dependencies: [] except: - master - tags @@ -695,8 +607,8 @@ 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 + <<: *dedicated-no-docs-pull-cache-job + image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-git-2.18-chrome-69.0-node-8.x-yarn-1.12-graphicsmagick-1.3.29-docker-18.06.1 dependencies: [] services: - docker:stable-dind @@ -723,8 +635,14 @@ gitlab:assets:compile: paths: - webpack-report/ - public/assets/ + only: + - //@gitlab-org/gitlab-ce + - //@gitlab-org/gitlab-ee + - //@gitlab/gitlabhq + - //@gitlab/gitlab-ee tags: - - docker + - gitlab-org-delivery + - high-cpu karma: <<: *dedicated-no-docs-pull-cache-job @@ -752,6 +670,32 @@ karma: reports: junit: junit_karma.xml +jest: + <<: *dedicated-no-docs-and-no-qa-pull-cache-job + <<: *use-pg + dependencies: + - compile-assets + - setup-test-env + script: + - scripts/gitaly-test-spawn + - date + - bundle exec rake karma:fixtures + - date + - yarn jest --ci --coverage + artifacts: + name: coverage-frontend + expire_in: 31d + when: always + paths: + - coverage-frontend/ + - junit_jest.xml + reports: + junit: junit_jest.xml + cache: + key: jest + paths: + - tmp/jest/jest/ + code_quality: <<: *dedicated-no-docs-no-db-pull-cache-job image: docker:stable @@ -776,7 +720,8 @@ code_quality: --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code artifacts: - paths: [gl-code-quality-report.json] + reports: + codequality: gl-code-quality-report.json expire_in: 1 week sast: @@ -800,7 +745,8 @@ sast: --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code artifacts: - paths: [gl-sast-report.json] + reports: + sast: gl-sast-report.json dependency_scanning: <<: *dedicated-no-docs-no-db-pull-cache-job @@ -822,7 +768,8 @@ dependency_scanning: --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$SP_VERSION" /code artifacts: - paths: [gl-dependency-scanning-report.json] + reports: + dependency_scanning: gl-dependency-scanning-report.json qa:internal: <<: *dedicated-no-docs-no-db-pull-cache-job @@ -840,6 +787,40 @@ qa:selectors: - bundle install - bundle exec bin/qa Test::Sanity::Selectors +.qa-frontend-node: &qa-frontend-node + stage: test + variables: + NODE_OPTIONS: --max_old_space_size=3584 + cache: + key: "$CI_JOB_NAME" + paths: + - .yarn-cache/ + dependencies: [] + before_script: [] + script: + - date + - yarn install --frozen-lockfile --cache-folder .yarn-cache + - date + - yarn run webpack-prod + <<: *except-docs + +qa-frontend-node:6: + <<: *qa-frontend-node + image: node:6-alpine + +qa-frontend-node:8: + <<: *qa-frontend-node + image: node:8-alpine + +qa-frontend-node:10: + <<: *qa-frontend-node + image: node:10-alpine + +qa-frontend-node:latest: + <<: *qa-frontend-node + image: node:alpine + allow_failure: true + coverage: # Don't include dedicated-no-docs-no-db-pull-cache-job here since we need to # download artifacts from all the rspec jobs instead of from setup-test-env only @@ -862,9 +843,7 @@ coverage: lint:javascript:report: <<: *dedicated-no-docs-and-no-qa-pull-cache-job stage: post-test - dependencies: - - compile-assets - - setup-test-env + dependencies: [] before_script: [] script: - date @@ -891,6 +870,8 @@ pages: - mv coverage-javascript/ public/coverage-javascript/ || true - mv eslint-report.html public/ || true - mv webpack-report/ public/webpack-report/ || true + - cp .public/assets/application-*.css public/application.css || true + - cp .public/assets/application-*.css.gz public/application.css.gz || true artifacts: paths: - public @@ -918,6 +899,7 @@ gitlab_git_test: variables: SETUP_DB: "false" before_script: [] + dependencies: [] cache: {} script: - spec/support/prepare-gitlab-git-test-for-commit --check-for-changes @@ -928,6 +910,7 @@ no_ee_check: variables: SETUP_DB: "false" before_script: [] + dependencies: [] cache: {} script: - scripts/no-ee-check @@ -935,86 +918,102 @@ no_ee_check: - //@gitlab-org/gitlab-ce # GitLab Review apps -review: - image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base - stage: test +review-deploy: + <<: *review-base + retry: 2 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" + HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" + DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" GITLAB_HELM_CHART_REF: "master" + API_TOKEN: "${GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN}" + environment: + <<: *review-environment + on_stop: review-stop + before_script: + - apk update && apk add jq + - gem install gitlab --no-document script: - export GITLAB_SHELL_VERSION=$( + +### Target audience + + + ### Further details -(Include use cases, benefits, and/or goals) + ### Proposal + + ### What does success look like, and how can we measure that? -(If no way to measure success, link to an issue that will implement a way to measure this) + ### Links / references diff --git a/.gitlab/issue_templates/Research proposal.md b/.gitlab/issue_templates/Research proposal.md deleted file mode 100644 index 5676656793..0000000000 --- a/.gitlab/issue_templates/Research proposal.md +++ /dev/null @@ -1,17 +0,0 @@ -### Background: - -(Include problem, use cases, benefits, and/or goals) - -**What questions are you trying to answer?** - -**Are you looking to verify an existing hypothesis or uncover new issues you should be exploring?** - -**What is the backstory of this project and how does it impact the approach?** - -**What do you already know about the areas you are exploring?** - -**What does success look like at the end of the project?** - -### Links / references: - -/label ~"UX research" diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md index 69cf7fe154..08651195d9 100644 --- a/.gitlab/issue_templates/Security developer workflow.md +++ b/.gitlab/issue_templates/Security developer workflow.md @@ -16,6 +16,7 @@ Set the title to: `[Security] Description of the original issue` - [ ] Add a link to the MR to the [links section](#links) - [ ] Add a link to an EE MR if required - [ ] Make sure the MR remains in-progress and gets approved after the review cycle, **but never merged**. +- [ ] Add a link to this issue on the original security issue. #### Backports @@ -37,6 +38,7 @@ Set the title to: `[Security] Description of the original issue` - [ ] Fill in any upgrade notes that users may need to take into account in the [details section](#details) - [ ] Add Yes/No and further details if needed to the migration and settings columns in the [details section](#details) - [ ] Add the nickname of the external user who found the issue (and/or HackerOne profile) to the Thanks row in the [details section](#details) +- [ ] Once your `master` MR is merged, comment on the original security issue with a link to that MR indicating the issue is fixed. ### Summary diff --git a/.gitlab/issue_templates/Test plan.md b/.gitlab/issue_templates/Test plan.md index db8e30c419..a3c3f4a650 100644 --- a/.gitlab/issue_templates/Test plan.md +++ b/.gitlab/issue_templates/Test plan.md @@ -64,7 +64,7 @@ Some features might be simple enough that they only involve one Component, while more complex features could involve multiple or even all. Example (from https://gitlab.com/gitlab-org/gitlab-ce/issues/50353): -* Respository is +* Repository is * Intuitive * It's easy to select the desired file template * It doesn't require unnecessary actions to save the change @@ -93,4 +93,4 @@ When adding new automated tests, please keep [testing levels](https://docs.gitla in mind. --> -/label ~Quality ~"test plan" \ No newline at end of file +/label ~Quality ~"test plan" diff --git a/.nvmrc b/.nvmrc index dba04c1e17..db24ab967f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -8.11.3 +10.13.0 diff --git a/.rubocop.yml b/.rubocop.yml index a95ded8af1..e8e550fdbd 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,7 +8,7 @@ require: - rubocop-rspec AllCops: - TargetRailsVersion: 4.2 + TargetRailsVersion: 5.0 Exclude: - 'vendor/**/*' - 'node_modules/**/*' @@ -50,7 +50,6 @@ Style/FrozenStringLiteralComment: - 'danger/**/*' - 'db/**/*' - 'ee/**/*' - - 'lib/gitlab/**/*' - 'lib/tasks/**/*' - 'qa/**/*' - 'rubocop/**/*' @@ -175,3 +174,9 @@ GitlabSecurity/PublicSend: - 'ee/db/**/*' - 'ee/lib/**/*.rake' - 'ee/spec/**/*' + +Cop/InjectEnterpriseEditionModule: + Enabled: true + Exclude: + - 'spec/**/*' + - 'ee/spec/**/*' diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 571df7534c..847a0f74aa 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -107,12 +107,6 @@ Lint/UriEscapeUnescape: Metrics/LineLength: Max: 1310 -# Offense count: 2 -Naming/ConstantName: - Exclude: - - 'lib/gitlab/import_sources.rb' - - 'lib/gitlab/ssh_public_key.rb' - # Offense count: 11 # Configuration parameters: EnforcedStyle. # SupportedStyles: lowercase, uppercase @@ -155,17 +149,6 @@ RSpec/ExpectChange: RSpec/ExpectInHook: Enabled: false -# Offense count: 7 -# Configuration parameters: EnforcedStyle. -# SupportedStyles: implicit, each, example -RSpec/HookArgument: - Exclude: - - 'spec/spec_helper.rb' - - 'spec/support/carrierwave.rb' - - 'spec/support/db_cleaner.rb' - - 'spec/support/gitaly.rb' - - 'spec/support/setup_builds_storage.rb' - # Offense count: 19 # Configuration parameters: EnforcedStyle. # SupportedStyles: it_behaves_like, it_should_behave_like diff --git a/.ruby-version b/.ruby-version index 59aa62c1fa..aedc15bb0c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.4.5 +2.5.3 diff --git a/CHANGELOG.md b/CHANGELOG.md index b5ebe36ab1..8890a82932 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,30 +2,54 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 11.5.10 (2019-01-30) +## 11.7.5 (2019-02-06) + +### Fixed (8 changes) + +- Fix import handling errors in Bitbucket Server importer. !24499 +- Adjusts suggestions unable to be applied. !24603 +- Fix 500 errors with legacy appearance logos. !24615 +- Fix form functionality for edit tag page. !24645 +- Update Workhorse to v8.0.2. !24870 +- Downcase aliased OAuth2 callback providers. !24877 +- Fix Detect Host Keys not working. !24884 +- Changed external wiki query method to prevent attribute caching. !24907 + + +## 11.7.4 (2019-02-04) + +### Security (1 change) + +- Use sanitized user status message for user popover. + + +## 11.7.3 (2019-01-30) - No changes. -## 11.5.9 (2019-01-29) +## 11.7.2 (2019-01-29) -### Security (21 changes) +### Security (24 changes) - Make potentially malicious links more visible in the UI and scrub RTLO chars from links. !2770 - Don't process MR refs for guests in the notes. !2771 -- Add more LFS validations to prevent forgery. -- Verify that LFS upload requests are genuine. +- Sanitize user full name to clean up any URL to prevent mail clients from auto-linking URLs. !2828 - Fixed XSS content in KaTex links. +- Disallows unauthorized users from accessing the pipelines section. +- Verify that LFS upload requests are genuine. +- Extract GitLab Pages using RubyZip. - Prevent awarding emojis to notes whose parent is not visible to user. - Prevent unauthorized replies when discussion is locked or confidential. - Disable git v2 protocol temporarily. - Fix showing ci status for guest users when public pipline are not set. - Fix contributed projects info still visible when user enable private profile. -- Extract GitLab Pages using RubyZip. -- Disallows unauthorized users from accessing the pipelines section. +- Add subresources removal to member destroy service. +- Add more LFS validations to prevent forgery. - Use common error for unauthenticated users when creating issues. - Fix slow regex in project reference pattern. - Fix private user email being visible in push (and tag push) webhooks. - Fix wiki access rights when external wiki is enabled. +- Group guests are no longer able to see merge requests they don't have access to at group level. - Fix path disclosure on project import error. - Restrict project import visibility based on its group. - Expose CI/CD trigger token only to the trigger owner. @@ -37,31 +61,228 @@ entry. - Fix uninitialized constant with GitLab Pages. -## 11.5.8 (2019-01-28) +## 11.7.1 (2019-01-28) - Unreleased due to quality assurance failure. -## 11.5.7 (2019-01-15) +## 11.7.0 (2019-01-22) -### Security (1 change) +### Security (14 changes, 1 of them is from the community) +- Escape label and milestone titles to prevent XSS in GFM autocomplete. !2693 +- Bump Ruby on Rails to 5.0.7.1. !23396 (@blackst0ne) +- Delete confidential todos for user when downgraded to Guest. +- Project guests no longer are able to see refs page. +- Set URL rel attribute for broken URLs. +- Prevent leaking protected variables for ambiguous refs. +- Authorize before reading job information via API. +- Allow changing group CI/CD settings only for owners. +- Fix SSRF with import_url and remote mirror url. +- Don't expose cross project repositories through diffs when creating merge reqeusts. - Validate bundle files before unpacking them. +- Issuable no longer is visible to users when project can't be viewed. +- Escape html entities in LabelReferenceFilter when no label found. +- Prevent private snippets from being embeddable. + +### Removed (3 changes, 1 of them is from the community) + +- Removes all instances of deprecated Gitlab Upgrader calls. !23603 (@jwolen) +- Removed discard draft comment button form notes. !24185 +- Remove migration to backfill project_repositories for legacy storage projects. !24299 + +### Fixed (42 changes, 7 of them are from the community) + +- Prevent awards emoji being updated when updating status. !23470 +- Allow merge after rebase without page refresh on FF repositories. !23572 +- Prevent admins from attempting hashed storage migration on read only DB. !23597 +- Correct the ordering of metrics on the performance dashboard. !23630 +- Display empty files properly on MR diffs. !23671 (Sean Nichols) +- Allow GitHub imports via token even if OAuth2 provider not configured. !23703 +- Update header navigation theme colors. !23734 (George Tsiolis) +- Fix login box bottom margins on signin page. !23739 (@gear54) +- Return an ApplicationSetting in CurrentSettings. !23766 +- Fix bug commenting on LFS images. !23812 +- Only prompt user once when navigating away from file editor. !23820 (Sam Bigelow) +- Display commit ID for discussions made on merge request commits. !23837 +- Stop autofocusing on diff comment after initial mount. !23849 +- Fix object storage not working properly with Google S3 compatibility. !23858 +- Fix project calendar feed when sorted by priority. !23870 +- Fix edit button disappearing in issue title. !23948 (Ruben Moya) +- Aligns build loader animation with the job log. !23959 +- Allow 'rake gitlab:cleanup:remote_upload_files' to read bucket files without having permissions to see all buckets. !23981 +- Correctly externalize pipeline tags. !24028 +- Fix error when creating labels in a new issue in the boards page. !24039 (Ruben Moya) +- Use 'parsePikadayDate' to parse due date string. !24045 +- Fix commit SHA not showing in merge request compare dropdown. !24084 +- Remove top margin in modal header titles. !24108 +- Drop Webhooks from project import/export config. !24121 +- Only validate project visibility when it has changed. !24142 +- Resolve About this feature link should open in new window. !24149 +- Add syntax highlighting to suggestion diff. !24156 +- Fix Bitbucket Server import only including first 25 pull requests. !24178 +- Enable caching for records which primary key is not `id`. !24245 +- Adjust applied suggestion reverting previous changes. !24250 +- Fix unexpected exception by failure of finding an actual head pipeline. !24257 +- Fix broken templated "Too many changes to show" text. !24282 +- Fix requests profiler in admin page not rendering HTML properly. !24291 +- Fix no avatar not showing in user selection box. !24346 +- Upgrade to gitaly 1.12.1. !24361 +- Fix runner eternal loop when update job result. !24481 +- Fix notification email for image diff notes. +- Fixed merge request diffs empty states. +- Fixed diff suggestions removing dashes. +- Don't hide CI dropdown behind diff summary. (gfyoung) +- Fix spacing on discussions. +- Fixes missing margin in releases block. + +### Changed (22 changes, 8 of them are from the community) + +- Show clusters of ancestors in cluster list page. !22996 +- Remove unnecessary line before reply holder. !23092 (George Tsiolis) +- Make the Pages permission setting more clear. !23146 +- Disable merging of labels with same names. !23265 +- Allow basic authentication on go get middleware. !23497 (Morty Choi @mortyccp) +- No longer require email subaddressing for issue creation by email. !23523 +- Adjust padding of .dropdown-title to comply with design specs. !23546 +- Make commit IDs in merge request discussion header monospace. !23562 +- Update environments breadcrumb. !23751 (George Tsiolis) +- Add date range in milestone change email notifications. !23762 +- Require Knative to be installed only on an RBAC kubernetes cluster. !23807 (Chris Baumbauer) +- Fix label and header styles in the job details sidebar. !23816 (Nathan Friend) +- Add % prefix to milestone reference links. !23928 +- Reorder sidebar menu item for group clusters. !24001 (George Tsiolis) +- Support CURD operation for Links as one of the Release assets. !24056 +- Upgrade Omniauth and JWT gems to switch away from Google+ API. !24068 +- Renames Milestone sort into Milestone due date. !24080 (Jacopo Beschi @jacopo-beschi) +- Discussion filter only displayed in discussions tab for merge requests. !24082 +- Make RBAC enabled default for new clusters. !24119 +- Hashed Storage: Only set as `read_only` when starting the per-project migration. !24128 +- Knative version bump 0.1.3 -> 0.2.2. (Chris Baumbauer) +- Show message on non-diff discussions. + +### Performance (7 changes) + +- Fix some N+1 queries related to Admin Dashboard, User Dashboards and Activity Stream. !23034 +- Add indexes to speed up CI query. !23188 +- Improve the loading time on merge request's discussion page by caching diff highlight. !23857 +- Cache avatar URLs and paths within a request. !23950 +- Improve snippet search performance by removing duplicate counts. !23952 +- Skip per-commit validations already evaluated. !23984 +- Fix timeout issues retrieving branches via API. !24034 + +### Added (29 changes, 6 of them are from the community) + +- Handle ci.skip push option. !15643 (Jonathon Reinhart) +- Add NGINX 0.16.0 and above metrics. !22133 +- Add project milestone link. !22552 +- Support tls communication in gitaly. !22602 +- Add option to make ci variables protected by default. !22744 (Alexis Reigel) +- Add project identifier as List-Id email Header to ease filtering. !22817 (Olivier Crête) +- Add markdown helper buttons to file editor. !23480 +- Allow to include templates in gitlab-ci.yml. !23495 +- Extend override check to also check arity. !23498 (Jacopo Beschi @jacopo-beschi) +- Add importing of issues from CSV file. !23532 +- Add submit feedback link to help dropdown. !23547 +- Send a notification email to project maintainers when a mirror update fails. !23595 +- Restore Object Pools when restoring an object pool. !23682 +- Creates component for release block. !23697 +- Configure Auto DevOps deployed applications with secrets from prefixed CI variables. !23719 +- Add name, author_id, and sha to releases table. !23763 +- Display a list of Sentry Issues in GitLab. !23770 +- Releases API. !23795 +- Creates frontend app for releases. !23796 +- Add new pipeline variable CI_COMMIT_SHORT_SHA. !23822 +- Create system notes on issue / MR creation when labels, milestone, or due date is set. !23859 +- Adds API documentation for releases. !23901 +- Add API Support for Kubernetes integration. !23922 +- Expose CI/CD predefined variable `CI_API_V4_URL`. !23936 +- Add Knative metrics to Prometheus. !23972 (Chris Baumbauer) +- Use reports syntax for Dependency scanning in Auto DevOps. !24081 +- Allow to include files from another projects in gitlab-ci.yml. !24101 +- User Popovers for Commit Infos, Member Lists and Snippets. !24132 +- Add no-color theme for syntax highlighting. (khm) + +### Other (45 changes, 30 of them are from the community) + +- Redesign project lists UI. !22682 +- [Rails5.1] Update functional specs to use new keyword format. !23095 (@blackst0ne) +- Update a condition to visibility a merge request collaboration message. !23104 (Harry Kiselev) +- Remove framework/mobile.scss. !23301 (Takuya Noguchi) +- Passing the separator argument as a positional parameter is deprecated. !23334 (Jasper Maes) +- Clarifies docs about CI `allow_failure`. !23367 (C.J. Jameson) +- Refactor issuable sidebar to use serializer. !23379 +- Refactor the logic of updating head pipelines for merge requests. !23502 +- Allow user to add Kubernetes cluster for clusterable when there are ancestor clusters. !23569 +- Adds explanatory text to input fields on user profile settings page. !23673 +- Externalize strings from `/app/views/shared/notes`. !23696 (Tao Wang) +- Remove rails 4 support in CI, Gemfiles, bin/ and config/. !23717 (Jasper Maes) +- Fix calendar events fetching error on private profile page. !23718 (Harry Kiselev) +- Update GitLab Workhorse to v8.0.0. !23740 +- Hide confidential events in the API. !23746 +- Changed Userpopover Fixtures and shadow color. !23768 +- Fix deprecation: Passing conditions to delete_all is deprecated. !23817 (Jasper Maes) +- Fix deprecation: Passing ActiveRecord::Base objects to sanitize_sql_hash_for_assignment. !23818 (Jasper Maes) +- Remove rails4 specific code. !23847 (Jasper Maes) +- Remove deprecated ActionDispatch::ParamsParser. !23848 (Jasper Maes) +- Fix deprecation: Comparing equality between ActionController::Parameters and a Hash is deprecated. !23855 (Jasper Maes) +- Fix deprecation: Directly inheriting from ActiveRecord::Migration is deprecated. !23884 (Jasper Maes) +- Fix deprecation: alias_method_chain is deprecated. Please, use Module#prepend instead. !23887 (Jasper Maes) +- Update specs to exclude possible false positive pass. !23893 (@blackst0ne) +- Passing an argument to force an association to reload is now deprecated. !23894 (Jasper Maes) +- ActiveRecord::Migration -> ActiveRecord::Migration[5.0]. !23910 (Jasper Maes) +- Split bio into individual line in extended user tooltips. !23940 +- Fix deprecation: redirect_to :back is deprecated. !23943 (Jasper Maes) +- Fix deprecation: insert_sql is deprecated and will be removed. !23944 (Jasper Maes) +- Upgrade @gitlab/ui to 1.16.2. !23946 +- convert specs in javascripts/ and support/ to new syntax. !23947 (Jasper Maes) +- Remove deprecated xhr from specs. !23949 (Jasper Maes) +- Remove app/views/shared/issuable/_filter.html.haml. !24008 (Takuya Noguchi) +- Fix deprecation: Using positional arguments in integration tests. !24009 (Jasper Maes) +- UI improvements for redesigned project lists. !24011 +- Update cert-manager chart from v0.5.0 to v0.5.2. !24025 (Takuya Noguchi) +- Hide spinner on empty activites list on user profile overview. !24063 +- Don't show Auto DevOps enabled banner for projects with CI file or CI disabled. !24067 +- Update GitLab Runner Helm Chart to 0.1.43. !24083 +- Fix navigation style in docs. !24090 (Takuya Noguchi) +- Remove gem install bundler from Docker-based Ruby environments. !24093 (Takuya Noguchi) +- Fix deprecation: Using positional arguments in integration tests. !24110 (Jasper Maes) +- Fix deprecation: returning false in Active Record and Active Model callbacks will not implicitly halt a callback chain. !24134 (Jasper Maes) +- ActiveRecord::Migration -> ActiveRecord::Migration[5.0] for AddIndexesToCiBuildsAndPipelines. !24167 (Jasper Maes) +- Update url placeholder for the sentry configuration page. !24338 -## 11.5.6 (2018-12-28) +## 11.6.3 (2019-01-04) -### Security (17 changes) +### Fixed (1 change) -- Escape label and milestone titles to prevent XSS in GFM autocomplete. !2741 -- Validate LFS hrefs before downloading them. -- Ensure that build token is only used when running. +- Fix clone URL not showing if protocol is HTTPS. !24131 + + +## 11.6.2 (2019-01-02) + +### Fixed (7 changes) + +- Hide cluster features that don't work yet with Group Clusters. !23935 +- Fix a 500 error that could occur until all migrations are done. !23939 +- Fix missing Git clone button when protocol restriction setting enabled. !24015 +- Fix clone dropdown parent inheritance issues in HAML. !24029 +- Fix content-disposition in blobs and files API endpoint. !24078 +- Fixed markdown toolbar buttons. +- Adjust line-height of blame view line numbers. + + +## 11.6.1 (2018-12-28) + +### Security (15 changes) + +- Escape label and milestone titles to prevent XSS in GFM autocomplete. !2740 +- Prevent private snippets from being embeddable. - Add subresources removal to member destroy service. -- Prevent a path traversal attack on global file templates. +- Escape html entities in LabelReferenceFilter when no label found. - Allow changing group CI/CD settings only for owners. - Authorize before reading job information via API. - Prevent leaking protected variables for ambiguous refs. -- Escape html entities in LabelReferenceFilter when no label found. -- Prevent private snippets from being embeddable. +- Ensure that build token is only used when running. - Issuable no longer is visible to users when project can't be viewed. - Don't expose cross project repositories through diffs when creating merge reqeusts. - Fix SSRF with import_url and remote mirror url. @@ -75,6 +296,283 @@ entry. - Fix due date test. !23845 +## 11.6.0 (2018-12-22) + +### Security (24 changes, 1 of them is from the community) + +- Fix possible XSS attack in Markdown urls with spaces. !2599 +- Update rack to 2.0.6 (for QA environments). !23171 (Takuya Noguchi) +- Bump nokogiri, loofah, and rack gems for security updates. !23204 +- Encrypt runners tokens. !23412 +- Encrypt CI/CD builds authentication tokens. !23436 +- 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. +- Fix persistent symlink in project import. +- Fixed ability of guest users to edit/delete comments on locked or confidential issues. +- Fixed ability to comment on locked/confidential issues. +- Fix CRLF vulnerability in Project hooks. +- Fix SSRF in project integrations. +- Resolve reflected XSS in Ouath authorize window. +- Restrict Personal Access Tokens to API scope on web requests. +- Provide email notification when a user changes their email address. +- Don't expose confidential information in commit message list. +- Validate LFS hrefs before downloading them. +- Do not follow redirects in Prometheus service when making http requests to the configured api url. +- Escape user fullname while rendering autocomplete template to prevent XSS. +- Redact sensitive information on gitlab-workhorse log. +- Fix milestone promotion authorization check. +- Prevent a path traversal attack on global file templates. + +### Removed (1 change) + +- Remove obsolete gitlab_shell rake tasks. !22417 + +### Fixed (86 changes, 13 of them are from the community) + +- Remove limit of 100 when searching repository code. !8671 +- Show error message when attempting to reopen an MR and there is an open MR for the same branch. !16447 (Akos Gyimesi) +- Fix a bug where internal email pattern wasn't respected. !22516 +- Fix project selector consistency in groups issues / MRs / boards pages. !22612 (Heinrich Lee Yu) +- Add empty state for graphs with no values. !22630 +- Fix navigating by unresolved discussions on Merge Request page. !22789 +- Fix "merged with [commit]" info for merge requests being merged automatically by other actions. !22794 +- Fixing regression issues on pages settings and details. !22821 +- Remove duplicate primary button in dashboard snippets on small viewports. !22902 (George Tsiolis) +- Fix API::Namespaces routing to accept namepaces with dots. !22912 +- Switch kubernetes:active with checking in Auto-DevOps.gitlab-ci.yml. !22929 +- Avoid Gitaly RPC errors when fetching diff stats. !22995 +- Removes promote to group label for anonymous user. !23042 (Jacopo Beschi @jacopo-beschi) +- Fix enabling project deploy key for admins. !23043 +- Align issue status label and confidential icon. !23046 (George Tsiolis) +- Fix default sorting for subgroups and projects list. !23058 (Jacopo Beschi @jacopo-beschi) +- Hashed Storage: allow migration to be retried in partially migrated projects. !23087 +- Fix line height of numbers in file blame view. !23090 (Johann Hubert Sonntagbauer) +- Fixes an issue where default values from models would override values set in the interface (e.g. users would be set to external even though their emails matches the internal email address pattern). !23114 +- Remove display of local Sidekiq process in /admin/sidekiq. !23118 +- Fix unrelated deployment status in MR widget. !23175 +- Respect confirmed flag on secondary emails. !23181 +- Restrict member access level to be higher than that of any parent group. !23226 +- Return real deployment status to frontend. !23270 +- Handle force_remove_source_branch when creating merge request. !23281 +- Avoid creating invalid refs using rugged, shelling out for writing refs. !23286 +- Remove needless auto-capitalization on Wiki page titles. !23288 +- Modify the wording for the knative cluster application to match upstream. !23289 (Chris Baumbauer) +- Change container width for project import. !23318 (George Tsiolis) +- Validate chunk size when persist. !23341 +- Resolve Main navbar is broken in certain viewport widths. !23348 +- Gracefully handle references with null bytes. !23365 +- Display commit ID for commit diff discussion on merge request. !23370 +- Pass commit when posting diff discussions. !23371 +- Fix flash notice styling for fluid layout. !23382 +- Add monkey patch to unicorn to fix eof? problem. !23385 +- Commits API: Preserve file content in move operations if unspecified. !23387 +- Disable password autocomplete in mirror form fill. !23402 +- Fix "protected branches only" checkbox not set properly at init. !23409 +- Support RSA and ECDSA algorithms in Omniauth JWT provider. !23411 (Michael Tsyganov) +- Make KUBECONFIG nil if KUBE_TOKEN is nil. !23414 +- Allow search and sort users at same time on admin users page. !23439 +- Fix: Unstar icon button is misaligned. !23444 +- Fix error when searching for group issues with priority or popularity sort. !23445 +- Fix Order By dropdown menu styling in tablet and mobile screens. !23446 +- Fix collapsing discussion replies. !23462 +- Gracefully handle unknown/invalid GPG keys. !23492 +- Fix multiple commits shade overlapping vertical discussion line. !23515 +- Use read_repository scope on read-only files API. !23534 +- Avoid 500's when serializing legacy diff notes. !23544 +- Fix web hook functionality when the database encryption key is too short. !23573 +- Hide Knative from group cluster applications until supported. !23577 +- Add top padding for nested environment items loading icon. !23580 (George Tsiolis) +- Improve help and validation sections of maximum build timeout inputs. !23586 +- Fix milestone select in issue sidebar of issue boards. !23625 +- Fix gitlab:web_hook tasks. !23635 +- Avoid caching BroadcastMessage as an ActiveRecord object. !23662 +- Only allow strings in URL::Sanitizer.valid?. !23675 +- Fix a frozen string error in app/mailers/notify.rb. !23683 +- Fix a frozen string error in lib/gitlab/utils.rb. !23690 +- Fix MR resolved discussion counts being too low. !23710 +- Fix a potential frozen string error in app/mailers/notify.rb. !23728 +- Remove unnecessary div from MarkdownField to apply list styles correctly. !23733 +- Display reply field if resolved discussion has no replies. !23801 +- Restore kubernetes:active in Auto-DevOps.gitlab-ci.yml (reverts 22929). !23826 +- Fix mergeUrlParams with fragment URL. !54218 (Thomas Holder) +- Fixed multiple diff line discussions not expanding. +- Fixed diff files expanding not loading commit content. +- Fixed styling of image comment badges on commits. +- Resolve possible cherry pick API race condition. +- When user clicks linenumber in MR changes, highlight that line. +- Remove old webhook logs after 90 days, as documented, instead of after 2. +- Add an external IP address to the knative cluster application page. (Chris Baumbauer) +- Fixed duplicate discussions getting added to diff lines. +- Fix deadlock on ChunkedIO. +- Show tree collapse button for merge request commit diffs. +- Use approximate count for big tables for usage statistics. +- Lock writes to trace stream. +- Ensure that SVG sprite icons are properly rendered in IE11. +- Make new branch form fields' fonts consistent. +- Open first 10 merge request files in IDE. +- Prevent user from navigating away from file edit without commit. +- Prevent empty button being rendered in empty state. +- Adds margins between tags when a job is stuck. +- Fix Image Lazy Loader for some older browsers. +- Correctly styles tags in sidebar for job page. + +### Changed (34 changes, 9 of them are from the community) + +- Include new link in breadcrumb for issues, merge requests, milestones, and labels. !18515 (George Tsiolis) +- Allow sorting issues and MRs in reverse order. !21438 +- Design improvements to project overview page. !22196 +- Remove auto deactivation when failed to create a pipeline via pipeline schedules. !22243 +- Use group clusters when deploying (DeploymentPlatform). !22308 +- Improve initial discussion rendering performance. !22607 +- removes partially matching of No Label filter and makes it case-insensitive. !22622 (Jacopo Beschi @jacopo-beschi) +- Use search bar for filtering in dashboard issues / MRs. !22641 (Heinrich Lee Yu) +- Show different empty state for filtered issues and MRs. !22775 (Heinrich Lee Yu) +- Relocate JSONWebToken::HMACToken from EE. !22906 +- Resolve Add border around the repository file tree. !23018 +- Change breadcrumb title for contribution charts. !23071 (George Tsiolis) +- Update environments metrics empty state. !23074 (George Tsiolis) +- Refine cursor positioning in Markdown Editor for wrap tags. !23085 (Johann Hubert Sonntagbauer) +- Use reports syntax for SAST in Auto DevOps. !23163 +- SystemCheck: Use a more reliable way to detect current Ruby version. !23291 +- Changed frontmatter filtering to support YAML, JSON, TOML, and arbitrary languages. !23331 (Travis Miller) +- Don't remove failed install pods after installing GitLab managed applications. !23350 +- Expose merge request pipeline variables. !23398 +- Scope default MR search in WebIDE dropdown to current project. !23400 +- Show user contributions in correct timezone within user profile. !23419 +- Redesign of MR header sections (CE). !23465 +- Auto DevOps: Add echo for each branch of the deploy() function where we run helm upgrade. !23499 +- Updates service to update Kubernetes project namespaces and restricted service account if present. !23525 +- Adjust divider margin to comply with design specs. !23548 +- Adjust dropdown item and header padding to comply with design specs. !23552 +- Truncate merge request titles with periods instead of ellipsis. !23558 +- Remove close icon from projects dropdown in issue boards. !23567 +- Change dropdown divider color to gray-200 (#dfdfdf). !23592 +- Define the default value for only/except policies. !23765 +- Don't show Memory Usage for unmerged MRs. +- reorder notification settings by noisy-ness. (C.J. Jameson) +- Changed merge request filtering to be by path instead of name. +- Make diff file headers sticky. + +### Performance (22 changes, 6 of them are from the community) + +- Upgrade to Ruby 2.5.3. !2806 +- Removes all the irrelevant code and columns that were migrated from the Project table over to the ProjectImportState table. !21497 +- Approximate counting strategy with TABLESAMPLE. !22650 +- Replace tooltip directive with gl-tooltip diretive in badges, cycle analytics, and diffs. !22770 (George Tsiolis) +- Validate foreign keys being created and indexed for column with _id. !22808 +- Remove monospace extend. !23089 (George Tsiolis) +- Use Nokogiri as the ActiveSupport XML backend. !23136 +- Improve memory performance by reducing dirty pages after fork(). !23169 +- Add partial index for ci_builds on project_id and status. !23268 +- Reduce Gitaly calls in projects dashboard. !23307 +- Batch load only data from same repository when lazy object is accessed. !23309 +- Add index for events on project_id and created_at. !23354 +- Remove index for notes on updated_at. !23356 +- Improves performance of Project#readme_url by caching the README path. !23357 +- Populate MR metrics with events table information (migration). !23564 +- Remove unused data from discussions endpoint. !23570 +- Speed up issue board lists in groups with many projects. +- Use cached size when passing artifacts to Runner. +- Enable even more frozen string for lib/gitlab. (gfyoung) +- Enable even more frozen string in lib/gitlab/**/*.rb. (gfyoung) +- Enable even more frozen string in lib/gitlab/**/*.rb. (gfyoung) +- Enable even more frozen string for lib/gitlab. (gfyoung) + +### Added (32 changes, 13 of them are from the community) + +- Add ability to create group level clusters and install gitlab managed applications. !22450 +- Creates /create_merge_request quickaction. !22485 (Jacopo Beschi @jacopo-beschi) +- Filter by None/Any for labels in issues/mrs API. !22622 (Jacopo Beschi @jacopo-beschi) +- Chat message push notifications now include links back to GitLab branches. !22651 (Tony Castrogiovanni) +- Added feature flag to signal content headers detection by Workhorse. !22667 +- Add Discord integration. !22684 (@blackst0ne) +- Upgrade helm to 2.11.0 and upgrade on every install. !22693 +- Add knative client to kubeclient library. !22968 (cab105) +- Allow SSH public-key authentication for push mirroring. !22982 +- Allow deleting a Pipeline via the API. !22988 +- #40635: Adds support for cert-manager. !23036 (Amit Rathi) +- WebIDE: Pressing Ctrl-Enter while typing on the commit message now performs the commit action. !23049 (Thomas Pathier) +- Adds Any option to label filters. !23111 (Jacopo Beschi @jacopo-beschi) +- Added glob for CI changes detection. !23128 (Kirill Zaitsev) +- Add model and relation to store repo full path in database. !23143 +- Add ability to render suggestions. !23147 +- Introduce Knative and Serverless Components. !23174 (Chris Baumbauer) +- Use BFG object maps to clean projects. !23189 +- Merge request pipelines. !23217 +- Extended user centric tooltips on issue and MR page. !23231 +- Add a rebase API endpoint for merge requests. !23296 +- Add config to prohibit impersonation. !23338 +- Merge request pipeline tag, and adds tags to pipeline view. !23364 +- #52753: HTTPS for JupyterHub installation. !23479 (Amit Rathi) +- Fill project_repositories for hashed storage projects. !23482 +- Ability to override email for cert-manager. !23503 (Amit Rathi) +- Allow public forks to be deduplicated. !23508 +- Pipeline trigger variable values are hidden in the UI by default. Maintainers have the option to reveal them. !23518 (jhampton) +- Add new endpoint to download single artifact file for a ref. !23538 +- Log and pass correlation-id between Unicorn, Sidekiq and Gitaly. +- Allow user to scroll to top of tab on MR page. +- Adds states to the deployment widget. + +### Other (54 changes, 30 of them are from the community) + +- Switch to Rails 5. !21492 +- Migration to write fullpath in all repository configs. !22322 +- Rails5: env is deprecated and will be removed from Rails 5.1. !22626 (Jasper Maes) +- Update haml_lint to 0.28.0. !22660 (Takuya Noguchi) +- Update ffaker to 2.10.0. !22661 (Takuya Noguchi) +- Drop gcp_clusters table. !22713 +- Upgrade minimum required Git version to 2.18.0. !22803 +- Adds new icon size to Vue icon component. !22899 +- Make sure there's only one slash as path separator. !22954 +- Show HTTP response code for Kubernetes errors. !22964 +- Update config map for gitlab managed application if already present on install. !22969 +- Drop default value on status column in deployments table. !22971 +- UI improvements to user's profile. !22977 +- Update asana to 0.8.1. !23039 (Takuya Noguchi) +- Update asciidoctor to 1.5.8. !23047 (Takuya Noguchi) +- Make auto-generated icons for subgroups in the breadcrumb dropdown display as a circle. !23062 (Thomas Pathier) +- Make reply shortcut only quote selected discussion text. !23096 (Thomas Pathier) +- Fix typo in notebook props. !23103 (George Tsiolis) +- Fix typos in lib. !23106 (George Tsiolis) +- Rename diffs store variable. !23123 (George Tsiolis) +- Fix overlapping navbar separator and overflowing navbar dropdown on small displays. !23126 (Thomas Pathier) +- Show what RPC is called in the performance bar. !23140 +- Updated Gitaly to v0.133.0. !23148 +- Rails5: Passing a class as a value in an Active Record query is deprecated. !23164 (Jasper Maes) +- Fix project identicon aligning Harry Kiselev. !23166 (Harry Kiselev) +- Fix horizontal scrollbar overlapping on horizontal scrolling-tabs. !23167 (Harry Kiselev) +- Fix bottom paddings of profile header and some markup updates of profile. !23168 (Harry Kiselev) +- Fixes to AWS documentation spelling and grammar. !23198 (Brendan O'Leary) +- Adds a PHILOSOPHY.md which references GitLab Product Handbook. !23200 +- Externalize strings from `/app/views/invites`. !23205 (Tao Wang) +- Externalize strings from `/app/views/project/runners`. !23208 (Tao Wang) +- Fix typo for scheduled pipeline. !23218 (Davy Defaud) +- Force content disposition attachment to several endpoints. !23223 +- Upgrade kubeclient to 4.0.0. !23261 (Praveen Arimbrathodiyil @pravi) +- Update used version of Runner Helm Chart to 0.1.38. !23304 +- render :nothing option is deprecated, Use head method to respond with empty response body. !23311 (Jasper Maes) +- Passing an argument to force an association to reload is now deprecated. !23334 (Jasper Maes) +- Externalize strings from `/app/views/snippets`. !23351 (Tao Wang) +- Fix deprecation: You are passing an instance of ActiveRecord::Base to. !23369 (Jasper Maes) +- Resolve status emoji being replaced by avatar on mobile. !23408 +- Fix deprecation: render :text is deprecated because it does not actually render a text/plain response. !23425 (Jasper Maes) +- Fix lack of documentation on how to fetch a snippet's content using API. !23448 (Colin Leroy) +- Upgrade GitLab Workhorse to v7.3.0. !23489 +- Fallback to admin KUBE_TOKEN for project clusters only. !23527 +- Update used version of Runner Helm Chart to 0.1.39. !23633 +- Show primary button when all labels are prioritized. !23648 (George Tsiolis) +- Upgrade workhorse to 7.6.0. !23694 +- Upgrade Gitaly to v1.7.1 for correlation-id logging. !23732 +- Fix due date test. !23845 +- Remove unused project method. !54103 (George Tsiolis) +- Uses new gitlab-ui components in Jobs and Pipelines components. +- Replaces tooltip directive with the new gl-tooltip directive for consistency in some ci/cd code. +- Bump gpgme gem version from 2.0.13 to 2.0.18. (asaparov) +- Enable Rubocop on lib/gitlab. (gfyoung) + + ## 11.5.5 (2018-12-20) ### Security (1 change) @@ -82,13 +580,6 @@ entry. - Fix persistent symlink in project import. -## 11.5.4 (2018-12-13) - -### Security (1 change) - -- Validate LFS hrefs before downloading them. - - ## 11.5.3 (2018-12-06) ### Security (1 change) @@ -397,6 +888,55 @@ entry. - Disables stop environment button while the deploy is in progress. +## 11.4.9 (2018-12-03) + +### Fixed (2 changes) + +- Display impersonation token value only after creation. !22916 +- Correctly handle data-loss scenarios when encrypting columns. !23306 + + +## 11.4.8 (2018-11-27) + +### Security (24 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. +- 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) + +- No changes. + +## 11.4.6 (2018-11-18) + +### Security (1 change) + +- Escape user fullname while rendering autocomplete template to prevent XSS. + + ## 11.4.5 (2018-11-04) ### Fixed (4 changes, 1 of them is from the community) @@ -666,6 +1206,73 @@ entry. - Check frozen string in style builds. (gfyoung) +## 11.3.14 (2018-12-20) + +### Security (1 change) + +- Fix persistent symlink in project import. + + +## 11.3.13 (2018-12-13) + +### Security (1 change) + +- Validate LFS hrefs before downloading them. + + +## 11.3.12 (2018-12-06) + +### Security (1 change) + +- Prevent a path traversal attack on global file templates. + + +## 11.3.11 (2018-11-26) + +### Security (33 changes) + +- Filter user sensitive data from discussions JSON. !2537 +- Escape entity title while autocomplete template rendering to prevent XSS. !2557 +- Restrict Personal Access Tokens to API scope on web requests. +- 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. +- Set timeout for syntax highlighting. +- Do not follow redirects in Prometheus service when making http requests to the configured api url. +- Persist only SHA digest of PersonalAccessToken#token. +- Sanitize JSON data properly to fix XSS on Issue details page. +- Don't expose confidential information in commit message list. +- Markdown API no longer displays confidential title references unless authorized. +- Provide email notification when a user changes their email address. +- Properly filter private references from system notes. +- Redact personal tokens in unsubscribe links. +- Resolve reflected XSS in Ouath authorize window. +- Fix SSRF in project integrations. +- Fix stored XSS in merge requests from imported repository. +- 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. +- Redact confidential events in the API. +- Fix xss vulnerability sourced from package.json. +- 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. +- Block loopback addresses in UrlBlocker. +- Prevent SSRF attacks in HipChat integration. +- Validate Wiki attachments are valid temporary files. + + +## 11.3.10 (2018-11-18) + +### Security (1 change) + +- Escape user fullname while rendering autocomplete template to prevent XSS. + + ## 11.3.9 (2018-10-31) ### Security (1 change) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2dc8ac40dd..97dbe2f512 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,48 +15,6 @@ repository is licensed under Creative Commons: _This notice should stay as the first item in the CONTRIBUTING.md file._ ---- - - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Contributing Documentation has been moved](#contributing-documentation-has-been-moved) -- [Contribute to GitLab](#contribute-to-gitlab) -- [Security vulnerability disclosure](#security-vulnerability-disclosure) -- [Code of conduct](#code-of-conduct) -- [Closing policy for issues and merge requests](#closing-policy-for-issues-and-merge-requests) -- [Helping others](#helping-others) -- [I want to contribute!](#i-want-to-contribute) -- [Contribution Flow](#contribution-flow) -- [Workflow labels](#workflow-labels) - - [Type labels](#type-labels) - - [Subject labels](#subject-labels) - - [Team labels](#team-labels) - - [Release Scoping labels](#release-scoping-labels) - - [Priority labels](#priority-labels) - - [Severity labels](#severity-labels) - - [Severity impact guidance](#severity-impact-guidance) - - [Label for community contributors](#label-for-community-contributors) -- [Implement design & UI elements](#implement-design--ui-elements) -- [Issue tracker](#issue-tracker) - - [Issue triaging](#issue-triaging) - - [Feature proposals](#feature-proposals) - - [Issue tracker guidelines](#issue-tracker-guidelines) - - [Issue weight](#issue-weight) - - [Regression issues](#regression-issues) - - [Technical and UX debt](#technical-and-ux-debt) - - [Stewardship](#stewardship) -- [Merge requests](#merge-requests) - - [Merge request guidelines](#merge-request-guidelines) - - [Contribution acceptance criteria](#contribution-acceptance-criteria) -- [Definition of done](#definition-of-done) -- [Style guides](#style-guides) - - - ---- - ## Contributing Documentation has been moved As of July 2018, all the documentation for contributing to the GitLab project has been moved to a new location. @@ -92,7 +50,7 @@ This [documentation](doc/development/contributing/index.md) has been moved. ## Workflow labels -This [documentation](doc/development/contributing/issue_workflow.md) has been moved. +This [documentation](doc/development/contributing/issue_workflow.md) has been moved. ### Type labels @@ -170,7 +128,6 @@ This [documentation](doc/development/contributing/merge_request_workflow.md) has This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. - ### Contribution acceptance criteria This [documentation](doc/development/contributing/merge_request_workflow.md) has been moved. @@ -181,4 +138,4 @@ This [documentation](doc/development/contributing/merge_request_workflow.md) has ## Style guides -This [documentation](doc/development/contributing/design.md) has been moved. +This [documentation](doc/development/contributing/style_guides.md) has been moved. diff --git a/Dangerfile b/Dangerfile index 469e77b251..6a2c5cf277 100644 --- a/Dangerfile +++ b/Dangerfile @@ -8,5 +8,6 @@ danger.import_dangerfile(path: 'danger/database') danger.import_dangerfile(path: 'danger/documentation') danger.import_dangerfile(path: 'danger/frozen_string') danger.import_dangerfile(path: 'danger/commit_messages') +danger.import_dangerfile(path: 'danger/duplicate_yarn_dependencies') danger.import_dangerfile(path: 'danger/prettier') danger.import_dangerfile(path: 'danger/eslint') diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index b96194be1c..6b89d58f86 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -0.129.1 +1.12.2 diff --git a/GITLAB_SHELL_VERSION b/GITLAB_SHELL_VERSION index 6da4de57dc..917d38ec9f 100644 --- a/GITLAB_SHELL_VERSION +++ b/GITLAB_SHELL_VERSION @@ -1 +1 @@ -8.4.1 +8.4.4 diff --git a/GITLAB_WORKHORSE_VERSION b/GITLAB_WORKHORSE_VERSION index b7f8ee41e6..8b22a322d0 100644 --- a/GITLAB_WORKHORSE_VERSION +++ b/GITLAB_WORKHORSE_VERSION @@ -1 +1 @@ -7.1.4 +8.0.2 diff --git a/Gemfile b/Gemfile index 0b225583c4..f59e61208a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,27 +1,18 @@ -# --- Special code for migrating to Rails 5.0 --- -def rails5? - %w[1 true].include?(ENV["RAILS5"]) -end - -gem_versions = {} -gem_versions['activerecord_sane_schema_dumper'] = rails5? ? '1.0' : '0.2' -gem_versions['default_value_for'] = rails5? ? '~> 3.0.5' : '~> 3.0.0' -gem_versions['rails'] = rails5? ? '5.0.7' : '4.2.10' -gem_versions['rails-i18n'] = rails5? ? '~> 5.1' : '~> 4.0.9' -# --- The end of special code for migrating to Rails 5.0 --- - source 'https://rubygems.org' -gem 'rails', gem_versions['rails'] +gem 'rails', '5.0.7.1' gem 'rails-deprecated_sanitizer', '~> 1.0.3' +# Improves copy-on-write performance for MRI +gem 'nakayoshi_fork', '~> 0.0.4' + # Responders respond_to and respond_with gem 'responders', '~> 2.0' gem 'sprockets', '~> 3.7.0' # Default values for AR models -gem 'default_value_for', gem_versions['default_value_for'] +gem 'gitlab-default_value_for', '~> 3.1.1', require: 'default_value_for' # Supported DBs gem 'mysql2', '~> 0.4.10', group: :mysql @@ -43,7 +34,7 @@ gem 'omniauth-cas3', '~> 1.1.4' gem 'omniauth-facebook', '~> 4.0.0' gem 'omniauth-github', '~> 1.3' gem 'omniauth-gitlab', '~> 1.0.2' -gem 'omniauth-google-oauth2', '~> 0.5.3' +gem 'omniauth-google-oauth2', '~> 0.6.0' gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos gem 'omniauth-oauth2-generic', '~> 0.2.2' gem 'omniauth-saml', '~> 1.10' @@ -52,7 +43,7 @@ gem 'omniauth-twitter', '~> 1.4' gem 'omniauth_crowd', '~> 2.2.0' gem 'omniauth-authentiq', '~> 0.3.3' gem 'rack-oauth2', '~> 1.2.1' -gem 'jwt', '~> 1.5.6' +gem 'jwt', '~> 2.1.0' # Spam and anti-bot protection gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails' @@ -72,7 +63,7 @@ gem 'rubyzip', '~> 1.2.2', require: 'zip' gem 'browser', '~> 2.5' # GPG -gem 'gpgme' +gem 'gpgme', '~> 2.0.18' # LDAP Auth # GitLab fork with several improvements to original library. For full list of changes @@ -81,7 +72,7 @@ gem 'gitlab_omniauth-ldap', '~> 2.0.4', require: 'omniauth-ldap' gem 'net-ldap' # API -gem 'grape', '~> 1.1' +gem 'grape', '~> 1.1.0' gem 'grape-entity', '~> 0.7.1' gem 'rack-cors', '~> 1.0.0', require: 'rack/cors' @@ -99,9 +90,7 @@ gem 'kaminari', '~> 1.0' gem 'hamlit', '~> 2.8.8' # Files attachments -# Locked until https://github.com/carrierwaveuploader/carrierwave/pull/2332/files is merged. -# config/initializers/carrierwave_patch.rb can be removed once that change is released. -gem 'carrierwave', '= 1.2.3' +gem 'carrierwave', '~> 1.3' gem 'mini_magick' # for backups @@ -125,7 +114,7 @@ gem 'seed-fu', '~> 2.3.7' # Markdown and HTML processing gem 'html-pipeline', '~> 2.8' gem 'deckar01-task_list', '2.0.0' -gem 'gitlab-markup', '~> 1.6.4' +gem 'gitlab-markup', '~> 1.6.5' gem 'github-markup', '~> 1.7.0', require: 'github/markup' gem 'redcarpet', '~> 3.4' gem 'commonmarker', '~> 0.17' @@ -134,12 +123,12 @@ gem 'rdoc', '~> 6.0' gem 'org-ruby', '~> 0.9.12' gem 'creole', '~> 0.5.0' gem 'wikicloth', '0.8.1' -gem 'asciidoctor', '~> 1.5.6' +gem 'asciidoctor', '~> 1.5.8' gem 'asciidoctor-plantuml', '0.0.8' gem 'rouge', '~> 3.1' gem 'truncato', '~> 0.7.9' gem 'bootstrap_form', '~> 2.7.0' -gem 'nokogiri', '~> 1.8.2' +gem 'nokogiri', '~> 1.8.5' gem 'escape_utils', '~> 1.1' # Calendar rendering @@ -149,6 +138,11 @@ gem 'icalendar' gem 'diffy', '~> 3.1.0' # Application server +# The 2.0.6 version of rack requires monkeypatch to be present in +# `config.ru`. This can be removed once a new update for Rack +# is available that contains https://github.com/rack/rack/pull/1201. +gem 'rack', '2.0.6' + group :unicorn do gem 'unicorn', '~> 5.1.0' gem 'unicorn-worker-killer', '~> 0.4.4' @@ -169,6 +163,7 @@ gem 'acts-as-taggable-on', '~> 5.0' gem 'sidekiq', '~> 5.2.1' gem 'sidekiq-cron', '~> 0.6.0' gem 'redis-namespace', '~> 1.6.0' +gem 'gitlab-sidekiq-fetcher', '~> 0.4.0', require: 'sidekiq-reliable-fetch' # Cron Parser gem 'rufus-scheduler', '~> 3.4' @@ -205,6 +200,9 @@ gem 'redis-rails', '~> 5.0.2' gem 'redis', '~> 3.2' gem 'connection_pool', '~> 2.0' +# Discord integration +gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false + # HipChat integration gem 'hipchat', '~> 1.5.0' @@ -221,13 +219,13 @@ gem 'slack-notifier', '~> 1.5.1' gem 'hangouts-chat', '~> 0.0.5' # Asana integration -gem 'asana', '~> 0.6.0' +gem 'asana', '~> 0.8.1' # FogBugz integration gem 'ruby-fogbugz', '~> 0.2.1' # Kubernetes integration -gem 'kubeclient', '~> 3.1.0' +gem 'kubeclient', '~> 4.0.0' # Sanitize user input gem 'sanitize', '~> 4.6' @@ -248,6 +246,9 @@ gem 'ace-rails-ap', '~> 4.1.0' # Detect and convert string character encoding gem 'charlock_holmes', '~> 0.7.5' +# Detect mime content type from content +gem 'mimemagic', '~> 0.3.2' + # Faster blank gem 'fast_blank' @@ -259,6 +260,7 @@ gem 'webpack-rails', '~> 0.9.10' gem 'rack-proxy', '~> 0.6.0' gem 'sass-rails', '~> 5.0.6' +gem 'sass', '~> 3.5' gem 'uglifier', '~> 2.7.2' gem 'addressable', '~> 2.5.2' @@ -278,21 +280,20 @@ gem 'premailer-rails', '~> 1.9.7' # I18n gem 'ruby_parser', '~> 3.8', require: false -gem 'rails-i18n', gem_versions['rails-i18n'] +gem 'rails-i18n', '~> 5.1' gem 'gettext_i18n_rails', '~> 1.8.0' gem 'gettext_i18n_rails_js', '~> 1.3' gem 'gettext', '~> 3.2.2', require: false, group: :development -gem 'batch-loader', '~> 1.2.1' +gem 'batch-loader', '~> 1.2.2' # Perf bar gem 'peek', '~> 1.0.1' gem 'peek-gc', '~> 0.0.2' -gem 'peek-mysql2', '~> 1.1.0', group: :mysql +gem 'peek-mysql2', '~> 1.2.0', group: :mysql gem 'peek-pg', '~> 1.3.0', group: :postgres gem 'peek-rblineprof', '~> 0.2.0' gem 'peek-redis', '~> 1.2.0' -gem 'gitlab-sidekiq-fetcher', require: 'sidekiq-reliable-fetch' # Metrics group :metrics do @@ -312,8 +313,8 @@ group :development do gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false # Better errors handler - gem 'better_errors', '~> 2.1.0' - gem 'binding_of_caller', '~> 0.7.2' + gem 'better_errors', '~> 2.5.0' + gem 'binding_of_caller', '~> 0.8.0' # thin instead webrick gem 'thin', '~> 1.7.0' @@ -322,13 +323,13 @@ end group :development, :test do gem 'bootsnap', '~> 1.3' gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET'] - gem 'pry-byebug', '~> 3.4.1', platform: :mri + gem 'pry-byebug', '~> 3.5.1', platform: :mri gem 'pry-rails', '~> 0.3.4' gem 'awesome_print', require: false gem 'fuubar', '~> 2.2.0' - gem 'database_cleaner', '~> 1.5.0' + gem 'database_cleaner', '~> 1.7.0' gem 'factory_bot_rails', '~> 4.8.2' gem 'rspec-rails', '~> 3.7.0' gem 'rspec-retry', '~> 0.4.5' @@ -337,13 +338,13 @@ group :development, :test do gem 'rspec-parameterized', require: false # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) - gem 'minitest', '~> 5.7.0' + gem 'minitest', '~> 5.11.0' # Generate Fake data - gem 'ffaker', '~> 2.4' + gem 'ffaker', '~> 2.10' - gem 'capybara', '~> 2.15' - gem 'capybara-screenshot', '~> 1.0.0' + gem 'capybara', '~> 2.16.1' + gem 'capybara-screenshot', '~> 1.0.18' gem 'selenium-webdriver', '~> 3.12' gem 'spring', '~> 2.0.0' @@ -355,16 +356,16 @@ group :development, :test do gem 'rubocop-rspec', '~> 1.22.1' gem 'scss_lint', '~> 0.56.0', require: false - gem 'haml_lint', '~> 0.26.0', require: false + gem 'haml_lint', '~> 0.28.0', require: false gem 'simplecov', '~> 0.14.0', require: false gem 'bundler-audit', '~> 0.5.0', require: false gem 'benchmark-ips', '~> 2.3.0', require: false gem 'license_finder', '~> 5.4', require: false - gem 'knapsack', '~> 1.16' + gem 'knapsack', '~> 1.17' - gem 'activerecord_sane_schema_dumper', gem_versions['activerecord_sane_schema_dumper'] + gem 'activerecord_sane_schema_dumper', '1.0' gem 'stackprof', '~> 0.2.10', require: false @@ -378,10 +379,9 @@ group :test do gem 'email_spec', '~> 2.2.0' gem 'json-schema', '~> 2.8.0' gem 'webmock', '~> 2.3.2' - gem 'rails-controller-testing' if rails5? # Rails5 only gem. - gem 'test_after_commit', '~> 1.1' unless rails5? # Remove this gem when migrated to rails 5.0. It's been integrated to rails 5.0. + gem 'rails-controller-testing' gem 'sham_rack', '~> 1.3.6' - gem 'concurrent-ruby', '~> 1.0.5' + gem 'concurrent-ruby', '~> 1.1' gem 'test-prof', '~> 0.2.5' gem 'rspec_junit_formatter' end @@ -417,7 +417,7 @@ group :ed25519 do end # Gitaly GRPC client -gem 'gitaly-proto', '~> 0.123.0', require: 'gitaly' +gem 'gitaly-proto', '~> 1.5.0', require: 'gitaly' gem 'grpc', '~> 1.15.0' gem 'google-protobuf', '~> 3.6' diff --git a/Gemfile.lock b/Gemfile.lock index ab75acb329..77b4360cf4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,41 +4,44 @@ GEM RedCloth (4.3.2) abstract_type (0.0.7) ace-rails-ap (4.1.2) - actionmailer (4.2.10) - actionpack (= 4.2.10) - actionview (= 4.2.10) - activejob (= 4.2.10) + actioncable (5.0.7.1) + actionpack (= 5.0.7.1) + nio4r (>= 1.2, < 3.0) + websocket-driver (~> 0.6.1) + actionmailer (5.0.7.1) + actionpack (= 5.0.7.1) + actionview (= 5.0.7.1) + activejob (= 5.0.7.1) mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.10) - actionview (= 4.2.10) - activesupport (= 4.2.10) - rack (~> 1.6) - rack-test (~> 0.6.2) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) + actionpack (5.0.7.1) + actionview (= 5.0.7.1) + activesupport (= 5.0.7.1) + rack (~> 2.0) + rack-test (~> 0.6.3) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.10) - activesupport (= 4.2.10) + actionview (5.0.7.1) + activesupport (= 5.0.7.1) builder (~> 3.1) erubis (~> 2.7.0) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (4.2.10) - activesupport (= 4.2.10) - globalid (>= 0.3.0) - activemodel (4.2.10) - activesupport (= 4.2.10) - builder (~> 3.1) - activerecord (4.2.10) - activemodel (= 4.2.10) - activesupport (= 4.2.10) - arel (~> 6.0) - activerecord_sane_schema_dumper (0.2) - rails (>= 4, < 5) - activesupport (4.2.10) - i18n (~> 0.7) + activejob (5.0.7.1) + activesupport (= 5.0.7.1) + globalid (>= 0.3.6) + activemodel (5.0.7.1) + activesupport (= 5.0.7.1) + activerecord (5.0.7.1) + activemodel (= 5.0.7.1) + activesupport (= 5.0.7.1) + arel (~> 7.0) + activerecord_sane_schema_dumper (1.0) + rails (>= 5, < 6) + activesupport (5.0.7.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) acts-as-taggable-on (5.0.0) activerecord (>= 4.2.8) @@ -49,13 +52,13 @@ GEM public_suffix (>= 2.0.2, < 4.0) aes_key_wrap (1.0.1) akismet (2.0.0) - arel (6.0.4) - asana (0.6.0) + arel (7.1.4) + asana (0.8.1) faraday (~> 0.9) faraday_middleware (~> 0.9) faraday_middleware-multi_json (~> 0.0) oauth2 (~> 1.0) - asciidoctor (1.5.6.2) + asciidoctor (1.5.8) asciidoctor-plantuml (0.0.8) asciidoctor (~> 1.5) ast (2.4.0) @@ -70,16 +73,17 @@ GEM thread_safe (~> 0.3, >= 0.3.1) babosa (1.0.2) base32 (0.3.2) - batch-loader (1.2.1) + batch-loader (1.2.2) bcrypt (3.1.12) bcrypt_pbkdf (1.0.0) benchmark-ips (2.3.0) - better_errors (2.1.1) + better_errors (2.5.0) coderay (>= 1.0.0) - erubis (>= 2.6.6) + erubi (>= 1.0.0) rack (>= 0.9.0) bindata (2.4.3) - binding_of_caller (0.7.2) + binding_ninja (0.2.2) + binding_of_caller (0.8.0) debug_inspector (>= 0.0.1) bootsnap (1.3.2) msgpack (~> 1.0) @@ -93,18 +97,18 @@ GEM bundler-audit (0.5.0) bundler (~> 1.2) thor (~> 0.18) - byebug (9.0.6) - capybara (2.15.1) + byebug (9.1.0) + capybara (2.16.1) addressable mini_mime (>= 0.1.3) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-screenshot (1.0.14) - capybara (>= 1.0, < 3) + capybara-screenshot (1.0.22) + capybara (>= 1.0, < 4) launchy - carrierwave (1.2.3) + carrierwave (1.3.1) activemodel (>= 4.0.0) activesupport (>= 4.0.0) mime-types (>= 1.16) @@ -125,9 +129,9 @@ GEM concord (0.1.5) adamantium (~> 0.2.0) equalizer (~> 0.0.9) - concurrent-ruby (1.0.5) - concurrent-ruby-ext (1.0.5) - concurrent-ruby (= 1.0.5) + concurrent-ruby (1.1.3) + concurrent-ruby-ext (1.1.3) + concurrent-ruby (= 1.1.3) connection_pool (2.2.2) crack (0.4.3) safe_yaml (~> 1.0.0) @@ -136,15 +140,13 @@ GEM css_parser (1.5.0) addressable daemons (1.2.6) - database_cleaner (1.5.3) - debug_inspector (0.0.2) + database_cleaner (1.7.0) + debug_inspector (0.0.3) debugger-ruby_core_source (1.3.8) deckar01-task_list (2.0.0) html-pipeline declarative (0.0.10) declarative-option (0.1.0) - default_value_for (3.0.2) - activerecord (>= 3.2.0, < 5.1) descendants_tracker (0.0.4) thread_safe (~> 0.3, >= 0.3.1) device_detector (1.0.0) @@ -162,6 +164,8 @@ GEM rotp (~> 2.0) diff-lcs (1.3) diffy (3.1.0) + discordrb-webhooks-blackst0ne (3.3.0) + rest-client (~> 2.0) docile (1.1.5) domain_name (0.5.20180417) unf (>= 0.0.5, < 1.0.0) @@ -178,8 +182,9 @@ GEM mail (~> 2.7) encryptor (3.0.0) equalizer (0.0.11) + erubi (1.7.1) erubis (2.7.0) - escape_utils (1.1.1) + escape_utils (1.2.1) et-orbi (1.0.3) tzinfo eventmachine (1.2.7) @@ -200,7 +205,7 @@ GEM multi_json fast_blank (1.0.0) fast_gettext (1.6.0) - ffaker (2.4.0) + ffaker (2.10.0) ffi (1.9.25) flipper (0.13.0) flipper-active_record (0.13.0) @@ -269,11 +274,13 @@ GEM gettext_i18n_rails (>= 0.7.1) po_to_json (>= 1.0.0) rails (>= 3.2.0) - gitaly-proto (0.123.0) + gitaly-proto (1.5.0) grpc (~> 1.0) github-markup (1.7.0) - gitlab-markup (1.6.4) - gitlab-sidekiq-fetcher (0.3.0) + gitlab-default_value_for (3.1.1) + activerecord (>= 3.2.0, < 6.0) + gitlab-markup (1.6.5) + gitlab-sidekiq-fetcher (0.4.0) sidekiq (~> 5) gitlab-styles (2.4.1) rubocop (~> 0.54.0) @@ -307,8 +314,8 @@ GEM multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (~> 0.7) - gpgme (2.0.13) - mini_portile2 (~> 2.1) + gpgme (2.0.18) + mini_portile2 (~> 2.3) grape (1.1.0) activesupport builder @@ -335,11 +342,11 @@ GEM haml (5.0.4) temple (>= 0.8.0) tilt - haml_lint (0.26.0) + haml_lint (0.28.0) haml (>= 4.0, < 5.1) rainbow rake (>= 10, < 13) - rubocop (>= 0.49.0) + rubocop (>= 0.50.0) sysexits (~> 1.1) hamlit (2.8.8) temple (>= 0.8.0) @@ -361,20 +368,20 @@ GEM html2text (0.2.0) nokogiri (~> 1.6) htmlentities (4.3.4) - http (2.2.2) + http (3.3.0) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (~> 1.0.1) + http-form_data (~> 2.0) http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (1.0.3) + http-form_data (2.1.1) http_parser.rb (0.6.0) httparty (0.13.7) json (~> 1.8) multi_xml (>= 0.5.2) httpclient (2.8.3) - i18n (0.9.5) + i18n (1.2.0) concurrent-ruby (~> 1.0) icalendar (2.4.1) ice_nine (0.11.2) @@ -396,7 +403,7 @@ GEM bindata json-schema (2.8.0) addressable (>= 2.4) - jwt (1.5.6) + jwt (2.1.0) kaminari (1.0.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.0.1) @@ -410,10 +417,10 @@ GEM kaminari-core (= 1.0.1) kaminari-core (1.0.1) kgio (2.10.0) - knapsack (1.16.0) + knapsack (1.17.0) rake - kubeclient (3.1.0) - http (~> 2.2.2) + kubeclient (4.0.0) + http (~> 3.0) recursive-open-struct (~> 1.0, >= 1.0.4) rest-client (~> 2.0) launchy (2.4.3) @@ -439,24 +446,24 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.2.2) + loofah (2.2.3) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.7.0) + mail (2.7.1) mini_mime (>= 0.1.1) mail_room (0.9.1) memoist (0.16.0) memoizable (0.4.2) thread_safe (~> 0.3, >= 0.3.1) - method_source (0.9.0) - mime-types (3.1) + method_source (0.9.2) + mime-types (3.2.2) mime-types-data (~> 3.2015) - mime-types-data (3.2016.0521) - mimemagic (0.3.0) + mime-types-data (3.2018.0812) + mimemagic (0.3.2) mini_magick (4.8.0) mini_mime (1.0.1) mini_portile2 (2.3.0) - minitest (5.7.0) + minitest (5.11.3) msgpack (1.2.4) multi_json (1.13.1) multi_xml (0.6.0) @@ -465,33 +472,35 @@ GEM mustermann-grape (1.0.0) mustermann (~> 1.0.0) mysql2 (0.4.10) + nakayoshi_fork (0.0.4) net-ldap (0.16.0) net-ssh (5.0.1) netrc (0.11.0) - nokogiri (1.8.4) + nio4r (2.3.1) + nokogiri (1.8.5) mini_portile2 (~> 2.3.0) nokogumbo (1.5.0) nokogiri numerizer (0.1.1) oauth (0.5.4) - oauth2 (1.4.0) - faraday (>= 0.8, < 0.13) - jwt (~> 1.0) + oauth2 (1.4.1) + faraday (>= 0.8, < 0.16.0) + jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) octokit (4.9.0) sawyer (~> 0.8.0, >= 0.5.3) - omniauth (1.8.1) - hashie (>= 3.4.6, < 3.6.0) + omniauth (1.9.0) + hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) omniauth-auth0 (2.0.0) omniauth-oauth2 (~> 1.4) omniauth-authentiq (0.3.3) jwt (>= 1.5) omniauth-oauth2 (>= 1.5) - omniauth-azure-oauth2 (0.0.9) - jwt (~> 1.0) + omniauth-azure-oauth2 (0.0.10) + jwt (>= 1.0, < 3.0) omniauth (~> 1.0) omniauth-oauth2 (~> 1.4) omniauth-cas3 (1.1.4) @@ -506,8 +515,8 @@ GEM omniauth-gitlab (1.0.3) omniauth (~> 1.0) omniauth-oauth2 (~> 1.0) - omniauth-google-oauth2 (0.5.3) - jwt (>= 1.5) + omniauth-google-oauth2 (0.6.0) + jwt (>= 2.0) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) omniauth-kerberos (0.3.0) @@ -518,9 +527,9 @@ GEM omniauth-oauth (1.1.0) oauth omniauth (~> 1.0) - omniauth-oauth2 (1.5.0) + omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) - omniauth (~> 1.2) + omniauth (~> 1.9) omniauth-oauth2-generic (0.2.2) omniauth-oauth2 (~> 1.0) omniauth-saml (1.10.0) @@ -549,8 +558,9 @@ GEM railties (>= 4.0.0) peek-gc (0.0.2) peek - peek-mysql2 (1.1.0) - atomic (>= 1.0.0) + peek-mysql2 (1.2.0) + concurrent-ruby + concurrent-ruby-ext mysql2 peek peek-pg (1.3.0) @@ -585,8 +595,8 @@ GEM pry (0.11.3) coderay (~> 1.1.0) method_source (~> 0.9.0) - pry-byebug (3.4.3) - byebug (>= 9.0, < 9.1) + pry-byebug (3.5.1) + byebug (~> 9.1) pry (~> 0.10) pry-rails (0.3.6) pry (>= 0.10.4) @@ -596,7 +606,7 @@ GEM get_process_mem (~> 0.2) puma (>= 2.7, < 4) pyu-ruby-sasl (0.0.3.3) - rack (1.6.10) + rack (2.0.6) rack-accept (0.4.5) rack (>= 0.4) rack-attack (4.4.1) @@ -608,42 +618,47 @@ GEM httpclient (>= 2.4) multi_json (>= 1.3.6) rack (>= 1.1) - rack-protection (2.0.3) + rack-protection (2.0.4) rack rack-proxy (0.6.0) rack rack-test (0.6.3) rack (>= 1.0) - rails (4.2.10) - actionmailer (= 4.2.10) - actionpack (= 4.2.10) - actionview (= 4.2.10) - activejob (= 4.2.10) - activemodel (= 4.2.10) - activerecord (= 4.2.10) - activesupport (= 4.2.10) - bundler (>= 1.3.0, < 2.0) - railties (= 4.2.10) - sprockets-rails + rails (5.0.7.1) + actioncable (= 5.0.7.1) + actionmailer (= 5.0.7.1) + actionpack (= 5.0.7.1) + actionview (= 5.0.7.1) + activejob (= 5.0.7.1) + activemodel (= 5.0.7.1) + activerecord (= 5.0.7.1) + activesupport (= 5.0.7.1) + bundler (>= 1.3.0) + railties (= 5.0.7.1) + sprockets-rails (>= 2.0.0) + rails-controller-testing (1.0.2) + actionpack (~> 5.x, >= 5.0.1) + actionview (~> 5.x, >= 5.0.1) + activesupport (~> 5.x) rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.9) - activesupport (>= 4.2.0, < 5.0) - nokogiri (~> 1.6) - rails-deprecated_sanitizer (>= 1.0.1) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) rails-html-sanitizer (1.0.4) loofah (~> 2.2, >= 2.2.2) - rails-i18n (4.0.9) - i18n (~> 0.7) - railties (~> 4.0) - railties (4.2.10) - actionpack (= 4.2.10) - activesupport (= 4.2.10) + rails-i18n (5.1.1) + i18n (>= 0.7, < 2) + railties (>= 5.0, < 6) + railties (5.0.7.1) + actionpack (= 5.0.7.1) + activesupport (= 5.0.7.1) + method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (3.0.0) raindrops (0.18.0) - rake (12.3.1) + rake (12.3.2) rb-fsevent (0.10.2) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) @@ -676,7 +691,7 @@ GEM redis-actionpack (>= 5.0, < 6) redis-activesupport (>= 5.0, < 6) redis-store (>= 1.2, < 2) - redis-store (1.4.1) + redis-store (1.6.0) redis (>= 2.2, < 5) regexp_parser (0.5.0) representable (3.0.4) @@ -711,8 +726,8 @@ GEM rspec-mocks (3.7.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.7.0) - rspec-parameterized (0.4.0) - binding_of_caller + rspec-parameterized (0.4.1) + binding_ninja (>= 0.2.1) parser proc_to_ast rspec (>= 2.13, < 4) @@ -729,8 +744,7 @@ GEM rspec-core rspec-set (0.1.3) rspec-support (3.7.1) - rspec_junit_formatter (0.2.3) - builder (< 4) + rspec_junit_formatter (0.4.1) rspec-core (>= 2, < 4, != 2.12.0) rspec_profiling (0.0.5) activerecord @@ -756,8 +770,8 @@ GEM ruby-progressbar (1.9.0) ruby-saml (1.7.2) nokogiri (>= 1.5.10) - ruby_parser (3.9.0) - sexp_processor (~> 4.1) + ruby_parser (3.11.0) + sexp_processor (~> 4.9) rubyntlm (0.6.2) rubypants (0.2.0) rubyzip (1.2.2) @@ -794,15 +808,15 @@ GEM selenium-webdriver (3.12.0) childprocess (~> 0.5) rubyzip (~> 1.2) - sentry-raven (2.7.2) + sentry-raven (2.7.4) faraday (>= 0.7.6, < 1.0) settingslogic (2.0.9) - sexp_processor (4.9.0) + sexp_processor (4.11.0) sham_rack (1.3.6) rack shoulda-matchers (3.1.2) activesupport (>= 4.0.0) - sidekiq (5.2.1) + sidekiq (5.2.3) connection_pool (~> 2.2, >= 2.2.2) rack-protection (>= 1.5.0) redis (>= 3.3.5, < 5) @@ -847,8 +861,6 @@ GEM sysexits (1.2.0) temple (0.8.0) test-prof (0.2.5) - test_after_commit (1.1.0) - activerecord (>= 3.2) text (1.3.1) thin (1.7.2) daemons (~> 1.0, >= 1.0.9) @@ -885,7 +897,7 @@ GEM get_process_mem (~> 0) unicorn (>= 4, < 6) uniform_notifier (1.10.0) - unparser (0.2.7) + unparser (0.4.2) abstract_type (~> 0.0.7) adamantium (~> 0.2.0) concord (~> 0.1.5) @@ -911,6 +923,9 @@ GEM hashdiff webpack-rails (0.9.11) railties (>= 3.2.0) + websocket-driver (0.6.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.3) wikicloth (0.8.1) builder expression_parser @@ -926,45 +941,45 @@ PLATFORMS DEPENDENCIES RedCloth (~> 4.3.2) ace-rails-ap (~> 4.1.0) - activerecord_sane_schema_dumper (= 0.2) + activerecord_sane_schema_dumper (= 1.0) acts-as-taggable-on (~> 5.0) addressable (~> 2.5.2) akismet (~> 2.0) - asana (~> 0.6.0) - asciidoctor (~> 1.5.6) + asana (~> 0.8.1) + asciidoctor (~> 1.5.8) asciidoctor-plantuml (= 0.0.8) attr_encrypted (~> 3.1.0) awesome_print babosa (~> 1.0.2) base32 (~> 0.3.0) - batch-loader (~> 1.2.1) + batch-loader (~> 1.2.2) bcrypt_pbkdf (~> 1.0) benchmark-ips (~> 2.3.0) - better_errors (~> 2.1.0) - binding_of_caller (~> 0.7.2) + better_errors (~> 2.5.0) + binding_of_caller (~> 0.8.0) bootsnap (~> 1.3) bootstrap_form (~> 2.7.0) brakeman (~> 4.2) browser (~> 2.5) bullet (~> 5.5.0) bundler-audit (~> 0.5.0) - capybara (~> 2.15) - capybara-screenshot (~> 1.0.0) - carrierwave (= 1.2.3) + capybara (~> 2.16.1) + capybara-screenshot (~> 1.0.18) + carrierwave (~> 1.3) charlock_holmes (~> 0.7.5) chronic (~> 0.10.2) chronic_duration (~> 0.10.6) commonmarker (~> 0.17) - concurrent-ruby (~> 1.0.5) + concurrent-ruby (~> 1.1) connection_pool (~> 2.0) creole (~> 0.5.0) - database_cleaner (~> 1.5.0) + database_cleaner (~> 1.7.0) deckar01-task_list (= 2.0.0) - default_value_for (~> 3.0.0) device_detector devise (~> 4.4) devise-two-factor (~> 3.0.0) diffy (~> 3.1.0) + discordrb-webhooks-blackst0ne (~> 3.3) doorkeeper (~> 4.3) doorkeeper-openid_connect (~> 1.5) ed25519 (~> 1.2) @@ -974,7 +989,7 @@ DEPENDENCIES factory_bot_rails (~> 4.8.2) faraday (~> 0.12) fast_blank - ffaker (~> 2.4) + ffaker (~> 2.10) flipper (~> 0.13.0) flipper-active_record (~> 0.13.0) flipper-active_support_cache_store (~> 0.13.0) @@ -993,24 +1008,25 @@ DEPENDENCIES gettext (~> 3.2.2) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly-proto (~> 0.123.0) + gitaly-proto (~> 1.5.0) github-markup (~> 1.7.0) - gitlab-markup (~> 1.6.4) - gitlab-sidekiq-fetcher + gitlab-default_value_for (~> 3.1.1) + gitlab-markup (~> 1.6.5) + gitlab-sidekiq-fetcher (~> 0.4.0) gitlab-styles (~> 2.4) gitlab_omniauth-ldap (~> 2.0.4) gon (~> 6.2) google-api-client (~> 0.23) google-protobuf (~> 3.6) - gpgme - grape (~> 1.1) + gpgme (~> 2.0.18) + grape (~> 1.1.0) grape-entity (~> 0.7.1) grape-path-helpers (~> 1.0) grape_logging (~> 1.7) graphiql-rails (~> 1.4.10) graphql (~> 1.8.0) grpc (~> 1.15.0) - haml_lint (~> 0.26.0) + haml_lint (~> 0.28.0) hamlit (~> 2.8.8) hangouts-chat (~> 0.0.5) hashie-forbidden_attributes @@ -1025,10 +1041,10 @@ DEPENDENCIES jquery-atwho-rails (~> 1.3.2) js_regex (~> 2.2.1) json-schema (~> 2.8.0) - jwt (~> 1.5.6) + jwt (~> 2.1.0) kaminari (~> 1.0) - knapsack (~> 1.16) - kubeclient (~> 3.1.0) + knapsack (~> 1.17) + kubeclient (~> 4.0.0) letter_opener_web (~> 1.3.0) license_finder (~> 5.4) licensee (~> 8.9) @@ -1036,12 +1052,14 @@ DEPENDENCIES loofah (~> 2.2) mail_room (~> 0.9.1) method_source (~> 0.8) + mimemagic (~> 0.3.2) mini_magick - minitest (~> 5.7.0) + minitest (~> 5.11.0) mysql2 (~> 0.4.10) + nakayoshi_fork (~> 0.0.4) net-ldap net-ssh (~> 5.0) - nokogiri (~> 1.8.2) + nokogiri (~> 1.8.5) oauth2 (~> 1.4) octokit (~> 4.9) omniauth (~> 1.8) @@ -1052,7 +1070,7 @@ DEPENDENCIES omniauth-facebook (~> 4.0.0) omniauth-github (~> 1.3) omniauth-gitlab (~> 1.0.2) - omniauth-google-oauth2 (~> 0.5.3) + omniauth-google-oauth2 (~> 0.6.0) omniauth-kerberos (~> 0.3.0) omniauth-oauth2-generic (~> 0.2.2) omniauth-saml (~> 1.10) @@ -1062,24 +1080,26 @@ DEPENDENCIES org-ruby (~> 0.9.12) peek (~> 1.0.1) peek-gc (~> 0.0.2) - peek-mysql2 (~> 1.1.0) + peek-mysql2 (~> 1.2.0) peek-pg (~> 1.3.0) peek-rblineprof (~> 0.2.0) peek-redis (~> 1.2.0) pg (~> 0.18.2) premailer-rails (~> 1.9.7) prometheus-client-mmap (~> 0.9.4) - pry-byebug (~> 3.4.1) + pry-byebug (~> 3.5.1) pry-rails (~> 0.3.4) puma (~> 3.12) puma_worker_killer + rack (= 2.0.6) rack-attack (~> 4.4.1) rack-cors (~> 1.0.0) rack-oauth2 (~> 1.2.1) rack-proxy (~> 0.6.0) - rails (= 4.2.10) + rails (= 5.0.7.1) + rails-controller-testing rails-deprecated_sanitizer (~> 1.0.3) - rails-i18n (~> 4.0.9) + rails-i18n (~> 5.1) rainbow (~> 3.0) raindrops (~> 0.18) rblineprof (~> 0.3.6) @@ -1111,6 +1131,7 @@ DEPENDENCIES rufus-scheduler (~> 3.4) rugged (~> 0.27) sanitize (~> 4.6) + sass (~> 3.5) sass-rails (~> 5.0.6) scss_lint (~> 0.56.0) seed-fu (~> 2.3.7) @@ -1133,7 +1154,6 @@ DEPENDENCIES state_machines-activerecord (~> 0.5.1) sys-filesystem (~> 1.1.6) test-prof (~> 0.2.5) - test_after_commit (~> 1.1) thin (~> 1.7.0) timecop (~> 0.8.0) toml-rb (~> 1.0.0) @@ -1152,4 +1172,4 @@ DEPENDENCIES wikicloth (= 0.8.1) BUNDLED WITH - 1.17.1 + 1.17.3 diff --git a/Gemfile.rails5 b/Gemfile.rails5 deleted file mode 100644 index 2b526b19ba..0000000000 --- a/Gemfile.rails5 +++ /dev/null @@ -1,7 +0,0 @@ -# BUNDLE_GEMFILE=Gemfile.rails5 bundle install - -ENV["RAILS5"] = "true" - -gemfile = File.expand_path("../Gemfile", __FILE__) - -eval(File.read(gemfile), nil, gemfile) diff --git a/Gemfile.rails5.lock b/Gemfile.rails5.lock deleted file mode 100644 index 81662752c4..0000000000 --- a/Gemfile.rails5.lock +++ /dev/null @@ -1,1164 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - RedCloth (4.3.2) - abstract_type (0.0.7) - ace-rails-ap (4.1.2) - actioncable (5.0.7) - actionpack (= 5.0.7) - nio4r (>= 1.2, < 3.0) - websocket-driver (~> 0.6.1) - actionmailer (5.0.7) - actionpack (= 5.0.7) - actionview (= 5.0.7) - activejob (= 5.0.7) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (5.0.7) - actionview (= 5.0.7) - activesupport (= 5.0.7) - rack (~> 2.0) - rack-test (~> 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.0.7) - activesupport (= 5.0.7) - builder (~> 3.1) - erubis (~> 2.7.0) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.0.7) - activesupport (= 5.0.7) - globalid (>= 0.3.6) - activemodel (5.0.7) - activesupport (= 5.0.7) - activerecord (5.0.7) - activemodel (= 5.0.7) - activesupport (= 5.0.7) - arel (~> 7.0) - activerecord_sane_schema_dumper (1.0) - rails (>= 5, < 6) - activesupport (5.0.7) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - acts-as-taggable-on (5.0.0) - activerecord (>= 4.2.8) - adamantium (0.2.0) - ice_nine (~> 0.11.0) - memoizable (~> 0.4.0) - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) - aes_key_wrap (1.0.1) - akismet (2.0.0) - arel (7.1.4) - asana (0.6.0) - faraday (~> 0.9) - faraday_middleware (~> 0.9) - faraday_middleware-multi_json (~> 0.0) - oauth2 (~> 1.0) - asciidoctor (1.5.6.2) - asciidoctor-plantuml (0.0.8) - asciidoctor (~> 1.5) - ast (2.4.0) - atomic (1.1.99) - attr_encrypted (3.1.0) - encryptor (~> 3.0.0) - attr_required (1.0.0) - awesome_print (1.8.0) - axiom-types (0.1.1) - descendants_tracker (~> 0.0.4) - ice_nine (~> 0.11.0) - thread_safe (~> 0.3, >= 0.3.1) - babosa (1.0.2) - base32 (0.3.2) - batch-loader (1.2.1) - bcrypt (3.1.12) - bcrypt_pbkdf (1.0.0) - benchmark-ips (2.3.0) - better_errors (2.1.1) - coderay (>= 1.0.0) - erubis (>= 2.6.6) - rack (>= 0.9.0) - bindata (2.4.3) - binding_of_caller (0.7.2) - debug_inspector (>= 0.0.1) - bootsnap (1.3.2) - msgpack (~> 1.0) - bootstrap_form (2.7.0) - brakeman (4.2.1) - browser (2.5.3) - builder (3.2.3) - bullet (5.5.1) - activesupport (>= 3.0.0) - uniform_notifier (~> 1.10.0) - bundler-audit (0.5.0) - bundler (~> 1.2) - thor (~> 0.18) - byebug (9.0.6) - capybara (2.15.1) - addressable - mini_mime (>= 0.1.3) - nokogiri (>= 1.3.3) - rack (>= 1.0.0) - rack-test (>= 0.5.4) - xpath (~> 2.0) - capybara-screenshot (1.0.14) - capybara (>= 1.0, < 3) - launchy - carrierwave (1.2.3) - activemodel (>= 4.0.0) - activesupport (>= 4.0.0) - mime-types (>= 1.16) - cause (0.1) - charlock_holmes (0.7.6) - childprocess (0.9.0) - ffi (~> 1.0, >= 1.0.11) - chronic (0.10.2) - chronic_duration (0.10.6) - numerizer (~> 0.1.1) - chunky_png (1.3.5) - citrus (3.0.2) - coderay (1.1.2) - coercible (1.0.0) - descendants_tracker (~> 0.0.1) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concord (0.1.5) - adamantium (~> 0.2.0) - equalizer (~> 0.0.9) - concurrent-ruby (1.0.5) - concurrent-ruby-ext (1.0.5) - concurrent-ruby (= 1.0.5) - connection_pool (2.2.2) - crack (0.4.3) - safe_yaml (~> 1.0.0) - crass (1.0.4) - creole (0.5.0) - css_parser (1.5.0) - addressable - daemons (1.2.6) - database_cleaner (1.5.3) - debug_inspector (0.0.2) - debugger-ruby_core_source (1.3.8) - deckar01-task_list (2.0.0) - html-pipeline - declarative (0.0.10) - declarative-option (0.1.0) - default_value_for (3.0.5) - activerecord (>= 3.2.0, < 5.2) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) - device_detector (1.0.0) - devise (4.4.3) - bcrypt (~> 3.0) - orm_adapter (~> 0.1) - railties (>= 4.1.0, < 6.0) - responders - warden (~> 1.2.3) - devise-two-factor (3.0.0) - activesupport - attr_encrypted (>= 1.3, < 4, != 2) - devise (~> 4.0) - railties - rotp (~> 2.0) - diff-lcs (1.3) - diffy (3.1.0) - docile (1.1.5) - domain_name (0.5.20180417) - unf (>= 0.0.5, < 1.0.0) - doorkeeper (4.3.2) - railties (>= 4.2) - doorkeeper-openid_connect (1.5.0) - doorkeeper (~> 4.3) - json-jwt (~> 1.6) - ed25519 (1.2.4) - email_reply_trimmer (0.1.6) - email_spec (2.2.0) - htmlentities (~> 4.3.3) - launchy (~> 2.1) - mail (~> 2.7) - encryptor (3.0.0) - equalizer (0.0.11) - erubis (2.7.0) - escape_utils (1.1.1) - et-orbi (1.0.3) - tzinfo - eventmachine (1.2.7) - excon (0.62.0) - execjs (2.6.0) - expression_parser (0.9.0) - factory_bot (4.8.2) - activesupport (>= 3.0.0) - factory_bot_rails (4.8.2) - factory_bot (~> 4.8.2) - railties (>= 3.0.0) - faraday (0.12.2) - multipart-post (>= 1.2, < 3) - faraday_middleware (0.12.2) - faraday (>= 0.7.4, < 1.0) - faraday_middleware-multi_json (0.0.6) - faraday_middleware - multi_json - fast_blank (1.0.0) - fast_gettext (1.6.0) - ffaker (2.4.0) - ffi (1.9.25) - flipper (0.13.0) - flipper-active_record (0.13.0) - activerecord (>= 3.2, < 6) - flipper (~> 0.13.0) - flipper-active_support_cache_store (0.13.0) - activesupport (>= 3.2, < 6) - flipper (~> 0.13.0) - flowdock (0.7.1) - httparty (~> 0.7) - multi_json - fog-aliyun (0.2.0) - fog-core (~> 1.27) - fog-json (~> 1.0) - ipaddress (~> 0.8) - xml-simple (~> 1.1) - fog-aws (2.0.1) - fog-core (~> 1.38) - fog-json (~> 1.0) - fog-xml (~> 0.1) - ipaddress (~> 0.8) - fog-core (1.45.0) - builder - excon (~> 0.58) - formatador (~> 0.2) - fog-google (1.7.1) - fog-core - fog-json - fog-xml - google-api-client (~> 0.23.0) - fog-json (1.0.2) - fog-core (~> 1.0) - multi_json (~> 1.10) - fog-local (0.3.1) - fog-core (~> 1.27) - fog-openstack (0.1.21) - fog-core (>= 1.40) - fog-json (>= 1.0) - ipaddress (>= 0.8) - fog-rackspace (0.1.1) - fog-core (>= 1.35) - fog-json (>= 1.0) - fog-xml (>= 0.1) - ipaddress (>= 0.8) - fog-xml (0.1.3) - fog-core - nokogiri (>= 1.5.11, < 2.0.0) - font-awesome-rails (4.7.0.1) - railties (>= 3.2, < 5.1) - foreman (0.84.0) - thor (~> 0.19.1) - formatador (0.2.5) - fuubar (2.2.0) - rspec-core (~> 3.0) - ruby-progressbar (~> 1.4) - gemojione (3.3.0) - json - get_process_mem (0.2.0) - gettext (3.2.9) - locale (>= 2.0.5) - text (>= 1.3.0) - gettext_i18n_rails (1.8.0) - fast_gettext (>= 0.9.0) - gettext_i18n_rails_js (1.3.0) - gettext (>= 3.0.2) - gettext_i18n_rails (>= 0.7.1) - po_to_json (>= 1.0.0) - rails (>= 3.2.0) - gitaly-proto (0.123.0) - grpc (~> 1.0) - github-markup (1.7.0) - gitlab-markup (1.6.4) - gitlab-sidekiq-fetcher (0.3.0) - sidekiq (~> 5) - gitlab-styles (2.4.1) - rubocop (~> 0.54.0) - rubocop-gitlab-security (~> 0.1.0) - rubocop-rspec (~> 1.19) - gitlab_omniauth-ldap (2.0.4) - net-ldap (~> 0.16) - omniauth (~> 1.3) - pyu-ruby-sasl (>= 0.0.3.3, < 0.1) - rubyntlm (~> 0.5) - globalid (0.4.1) - activesupport (>= 4.2.0) - gon (6.2.0) - actionpack (>= 3.0) - multi_json - request_store (>= 1.0) - google-api-client (0.23.4) - addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.5, < 0.7.0) - httpclient (>= 2.8.1, < 3.0) - mime-types (~> 3.0) - representable (~> 3.0) - retriable (>= 2.0, < 4.0) - google-protobuf (3.6.1) - googleapis-common-protos-types (1.0.2) - google-protobuf (~> 3.0) - googleauth (0.6.6) - faraday (~> 0.12) - jwt (>= 1.4, < 3.0) - memoist (~> 0.12) - multi_json (~> 1.11) - os (>= 0.9, < 2.0) - signet (~> 0.7) - gpgme (2.0.13) - mini_portile2 (~> 2.1) - grape (1.1.0) - activesupport - builder - mustermann-grape (~> 1.0.0) - rack (>= 1.3.0) - rack-accept - virtus (>= 1.0.0) - grape-entity (0.7.1) - activesupport (>= 4.0) - multi_json (>= 1.3.2) - grape-path-helpers (1.0.6) - activesupport (>= 4, < 5.1) - grape (~> 1.0) - rake (~> 12) - grape_logging (1.7.0) - grape - graphiql-rails (1.4.10) - railties - sprockets-rails - graphql (1.8.1) - grpc (1.15.0) - google-protobuf (~> 3.1) - googleapis-common-protos-types (~> 1.0.0) - haml (5.0.4) - temple (>= 0.8.0) - tilt - haml_lint (0.26.0) - haml (>= 4.0, < 5.1) - rainbow - rake (>= 10, < 13) - rubocop (>= 0.49.0) - sysexits (~> 1.1) - hamlit (2.8.8) - temple (>= 0.8.0) - thor - tilt - hangouts-chat (0.0.5) - hashdiff (0.3.4) - hashie (3.5.7) - hashie-forbidden_attributes (0.1.1) - hashie (>= 3.0) - health_check (2.6.0) - rails (>= 4.0) - hipchat (1.5.2) - httparty - mimemagic - html-pipeline (2.8.4) - activesupport (>= 2) - nokogiri (>= 1.4) - html2text (0.2.0) - nokogiri (~> 1.6) - htmlentities (4.3.4) - http (2.2.2) - addressable (~> 2.3) - http-cookie (~> 1.0) - http-form_data (~> 1.0.1) - http_parser.rb (~> 0.6.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - http-form_data (1.0.3) - http_parser.rb (0.6.0) - httparty (0.13.7) - json (~> 1.8) - multi_xml (>= 0.5.2) - httpclient (2.8.3) - i18n (1.1.0) - concurrent-ruby (~> 1.0) - icalendar (2.4.1) - ice_nine (0.11.2) - influxdb (0.2.3) - cause - json - ipaddress (0.8.3) - jira-ruby (1.4.1) - activesupport - multipart-post - oauth (~> 0.5, >= 0.5.0) - jquery-atwho-rails (1.3.2) - js_regex (2.2.1) - regexp_parser (>= 0.4.11, <= 0.5.0) - json (1.8.6) - json-jwt (1.9.4) - activesupport - aes_key_wrap - bindata - json-schema (2.8.0) - addressable (>= 2.4) - jwt (1.5.6) - kaminari (1.0.1) - activesupport (>= 4.1.0) - kaminari-actionview (= 1.0.1) - kaminari-activerecord (= 1.0.1) - kaminari-core (= 1.0.1) - kaminari-actionview (1.0.1) - actionview - kaminari-core (= 1.0.1) - kaminari-activerecord (1.0.1) - activerecord - kaminari-core (= 1.0.1) - kaminari-core (1.0.1) - kgio (2.10.0) - knapsack (1.16.0) - rake - kubeclient (3.1.0) - http (~> 2.2.2) - recursive-open-struct (~> 1.0, >= 1.0.4) - rest-client (~> 2.0) - launchy (2.4.3) - addressable (~> 2.3) - letter_opener (1.4.1) - launchy (~> 2.2) - letter_opener_web (1.3.0) - actionmailer (>= 3.2) - letter_opener (~> 1.0) - railties (>= 3.2) - license_finder (5.4.0) - bundler - rubyzip - thor - toml (= 0.2.0) - with_env (= 1.1.0) - xml-simple - licensee (8.9.2) - rugged (~> 0.24) - locale (2.1.2) - lograge (0.10.0) - actionpack (>= 4) - activesupport (>= 4) - railties (>= 4) - request_store (~> 1.0) - loofah (2.2.2) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.0) - mini_mime (>= 0.1.1) - mail_room (0.9.1) - memoist (0.16.0) - memoizable (0.4.2) - thread_safe (~> 0.3, >= 0.3.1) - method_source (0.9.0) - mime-types (3.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2016.0521) - mimemagic (0.3.0) - mini_magick (4.8.0) - mini_mime (1.0.1) - mini_portile2 (2.3.0) - minitest (5.7.0) - msgpack (1.2.4) - multi_json (1.13.1) - multi_xml (0.6.0) - multipart-post (2.0.0) - mustermann (1.0.3) - mustermann-grape (1.0.0) - mustermann (~> 1.0.0) - mysql2 (0.4.10) - net-ldap (0.16.0) - net-ssh (5.0.1) - netrc (0.11.0) - nio4r (2.3.1) - nokogiri (1.8.4) - mini_portile2 (~> 2.3.0) - nokogumbo (1.5.0) - nokogiri - numerizer (0.1.1) - oauth (0.5.4) - oauth2 (1.4.0) - faraday (>= 0.8, < 0.13) - jwt (~> 1.0) - multi_json (~> 1.3) - multi_xml (~> 0.5) - rack (>= 1.2, < 3) - octokit (4.9.0) - sawyer (~> 0.8.0, >= 0.5.3) - omniauth (1.8.1) - hashie (>= 3.4.6, < 3.6.0) - rack (>= 1.6.2, < 3) - omniauth-auth0 (2.0.0) - omniauth-oauth2 (~> 1.4) - omniauth-authentiq (0.3.3) - jwt (>= 1.5) - omniauth-oauth2 (>= 1.5) - omniauth-azure-oauth2 (0.0.9) - jwt (~> 1.0) - omniauth (~> 1.0) - omniauth-oauth2 (~> 1.4) - omniauth-cas3 (1.1.4) - addressable (~> 2.3) - nokogiri (~> 1.7, >= 1.7.1) - omniauth (~> 1.2) - omniauth-facebook (4.0.0) - omniauth-oauth2 (~> 1.2) - omniauth-github (1.3.0) - omniauth (~> 1.5) - omniauth-oauth2 (>= 1.4.0, < 2.0) - omniauth-gitlab (1.0.3) - omniauth (~> 1.0) - omniauth-oauth2 (~> 1.0) - omniauth-google-oauth2 (0.5.3) - jwt (>= 1.5) - omniauth (>= 1.1.1) - omniauth-oauth2 (>= 1.5) - omniauth-kerberos (0.3.0) - omniauth-multipassword - timfel-krb5-auth (~> 0.8) - omniauth-multipassword (0.4.2) - omniauth (~> 1.0) - omniauth-oauth (1.1.0) - oauth - omniauth (~> 1.0) - omniauth-oauth2 (1.5.0) - oauth2 (~> 1.1) - omniauth (~> 1.2) - omniauth-oauth2-generic (0.2.2) - omniauth-oauth2 (~> 1.0) - omniauth-saml (1.10.0) - omniauth (~> 1.3, >= 1.3.2) - ruby-saml (~> 1.7) - omniauth-shibboleth (1.3.0) - omniauth (>= 1.0.0) - omniauth-twitter (1.4.0) - omniauth-oauth (~> 1.1) - rack - omniauth_crowd (2.2.3) - activesupport - nokogiri (>= 1.4.4) - omniauth (~> 1.0) - org-ruby (0.9.12) - rubypants (~> 0.2) - orm_adapter (0.5.0) - os (1.0.0) - parallel (1.12.1) - parser (2.5.1.2) - ast (~> 2.4.0) - parslet (1.8.2) - peek (1.0.1) - concurrent-ruby (>= 0.9.0) - concurrent-ruby-ext (>= 0.9.0) - railties (>= 4.0.0) - peek-gc (0.0.2) - peek - peek-mysql2 (1.1.0) - atomic (>= 1.0.0) - mysql2 - peek - peek-pg (1.3.0) - concurrent-ruby - concurrent-ruby-ext - peek - pg - peek-rblineprof (0.2.0) - peek - rblineprof - peek-redis (1.2.0) - atomic (>= 1.0.0) - peek - redis - pg (0.18.4) - po_to_json (1.0.1) - json (>= 1.6.0) - powerpack (0.1.1) - premailer (1.10.4) - addressable - css_parser (>= 1.4.10) - htmlentities (>= 4.0.0) - premailer-rails (1.9.7) - actionmailer (>= 3, < 6) - premailer (~> 1.7, >= 1.7.9) - proc_to_ast (0.1.0) - coderay - parser - unparser - procto (0.0.3) - prometheus-client-mmap (0.9.4) - pry (0.11.3) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.4.3) - byebug (>= 9.0, < 9.1) - pry (~> 0.10) - 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) - rack (>= 0.4) - rack-attack (4.4.1) - rack - rack-cors (1.0.2) - rack-oauth2 (1.2.3) - activesupport (>= 2.3) - attr_required (>= 0.0.5) - httpclient (>= 2.4) - multi_json (>= 1.3.6) - rack (>= 1.1) - rack-protection (2.0.3) - rack - rack-proxy (0.6.0) - rack - rack-test (0.6.3) - rack (>= 1.0) - rails (5.0.7) - actioncable (= 5.0.7) - actionmailer (= 5.0.7) - actionpack (= 5.0.7) - actionview (= 5.0.7) - activejob (= 5.0.7) - activemodel (= 5.0.7) - activerecord (= 5.0.7) - activesupport (= 5.0.7) - bundler (>= 1.3.0) - railties (= 5.0.7) - sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.2) - actionpack (~> 5.x, >= 5.0.1) - actionview (~> 5.x, >= 5.0.1) - activesupport (~> 5.x) - rails-deprecated_sanitizer (1.0.3) - activesupport (>= 4.2.0.alpha) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.0.4) - loofah (~> 2.2, >= 2.2.2) - rails-i18n (5.1.1) - i18n (>= 0.7, < 2) - railties (>= 5.0, < 6) - railties (5.0.7) - actionpack (= 5.0.7) - activesupport (= 5.0.7) - method_source - rake (>= 0.8.7) - thor (>= 0.18.1, < 2.0) - rainbow (3.0.0) - raindrops (0.18.0) - rake (12.3.1) - rb-fsevent (0.10.2) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) - rblineprof (0.3.6) - debugger-ruby_core_source (~> 1.3) - rbtrace (0.4.10) - ffi (>= 1.0.6) - msgpack (>= 0.4.3) - trollop (>= 1.16.2) - rdoc (6.0.4) - re2 (1.1.1) - recaptcha (3.0.0) - json - recursive-open-struct (1.1.0) - redcarpet (3.4.0) - redis (3.3.5) - redis-actionpack (5.0.2) - actionpack (>= 4.0, < 6) - redis-rack (>= 1, < 3) - redis-store (>= 1.1.0, < 2) - redis-activesupport (5.0.4) - activesupport (>= 3, < 6) - redis-store (>= 1.3, < 2) - redis-namespace (1.6.0) - redis (>= 3.0.4) - redis-rack (2.0.4) - rack (>= 1.5, < 3) - redis-store (>= 1.2, < 2) - redis-rails (5.0.2) - redis-actionpack (>= 5.0, < 6) - redis-activesupport (>= 5.0, < 6) - redis-store (>= 1.2, < 2) - redis-store (1.4.1) - redis (>= 2.2, < 5) - regexp_parser (0.5.0) - representable (3.0.4) - declarative (< 0.1.0) - declarative-option (< 0.2.0) - uber (< 0.2.0) - request_store (1.3.1) - responders (2.4.0) - actionpack (>= 4.2.0, < 5.3) - railties (>= 4.2.0, < 5.3) - rest-client (2.0.2) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 4.0) - netrc (~> 0.8) - retriable (3.1.2) - rinku (2.0.0) - rotp (2.1.2) - rouge (3.3.0) - rqrcode (0.7.0) - chunky_png - rqrcode-rails3 (0.1.7) - rqrcode (>= 0.4.2) - rspec (3.7.0) - rspec-core (~> 3.7.0) - rspec-expectations (~> 3.7.0) - rspec-mocks (~> 3.7.0) - rspec-core (3.7.1) - rspec-support (~> 3.7.0) - rspec-expectations (3.7.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.7.0) - rspec-mocks (3.7.0) - diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.7.0) - rspec-parameterized (0.4.0) - binding_of_caller - parser - proc_to_ast - rspec (>= 2.13, < 4) - unparser - rspec-rails (3.7.2) - actionpack (>= 3.0) - activesupport (>= 3.0) - railties (>= 3.0) - rspec-core (~> 3.7.0) - rspec-expectations (~> 3.7.0) - rspec-mocks (~> 3.7.0) - rspec-support (~> 3.7.0) - rspec-retry (0.4.5) - rspec-core - rspec-set (0.1.3) - rspec-support (3.7.1) - rspec_junit_formatter (0.4.1) - rspec-core (>= 2, < 4, != 2.12.0) - rspec_profiling (0.0.5) - activerecord - pg - rails - sqlite3 - rubocop (0.54.0) - parallel (~> 1.10) - parser (>= 2.5) - powerpack (~> 0.1) - rainbow (>= 2.2.2, < 4.0) - ruby-progressbar (~> 1.7) - unicode-display_width (~> 1.0, >= 1.0.1) - rubocop-gitlab-security (0.1.1) - rubocop (>= 0.51) - rubocop-rspec (1.22.2) - rubocop (>= 0.52.1) - ruby-enum (0.7.2) - i18n - ruby-fogbugz (0.2.1) - crack (~> 0.4) - ruby-prof (0.17.0) - ruby-progressbar (1.9.0) - ruby-saml (1.7.2) - nokogiri (>= 1.5.10) - ruby_parser (3.9.0) - sexp_processor (~> 4.1) - rubyntlm (0.6.2) - rubypants (0.2.0) - rubyzip (1.2.2) - rufus-scheduler (3.4.0) - et-orbi (~> 1.0) - rugged (0.27.5) - safe_yaml (1.0.4) - sanitize (4.6.6) - crass (~> 1.0.2) - nokogiri (>= 1.4.4) - nokogumbo (~> 1.4) - sass (3.5.5) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sass-rails (5.0.6) - railties (>= 4.0.0, < 6) - sass (~> 3.1) - sprockets (>= 2.8, < 4.0) - sprockets-rails (>= 2.0, < 4.0) - tilt (>= 1.1, < 3) - sawyer (0.8.1) - addressable (>= 2.3.5, < 2.6) - faraday (~> 0.8, < 1.0) - scss_lint (0.56.0) - rake (>= 0.9, < 13) - sass (~> 3.5.3) - seed-fu (2.3.7) - activerecord (>= 3.1) - activesupport (>= 3.1) - select2-rails (3.5.9.3) - thor (~> 0.14) - selenium-webdriver (3.12.0) - childprocess (~> 0.5) - rubyzip (~> 1.2) - sentry-raven (2.7.2) - faraday (>= 0.7.6, < 1.0) - settingslogic (2.0.9) - sexp_processor (4.9.0) - sham_rack (1.3.6) - rack - shoulda-matchers (3.1.2) - activesupport (>= 4.0.0) - sidekiq (5.2.1) - connection_pool (~> 2.2, >= 2.2.2) - rack-protection (>= 1.5.0) - redis (>= 3.3.5, < 5) - sidekiq-cron (0.6.0) - rufus-scheduler (>= 3.3.0) - sidekiq (>= 4.2.1) - signet (0.11.0) - addressable (~> 2.3) - faraday (~> 0.9) - jwt (>= 1.5, < 3.0) - multi_json (~> 1.10) - simple_po_parser (1.1.2) - simplecov (0.14.1) - docile (~> 1.1.0) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - simplecov-html (0.10.0) - slack-notifier (1.5.1) - spring (2.0.2) - activesupport (>= 4.2) - spring-commands-rspec (1.0.4) - spring (>= 0.9.1) - sprockets (3.7.2) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.1) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - sqlite3 (1.3.13) - sshkey (1.9.0) - stackprof (0.2.10) - state_machines (0.5.0) - state_machines-activemodel (0.5.1) - activemodel (>= 4.1, < 6.0) - state_machines (>= 0.5.0) - state_machines-activerecord (0.5.1) - activerecord (>= 4.1, < 6.0) - state_machines-activemodel (>= 0.5.0) - sys-filesystem (1.1.6) - ffi - sysexits (1.2.0) - temple (0.8.0) - test-prof (0.2.5) - text (1.3.1) - thin (1.7.2) - daemons (~> 1.0, >= 1.0.9) - eventmachine (~> 1.0, >= 1.0.4) - rack (>= 1, < 3) - thor (0.19.4) - thread_safe (0.3.6) - tilt (2.0.8) - timecop (0.8.1) - timfel-krb5-auth (0.8.3) - toml (0.2.0) - parslet (~> 1.8.0) - toml-rb (1.0.0) - citrus (~> 3.0, > 3.0) - trollop (2.1.3) - truncato (0.7.10) - htmlentities (~> 4.3.1) - nokogiri (~> 1.8.0, >= 1.7.0) - tzinfo (1.2.5) - thread_safe (~> 0.1) - u2f (0.2.1) - uber (0.1.0) - uglifier (2.7.2) - execjs (>= 0.3.0) - json (>= 1.8.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.5) - unicode-display_width (1.3.2) - unicorn (5.1.0) - kgio (~> 2.6) - raindrops (~> 0.7) - unicorn-worker-killer (0.4.4) - get_process_mem (~> 0) - unicorn (>= 4, < 6) - uniform_notifier (1.10.0) - unparser (0.2.7) - abstract_type (~> 0.0.7) - adamantium (~> 0.2.0) - concord (~> 0.1.5) - diff-lcs (~> 1.3) - equalizer (~> 0.0.9) - parser (>= 2.3.1.2, < 2.6) - procto (~> 0.0.2) - validates_hostname (1.0.6) - activerecord (>= 3.0) - activesupport (>= 3.0) - version_sorter (2.1.0) - virtus (1.0.5) - axiom-types (~> 0.1) - coercible (~> 1.0) - descendants_tracker (~> 0.0, >= 0.0.3) - equalizer (~> 0.0, >= 0.0.9) - vmstat (2.3.0) - warden (1.2.7) - rack (>= 1.0) - webmock (2.3.2) - addressable (>= 2.3.6) - crack (>= 0.3.2) - hashdiff - webpack-rails (0.9.11) - railties (>= 3.2.0) - websocket-driver (0.6.5) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.3) - wikicloth (0.8.1) - builder - expression_parser - rinku - with_env (1.1.0) - xml-simple (1.1.5) - xpath (2.1.0) - nokogiri (~> 1.3) - -PLATFORMS - ruby - -DEPENDENCIES - RedCloth (~> 4.3.2) - ace-rails-ap (~> 4.1.0) - activerecord_sane_schema_dumper (= 1.0) - acts-as-taggable-on (~> 5.0) - addressable (~> 2.5.2) - akismet (~> 2.0) - asana (~> 0.6.0) - asciidoctor (~> 1.5.6) - asciidoctor-plantuml (= 0.0.8) - attr_encrypted (~> 3.1.0) - awesome_print - babosa (~> 1.0.2) - base32 (~> 0.3.0) - batch-loader (~> 1.2.1) - bcrypt_pbkdf (~> 1.0) - benchmark-ips (~> 2.3.0) - better_errors (~> 2.1.0) - binding_of_caller (~> 0.7.2) - bootsnap (~> 1.3) - bootstrap_form (~> 2.7.0) - brakeman (~> 4.2) - browser (~> 2.5) - bullet (~> 5.5.0) - bundler-audit (~> 0.5.0) - capybara (~> 2.15) - capybara-screenshot (~> 1.0.0) - carrierwave (= 1.2.3) - charlock_holmes (~> 0.7.5) - chronic (~> 0.10.2) - chronic_duration (~> 0.10.6) - commonmarker (~> 0.17) - concurrent-ruby (~> 1.0.5) - connection_pool (~> 2.0) - creole (~> 0.5.0) - database_cleaner (~> 1.5.0) - deckar01-task_list (= 2.0.0) - default_value_for (~> 3.0.5) - device_detector - devise (~> 4.4) - devise-two-factor (~> 3.0.0) - diffy (~> 3.1.0) - doorkeeper (~> 4.3) - doorkeeper-openid_connect (~> 1.5) - 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 - ffaker (~> 2.4) - 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) - fog-google (~> 1.7.1) - fog-local (~> 0.3) - fog-openstack (~> 0.1) - fog-rackspace (~> 0.1.1) - font-awesome-rails (~> 4.7) - foreman (~> 0.84.0) - fuubar (~> 2.2.0) - gemojione (~> 3.3) - gettext (~> 3.2.2) - gettext_i18n_rails (~> 1.8.0) - gettext_i18n_rails_js (~> 1.3) - gitaly-proto (~> 0.123.0) - github-markup (~> 1.7.0) - 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.6) - gpgme - grape (~> 1.1) - grape-entity (~> 0.7.1) - grape-path-helpers (~> 1.0) - grape_logging (~> 1.7) - graphiql-rails (~> 1.4.10) - graphql (~> 1.8.0) - grpc (~> 1.15.0) - haml_lint (~> 0.26.0) - hamlit (~> 2.8.8) - hangouts-chat (~> 0.0.5) - hashie-forbidden_attributes - health_check (~> 2.6.0) - hipchat (~> 1.5.0) - html-pipeline (~> 2.8) - html2text - httparty (~> 0.13.3) - icalendar - influxdb (~> 0.2) - jira-ruby (~> 1.4) - jquery-atwho-rails (~> 1.3.2) - js_regex (~> 2.2.1) - json-schema (~> 2.8.0) - jwt (~> 1.5.6) - kaminari (~> 1.0) - knapsack (~> 1.16) - kubeclient (~> 3.1.0) - letter_opener_web (~> 1.3.0) - license_finder (~> 5.4) - licensee (~> 8.9) - lograge (~> 0.5) - loofah (~> 2.2) - mail_room (~> 0.9.1) - method_source (~> 0.8) - mini_magick - minitest (~> 5.7.0) - mysql2 (~> 0.4.10) - net-ldap - net-ssh (~> 5.0) - nokogiri (~> 1.8.2) - oauth2 (~> 1.4) - octokit (~> 4.9) - omniauth (~> 1.8) - omniauth-auth0 (~> 2.0.0) - omniauth-authentiq (~> 0.3.3) - omniauth-azure-oauth2 (~> 0.0.9) - omniauth-cas3 (~> 1.1.4) - omniauth-facebook (~> 4.0.0) - omniauth-github (~> 1.3) - omniauth-gitlab (~> 1.0.2) - omniauth-google-oauth2 (~> 0.5.3) - omniauth-kerberos (~> 0.3.0) - omniauth-oauth2-generic (~> 0.2.2) - omniauth-saml (~> 1.10) - omniauth-shibboleth (~> 1.3.0) - omniauth-twitter (~> 1.4) - omniauth_crowd (~> 2.2.0) - org-ruby (~> 0.9.12) - peek (~> 1.0.1) - peek-gc (~> 0.0.2) - peek-mysql2 (~> 1.1.0) - peek-pg (~> 1.3.0) - peek-rblineprof (~> 0.2.0) - peek-redis (~> 1.2.0) - pg (~> 0.18.2) - premailer-rails (~> 1.9.7) - 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) - rack-proxy (~> 0.6.0) - rails (= 5.0.7) - rails-controller-testing - rails-deprecated_sanitizer (~> 1.0.3) - rails-i18n (~> 5.1) - rainbow (~> 3.0) - raindrops (~> 0.18) - rblineprof (~> 0.3.6) - rbtrace (~> 0.4) - rdoc (~> 6.0) - re2 (~> 1.1.1) - recaptcha (~> 3.0) - redcarpet (~> 3.4) - redis (~> 3.2) - redis-namespace (~> 1.6.0) - redis-rails (~> 5.0.2) - request_store (~> 1.3) - responders (~> 2.0) - rouge (~> 3.1) - rqrcode-rails3 (~> 0.1.7) - rspec-parameterized - rspec-rails (~> 3.7.0) - rspec-retry (~> 0.4.5) - rspec-set (~> 0.1.3) - rspec_junit_formatter - rspec_profiling (~> 0.0.5) - rubocop (~> 0.54.0) - rubocop-rspec (~> 1.22.1) - ruby-fogbugz (~> 0.2.1) - ruby-prof (~> 0.17.0) - ruby-progressbar - ruby_parser (~> 3.8) - rubyzip (~> 1.2.2) - rufus-scheduler (~> 3.4) - rugged (~> 0.27) - sanitize (~> 4.6) - sass-rails (~> 5.0.6) - scss_lint (~> 0.56.0) - seed-fu (~> 2.3.7) - select2-rails (~> 3.5.9) - selenium-webdriver (~> 3.12) - sentry-raven (~> 2.7) - settingslogic (~> 2.0.9) - sham_rack (~> 1.3.6) - shoulda-matchers (~> 3.1.2) - sidekiq (~> 5.2.1) - sidekiq-cron (~> 0.6.0) - simple_po_parser (~> 1.1.2) - simplecov (~> 0.14.0) - slack-notifier (~> 1.5.1) - spring (~> 2.0.0) - spring-commands-rspec (~> 1.0.4) - sprockets (~> 3.7.0) - sshkey (~> 1.9.0) - stackprof (~> 0.2.10) - state_machines-activerecord (~> 0.5.1) - sys-filesystem (~> 1.1.6) - test-prof (~> 0.2.5) - thin (~> 1.7.0) - timecop (~> 0.8.0) - toml-rb (~> 1.0.0) - truncato (~> 0.7.9) - u2f (~> 0.2.1) - uglifier (~> 2.7.2) - unf (~> 0.1.4) - unicorn (~> 5.1.0) - unicorn-worker-killer (~> 0.4.4) - validates_hostname (~> 1.0.6) - version_sorter (~> 2.1.0) - virtus (~> 1.0.1) - vmstat (~> 2.3.0) - webmock (~> 2.3.2) - webpack-rails (~> 0.9.10) - wikicloth (= 0.8.1) - -BUNDLED WITH - 1.17.1 diff --git a/PHILOSOPHY.md b/PHILOSOPHY.md new file mode 100644 index 0000000000..e966d88ef7 --- /dev/null +++ b/PHILOSOPHY.md @@ -0,0 +1 @@ +This document is intended to communicate the product philosophy GitLab uses in creating GitLab Community Edition. The principles can be found in the [Product Section of the GitLab Handbook](https://about.gitlab.com/handbook/product/#product-at-gitlab). \ No newline at end of file diff --git a/PROCESS.md b/PROCESS.md index 5fc2c4cf1d..f2eed5544f 100644 --- a/PROCESS.md +++ b/PROCESS.md @@ -12,15 +12,18 @@ - [Assigning issues](#assigning-issues) - [Be kind](#be-kind) - [Feature freeze on the 7th for the release on the 22nd](#feature-freeze-on-the-7th-for-the-release-on-the-22nd) + - [Feature flags](#feature-flags) - [Between the 1st and the 7th](#between-the-1st-and-the-7th) + - [What happens if these deadlines are missed?](#what-happens-if-these-deadlines-are-missed) - [On the 7th](#on-the-7th) + - [Feature merge requests](#feature-merge-requests) + - [Documentation merge requests](#documentation-merge-requests) - [After the 7th](#after-the-7th) + - [Asking for an exception](#asking-for-an-exception) - [Bugs](#bugs) - [Regressions](#regressions) - [Managing bugs](#managing-bugs) - [Release retrospective and kickoff](#release-retrospective-and-kickoff) - - [Retrospective](#retrospective) - - [Kickoff](#kickoff) - [Copy & paste responses](#copy--paste-responses) - [Improperly formatted issue](#improperly-formatted-issue) - [Issue report for old version](#issue-report-for-old-version) @@ -28,11 +31,8 @@ - [Code format](#code-format) - [Issue fixed in newer version](#issue-fixed-in-newer-version) - [Improperly formatted merge request](#improperly-formatted-merge-request) - - [Inactivity close of an issue](#inactivity-close-of-an-issue) - - [Inactivity close of a merge request](#inactivity-close-of-a-merge-request) - [Accepting merge requests](#accepting-merge-requests) - [Only accepting merge requests with green tests](#only-accepting-merge-requests-with-green-tests) - - [Closing down the issue tracker on GitHub](#closing-down-the-issue-tracker-on-github) @@ -58,6 +58,18 @@ their contributions accepted by meeting our [Definition of done][done]. What you can expect from them is described at https://about.gitlab.com/roles/merge-request-coach/. +### Milestones on community contribution issues + +The milestone of an issue that is currently being worked on by a community contributor +should not be set to a named GitLab milestone (e.g. 11.7, 11.8), until the associated +merge request is very close to being merged, and we will likely know in which named +GitLab milestone the issue will land. There are many factors that influence when +a community contributor finishes an issue, or even at all. So we should set this +milestone only when we have more certainty. + +Note this only applies to issues currently assigned to community contributors. For +issues assigned to GitLabbers, we are [ambitious in assigning milestones to issues](https://about.gitlab.com/direction/#how-we-plan-releases). + ## Assigning issues If an issue is complex and needs the attention of a specific person, assignment is a good option but assigning issues might discourage other people from contributing to that issue. We need all the contributions we can get so this should never be discouraged. Also, an assigned person might not have time for a few weeks, so others should feel free to takeover. @@ -74,10 +86,13 @@ star, smile, etc.). Some good tips about code reviews can be found in our ## Feature freeze on the 7th for the release on the 22nd -After 7th at 23:59 (Pacific Time Zone) of each month, RC1 of the upcoming -release (to be shipped on the 22nd) is created and deployed to GitLab.com and -the stable branch for this release is frozen, which means master is no longer -merged into it. Merge requests may still be merged into master during this +After 7th at 23:59 (Pacific Time Zone) of each month, stable branch and RC1 +of the upcoming release (to be shipped on the 22nd) is created and deployed to GitLab.com. +The stable branch is frozen at the most recent "qualifying commit" on master. +A "qualifying commit" is one that is pushed before the feature freeze cutoff time +and that passes all CI jobs (green pipeline). + +Merge requests may still be merged into master during this period, but they will go into the _next_ release, unless they are manually cherry-picked into the stable branch. @@ -95,6 +110,12 @@ picked into the stable branches) up to the 19th of the month. Such merge requests should have the ~"feature flag" label assigned, and don't require a corresponding exception request to be created. +In order to build the final package and present the feature for self-hosted +customers, the feature flag should be removed. This should happen before the +22nd, ideally _at least_ 2 days before. That means MRs with feature +flags being picked at the 19th would have a quite tight schedule, so picking +these _earlier_ is preferable. + While rare, release managers may decide to reject picking a change into a stable branch, even when feature flags are used. This might be necessary if the changes are deemed problematic, too invasive, or there simply isn't enough time to @@ -243,7 +264,7 @@ A ~bug is a defect, error, failure which causes the system to behave incorrectly The level of impact of a ~bug can vary from blocking a whole functionality or a feature usability bug. A bug should always be linked to a severity level. -Refer to our [severity levels](../CONTRIBUTING.md#severity-labels) +Refer to our [severity levels](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#severity-labels) Whether the bug is also a regression or not, the triage process should start as soon as possible. Ensure that the Engineering Manager and/or the Product Manager for the relative area is involved to prioritize the work as needed. @@ -275,10 +296,10 @@ The two scenarios below can [bypass the exception request in the release process When a bug is found: 1. Create an issue describing the problem in the most detailed way possible. 1. If possible, provide links to real examples and how to reproduce the problem. -1. Label the issue properly, using the [team label](../CONTRIBUTING.md#team-labels), - the [subject label](../CONTRIBUTING.md#subject-labels) +1. Label the issue properly, using the [team label](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#team-labels), + the [subject label](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#subject-labels) and any other label that may apply in the specific case -1. Notify the respective Engineering Manager to evaluate and apply the [Severity label](../CONTRIBUTING.md#bug-severity-labels) and [Priority label](../CONTRIBUTING.md#bug-priority-labels). +1. Notify the respective Engineering Manager to evaluate and apply the [Severity label](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#severity-labels) and [Priority label](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#priority-labels). The counterpart Product Manager is included to weigh-in on prioritization as needed. 1. If the ~bug is **NOT** a regression: 1. The Engineering Manager decides which milestone the bug will be fixed. The appropriate milestone is applied. @@ -300,67 +321,77 @@ The counterpart Product Manager is included to weigh-in on prioritization as nee ### Improperly formatted issue -Thanks for the issue report. Please reformat your issue to conform to the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines). +``` +Thanks for the issue report. Please reformat your issue to conform to the +[contributing guidelines](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#issue-tracker-guidelines). +``` ### Issue report for old version -Thanks for the issue report but we only support issues for the latest stable version of GitLab. I'm closing this issue but if you still experience this problem in the latest stable version, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines). +``` +Thanks for the issue report but we only support issues for the latest stable version of GitLab. +I'm closing this issue but if you still experience this problem in the latest stable version, +please open a new issue (but also reference the old issue(s)). +Make sure to also include the necessary debugging information conforming to the issue tracker +guidelines found in our [contributing guidelines](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#issue-tracker-guidelines). +``` ### Support requests and configuration questions +``` Thanks for your interest in GitLab. We don't use the issue tracker for support requests and configuration questions. Please check our [getting help](https://about.gitlab.com/getting-help/) page to see all of the available -support options. Also, have a look at the [contribution guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md) +support options. Also, have a look at the [contribution guidelines](https://docs.gitlab.com/ee/development/contributing/index.html) for more information. +``` ### Code format +``` Please use \`\`\` to format console output, logs, and code as it's very hard to read otherwise. +``` ### Issue fixed in newer version -Thanks for the issue report. This issue has already been fixed in newer versions of GitLab. Due to the size of this project and our limited resources we are only able to support the latest stable release as outlined in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker). In order to get this bug fix and enjoy many new features please [upgrade](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update). If you still experience issues at that time please open a new issue following our issue tracker guidelines found in the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines). +``` +Thanks for the issue report. This issue has already been fixed in newer versions of GitLab. +Due to the size of this project and our limited resources we are only able to support the +latest stable release as outlined in our [contributing guidelines](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html). +In order to get this bug fix and enjoy many new features please +[upgrade](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update). +If you still experience issues at that time please open a new issue following our issue +tracker guidelines found in the [contributing guidelines](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#issue-tracker-guidelines). +``` ### Improperly formatted merge request -Thanks for your interest in improving the GitLab codebase! Please update your merge request according to the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-request-guidelines). - -### Inactivity close of an issue - -It's been at least 2 weeks (and a new release) since we heard from you. I'm closing this issue but if you still experience this problem, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines). - -### Inactivity close of a merge request - -This merge request has been closed because a request for more information has not been reacted to for more than 2 weeks. If you respond and conform to the merge request guidelines in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-requests) we will reopen this merge request. +``` +Thanks for your interest in improving the GitLab codebase! +Please update your merge request according to the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/contributing/merge_request_workflow.md#merge-request-guidelines). +``` ### Accepting merge requests +``` Is there an issue on the [issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues) that is similar to this? Could you please link it here? Please be aware that new functionality that is not marked -[accepting merge requests](https://gitlab.com/gitlab-org/gitlab-ce/issues?milestone_id=&scope=all&sort=created_desc&state=opened&utf8=%E2%9C%93&assignee_id=&author_id=&milestone_title=&label_name=Accepting+Merge+Requests) +[`Accepting merge requests`](https://docs.gitlab.com/ee/development/contributing/issue_workflow.html#label-for-community-contributors) might not make it into GitLab. +``` ### Only accepting merge requests with green tests +``` We can only accept a merge request if all the tests are green. I've just restarted the build. When the tests are still not passing after this restart and you're sure that is does not have anything to do with your code changes, please rebase with master to see if that solves the issue. - -### Closing down the issue tracker on GitHub - -We are currently in the process of closing down the issue tracker on GitHub, to -prevent duplication with the GitLab.com issue tracker. -Since this is an older issue I'll be closing this for now. If you think this is -still an issue I encourage you to open it on the [GitLab.com issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues). +``` [team]: https://about.gitlab.com/team/ -[contribution acceptance criteria]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria -["Implement design & UI elements" guidelines]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#implement-design-ui-elements -[Thoughtbot code review guide]: https://github.com/thoughtbot/guides/tree/master/code-review -[done]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#definition-of-done +[done]: https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#definition-of-done [automatic_ce_ee_merge]: https://docs.gitlab.com/ce/development/automatic_ce_ee_merge.html [ee_features]: https://docs.gitlab.com/ce/development/ee_features.html diff --git a/VERSION b/VERSION index d471eb7c60..64e4bdff1c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -11.5.10 +11.7.5 diff --git a/app/assets/images/cluster_app_logos/cert_manager.png b/app/assets/images/cluster_app_logos/cert_manager.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc867858daa7cb5556eb21854e3cab56541ef35 GIT binary patch literal 1287 zcmV+i1^D`jP)a=kl z<38$x*e)n3k!gN_Bmhf^elvA*>6a7kC_ZLRb@^T;Or+3t?OUGl9pkCxkHp z>;xXiybzTIa1;1#2=Iz%+6~UWzk-UC7T`Vtk7GiJ!UC*9;Bl%5QAmKj=kH&xQs8kS zA;Pd7{JIn9{*AT(doQk!K|%}GgLeP)QBS9#mH_pi|E&v83}Ah@k=|%G=O8{>56RaB^YCW@_06Yp{?ZBo^t6TxO)E4J`w#6X7SaOo!6+A*T9>~I-wcItb(N4xHVWxPV+={rCuy{2Sd6;d(of0|$b zN%B^L6XAnn4!#4k0DZplI{sapFWx|Pwv>s>YLF>_AkWP7Cowjr>CV_>v-M>8Gk47) z7$DEYW#<4x1_)7nh+VqVwTaLN8wkqG19?es4GmD7Y(tbPz}!UmP@W5AcGPR|>e1iJ zHx}2IUo;&Z-fB}D_o92DY(TYXG1CyG8X<4`b(1RiA9i;qX|+3@n%>+mM1ePs-n~J@ zCr}oSh5x-sx|P}k3>u(&M`Xm3E`T8ev7nJ4Cexp}Z!_fy}2 zo_CBOhteCjb*eWNhzwCutuRpl7Zo5+h}RVLG6XUC<}bdaRl_UGJf=GWh?LgW$G^l+ zQ=1gh=C3~^#SkS5fMkFC^RhRZ_j#rDXAoNm*&*2wB?`dvzjXoBvRA!xvV99~@RKg4 z%>wqjBt*adkQV{}fdeRIag{6p(Fr(!yiucnw&P^81ygE{i2^7e&ci@^d#Nmzr@oJ< zU%!90-ATHaD1dq}5_kZPhJsC0@H83ir`=C=f>CXb!UHIYkm!RUcp>yHl!Pce%vyZq z*94E=b@&NhLUD$?nR-%nju+_tFfX4KhxZ@Sy8Z&K1#jcowW`%OVXe4bh)qLlYmBq? z0U4^%xj;RuT3_h2)h>C=x5zJHMGr?TP+M=D^cuPcsdP6-L9L`rZCKcZK(>pVBGVQ? z5xm;z0ZAt&sT7>_imoe4Rs9;zuLnr0RWT-{VDQU!qu`$v>j59XY{g7cWOl~mQl6#! zIYHja;yL;fRsdBxFLE+$nNmGKq0Z!SQq-DitfIz!$>0^0Pd@N2?jQV?yAN*#PRLbP zlcjsW0_lwo@53ZTW~VmkKt+t4eNpF#L`do!p`*jn#mr6?m3x39S~-Hdd{ETvWMM=A xg)$(s(_Yz!lBz(n6=vH_5p~0c4I91y{s)uQHIBI*Y#jgq002ovPDHLkV1hDnN&Wx; literal 0 HcmV?d00001 diff --git a/app/assets/images/none-scheme-preview.png b/app/assets/images/none-scheme-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb6bf96671775e14c1b249b8207ab67078f1b9a GIT binary patch literal 5971 zcmZ9Q2{@E}^!KT;JoYUlJJ~~$knD{mAtuH$3<)tJWJ@M9AqffDMUo_Yh_XzQ?E4;B zvSokl`+It>_qyKq|G!p{L=ZAtNKB*VENDf!7RpI8dK} z=cwKfgYZIWe@#c5?D+3rMs-dseDaTnu7wvF87=GI2RT`CDkpqM<*j%9D%B(<7XvRP z6WR0&GBWmYJ#7t?-|!OV0V-B!7_VpJB@}*M*jn=&X9+ps1jW+^SM96W==$53HbTGK z04;3+W*hezv#^F6ea}|mo&8nAfmtkHDuXTh1ZBflL2QQ7qu?UutjFq_{Oa9g0>Z!e z)*mW;u-?BZHoUz}C3;$9MP>cSG2O{A-QRKXgPG(8fuAM3{O%}?0NOxZppZ;}lU!5w z#A7UinncY+VE*EbNNJl{pY2%R4OD%FpZH2qI`qZa_GN>;xTNI%K<&{*Rn?kAy)-dV zmG!*B!orTGrhllZ{q~nC>^RdI?_fEDjt{p(G$+FNf)oq;f(~}p;w8CTnB*FZ#YIOO`S~fv=pGz5DV=jN$(28U zK8A#aFF3@iP!iRi)B3Kik|CNy)ekDv`RnY9O=mvj=2m)6KQ+mpTdHB7B7^yiO! zx+g?QypfCA-QB%%<%*w5P+Rgv0RaIbk$Ak*sJ0RC(A?bI&Fx%7gR>%O*B-8U_`uLGDkUYwrf_9tWqWHY>dBM3skOAUw1Glf^IX){*49Y5 z+k>gdOZ?P(9rz=!sqgfWNG*OQ0+Fbtsksqw*q3K6&ej~xD(bC_v9p^XQZbghjVM^O zFE1}cs2&6axRhCzS++TrZZ8hql1mb44p)7+w-L8OFwCJv5YAbZd;9v13=Qq>>|_|1 z&aFp9F({;5(W1;ZONonn+&HCnxM8ZoYin#=WZyv3*%=xdDj^|}nwIv-nFO3$RB(iAJIEy&h&VYoU}Y2GjLV9OC=}{> zlY?}^!qU>{&z}dwu7%axV-H*h3K}Lnm=F)QM}5&!{q^-)xhU1ZozBL_um=0SzP`xF z$feQGzVqGLjJzu7DsS-^-7kT=atvYnOYV4AcX#~C*cI3#d9JjWnBu_Qe{VHLDJd%U z_V#u^$VdA8{CwEL2V0AoUCv$q9X-?Do}Pav!8RKWMUnw8 zFK^J{<^T^5&(h-J@>sQGy#6J(VT6XUxp@LwYR0p2rS`a{!9KU3pxiRQL%dyl+WX!; za*Feubg@kiPEI*J^XV0jX!VNVcex@V)1{TXJUt;5D5QI6I#73x9k#I5@a8QsMrqhTifK2@4{0hh@kCyq6 z;^oNWpNe<&l}NQ7irie0l--t6FJHaDo(NXwX9^7qb853NH}_qixgM;}#L60*oGcNe ztG+kWmU78`?1NdJ`_E7J)@RxvZJ#`OBF^d*6okju_PJ0D584+e8i-_^1L>nAT9i2a zLlcr5k;;T99>PU5ba!@UbUF9uTZJ`Fk&}>F_u!6jxK@|4ud+CI_h=IK>({S4fk)q7 zJ^1ff@UGh1+jFlyEYHleYj}DJ0x>S2U?4vGIz`0a-=F+po>|^Cef`(3Uuz3?#VKj* zpJfTB3DJ~@kBW|tj*4n_DEaj1(~B1@qN1X_(P1QP5qdE${6d7CEGMsuA6b17=xJV_ zByY64yE`8*?_F2dQnVB|Ls*jo3-x1Bqx5%uf4+bJZkl5_T8sbHZw~uKil9W7OJD5{Gbjunw4W9S!LtR1E9UdOSGk$;M*EjoO%X~uvgD+mQ z?IpKcAi=_sS&$w?5@alXWA28#d!b3Litn;@P>^c8ewvghS7dq#fpz+0N;^g@p+#+P zE^B%D?&_&XSVec6LTa2FOfALxDx9BM3Ps-FN$9sNcy+ z`>d|H@o}azXP}^IzOxSv4cXY()E;dXb~%GiZgbcMPRz|Is;GSEnTK7k6C2(#P~qj{ z=5C!`zabWfmMVDnZf<3z(Z2ZT=*YchSA;hjM4W-gxfxw#oci&)9cKR7UONlwnQ%CH>!NC2UB0t)=j zojYcE_ou!`7FKT!3&t_clYUsr|351}Q2B>FT>G-`vXrD`ih$Ae>ur};zLfqg&(A*7 zzkj!mqs+wEbfUQR3=Px2yuWnz>C>kS+=`uJV@EGoRC?s~q}X$EazGrYsKVf%+V1h- zCo%^Xpa3J0S;xB_c*4zv)8L`q-Q7W|SNtpqWtMJscA4t@)b#Xj&d$2muiu9-t*)YF zoAmYdOG-)}9k;Z%GYBhOy5w~Gc3FA3va&L-q6ZeLPB7+2Ig!AU#x6R3M3YsQ0!9lN|V+dOi4HqOFL9ABpIkrzel}~;E;jZ0i6eTbZ~Tp3e2~v2-@s32fLxCp{cqz zh4lB|^|sOF3_bogp*B^?Yo>CP*|F3@ioF(0DNxl`Bvw3LKU~|y#%6hO@t{kG4^+EI zw!m1dz^2-z7_ADXDkD<}Nia5Mqxx!Pdio|B{jSf&)x~AbJHW$ZwZ(~;_x?RM56|f6 zD2IVmh-PM=%gGZbUY@g>nVqF#$u_y;>swJPLBKzJ3or3D2E>iloA zv+tA*Pc=q&G&Fre<75#UP~K{4wS|Q%OBKJ;Jt^=xU z>m6#x+ys7kuF-*kZB2!F=5TEg{CZiM5V@4Lfa)>(VzLUFK`t_l&h1}#_cF`a7cX$N zFIuM0T)OK}jD~d{Y}XzyEiE0|S6phlOtQ>ZxNxDTq2Vm(L+}}qaBVIg9*QdFRT>SZ z5KWSOv8Z9{V9mq*zyyZG@->%Rd%d})*3!QAGcRAVS6bKD)rZc^%rr*x0ru2zOIQ{T zK++WtErN@Lm|vD+k3eQ!l$W3Lu7cB_&w<)ZPMTma`F$=e&CT|=ZbA5Gvb+^it_!mO z^ttAnjr8|Z4ktxNGlpnZ25i3Xa+VSo508j26=S0$PJE9%<1B9}#wM54DpRwgSvXM3 zjgVw}O2x?g=FOW&JS~}-nHM^=ZKYIHRJN8z20A-e8`X|tG&9K->aembEG)ooM~C}f zUS2{%La?_pM+UN4V1{o9CZ9WjKHmXfkYS$$@9XDN9R^1reD zfWsyP6E6~*`|mV2M_^~z;Nhp$i6dWA9v9ZzFX*`m=WsNOHH@CFpqFjuPJ0-7q zU@$z?Rqi0`tT93~J_K^zG}0hBIq^dFF*SkK<7i@wK~c?sb}Y zG#Y*52B5s()}jRxi8M0mcz-hw-r$lhT)2<|rmZ~*^aU8qPu=ZO23ifStk09is$n8 z2@er7FH1sNYAOpWE6FLVOII+4Ju?qM$N-)ei5(gnOHWGD%QgXYeWLx^Ebp9*3?mKA z)2OJL2iteSFA*A)#LSG0NBY^0j*j45pgJIwB}2I9iD_y1D2WSla)}0xSS;4snwzd3 zYUg9FGgu1-Guqqx(Pzn$NP->jFSKQ>U;Xhz*VME}^i?24pKQoly5iltA7;ijHoU-b za!K*=@i>KjBBQFY7+Ym!r3!Dy(2&1pWPxpMdUCSMdJS-8u)4>_T-RwrDCn%NuC9@h z(f#{nrKRiNT-xo4E2E#cplZm_EhG*i^fi=Ck1ATpSGRWK%KE|Z-W`$z|g1l7;V z5{hUr5o3dB43#=%>=H%XY4a{}(q$AA2Q)-t=_ya@rcSL1sqhw-mzRT~2*&sY1el1$ z0nl=W2InF(jTO1?!V;b3UF4HNHIEBVJ)VHrgZKgHdzN%LBg(O=V@+OtsiqAF2M2yC z=>{TJIK;?aag&2dE^2dg6H*kJ6=NWh(&jkccRtAgnZ-=tFEXVXycOFdFDt8_)g>a* zPV=|!r%a8Fp$I1@CvlMXJwBcS zN20yam4TFqe~Qc^zvhxR^Kl)UWZ*N`DNu~2(=h&zOD{(vt-QU+I4Nl?pgu)KKUY>} z=j1>MfV{~iSzB4TDx{oc(K9k)L};+lgpjaLv;|9tq!L=DJ(Z#xvrKa9l#|u zH4u#1>9=wZ2@BI=0?UqrF0ZSL{BQLh#fX{?z15SY^HSu_G=@g;)|q;ui)KGZ7yuZW zgIhUm`Cxbb)TvWud7JY+IkrK&w}FmS;x8&ITcXi^M+dtT6L!z#6cs_?hQb*6EIA}? z_Tr^zLIl}pz!*p$b;Q^Vm9}@*fGLgi^}$i^-MhzX-psD_oQLO0Df$0DgmL1TZsXE> z#&n?a+jAF~FE%!o_~kYde*5-qi2k@FS0pbdr=s^a53Mg+4oiamNV=AE~AKiO+?_z z{~THIBZSnckCg0&0+^oME-!ct@rGWmPMCLE@2xz}<$tHrCi%&T*ec6x* z@b>lw32vUYMHK2X_B+eNjsbfa8XCsL#C-Ny(oDTq$Uvf_6q1yr4ScC9oFI(>B{;!x zNzktk*_CIOKe^^NUf_l(q$YV*st5>>f1|4S_z_YRBJ!osT<5BnV(RMZYFu0#^hq2X z3Bcb1_45hLPt-Vz{~NRYw`Sxcre|Q}q!#3AM77$EQt!Y3pOWXBj~_Q~p7ndH$mX$Y zarG)iu=32SQ+lLiLV}ToZ})UH&;gJDZT2`sMzD*@%8SU~$dv zOp1}}u0sqTmumjg<%I>9s{AT*4+31*HTI~XDLczpEF%)EYjJTAE*ptF11;*}VjzrkNaTfq zs`%ztwcJ+*Nu=PG>9JZo-rJikm81H(f}iR#alSrS^xrz8D}OBv9}UTe|?h^^HRN%NVh zBP?(M9)B!TdmyKvur*xf3cbT04iwDEA0&|%(jbGs6_15tc!ECvlWOyfpJdAOY+ ojX2aukkb}Tn*TSIjfltO#Ged7=@j3cVEj#{chyk4Kod*&KRy6}A^-pY literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/api.js b/app/assets/javascripts/api.js index 3f7a1ef1bf..d1396b6c4b 100644 --- a/app/assets/javascripts/api.js +++ b/app/assets/javascripts/api.js @@ -5,25 +5,31 @@ import axios from './lib/utils/axios_utils'; const Api = { groupsPath: '/api/:version/groups.json', groupPath: '/api/:version/groups/:id', + subgroupsPath: '/api/:version/groups/:id/subgroups', namespacesPath: '/api/:version/namespaces.json', groupProjectsPath: '/api/:version/groups/:id/projects.json', projectsPath: '/api/:version/projects.json', projectPath: '/api/:version/projects/:id', projectLabelsPath: '/:namespace_path/:project_path/labels', - mergeRequestPath: '/api/:version/projects/:id/merge_requests/:mrid', + projectMergeRequestPath: '/api/:version/projects/:id/merge_requests/:mrid', + projectMergeRequestChangesPath: '/api/:version/projects/:id/merge_requests/:mrid/changes', + projectMergeRequestVersionsPath: '/api/:version/projects/:id/merge_requests/:mrid/versions', + projectRunnersPath: '/api/:version/projects/:id/runners', mergeRequestsPath: '/api/:version/merge_requests', - mergeRequestChangesPath: '/api/:version/projects/:id/merge_requests/:mrid/changes', - mergeRequestVersionsPath: '/api/:version/projects/:id/merge_requests/:mrid/versions', groupLabelsPath: '/groups/:namespace_path/-/labels', issuableTemplatePath: '/:namespace_path/:project_path/templates/:type/:key', projectTemplatePath: '/api/:version/projects/:id/templates/:type/:key', projectTemplatesPath: '/api/:version/projects/:id/templates/:type', usersPath: '/api/:version/users.json', - userStatusPath: '/api/:version/user/status', + userPath: '/api/:version/users/:id', + userStatusPath: '/api/:version/users/:id/status', + userPostStatusPath: '/api/:version/user/status', commitPath: '/api/:version/projects/:id/repository/commits', + applySuggestionPath: '/api/:version/suggestions/:id/apply', commitPipelinesPath: '/:project_id/commit/:sha/pipelines', branchSinglePath: '/api/:version/projects/:id/repository/branches/:branch', createBranchPath: '/api/:version/projects/:id/repository/branches', + releasesPath: '/api/:version/projects/:id/releases', group(groupId, callback) { const url = Api.buildUrl(Api.groupPath).replace(':id', groupId); @@ -99,36 +105,45 @@ const Api = { }, // Return Merge Request for project - mergeRequest(projectPath, mergeRequestId, params = {}) { - const url = Api.buildUrl(Api.mergeRequestPath) + projectMergeRequest(projectPath, mergeRequestId, params = {}) { + const url = Api.buildUrl(Api.projectMergeRequestPath) .replace(':id', encodeURIComponent(projectPath)) .replace(':mrid', mergeRequestId); return axios.get(url, { params }); }, + projectMergeRequestChanges(projectPath, mergeRequestId) { + const url = Api.buildUrl(Api.projectMergeRequestChangesPath) + .replace(':id', encodeURIComponent(projectPath)) + .replace(':mrid', mergeRequestId); + + return axios.get(url); + }, + + projectMergeRequestVersions(projectPath, mergeRequestId) { + const url = Api.buildUrl(Api.projectMergeRequestVersionsPath) + .replace(':id', encodeURIComponent(projectPath)) + .replace(':mrid', mergeRequestId); + + return axios.get(url); + }, + + projectRunners(projectPath, config = {}) { + const url = Api.buildUrl(Api.projectRunnersPath).replace( + ':id', + encodeURIComponent(projectPath), + ); + + return axios.get(url, config); + }, + mergeRequests(params = {}) { const url = Api.buildUrl(Api.mergeRequestsPath); return axios.get(url, { params }); }, - mergeRequestChanges(projectPath, mergeRequestId) { - const url = Api.buildUrl(Api.mergeRequestChangesPath) - .replace(':id', encodeURIComponent(projectPath)) - .replace(':mrid', mergeRequestId); - - return axios.get(url); - }, - - mergeRequestVersions(projectPath, mergeRequestId) { - const url = Api.buildUrl(Api.mergeRequestVersionsPath) - .replace(':id', encodeURIComponent(projectPath)) - .replace(':mrid', mergeRequestId); - - return axios.get(url); - }, - newLabel(namespacePath, projectPath, data, callback) { let url; @@ -172,6 +187,12 @@ const Api = { }); }, + applySuggestion(id) { + const url = Api.buildUrl(Api.applySuggestionPath).replace(':id', encodeURIComponent(id)); + + return axios.put(url); + }, + commitPipelines(projectId, sha) { const encodedProjectId = projectId .split('/') @@ -243,6 +264,20 @@ const Api = { }); }, + user(id, options) { + const url = Api.buildUrl(this.userPath).replace(':id', encodeURIComponent(id)); + return axios.get(url, { + params: options, + }); + }, + + userStatus(id, options) { + const url = Api.buildUrl(this.userStatusPath).replace(':id', encodeURIComponent(id)); + return axios.get(url, { + params: options, + }); + }, + branches(id, query = '', options = {}) { const url = Api.buildUrl(this.createBranchPath).replace(':id', encodeURIComponent(id)); @@ -265,7 +300,7 @@ const Api = { }, postUserStatus({ emoji, message }) { - const url = Api.buildUrl(this.userStatusPath); + const url = Api.buildUrl(this.userPostStatusPath); return axios.put(url, { emoji, @@ -273,6 +308,12 @@ const Api = { }); }, + releases(id) { + const url = Api.buildUrl(this.releasesPath).replace(':id', encodeURIComponent(id)); + + return axios.get(url); + }, + buildUrl(url) { let urlRoot = ''; if (gon.relative_url_root != null) { diff --git a/app/assets/javascripts/badges/components/badge.vue b/app/assets/javascripts/badges/components/badge.vue index 8512bf9dd7..ae2916e3a3 100644 --- a/app/assets/javascripts/badges/components/badge.vue +++ b/app/assets/javascripts/badges/components/badge.vue @@ -1,17 +1,15 @@