diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-16 03:11:46 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-16 03:11:46 +0300 |
commit | a83fba70a686e21616c0521cf2a3c9525bf54284 (patch) | |
tree | 6c056ef0185fb7cdb5a1172be9471b535846c36f | |
parent | a7aff3e0e4deb15c0902e0f948eb300ba77f3e47 (diff) |
Add latest changes from gitlab-org/gitlab@master
103 files changed, 513 insertions, 1391 deletions
diff --git a/app/assets/javascripts/projects/storage_counter/components/storage_table.vue b/app/assets/javascripts/projects/storage_counter/components/storage_table.vue index 50aa70ecc9d..7047fd925fb 100644 --- a/app/assets/javascripts/projects/storage_counter/components/storage_table.vue +++ b/app/assets/javascripts/projects/storage_counter/components/storage_table.vue @@ -1,5 +1,6 @@ <script> import { GlLink, GlIcon, GlTable, GlSprintf } from '@gitlab/ui'; +import { numberToHumanSize } from '~/lib/utils/number_utils'; import { thWidthClass } from '~/lib/utils/table_utility'; import { sprintf } from '~/locale'; import { PROJECT_TABLE_LABELS, HELP_LINK_ARIA_LABEL } from '../constants'; @@ -37,6 +38,9 @@ export default { label: PROJECT_TABLE_LABELS.VALUE, thClass: thWidthClass(10), sortable: true, + formatter: (value) => { + return numberToHumanSize(value, 1); + }, }, ], }; diff --git a/app/assets/javascripts/projects/storage_counter/utils.js b/app/assets/javascripts/projects/storage_counter/utils.js index 7b7182cbbf0..cb26603fff5 100644 --- a/app/assets/javascripts/projects/storage_counter/utils.js +++ b/app/assets/javascripts/projects/storage_counter/utils.js @@ -26,7 +26,7 @@ export const parseGetProjectStorageResults = (data, helpLinks) => { ...currentType, helpPath, }, - value: numberToHumanSize(storageStatistics[currentType.id], 1), + value: storageStatistics[currentType.id], }); }, []); diff --git a/app/assets/stylesheets/utilities.scss b/app/assets/stylesheets/utilities.scss index bf271f4d355..ec70926b418 100644 --- a/app/assets/stylesheets/utilities.scss +++ b/app/assets/stylesheets/utilities.scss @@ -263,3 +263,21 @@ $gl-line-height-42: px-to-rem(42px); .gl-opacity-7 { opacity: 0.7; } + +/** + Note: ::-webkit-scrollbar is a non-standard rule only + supported by webkit browsers. + + It is added here to migrate components that use + scrolling-links() mixin from `app/assets/stylesheets/framework/mixins.scss`. + + It should not be used elsewhere: it may impact accessibility as well as + add browser compatibility issues. + + See: https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-scrollbar +**/ +.gl-webkit-scrollbar-display-none { + &::-webkit-scrollbar { + display: none; + } +} diff --git a/app/controllers/explore/projects_controller.rb b/app/controllers/explore/projects_controller.rb index 6e9e9e07e37..92ff3ffb8ff 100644 --- a/app/controllers/explore/projects_controller.rb +++ b/app/controllers/explore/projects_controller.rb @@ -123,7 +123,7 @@ class Explore::ProjectsController < Explore::ApplicationController end def show_alert_if_search_is_disabled - return if current_user || params[:name].blank? && params[:search].blank? || !html_request? || Feature.disabled?(:disable_anonymous_search, type: :ops) + return if current_user || params[:name].blank? && params[:search].blank? || !html_request? || Feature.disabled?(:disable_anonymous_project_search, type: :ops) flash[:notice] = _('You must sign in to search for specific projects.') end diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 1150ee47cda..f885ff9b45b 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -117,7 +117,11 @@ class Projects::IssuesController < Projects::ApplicationController @issue = @noteable = service.execute @merge_request_to_resolve_discussions_of = service.merge_request_to_resolve_discussions_of - @discussion_to_resolve = service.discussions_to_resolve.first if params[:discussion_to_resolve] + + if params[:discussion_to_resolve] + Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter.track_resolve_thread_in_issue_action(user: current_user) + @discussion_to_resolve = service.discussions_to_resolve.first + end respond_with(@issue) end diff --git a/app/finders/projects_finder.rb b/app/finders/projects_finder.rb index 92d0e7b2b57..5537058cc79 100644 --- a/app/finders/projects_finder.rb +++ b/app/finders/projects_finder.rb @@ -193,7 +193,7 @@ class ProjectsFinder < UnionFinder def by_search(items) params[:search] ||= params[:name] - return items if Feature.enabled?(:disable_anonymous_search, type: :ops) && current_user.nil? + return items if Feature.enabled?(:disable_anonymous_project_search, type: :ops) && current_user.nil? return items.none if params[:search].present? && params[:minimum_search_length].present? && params[:search].length < params[:minimum_search_length].to_i items.optionally_search(params[:search], include_namespace: params[:search_namespaces].present?) diff --git a/app/views/admin/projects/index.html.haml b/app/views/admin/projects/index.html.haml index 79d77790b02..5ebfd296e2b 100644 --- a/app/views/admin/projects/index.html.haml +++ b/app/views/admin/projects/index.html.haml @@ -1,18 +1,17 @@ - page_title _('Projects') - params[:visibility_level] ||= [] +- active_tab_classes = 'active gl-tab-nav-item-active gl-tab-nav-item-active-indigo' .top-area.scrolling-tabs-container.inner-page-scroll-tabs - %ul.nav-links.nav.nav-tabs - - opts = params[:visibility_level].present? ? {} : { page: admin_projects_path } - = nav_link(opts) do - = link_to _('All'), admin_projects_path - - = nav_link(html_options: { class: active_when(params[:visibility_level] == Gitlab::VisibilityLevel::PRIVATE.to_s) }) do - = link_to _('Private'), admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PRIVATE) - = nav_link(html_options: { class: active_when(params[:visibility_level] == Gitlab::VisibilityLevel::INTERNAL.to_s) }) do - = link_to _('Internal'), admin_projects_path(visibility_level: Gitlab::VisibilityLevel::INTERNAL) - = nav_link(html_options: { class: active_when(params[:visibility_level] == Gitlab::VisibilityLevel::PUBLIC.to_s) }) do - = link_to _('Public'), admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PUBLIC) + %ul.nav.gl-tabs-nav.gl-overflow-x-auto.gl-display-flex.gl-flex-grow-1.gl-flex-shrink-1.gl-border-b-0.gl-flex-nowrap.gl-webkit-scrollbar-display-none + = nav_link(html_options: { class: "nav-item" } ) do + = link_to _('All'), admin_projects_path, class: "nav-link gl-tab-nav-item #{active_tab_classes if params[:visibility_level].empty?}" + = nav_link(html_options: { class: "nav-item" } ) do + = link_to _('Private'), admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PRIVATE), class: "nav-link gl-tab-nav-item #{active_tab_classes if params[:visibility_level] == Gitlab::VisibilityLevel::PRIVATE.to_s}" + = nav_link(html_options: { class: "nav-item" } ) do + = link_to _('Internal'), admin_projects_path(visibility_level: Gitlab::VisibilityLevel::INTERNAL), class: "nav-link gl-tab-nav-item #{active_tab_classes if params[:visibility_level] == Gitlab::VisibilityLevel::INTERNAL.to_s}" + = nav_link(html_options: { class: "nav-item" } ) do + = link_to _('Public'), admin_projects_path(visibility_level: Gitlab::VisibilityLevel::PUBLIC), class: "nav-link gl-tab-nav-item #{active_tab_classes if params[:visibility_level] == Gitlab::VisibilityLevel::PUBLIC.to_s}" .nav-controls .search-holder diff --git a/config/events/20210914201801_alert_integrations_view_alert_integrations_list.yml b/config/events/20210914201801_alert_integrations_view_alert_integrations_list.yml deleted file mode 100644 index 8d607711266..00000000000 --- a/config/events/20210914201801_alert_integrations_view_alert_integrations_list.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show alert integrations list" -category: "Alert Integrations" -action: view_alert_integrations_list -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: monitor -product_group: group::monitor -product_category: -milestone: "13.5" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44549 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_commit_ci_file_dismissed.yml b/config/events/20210914201801_code_quality_walkthrough_commit_ci_file_dismissed.yml deleted file mode 100644 index 82e0378c3c7..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_commit_ci_file_dismissed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Commit CI file dismissed" -category: "code_quality_walkthrough" -action: commit_ci_file_dismissed -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_commit_ci_file_displayed.yml b/config/events/20210914201801_code_quality_walkthrough_commit_ci_file_displayed.yml deleted file mode 100644 index d8ed607b700..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_commit_ci_file_displayed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Commit CI file displayed" -category: "code_quality_walkthrough" -action: commit_ci_file_displayed -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_commit_created.yml b/config/events/20210914201801_code_quality_walkthrough_commit_created.yml deleted file mode 100644 index 8611cfebc4b..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_commit_created.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Commit created" -category: "code_quality_walkthrough" -action: commit_created -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_cta_clicked.yml b/config/events/20210914201801_code_quality_walkthrough_cta_clicked.yml deleted file mode 100644 index 84ed891ce36..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_cta_clicked.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click empty state CTA" -category: "code_quality_walkthrough" -action: cta_clicked -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_failed_pipeline_displayed.yml b/config/events/20210914201801_code_quality_walkthrough_failed_pipeline_displayed.yml deleted file mode 100644 index 9a65e07c334..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_failed_pipeline_displayed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show failed pipeline" -category: "code_quality_walkthrough" -action: failed_pipeline_displayed -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_failed_pipeline_view_logs.yml b/config/events/20210914201801_code_quality_walkthrough_failed_pipeline_view_logs.yml deleted file mode 100644 index d72a1b025f3..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_failed_pipeline_view_logs.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show failed pipeline logs" -category: "code_quality_walkthrough" -action: failed_pipeline_view_logs -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_running_pipeline_dismissed.yml b/config/events/20210914201801_code_quality_walkthrough_running_pipeline_dismissed.yml deleted file mode 100644 index 6c0423f57e8..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_running_pipeline_dismissed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Dismiss running pipeline" -category: "code_quality_walkthrough" -action: running_pipeline_dismissed -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_running_pipeline_displayed.yml b/config/events/20210914201801_code_quality_walkthrough_running_pipeline_displayed.yml deleted file mode 100644 index 73473b585f5..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_running_pipeline_displayed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show running pipeline" -category: "code_quality_walkthrough" -action: running_pipeline_displayed -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_success_pipeline_displayed.yml b/config/events/20210914201801_code_quality_walkthrough_success_pipeline_displayed.yml deleted file mode 100644 index 468242488f9..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_success_pipeline_displayed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show succeeded pipeline" -category: "code_quality_walkthrough" -action: success_pipeline_displayed -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_code_quality_walkthrough_success_pipeline_view_logs.yml b/config/events/20210914201801_code_quality_walkthrough_success_pipeline_view_logs.yml deleted file mode 100644 index a14ee8f9100..00000000000 --- a/config/events/20210914201801_code_quality_walkthrough_success_pipeline_view_logs.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show succeeded pipeline logs" -category: "code_quality_walkthrough" -action: success_pipeline_view_logs -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58900 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_action_button_name_click_button.yml b/config/events/20210914201801_default_action_button_name_click_button.yml deleted file mode 100644 index d6fadb735d1..00000000000 --- a/config/events/20210914201801_default_action_button_name_click_button.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click 2FA codes related buttons: copy, download, print..." -category: default -action: click_button -label_description: "Action button name" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: manage -product_group: group::compliance -product_category: -milestone: "13.7" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49510 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_action_button_name_copy_keyboard_shortcut.yml b/config/events/20210914201801_default_action_button_name_copy_keyboard_shortcut.yml deleted file mode 100644 index c1f792de52e..00000000000 --- a/config/events/20210914201801_default_action_button_name_copy_keyboard_shortcut.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy 2FA codes with keyboard shortcut" -category: default -action: copy_keyboard_shortcut -label_description: "Action button name" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: manage -product_group: group::compliance -product_category: -milestone: "13.7" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49510 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_board_switcher_click_dropdown.yml b/config/events/20210914201801_default_board_switcher_click_dropdown.yml deleted file mode 100644 index d4d63e1bd2b..00000000000 --- a/config/events/20210914201801_default_board_switcher_click_dropdown.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click Epic's board switcher" -category: default -action: click_dropdown -label_description: "`board_switcher`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: plan -product_group: group::product_planning -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63765 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_cancel_delete.yml b/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_cancel_delete.yml deleted file mode 100644 index 425fe8089d3..00000000000 --- a/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_cancel_delete.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Cancel registry tag deletion" -category: default -action: cancel_delete -label_description: "`[bulk_registry_tag_delete | registry_tag_delete]`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23154 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_click_button.yml b/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_click_button.yml deleted file mode 100644 index 42fa0c97066..00000000000 --- a/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_click_button.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click registry tag delete button" -category: default -action: click_button -label_description: "`[bulk_registry_tag_delete | registry_tag_delete]`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23154 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_confirm_delete.yml b/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_confirm_delete.yml deleted file mode 100644 index cc9481592ae..00000000000 --- a/config/events/20210914201801_default_bulk_registry_tag_delete_registry_tag_delete_confirm_delete.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Confirm registry tag deletion" -category: default -action: confirm_delete -label_description: "`[bulk_registry_tag_delete | registry_tag_delete]`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23154 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_change_discussion_sort_direction.yml b/config/events/20210914201801_default_change_discussion_sort_direction.yml deleted file mode 100644 index cb6e31910d3..00000000000 --- a/config/events/20210914201801_default_change_discussion_sort_direction.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Change discussion sort direction" -category: default -action: change_discussion_sort_direction -label_description: "" -property_description: "`[asc | desc]`" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: plan -product_group: group::product_planning -product_category: -milestone: "12.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28717 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_click_dismiss.yml b/config/events/20210914201801_default_click_dismiss.yml deleted file mode 100644 index 73605ad7878..00000000000 --- a/config/events/20210914201801_default_click_dismiss.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Dismiss home page banner" -category: default -action: click_dismiss -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "13.4" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39752 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_code_instruction_copy_composer_package_include_command.yml b/config/events/20210914201801_default_code_instruction_copy_composer_package_include_command.yml deleted file mode 100644 index e2a923c0c3a..00000000000 --- a/config/events/20210914201801_default_code_instruction_copy_composer_package_include_command.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy Composer package include command" -category: default -action: copy_composer_package_include_command -label_description: "`code_instruction`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.3" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38779 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_code_instruction_copy_composer_registry_include_command.yml b/config/events/20210914201801_default_code_instruction_copy_composer_registry_include_command.yml deleted file mode 100644 index 31714aacf50..00000000000 --- a/config/events/20210914201801_default_code_instruction_copy_composer_registry_include_command.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy Composer registry include command" -category: default -action: copy_composer_registry_include_command -label_description: "`code_instruction`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.3" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/38779 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_code_instruction_copy_gradle_add_to_source_command.yml b/config/events/20210914201801_default_code_instruction_copy_gradle_add_to_source_command.yml deleted file mode 100644 index fa7c58eb2ef..00000000000 --- a/config/events/20210914201801_default_code_instruction_copy_gradle_add_to_source_command.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy Gradle add to source command" -category: default -action: copy_gradle_add_to_source_command -label_description: "`code_instruction`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55738 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_code_instruction_copy_gradle_install_command.yml b/config/events/20210914201801_default_code_instruction_copy_gradle_install_command.yml deleted file mode 100644 index 5b016d38fbd..00000000000 --- a/config/events/20210914201801_default_code_instruction_copy_gradle_install_command.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy Gradle install command" -category: default -action: copy_gradle_install_command -label_description: "`code_instruction`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/55738 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_code_instruction_copy_kotlin_add_to_source_command.yml b/config/events/20210914201801_default_code_instruction_copy_kotlin_add_to_source_command.yml deleted file mode 100644 index d848afec43f..00000000000 --- a/config/events/20210914201801_default_code_instruction_copy_kotlin_add_to_source_command.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy Kotlin add to source command" -category: default -action: copy_kotlin_add_to_source_command -label_description: "`code_instruction`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60097 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_code_instruction_copy_kotlin_install_command.yml b/config/events/20210914201801_default_code_instruction_copy_kotlin_install_command.yml deleted file mode 100644 index 187a500ba03..00000000000 --- a/config/events/20210914201801_default_code_instruction_copy_kotlin_install_command.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy Kotlin install command" -category: default -action: copy_kotlin_install_command -label_description: "`code_instruction`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60097 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_congratulate_first_pipeline_generic.yml b/config/events/20210914201801_default_congratulate_first_pipeline_generic.yml deleted file mode 100644 index 2c8a4d3ef4c..00000000000 --- a/config/events/20210914201801_default_congratulate_first_pipeline_generic.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show a congratulation on first pipeline" -category: default -action: generic -label_description: "`congratulate_first_pipeline`" -property_description: "`[admin | maintainer | developer | owner]`" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "12.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28378 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_content_editor_execute_bubble_menu_control.yml b/config/events/20210914201801_default_content_editor_execute_bubble_menu_control.yml deleted file mode 100644 index 03f4cd7e289..00000000000 --- a/config/events/20210914201801_default_content_editor_execute_bubble_menu_control.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Execute bubble menu control" -category: default -action: execute_bubble_menu_control -label_description: "`content_editor`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "14.2" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67363 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_content_editor_execute_input_rule.yml b/config/events/20210914201801_default_content_editor_execute_input_rule.yml deleted file mode 100644 index 4d0e518d07b..00000000000 --- a/config/events/20210914201801_default_content_editor_execute_input_rule.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Execute input rule" -category: default -action: execute_input_rule -label_description: "`content_editor`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61248 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_content_editor_execute_keyboard_shortcut.yml b/config/events/20210914201801_default_content_editor_execute_keyboard_shortcut.yml deleted file mode 100644 index 2cd59d96ce7..00000000000 --- a/config/events/20210914201801_default_content_editor_execute_keyboard_shortcut.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Execute keyboard shortcut" -category: default -action: execute_keyboard_shortcut -label_description: "`content_editor`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61248 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_content_editor_execute_toolbar_control.yml b/config/events/20210914201801_default_content_editor_execute_toolbar_control.yml deleted file mode 100644 index 8a9ea7fd068..00000000000 --- a/config/events/20210914201801_default_content_editor_execute_toolbar_control.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Execute toolbar control" -category: default -action: execute_toolbar_control -label_description: "`content_editor`" -property_description: "Content type" -value_description: "Context data: [heading] 3, [heading] 2" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61065 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_docker_container_retention_and_expiration_policies_reset_form.yml b/config/events/20210914201801_default_docker_container_retention_and_expiration_policies_reset_form.yml deleted file mode 100644 index c6a57c45971..00000000000 --- a/config/events/20210914201801_default_docker_container_retention_and_expiration_policies_reset_form.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Reset Docker form" -category: default -action: reset_form -label_description: "`docker_container_retention_and_expiration_policies`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23844 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_docker_container_retention_and_expiration_policies_submit_form.yml b/config/events/20210914201801_default_docker_container_retention_and_expiration_policies_submit_form.yml deleted file mode 100644 index 2e822fe5242..00000000000 --- a/config/events/20210914201801_default_docker_container_retention_and_expiration_policies_submit_form.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Submit Docker form" -category: default -action: submit_form -label_description: "`docker_container_retention_and_expiration_policies`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23844 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_dropdown_type_dropdown_frequent_items_list_item_click_link.yml b/config/events/20210914201801_default_dropdown_type_dropdown_frequent_items_list_item_click_link.yml deleted file mode 100644 index cb9d3a3dffa..00000000000 --- a/config/events/20210914201801_default_dropdown_type_dropdown_frequent_items_list_item_click_link.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Open frequent items dropdown" -category: default -action: click_link -label_description: "`[dropdown_type]_dropdown_frequent_items_list_item`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "13.7" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47589 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_dropdown_type_dropdown_frequent_items_search_input_type_search_query.yml b/config/events/20210914201801_default_dropdown_type_dropdown_frequent_items_search_input_type_search_query.yml deleted file mode 100644 index 274613bd201..00000000000 --- a/config/events/20210914201801_default_dropdown_type_dropdown_frequent_items_search_input_type_search_query.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Type search query" -category: default -action: type_search_query -label_description: "`[dropdown_type]_dropdown_frequent_items_search_input`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "13.7" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47589 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_invite_members_banner_invite_members_banner_button_clicked.yml b/config/events/20210914201801_default_invite_members_banner_invite_members_banner_button_clicked.yml deleted file mode 100644 index adbea725085..00000000000 --- a/config/events/20210914201801_default_invite_members_banner_invite_members_banner_button_clicked.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click invite members banner" -category: default -action: invite_members_banner_button_clicked -label_description: "`invite_members_banner`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "13.4" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41774 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_invite_members_banner_invite_members_banner_dismissed.yml b/config/events/20210914201801_default_invite_members_banner_invite_members_banner_dismissed.yml deleted file mode 100644 index 2041df2f058..00000000000 --- a/config/events/20210914201801_default_invite_members_banner_invite_members_banner_dismissed.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Dismiss invite members banner" -category: default -action: invite_members_banner_dismissed -label_description: "`invite_members_banner`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "13.4" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41774 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_namespace_id_click_whats_new_drawer.yml b/config/events/20210914201801_default_namespace_id_click_whats_new_drawer.yml deleted file mode 100644 index 8a994510fc7..00000000000 --- a/config/events/20210914201801_default_namespace_id_click_whats_new_drawer.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show \"What's new\" drawer" -category: default -action: click_whats_new_drawer -label_description: "`namespace_id`" -property_description: "ID of namespace" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::adoption -product_category: -milestone: "13.5" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/42653 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_no_pipeline_noticed_generic.yml b/config/events/20210914201801_default_no_pipeline_noticed_generic.yml deleted file mode 100644 index 3e6169f1c68..00000000000 --- a/config/events/20210914201801_default_no_pipeline_noticed_generic.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show Pipeline suggestion on new MRs" -category: default -action: generic -label_description: "`no_pipeline_noticed`" -property_description: "`[admin | maintainer | developer | owner]`" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35069 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_panel_name_click_tab.yml b/config/events/20210914201801_default_panel_name_click_tab.yml deleted file mode 100644 index e61ce545f7b..00000000000 --- a/config/events/20210914201801_default_panel_name_click_tab.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click tab on new namespace welcoming component" -category: default -action: click_tab -label_description: "Panel name" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: manage -product_group: group::import -product_category: -milestone: "13.12" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59452 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_pipeline_editor_browse_templates.yml b/config/events/20210914201801_default_pipeline_editor_browse_templates.yml deleted file mode 100644 index e7ae4423bc1..00000000000 --- a/config/events/20210914201801_default_pipeline_editor_browse_templates.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Browse Pipeline editor templates" -category: default -action: browse_templates -label_description: "`pipeline_editor`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: verify -product_group: group::pipeline_authoring -product_category: -milestone: "14.1" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64349 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_quickstart_dropdown_click_copy_build.yml b/config/events/20210914201801_default_quickstart_dropdown_click_copy_build.yml deleted file mode 100644 index 86ee97b4b3a..00000000000 --- a/config/events/20210914201801_default_quickstart_dropdown_click_copy_build.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy quickstart dropdown build" -category: default -action: click_copy_build -label_description: "`quickstart_dropdown`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27990 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_quickstart_dropdown_click_copy_login.yml b/config/events/20210914201801_default_quickstart_dropdown_click_copy_login.yml deleted file mode 100644 index 05283da858d..00000000000 --- a/config/events/20210914201801_default_quickstart_dropdown_click_copy_login.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy quickstart dropdown login" -category: default -action: click_copy_login -label_description: "`quickstart_dropdown`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27990 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_quickstart_dropdown_click_copy_push.yml b/config/events/20210914201801_default_quickstart_dropdown_click_copy_push.yml deleted file mode 100644 index 87de403e7de..00000000000 --- a/config/events/20210914201801_default_quickstart_dropdown_click_copy_push.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Copy quickstart dropdown push" -category: default -action: click_copy_push -label_description: "`quickstart_dropdown`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27990 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_quickstart_dropdown_click_dropdown.yml b/config/events/20210914201801_default_quickstart_dropdown_click_dropdown.yml deleted file mode 100644 index 61c04baab8d..00000000000 --- a/config/events/20210914201801_default_quickstart_dropdown_click_dropdown.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click quickstart dropdown" -category: default -action: click_dropdown -label_description: "`quickstart_dropdown`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.10" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27990 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_registry_repository_delete_cancel_delete.yml b/config/events/20210914201801_default_registry_repository_delete_cancel_delete.yml deleted file mode 100644 index 99623717a84..00000000000 --- a/config/events/20210914201801_default_registry_repository_delete_cancel_delete.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Cancel registry repository deletion" -category: default -action: cancel_delete -label_description: "`registry_repository_delete`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23154 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_registry_repository_delete_click_button.yml b/config/events/20210914201801_default_registry_repository_delete_click_button.yml deleted file mode 100644 index 56329982262..00000000000 --- a/config/events/20210914201801_default_registry_repository_delete_click_button.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click registry repository delete button" -category: default -action: click_button -label_description: "`registry_repository_delete`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23154 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_registry_repository_delete_confirm_delete.yml b/config/events/20210914201801_default_registry_repository_delete_confirm_delete.yml deleted file mode 100644 index 1939df91927..00000000000 --- a/config/events/20210914201801_default_registry_repository_delete_confirm_delete.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Confirm registry repository deletion" -category: default -action: confirm_delete -label_description: "`registry_repository_delete`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "12.8" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23154 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_show_home_page_banner.yml b/config/events/20210914201801_default_show_home_page_banner.yml deleted file mode 100644 index b33e51205a3..00000000000 --- a/config/events/20210914201801_default_show_home_page_banner.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show home page banner" -category: default -action: show_home_page_banner -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "13.4" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39752 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_suggest_commit_first_project_gitlab_ci_yml_generic.yml b/config/events/20210914201801_default_suggest_commit_first_project_gitlab_ci_yml_generic.yml deleted file mode 100644 index 7d4f5efe3ba..00000000000 --- a/config/events/20210914201801_default_suggest_commit_first_project_gitlab_ci_yml_generic.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Show GitLab CI suggestion popover" -category: default -action: generic -label_description: "`suggest_commit_first_project_gitlab_ci_yml`" -property_description: "`[admin | maintainer | developer | owner]`" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::expansion -product_category: -milestone: "12.9" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26605 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_template_name_or_"getting-started"_template_clicked.yml b/config/events/20210914201801_default_template_name_or_"getting-started"_template_clicked.yml deleted file mode 100644 index 277190af855..00000000000 --- a/config/events/20210914201801_default_template_name_or_"getting-started"_template_clicked.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click pipeline empty state template" -category: default -action: template_clicked -label_description: "Template name or \"Getting-Started\"" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: growth -product_stage: growth -product_group: group::activation -product_category: -milestone: "13.11" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58808 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_terraform_banner_click_button.yml b/config/events/20210914201801_default_terraform_banner_click_button.yml deleted file mode 100644 index 356117f6cb6..00000000000 --- a/config/events/20210914201801_default_terraform_banner_click_button.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Click Terraform banner button" -category: default -action: click_button -label_description: "`terraform_banner`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: configure -product_group: group::configure -product_category: -milestone: "14.3" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68467 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_terraform_banner_dismiss_banner.yml b/config/events/20210914201801_default_terraform_banner_dismiss_banner.yml deleted file mode 100644 index 7eb23fca354..00000000000 --- a/config/events/20210914201801_default_terraform_banner_dismiss_banner.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Dismiss Terraform banner" -category: default -action: dismiss_banner -label_description: "`terraform_banner`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: configure -product_group: group::configure -product_category: -milestone: "14.3" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68467 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_wiki_content_editor_content_editor_loaded.yml b/config/events/20210914201801_default_wiki_content_editor_content_editor_loaded.yml deleted file mode 100644 index fd223e5368d..00000000000 --- a/config/events/20210914201801_default_wiki_content_editor_content_editor_loaded.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Wiki content editor loaded" -category: default -action: content_editor_loaded -label_description: "`wiki_content_editor`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62919 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_default_wiki_content_editor_saved_using_content_editor.yml b/config/events/20210914201801_default_wiki_content_editor_saved_using_content_editor.yml deleted file mode 100644 index 805ed60a992..00000000000 --- a/config/events/20210914201801_default_wiki_content_editor_saved_using_content_editor.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Wiki saved using content editor" -category: default -action: saved_using_content_editor -label_description: "`wiki_content_editor`" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: dev -product_stage: create -product_group: group::editor -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62919 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_packages_cancel_delete_package_file.yml b/config/events/20210914201801_packages_cancel_delete_package_file.yml deleted file mode 100644 index aa0bff61257..00000000000 --- a/config/events/20210914201801_packages_cancel_delete_package_file.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Cancel deletion of items from the package file list" -category: "UI:[MavenPackages | NpmPackages | ConanPackages | undefined]" -action: cancel_delete_package_file -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62179 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_packages_delete_package_file.yml b/config/events/20210914201801_packages_delete_package_file.yml deleted file mode 100644 index ed1dd7ce766..00000000000 --- a/config/events/20210914201801_packages_delete_package_file.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Delete items from the package file list" -category: "UI:[MavenPackages | NpmPackages | ConanPackages | undefined]" -action: delete_package_file -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62179 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_packages_pull_package.yml b/config/events/20210914201801_packages_pull_package.yml deleted file mode 100644 index 1288724d172..00000000000 --- a/config/events/20210914201801_packages_pull_package.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Download package" -category: "UI:[MavenPackages | NpmPackages | ConanPackages | undefined]" -action: pull_package -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "13.7" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48451 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/events/20210914201801_packages_request_delete_package_file.yml b/config/events/20210914201801_packages_request_delete_package_file.yml deleted file mode 100644 index e12b96c7106..00000000000 --- a/config/events/20210914201801_packages_request_delete_package_file.yml +++ /dev/null @@ -1,21 +0,0 @@ -description: "Request deletion of items from the package file list" -category: "UI:[MavenPackages | NpmPackages | ConanPackages | undefined]" -action: request_delete_package_file -label_description: "" -property_description: "" -value_description: "" -extra_properties: -identifiers: -product_section: ops -product_stage: package -product_group: group::package -product_category: -milestone: "14.0" -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62179 -distributions: -- ce -- ee -tiers: -- free -- premium -- ultimate diff --git a/config/feature_flags/development/permitted_attributes_for_import_export.yml b/config/feature_flags/development/permitted_attributes_for_import_export.yml new file mode 100644 index 00000000000..da5168b6ab8 --- /dev/null +++ b/config/feature_flags/development/permitted_attributes_for_import_export.yml @@ -0,0 +1,8 @@ +--- +name: permitted_attributes_for_import_export +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70168 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/340789 +milestone: '14.4' +type: development +group: group::import +default_enabled: true diff --git a/config/feature_flags/ops/disable_anonymous_project_search.yml b/config/feature_flags/ops/disable_anonymous_project_search.yml new file mode 100644 index 00000000000..89ef0b0ed25 --- /dev/null +++ b/config/feature_flags/ops/disable_anonymous_project_search.yml @@ -0,0 +1,8 @@ +--- +name: disable_anonymous_project_search +introduced_by_url: +rollout_issue_url: +milestone: '14.3' +type: ops +group: group::project management +default_enabled: false diff --git a/config/metrics/aggregates/code_review.yml b/config/metrics/aggregates/code_review.yml index 482e1fc60a1..54ebe5da192 100644 --- a/config/metrics/aggregates/code_review.yml +++ b/config/metrics/aggregates/code_review.yml @@ -66,6 +66,7 @@ - 'i_code_review_user_load_conflict_ui' - 'i_code_review_user_resolve_conflict' - 'i_code_review_user_searches_diff' + - 'i_code_review_user_resolve_thread_in_issue' - name: code_review_category_monthly_active_users operator: OR source: redis @@ -124,6 +125,7 @@ - 'i_code_review_user_load_conflict_ui' - 'i_code_review_user_resolve_conflict' - 'i_code_review_user_searches_diff' + - 'i_code_review_user_resolve_thread_in_issue' - name: code_review_extension_category_monthly_active_users operator: OR source: redis diff --git a/config/metrics/counts_28d/20210908150458_i_code_review_user_resolve_thread_in_issue_monthly.yml b/config/metrics/counts_28d/20210908150458_i_code_review_user_resolve_thread_in_issue_monthly.yml new file mode 100644 index 00000000000..072305ed6f4 --- /dev/null +++ b/config/metrics/counts_28d/20210908150458_i_code_review_user_resolve_thread_in_issue_monthly.yml @@ -0,0 +1,27 @@ +--- +key_path: redis_hll_counters.code_review.i_code_review_user_resolve_thread_in_issue_monthly +name: resolve_thread_in_issue +description: The number of users who resolve a thread in a new issue through the MR page monthly +product_section: dev +product_stage: create +product_group: group::code review +product_category: code_review +value_type: number +status: active +milestone: "14.3" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/69879 +time_frame: 28d +data_source: redis_hll +data_category: optional +instrumentation_class: RedisHLLMetric +options: + events: + - i_code_review_user_resolve_thread_in_issue +performance_indicator_type: [] +distribution: +- ce +- ee +tier: +- free +- premium +- ultimate diff --git a/config/metrics/counts_7d/20210908151645_i_code_review_user_resolve_thread_in_issue_weekly.yml b/config/metrics/counts_7d/20210908151645_i_code_review_user_resolve_thread_in_issue_weekly.yml new file mode 100644 index 00000000000..c9d0c92194b --- /dev/null +++ b/config/metrics/counts_7d/20210908151645_i_code_review_user_resolve_thread_in_issue_weekly.yml @@ -0,0 +1,27 @@ +--- +key_path: redis_hll_counters.code_review.i_code_review_user_resolve_thread_in_issue_weekly +name: resolve_thread_in_issue +description: The number of users who resolve a thread in a new issue through the MR page weekly +product_section: dev +product_stage: create +product_group: group::code review +product_category: code_review +value_type: number +status: active +milestone: "14.3" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/69879 +time_frame: 7d +data_source: redis_hll +data_category: optional +instrumentation_class: RedisHLLMetric +options: + events: + - i_code_review_user_resolve_thread_in_issue +performance_indicator_type: [] +distribution: +- ce +- ee +tier: +- free +- premium +- ultimate diff --git a/data/deprecations/deprecation_omniauth-kerberos_gem.yml b/data/deprecations/deprecation_omniauth-kerberos_gem.yml new file mode 100644 index 00000000000..9abaa343812 --- /dev/null +++ b/data/deprecations/deprecation_omniauth-kerberos_gem.yml @@ -0,0 +1,15 @@ +- name: "OmniAuth Kerberos gem" + announcement_milestone: "14.3" + removal_milestone: "15.0" + body: | # Do not modify this line, instead modify the lines below. + The `omniauth-kerberos` gem will be removed in our next major release, GitLab 15.0. + + This gem has not been maintained and has very little usage. We therefore plan to remove support for this authentication method and recommend using the Kerberos [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO) integration instead. You can follow the [upgrade instructions](../integration/kerberos.md#upgrading-from-password-based-to-ticket-based-kerberos-sign-ins) to upgrade from the `omniauth-kerberos` integration to the supported one. + + Note that we are not deprecating the Kerberos SPNEGO integration, only the old password-based Kerberos integration. + stage: Manage + tiers: [Premium, Ultimate] + issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/337384 + documentation_url: ../integration/kerberos.md#upgrading-from-password-based-to-ticket-based-kerberos-sign-ins + announcement_date: 2021-22-09 + diff --git a/doc/administration/geo/replication/datatypes.md b/doc/administration/geo/replication/datatypes.md index 94e47d9f1e1..3f38436429a 100644 --- a/doc/administration/geo/replication/datatypes.md +++ b/doc/administration/geo/replication/datatypes.md @@ -55,6 +55,8 @@ verification methods: | Blobs | External Merge Request Diffs _(object storage)_ | Geo with API/Managed (*2*) | _Not implemented_ | | Blobs | Pipeline artifacts _(file system)_ | Geo with API | SHA256 checksum | | Blobs | Pipeline artifacts _(object storage)_ | Geo with API/Managed (*2*) | SHA256 checksum | +| Blobs | Pages _(file system)_ | Geo with API | _Not implemented_ | +| Blobs | Pages _(object storage)_ | Geo with API/Managed (*2*) | _Not implemented_ | - (*1*): Redis replication can be used as part of HA with Redis sentinel. It's not used between Geo sites. - (*2*): Object storage replication can be performed by Geo or by your object storage provider/appliance @@ -199,7 +201,7 @@ successfully, you must replicate their data using some other means. |[Versioned snippets](../../../user/snippets.md#versioned-snippets) | [**Yes** (13.7)](https://gitlab.com/groups/gitlab-org/-/epics/2809) | [**Yes** (14.2)](https://gitlab.com/groups/gitlab-org/-/epics/2810) | No | Verification was implemented behind the feature flag `geo_snippet_repository_verification` in 13.11, and the feature flag was removed in 14.2. | |[Server-side Git hooks](../../server_hooks.md) | [No](https://gitlab.com/groups/gitlab-org/-/epics/1867) | No | No | | |[Elasticsearch integration](../../../integration/elasticsearch.md) | [No](https://gitlab.com/gitlab-org/gitlab/-/issues/1186) | No | No | | -|[GitLab Pages](../../pages/index.md) | [No](https://gitlab.com/groups/gitlab-org/-/epics/589) | No | Via Object Storage provider if supported. **No** native Geo support (Beta). | | +|[GitLab Pages](../../pages/index.md) | [**Yes** (14.3)](https://gitlab.com/groups/gitlab-org/-/epics/589) | No | Via Object Storage provider if supported. Native Geo support (Beta). | Behind feature flag `geo_pages_deployment_replication`, enabled by default. | |[Dependency proxy images](../../../user/packages/dependency_proxy/index.md) | [No](https://gitlab.com/gitlab-org/gitlab/-/issues/259694) | No | No | Blocked on [Geo: Secondary Mimicry](https://gitlab.com/groups/gitlab-org/-/epics/1528). Replication of this cache is not needed for Disaster Recovery purposes because it can be recreated from external sources. | |[Vulnerability Export](../../../user/application_security/vulnerability_report/#export-vulnerability-details) | [Not planned](https://gitlab.com/groups/gitlab-org/-/epics/3111) | No | | Not planned because they are ephemeral and sensitive. They can be regenerated on demand. | diff --git a/doc/administration/operations/unicorn.md b/doc/administration/operations/unicorn.md deleted file mode 100644 index 6cee19186f9..00000000000 --- a/doc/administration/operations/unicorn.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -redirect_to: 'puma.md' -remove_date: '2021-08-26' ---- - -This file was moved to [another location](puma.md). - -<!-- This redirect file can be deleted after <2021-08-26>. --> -<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page --> diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index a5e6a5ef831..ba045bc3cf7 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -9851,7 +9851,7 @@ four standard [pagination arguments](#connection-pagination-arguments): ##### `GeoNode.pagesDeploymentRegistries` -Find Pages Deployment registries on this Geo node Available only when feature flag `geo_pages_deployment_replication` is enabled. This flag is disabled by default, because the feature is experimental and is subject to change without notice. +Find Pages Deployment registries on this Geo node. Returns [`PagesDeploymentRegistryConnection`](#pagesdeploymentregistryconnection). diff --git a/doc/api/instance_clusters.md b/doc/api/instance_clusters.md index ae94fdb137c..4e0ec3bd433 100644 --- a/doc/api/instance_clusters.md +++ b/doc/api/instance_clusters.md @@ -4,7 +4,7 @@ group: Configure info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- -# Instance clusters API **(FREE)** +# Instance clusters API **(FREE SELF)** > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36001) in GitLab 13.2. diff --git a/doc/api/instance_level_ci_variables.md b/doc/api/instance_level_ci_variables.md index de6fd958aa6..2b2579425b5 100644 --- a/doc/api/instance_level_ci_variables.md +++ b/doc/api/instance_level_ci_variables.md @@ -4,7 +4,7 @@ group: Pipeline Authoring info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- -# Instance-level CI/CD variables API +# Instance-level CI/CD variables API **(FREE SELF)** > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14108) in GitLab 13.0 > - [Feature flag removed](https://gitlab.com/gitlab-org/gitlab/-/issues/218249) in GitLab 13.2. diff --git a/doc/api/issue_links.md b/doc/api/issue_links.md index d4f59d10316..ac26d2a3d17 100644 --- a/doc/api/issue_links.md +++ b/doc/api/issue_links.md @@ -6,7 +6,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w # Issue links API **(FREE)** -> The simple "relates to" relationship [moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212329) to [GitLab Free](https://about.gitlab.com/pricing/) in 13.4. +> The simple "relates to" relationship [moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212329) to GitLab Free in 13.4. ## List issue relations diff --git a/doc/api/issues.md b/doc/api/issues.md index d8e9469b59f..97d0fd3ce8f 100644 --- a/doc/api/issues.md +++ b/doc/api/issues.md @@ -20,7 +20,7 @@ Read more on [pagination](index.md#pagination). WARNING: The `reference` attribute in responses is deprecated in favor of `references`. -Introduced in [GitLab 12.6](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354). +[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20354) in GitLab 12.6. NOTE: The `references.relative` attribute is relative to the group or project of the issue being requested. @@ -61,17 +61,17 @@ GET /issues?state=opened | `confidential` | boolean | no | Filter confidential or public issues. | | `created_after` | datetime | no | Return issues created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | +| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233420) in GitLab 13.3)_ | | `iids[]` | integer array | no | Return only the issues having the given `iid` | | `in` | string | no | Modify the scope of the `search` attribute. `title`, `description`, or a string joining them with comma. Default is `title,description` | -| `issue_type` | string | no | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _(Introduced in [GitLab 13.12](https://gitlab.com/gitlab-org/gitlab/-/issues/260375))_ | +| `issue_type` | string | no | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/260375) in GitLab 13.12)_ | | `iteration_id` **(PREMIUM)** | integer | no | Return issues assigned to the given iteration ID. `None` returns issues that do not belong to an iteration. `Any` returns issues that belong to an iteration. Mutually exclusive with `iteration_title`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | `iteration_title` **(PREMIUM)** | string | no | Return issues assigned to the iteration with the given title. Similar to `iteration_id` and mutually exclusive with `iteration_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. `No+Label` (Deprecated) lists all issues with no labels. Predefined names are case-insensitive. | | `milestone` | string | no | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. Using `None` or `Any` will be [deprecated in the future](https://gitlab.com/gitlab-org/gitlab/-/issues/336044). Please use `milestone_id` attribute instead. `milestone` and `milestone_id` are mutually exclusive. | | `milestone_id` | string | no | Returns issues assigned to milestones with a given timebox value (`None`, `Any`, `Upcoming`, and `Started`). `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. `Upcoming` lists all issues assigned to milestones due in the future. `Started` lists all issues assigned to open, started milestones. `milestone` and `milestone_id` are mutually exclusive. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/335939) in GitLab 14.3)_ | | `my_reaction_emoji` | string | no | Return issues reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ | -| `non_archived` | boolean | no | Return issues only from non-archived projects. If `false`, the response returns issues from both archived and non-archived projects. Default is `true`. _(Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/issues/197170))_ | +| `non_archived` | boolean | no | Return issues only from non-archived projects. If `false`, the response returns issues from both archived and non-archived projects. Default is `true`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/197170) in GitLab 13.0)_ | | `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `assignee_id`, `assignee_username`, `author_id`, `author_username`, `iids`, `iteration_id`, `iteration_title`, `labels`, `milestone`, `milestone_id` and `weight`. | | `order_by` | string | no | Return issues ordered by `created_at`, `due_date`, `label_priority`, `milestone_due`, `popularity`, `priority`, `relative_position`, `title`, `updated_at`, or `weight` fields. Default is `created_at`. | | `scope` | string | no | Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`. Defaults to `created_by_me`<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5. [Changed to snake_case](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in GitLab 11.0)_ | @@ -81,7 +81,7 @@ GET /issues?state=opened | `updated_after` | datetime | no | Return issues updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_before` | datetime | no | Return issues updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `weight` **(PREMIUM)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | -| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. The `description_html` attribute was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413)| +| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. The `description_html` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) in GitLab 12.7| ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/issues" @@ -225,11 +225,11 @@ The `assignee` column is deprecated. We now show it as a single-sized array `ass to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. @@ -268,16 +268,16 @@ GET /groups/:id/issues?state=opened | `confidential` | boolean | no | Filter confidential or public issues. | | `created_after` | datetime | no | Return issues created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | +| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233420) in GitLab 13.3)_ | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](index.md#namespaced-path-encoding) owned by the authenticated user | | `iids[]` | integer array | no | Return only the issues having the given `iid` | -| `issue_type` | string | no | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _(Introduced in [GitLab 13.12](https://gitlab.com/gitlab-org/gitlab/-/issues/260375))_ | +| `issue_type` | string | no | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/260375) in GitLab 13.12)_ | | `iteration_id` **(PREMIUM)** | integer | no | Return issues assigned to the given iteration ID. `None` returns issues that do not belong to an iteration. `Any` returns issues that belong to an iteration. Mutually exclusive with `iteration_title`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | `iteration_title` **(PREMIUM)** | string | no | Return issues assigned to the iteration with the given title. Similar to `iteration_id` and mutually exclusive with `iteration_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. `No+Label` (Deprecated) lists all issues with no labels. Predefined names are case-insensitive. | | `milestone` | string | no | The milestone title. `None` lists all issues with no milestone. `Any` lists all issues that have an assigned milestone. | | `my_reaction_emoji` | string | no | Return issues reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14016) in GitLab 10.0)_ | -| `non_archived` | boolean | no | Return issues from non archived projects. Default is true. _(Introduced in [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23785))_ | +| `non_archived` | boolean | no | Return issues from non archived projects. Default is true. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23785) in GitLab 12.8)_ | | `not` | Hash | no | Return issues that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `my_reaction_emoji`, `search`, `in` | | `order_by` | string | no | Return issues ordered by `created_at`, `updated_at`, `priority`, `due_date`, `relative_position`, `label_priority`, `milestone_due`, `popularity`, `weight` fields. Default is `created_at` | | `scope` | string | no | Return issues for the given scope: `created_by_me`, `assigned_to_me` or `all`.<br> For versions before 11.0, use the now deprecated `created-by-me` or `assigned-to-me` scopes instead.<br> _([Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/13004) in GitLab 9.5. [Changed to snake_case](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18935) in GitLab 11.0)_ | @@ -287,7 +287,7 @@ GET /groups/:id/issues?state=opened | `updated_after` | datetime | no | Return issues updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_before` | datetime | no | Return issues updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `weight` **(PREMIUM)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | -| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. The `description_html` attribute was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | +| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. The `description_html` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) in GitLab 12.7 | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/4/issues" @@ -429,11 +429,11 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. @@ -472,10 +472,10 @@ GET /projects/:id/issues?state=opened | `confidential` | boolean | no | Filter confidential or public issues. | | `created_after` | datetime | no | Return issues created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `created_before` | datetime | no | Return issues created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | -| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _(Introduced in [GitLab 13.3](https://gitlab.com/gitlab-org/gitlab/-/issues/233420))_ | +| `due_date` | string | no | Return issues that have no due date, are overdue, or whose due date is this week, this month, or between two weeks ago and next month. Accepts: `0` (no due date), `overdue`, `week`, `month`, `next_month_and_previous_two_weeks`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/233420) in GitLab 13.3)_ | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | `iids[]` | integer array | no | Return only the issues having the given `iid` | -| `issue_type` | string | no | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _(Introduced in [GitLab 13.12](https://gitlab.com/gitlab-org/gitlab/-/issues/260375))_ | +| `issue_type` | string | no | Filter to a given type of issue. One of `issue`, `incident`, or `test_case`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/260375) in GitLab 13.12)_ | | `iteration_id` **(PREMIUM)** | integer | no | Return issues assigned to the given iteration ID. `None` returns issues that do not belong to an iteration. `Any` returns issues that belong to an iteration. Mutually exclusive with `iteration_title`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | `iteration_title` **(PREMIUM)** | string | no | Return issues assigned to the iteration with the given title. Similar to `iteration_id` and mutually exclusive with `iteration_id`. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/118742) in GitLab 13.6)_ | | `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `None` lists all issues with no labels. `Any` lists all issues with at least one label. `No+Label` (Deprecated) lists all issues with no labels. Predefined names are case-insensitive. | @@ -490,7 +490,7 @@ GET /projects/:id/issues?state=opened | `updated_after` | datetime | no | Return issues updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `updated_before` | datetime | no | Return issues updated on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`) | | `weight` **(PREMIUM)** | integer | no | Return issues with the specified `weight`. `None` returns issues with no weight assigned. `Any` returns issues with a weight assigned. | -| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. `description_html` was introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) | +| `with_labels_details` | boolean | no | If `true`, the response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. `description_html` was [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) in GitLab 12.7 | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues" @@ -639,11 +639,11 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. ## Single issue @@ -804,11 +804,11 @@ The `assignee` column is deprecated. We now show it as a single-sized array `ass to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated, and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated, and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. @@ -965,11 +965,11 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. ## New issue @@ -992,7 +992,7 @@ POST /projects/:id/issues | `discussion_to_resolve` | string | no | The ID of a discussion to resolve. This fills out the issue with a default description and mark the discussion as resolved. Use in combination with `merge_request_to_resolve_discussions_of`. | | `due_date` | string | no | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11` | | `epic_id` **(PREMIUM)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | -| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | +| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | `iid` | integer/string | no | The internal ID of the project's issue (requires administrator or project owner rights) | | `issue_type` | string | no | The type of issue. One of `issue`, `incident`, or `test_case`. Default is `issue`. | @@ -1115,11 +1115,11 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. ## Rate limits @@ -1162,7 +1162,7 @@ PUT /projects/:id/issues/:issue_iid | `discussion_locked` | boolean | no | Flag indicating if the issue's discussion is locked. If the discussion is locked only project members can add or edit comments. | | `due_date` | string | no | The due date. Date time string in the format `YYYY-MM-DD`, for example `2016-03-11` | | `epic_id` **(PREMIUM)** | integer | no | ID of the epic to add the issue to. Valid values are greater than or equal to 0. | -| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157)) | +| `epic_iid` **(PREMIUM)** | integer | no | IID of the epic to add the issue to. Valid values are greater than or equal to 0. (deprecated, [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user | | `issue_iid` | integer | yes | The internal ID of a project's issue | | `issue_type` | string | no | Updates the type of issue. One of `issue`, `incident`, or `test_case`. | @@ -1290,11 +1290,11 @@ Issues created by users on GitLab Ultimate include the `health_status` property: ``` NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. WARNING: @@ -1480,11 +1480,11 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. ## Subscribe to an issue @@ -1625,11 +1625,11 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. WARNING: -The `epic_iid` attribute is deprecated and [scheduled for removal in API version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/35157). +The `epic_iid` attribute is deprecated and [scheduled for removal](https://gitlab.com/gitlab-org/gitlab/-/issues/35157) in API version 5. Please use `iid` of the `epic` attribute instead. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. ## Unsubscribe from an issue @@ -1823,7 +1823,7 @@ WARNING: The `assignee` column is deprecated. We now show it as a single-sized array `assignees` to conform to the GitLab EE API. NOTE: -The `closed_by` attribute was [introduced in GitLab 10.6](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042). This value is only present for issues closed after GitLab 10.6 and if the user account that closed +The `closed_by` attribute was [introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17042) in GitLab 10.6. This value is only present for issues closed after GitLab 10.6 and if the user account that closed the issue still exists. ## Promote an issue to an epic **(PREMIUM)** diff --git a/doc/api/members.md b/doc/api/members.md index fc02103b578..0b8cf686b8c 100644 --- a/doc/api/members.md +++ b/doc/api/members.md @@ -4,7 +4,7 @@ group: Access info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments --- -# Group and project members API +# Group and project members API **(FREE)** ## Valid access levels @@ -92,7 +92,7 @@ Gets a list of group or project members viewable by the authenticated user, incl If a user is a member of this group or project and also of one or more ancestor groups, only its membership with the highest `access_level` is returned. -([Improved](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56677)] in GitLab 13.11.) +([Improved](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56677) in GitLab 13.11.) This represents the effective permission of the user. This function takes pagination parameters `page` and `per_page` to restrict the list of users. diff --git a/doc/api/merge_request_approvals.md b/doc/api/merge_request_approvals.md index ef8af608466..b4403e1d9b9 100644 --- a/doc/api/merge_request_approvals.md +++ b/doc/api/merge_request_approvals.md @@ -81,7 +81,7 @@ POST /projects/:id/approvals > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/11877) in GitLab 12.3. > - Moved to GitLab Premium in 13.9. -> - `protected_branches` property was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/460) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7. +> - `protected_branches` property was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/460) in GitLab 12.7. You can request information about a project's approval rules using the following endpoint: @@ -954,7 +954,7 @@ POST /projects/:id/merge_requests/:merge_request_iid/approve | `id` | integer or string | yes | The ID or [URL-encoded path of a project](index.md#namespaced-path-encoding) | | `merge_request_iid` | integer | yes | The IID of the merge request | | `sha` | string | no | The `HEAD` of the merge request | -| `approval_password` **(PREMIUM)** | string | no | Current user's password. Required if [**Require user password to approve**](../user/project/merge_requests/approvals/settings.md#require-user-password-to-approve) is enabled in the project settings. | +| `approval_password` | string | no | Current user's password. Required if [**Require user password to approve**](../user/project/merge_requests/approvals/settings.md#require-user-password-to-approve) is enabled in the project settings. | The `sha` parameter works in the same way as when [accepting a merge request](merge_requests.md#accept-mr): if it is passed, then it must diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index b90f0e70a02..98af228a064 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -222,7 +222,7 @@ Parameters: ] ``` -Users on GitLab Premium or higher also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -418,7 +418,7 @@ The `merge_status` field may hold one of the following values: | `cannot_be_merged` | There are merge conflicts between the source and target branches | | `cannot_be_merged_recheck` | Currently unchecked. Before the current changes, there were conflicts | -Users on GitLab Premium or higher also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -460,8 +460,8 @@ Parameters: | `milestone` | string | no | Return merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request. | | `labels` | string | no | Return merge requests matching a comma separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. `No+Label` (Deprecated) lists all merge requests with no labels. Predefined names are case-insensitive. | -| `with_labels_details` | boolean | no | If `true`, response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. Introduced in [GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413).| -| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. Introduced in [GitLab 13.0](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890). | +| `with_labels_details` | boolean | no | If `true`, response returns more details for each label in labels field: `:name`, `:color`, `:description`, `:description_html`, `:text_color`. Default is `false`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/21413) in GitLab 12.7.| +| `with_merge_status_recheck` | boolean | no | If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated asynchronously. Default is `false`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31890) in GitLab 13.0. | | `created_after` | datetime | no | Return merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | `created_before` | datetime | no | Return merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | `updated_after` | datetime | no | Return merge requests updated on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | @@ -478,7 +478,7 @@ Parameters: | `source_branch` | string | no | Return merge requests with the given source branch. | | `target_branch` | string | no | Return merge requests with the given target branch. | | `search` | string | no | Search merge requests against their `title` and `description`. | -| `non_archived` | boolean | no | Return merge requests from non archived projects only. Default is true. _(Introduced in [GitLab 12.8](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23809))_. | +| `non_archived` | boolean | no | Return merge requests from non archived projects only. Default is true. _([Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23809) in GitLab 12.8)_. | | `not` | Hash | no | Return merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | ```json @@ -592,7 +592,7 @@ Parameters: ] ``` -Users on GitLab Premium or higher also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -625,7 +625,7 @@ Parameters: |----------------------------------|----------------|----------|------------------------------------------------------------------------------------------------------------------| | `id` | integer/string | yes | The ID or [URL-encoded path of the project](index.md#namespaced-path-encoding) owned by the authenticated user. | | `merge_request_iid` | integer | yes | The internal ID of the merge request. | -| `render_html` | integer | no | If `true` response includes rendered HTML for title and description. | +| `render_html` | boolean | no | If `true` response includes rendered HTML for title and description. | | `include_diverged_commits_count` | boolean | no | If `true` response includes the commits behind the target branch. | | `include_rebase_in_progress` | boolean | no | If `true` response includes whether a rebase operation is in progress. | @@ -764,7 +764,7 @@ Parameters: } ``` -Users on GitLab Premium also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1014,7 +1014,7 @@ The new pipeline can be: - A detached merge request pipeline. - A [pipeline for merged results](../ci/pipelines/pipelines_for_merged_results.md) - if the [project setting is enabled](../ci/pipelines/pipelines_for_merged_results.md#enable-pipelines-for-merged-results). + if the [project setting is enabled](../ci/pipelines/pipelines_for_merged_results.md#enable-pipelines-for-merged-results). **(PREMIUM)** ```plaintext POST /projects/:id/merge_requests/:merge_request_iid/pipelines @@ -1375,7 +1375,7 @@ Must include at least one non-required attribute from above. } ``` -Users on GitLab Premium or higher also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1561,7 +1561,7 @@ Parameters: } ``` -Users on GitLab Premium also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -1750,7 +1750,7 @@ Parameters: } ``` -Users on GitLab Premium or higher also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -2051,7 +2051,7 @@ Example response: } ``` -Users on GitLab Premium also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json @@ -2211,7 +2211,7 @@ Example response: } ``` -Users on GitLab Premium or higher also see +Users on [GitLab Premium or higher](https://about.gitlab.com/pricing/) also see the `approvals_before_merge` parameter: ```json diff --git a/doc/api/milestones.md b/doc/api/milestones.md index 183d8b4799b..84b4e2fe39d 100644 --- a/doc/api/milestones.md +++ b/doc/api/milestones.md @@ -32,7 +32,7 @@ Parameters: | `state` | string | optional | Return only `active` or `closed` milestones | | `title` | string | optional | Return only the milestones having the given `title` | | `search` | string | optional | Return only milestones with a title or description matching the provided string | -| `include_parent_milestones` | boolean | optional | Include group milestones from parent group and its ancestors. Introduced in [GitLab 13.4](https://gitlab.com/gitlab-org/gitlab/-/issues/196066) | +| `include_parent_milestones` | boolean | optional | Include group milestones from parent group and its ancestors. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/196066) in GitLab 13.4 | ```shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/milestones" diff --git a/doc/development/database/multiple_databases.md b/doc/development/database/multiple_databases.md index c8f4ab01d16..0fd9f821fab 100644 --- a/doc/development/database/multiple_databases.md +++ b/doc/development/database/multiple_databases.md @@ -24,24 +24,26 @@ configurations. For example, given a `config/database.yml` like below: ```yaml development: - adapter: postgresql - encoding: unicode - database: gitlabhq_development - host: /path/to/gdk/postgresql - pool: 10 - prepared_statements: false - variables: - statement_timeout: 120s + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_development + host: /path/to/gdk/postgresql + pool: 10 + prepared_statements: false + variables: + statement_timeout: 120s test: &test - adapter: postgresql - encoding: unicode - database: gitlabhq_test - host: /path/to/gdk/postgresql - pool: 10 - prepared_statements: false - variables: - statement_timeout: 120s + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_test + host: /path/to/gdk/postgresql + pool: 10 + prepared_statements: false + variables: + statement_timeout: 120s ``` Edit the `config/database.yml` to look like this: @@ -412,3 +414,50 @@ The `url` parameter should point to an issue with a milestone for when we intend to fix the cross-join. If the cross-join is being used in a migration, we do not need to fix the code. See <https://gitlab.com/gitlab-org/gitlab/-/issues/340017> for more details. + +## `config/database.yml` + +GitLab will support running multiple databases in the future, for example to [separate tables for the continuous integration features](https://gitlab.com/groups/gitlab-org/-/epics/6167) from the main database. In order to prepare for this change, we [validate the structure of the configuration](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67877) in `database.yml` to ensure that only known databases are used. + +Previously, the `config/database.yml` would look like this: + +```yaml +production: + adapter: postgresql + encoding: unicode + database: gitlabhq_production + ... +``` + +With the support for many databases the support for this +syntax is deprecated and will be removed in [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/338182). + +The new `config/database.yml` needs to include a database name +to define a database configuration. Only `main:` and `ci:` database +names are supported today. The `main:` needs to always be a first +entry in a hash. This change applies to decomposed and non-decomposed +change. If an invalidate or deprecated syntax is used the error +or warning will be printed during application start. + +```yaml +# Non-decomposed database +production: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_production + ... + +# Decomposed database +production: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_production + ... + ci: + adapter: postgresql + encoding: unicode + database: gitlabhq_production_ci + ... +``` diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index e9398288ae3..9eef831afa4 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -33,3 +33,11 @@ Audit events for [repository events](../administration/audit_events.md#repositor These events have always been disabled by default and had to be manually enabled with a feature flag. Enabling them can cause too many events to be generated which can dramatically slow down GitLab instances. For this reason, they are being removed. + +### OmniAuth Kerberos gem + +The `omniauth-kerberos` gem will be removed in our next major release, GitLab 15.0. + +This gem has not been maintained and has very little usage. We therefore plan to remove support for this authentication method and recommend using the Kerberos [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO) integration instead. You can follow the [upgrade instructions](../integration/kerberos.md#upgrading-from-password-based-to-ticket-based-kerberos-sign-ins) to upgrade from the `omniauth-kerberos` integration to the supported one. + +Note that we are not deprecating the Kerberos SPNEGO integration, only the old password-based Kerberos integration. diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md index 5c409233e5f..631cdf026c2 100644 --- a/doc/user/application_security/dast/index.md +++ b/doc/user/application_security/dast/index.md @@ -921,7 +921,7 @@ The DAST job does not require the project's repository to be present when runnin > - Auditing for DAST profile management was [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) in GitLab 14.1. An on-demand DAST scan runs outside the DevOps life cycle. Changes in your repository don't trigger -the scan. You must start it manually. +the scan. You must either start it manually, or schedule it to run. An on-demand DAST scan: @@ -930,8 +930,6 @@ An on-demand DAST scan: - Is associated with your project's default branch. - Is saved on creation so it can be run later. -In GitLab 13.10 and later, you can select to run an on-demand scan against a specific branch. - ### On-demand scan modes An on-demand scan can be run in active or passive mode: @@ -943,23 +941,34 @@ An on-demand scan can be run in active or passive mode: ### Run an on-demand DAST scan -NOTE: -You must have permission to run an on-demand DAST scan against a protected branch. -The default branch is automatically protected. For more information, see -[Pipeline security on protected branches](../../../ci/pipelines/index.md#pipeline-security-on-protected-branches). - Prerequisites: +- You must have permission to run an on-demand DAST scan against a protected branch. The default + branch is automatically protected. For more information, read + [Pipeline security on protected branches](../../../ci/pipelines/index.md#pipeline-security-on-protected-branches). - A [scanner profile](#create-a-scanner-profile). - A [site profile](#create-a-site-profile). -- If you are running an active scan the site profile must be [validated](#validate-a-site-profile). +- If you are running an active scan the site profile must have been [validated](#validate-a-site-profile). + +You can run an on-demand scan immediately, once at a scheduled date and time or at a specified +frequency: + +- Every day +- Every week +- Every month +- Every 3 months +- Every 6 months +- Every year -To run an on-demand scan, either: +To run an on-demand scan immediately, either: -- [Create and run an on-demand scan](#create-and-run-an-on-demand-scan). +- [Create and run an on-demand scan immediately](#create-and-run-an-on-demand-scan-immediately). - [Run a previously saved on-demand scan](#run-a-saved-on-demand-scan). -#### Create and run an on-demand scan +To run an on-demand scan either at a scheduled date or frequency, read +[Schedule an on-demand scan](#schedule-an-on-demand-scan). + +#### Create and run an on-demand scan immediately 1. From your project's home page, go to **Security & Compliance > On-demand Scans** in the left sidebar. @@ -967,44 +976,70 @@ To run an on-demand scan, either: 1. In GitLab 13.10 and later, select the desired branch from the **Branch** dropdown. 1. In **Scanner profile**, select a scanner profile from the dropdown. 1. In **Site profile**, select a site profile from the dropdown. -1. To run the on-demand scan now, select **Save and run scan**. Otherwise select **Save scan** to - [run](#run-a-saved-on-demand-scan) it later. +1. To run the on-demand scan immediately, select **Save and run scan**. Otherwise, select + **Save scan** to [run](#run-a-saved-on-demand-scan) it later. The on-demand DAST scan runs and the project's dashboard shows the results. -### List saved on-demand scans +#### Run a saved on-demand scan -To list saved on-demand scans: +To run a saved on-demand scan: -1. From your project's home page, go to **Security & Compliance > Configuration**. +1. On the top bar, select **Menu > Projects** and find your project. +1. On the left sidebar, select **Security & Compliance > Configuration**. +1. Select **Manage DAST scans**. +1. In the **DAST Profiles** row, select **Manage**. 1. Select the **Saved Scans** tab. +1. In the scan's row, select **Run scan**. -### View details of an on-demand scan + If the branch saved in the scan no longer exists, you must first + [edit the scan](#edit-an-on-demand-scan), select a new branch, and save the edited scan. -To view details of an on-demand scan: +The on-demand DAST scan runs, and the project's dashboard shows the results. + +#### Schedule an on-demand scan + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/328749) in GitLab 14.3. [Deployed behind the `dast_on_demand_scans_scheduler` flag](../../../administration/feature_flags.md), disabled by default. + +FLAG: +On self-managed GitLab, by default this feature is not available. To make it available per user, +ask an administrator to [disable the `dast_on_demand_scans_scheduler` flag](../../../administration/feature_flags.md). +The feature is not ready for production use. + +To schedule a scan: + +1. On the top bar, select **Menu > Projects** and find your project. +1. On the left sidebar, select **Security & Compliance > On-demand Scans**. +1. Complete the **Scan name** and **Description** text boxes. +1. In GitLab 13.10 and later, from the **Branch** dropdown list, select the desired branch. +1. In the **Scanner profile** section, from the dropdown list, select a scanner profile. +1. In the **Site profile** section, from the dropdown list, select a site profile. +1. Select **Schedule scan**. +1. In the **Start time** section, select a time zone, date, and time. +1. From the **Repeats** dropdown list, select your desired frequency: + - To run the scan once, select **Never**. + - For a recurring scan, select any other option. +1. To run the on-demand scan immediately, select **Save and run scan**. To [run](#run-a-saved-on-demand-scan) it according to the schedule you set, select + **Save scan**. + +#### List saved on-demand scans + +To list saved on-demand scans: 1. From your project's home page, go to **Security & Compliance > Configuration**. -1. Select **Manage DAST scans**. -1. Select **Manage** in the **DAST Profiles** row. 1. Select the **Saved Scans** tab. -1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Edit**. -### Run a saved on-demand scan +#### View details of an on-demand scan -To run a saved on-demand scan: +To view details of an on-demand scan: 1. From your project's home page, go to **Security & Compliance > Configuration**. 1. Select **Manage DAST scans**. 1. Select **Manage** in the **DAST Profiles** row. 1. Select the **Saved Scans** tab. -1. In the scan's row select **Run scan**. - - If the branch saved in the scan no longer exists, you must first - [edit the scan](#edit-an-on-demand-scan), select a new branch, and save the edited scan. - -The on-demand DAST scan runs and the project's dashboard shows the results. +1. In the saved scan's row select **More actions** (**{ellipsis_v}**), then select **Edit**. -### Edit an on-demand scan +#### Edit an on-demand scan To edit an on-demand scan: @@ -1016,7 +1051,7 @@ To edit an on-demand scan: 1. Edit the form. 1. Select **Save scan**. -### Delete an on-demand scan +#### Delete an on-demand scan To delete an on-demand scan: diff --git a/doc/user/project/integrations/index.md b/doc/user/project/integrations/index.md index 6f86098b33d..ac6e18e8e6a 100644 --- a/doc/user/project/integrations/index.md +++ b/doc/user/project/integrations/index.md @@ -17,8 +17,8 @@ For more information, read the [overview of integrations](overview.md) or learn how to manage your integrations: - *For GitLab 13.3 and later,* read [Project integration management](../../admin_area/settings/project_integration_management.md). -- *For GitLab 13.2 and earlier,* read [Service Templates](services_templates.md), - which are deprecated and [scheduled to be removed](https://gitlab.com/gitlab-org/gitlab/-/issues/268032) +- *For GitLab 13.2 and earlier,* read [Integration Management](../../admin_area/settings/project_integration_management.md), + which replaced the deprecated Service Templates [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/268032) in GitLab 14.0. ## Project webhooks diff --git a/doc/user/project/integrations/services_templates.md b/doc/user/project/integrations/services_templates.md deleted file mode 100644 index 37df48c75f8..00000000000 --- a/doc/user/project/integrations/services_templates.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -redirect_to: '../../admin_area/settings/project_integration_management.md' -remove_date: '2021-09-09' ---- - -This document was moved to [another location](../../admin_area/settings/project_integration_management.md). - -<!-- This redirect file can be deleted after <2021-09-09>. --> -<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page --> diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 0a3e1eef64b..662d7e70910 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -240,9 +240,11 @@ reduce the repository size for another import attempt. # Prevent interference with recreating an importable file later mv project.bundle ../"$EXPORT"-original.bundle mv ../"$EXPORT".tar.gz ../"$EXPORT"-original.tar.gz + + git switch --create smaller-tmp-main ``` -1. To reduce the repository size, +1. To reduce the repository size, work on this `smaller-tmp-main` branch: [identify and remove large files](../repository/reducing_the_repo_size_using_git.md) or [interactively rebase and fixup](../../../topics/git/git_rebase.md#interactive-rebase) to reduce the number of commits. @@ -254,7 +256,7 @@ reduce the repository size for another import attempt. git gc --prune=now --aggressive # Prepare recreating an importable file - git bundle create ../project.bundle <default-branch-name> + git bundle create ../project.bundle smaller-tmp-main cd .. mv project/ ../"$EXPORT"-project cd .. @@ -270,5 +272,5 @@ reduce the repository size for another import attempt. 1. Update the imported repository's [branch protection rules](../protected_branches.md) and its [default branch](../repository/branches/default.md), and - delete the temporary, `smaller-…` branch, and + delete the temporary, `smaller-tmp-main` branch, and the local, temporary data. diff --git a/lib/gitlab/database/migration_helpers/v2.rb b/lib/gitlab/database/migration_helpers/v2.rb index 855c9908e4a..cabc18faddd 100644 --- a/lib/gitlab/database/migration_helpers/v2.rb +++ b/lib/gitlab/database/migration_helpers/v2.rb @@ -100,6 +100,14 @@ module Gitlab # * +logger+ - [Gitlab::JsonLogger] # * +env+ - [Hash] custom environment hash, see the example with `DISABLE_LOCK_RETRIES` def with_lock_retries(*args, **kwargs, &block) + if transaction_open? + raise <<~EOF + #{__callee__} can not be run inside an already open transaction + + Use migration-level lock retries instead, see https://docs.gitlab.com/ee/development/migration_style_guide.html#retry-mechanism-when-acquiring-database-locks + EOF + end + super(*args, **kwargs.merge(allow_savepoints: false), &block) end diff --git a/lib/gitlab/database/schema_migrations/context.rb b/lib/gitlab/database/schema_migrations/context.rb index 35105121bbd..a95f85c6bef 100644 --- a/lib/gitlab/database/schema_migrations/context.rb +++ b/lib/gitlab/database/schema_migrations/context.rb @@ -6,7 +6,7 @@ module Gitlab class Context attr_reader :connection - DEFAULT_SCHEMA_MIGRATIONS_PATH = "db/schema_migrations" + class_attribute :default_schema_migrations_path, default: 'db/schema_migrations' def initialize(connection) @connection = connection @@ -30,7 +30,7 @@ module Gitlab end def database_schema_migrations_path - @connection.pool.db_config.configuration_hash[:schema_migrations_path] || DEFAULT_SCHEMA_MIGRATIONS_PATH + @connection.pool.db_config.configuration_hash[:schema_migrations_path] || self.class.default_schema_migrations_path end end end diff --git a/lib/gitlab/import_export/attributes_permitter.rb b/lib/gitlab/import_export/attributes_permitter.rb index 7c48e63941a..acd03d9ec20 100644 --- a/lib/gitlab/import_export/attributes_permitter.rb +++ b/lib/gitlab/import_export/attributes_permitter.rb @@ -42,6 +42,10 @@ module Gitlab class AttributesPermitter attr_reader :permitted_attributes + # We want to use AttributesCleaner for these relations instead, in the future this should be removed to make sure + # we are using AttributesPermitter for every imported relation. + DISABLED_RELATION_NAMES = %i[user author ci_cd_settings issuable_sla push_rule].freeze + def initialize(config: ImportExport::Config.new.to_h) @config = config @attributes_finder = Gitlab::ImportExport::AttributesFinder.new(config: @config) @@ -50,16 +54,20 @@ module Gitlab build_permitted_attributes end - def permit(relation_name, relation_hash) - permitted_attributes = permitted_attributes_for(relation_name) + def permit(relation_sym, relation_hash) + permitted_attributes = permitted_attributes_for(relation_sym) relation_hash.select do |key, _| - permitted_attributes.include?(key) + permitted_attributes.include?(key.to_sym) end end - def permitted_attributes_for(relation_name) - @permitted_attributes[relation_name] || [] + def permitted_attributes_for(relation_sym) + @permitted_attributes[relation_sym] || [] + end + + def permitted_attributes_defined?(relation_sym) + !DISABLED_RELATION_NAMES.include?(relation_sym) && @attributes_finder.included_attributes.key?(relation_sym) end private diff --git a/lib/gitlab/import_export/base/relation_factory.rb b/lib/gitlab/import_export/base/relation_factory.rb index 30cd5ccfbcb..a84efd1d240 100644 --- a/lib/gitlab/import_export/base/relation_factory.rb +++ b/lib/gitlab/import_export/base/relation_factory.rb @@ -29,7 +29,7 @@ module Gitlab owner_id ].freeze - TOKEN_RESET_MODELS = %i[Project Namespace Group Ci::Trigger Ci::Build Ci::Runner ProjectHook].freeze + TOKEN_RESET_MODELS = %i[Project Namespace Group Ci::Trigger Ci::Build Ci::Runner ProjectHook ErrorTracking::ProjectErrorTrackingSetting].freeze def self.create(*args, **kwargs) new(*args, **kwargs).create @@ -45,6 +45,7 @@ module Gitlab end def initialize(relation_sym:, relation_index:, relation_hash:, members_mapper:, object_builder:, user:, importable:, excluded_keys: []) + @relation_sym = relation_sym @relation_name = self.class.overrides[relation_sym]&.to_sym || relation_sym @relation_index = relation_index @relation_hash = relation_hash.except('noteable_id') @@ -181,8 +182,17 @@ module Gitlab end def parsed_relation_hash - @parsed_relation_hash ||= Gitlab::ImportExport::AttributeCleaner.clean(relation_hash: @relation_hash, - relation_class: relation_class) + strong_memoize(:parsed_relation_hash) do + if Feature.enabled?(:permitted_attributes_for_import_export, default_enabled: :yaml) && attributes_permitter.permitted_attributes_defined?(@relation_sym) + attributes_permitter.permit(@relation_sym, @relation_hash) + else + Gitlab::ImportExport::AttributeCleaner.clean(relation_hash: @relation_hash, relation_class: relation_class) + end + end + end + + def attributes_permitter + @attributes_permitter ||= Gitlab::ImportExport::AttributesPermitter.new end def existing_or_new_object diff --git a/lib/gitlab/import_export/project/import_export.yml b/lib/gitlab/import_export/project/import_export.yml index 51fd84960c5..95ae6c10e72 100644 --- a/lib/gitlab/import_export/project/import_export.yml +++ b/lib/gitlab/import_export/project/import_export.yml @@ -121,6 +121,41 @@ included_attributes: - :name ci_cd_settings: - :group_runners_enabled + metrics_setting: + - :dashboard_timezone + - :external_dashboard_url + - :project_id + project_badges: + - :created_at + - :group_id + - :image_url + - :link_url + - :name + - :project_id + - :type + - :updated_at + pipeline_schedules: + - :active + - :created_at + - :cron + - :cron_timezone + - :description + - :next_run_at + - :owner_id + - :project_id + - :ref + - :updated_at + error_tracking_setting: + - :api_url + - :organization_name + - :project_id + - :project_name + auto_devops: + - :created_at + - :deploy_strategy + - :enabled + - :project_id + - :updated_at # Do not include the following attributes for the models specified. excluded_attributes: diff --git a/lib/gitlab/usage_data_counters/known_events/code_review_events.yml b/lib/gitlab/usage_data_counters/known_events/code_review_events.yml index 103762501d4..d4a818f8fe0 100644 --- a/lib/gitlab/usage_data_counters/known_events/code_review_events.yml +++ b/lib/gitlab/usage_data_counters/known_events/code_review_events.yml @@ -245,3 +245,7 @@ redis_slot: code_review category: code_review aggregation: weekly +- name: i_code_review_user_resolve_thread_in_issue + redis_slot: code_review + category: code_review + aggregation: weekly diff --git a/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb index 3bfd6c09fda..0fadd68aeab 100644 --- a/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb +++ b/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter.rb @@ -48,6 +48,7 @@ module Gitlab MR_LABELS_CHANGED_ACTION = 'i_code_review_user_labels_changed' MR_LOAD_CONFLICT_UI_ACTION = 'i_code_review_user_load_conflict_ui' MR_RESOLVE_CONFLICT_ACTION = 'i_code_review_user_resolve_conflict' + MR_RESOLVE_THREAD_IN_ISSUE_ACTION = 'i_code_review_user_resolve_thread_in_issue' class << self def track_mr_diffs_action(merge_request:) @@ -214,6 +215,10 @@ module Gitlab track_unique_action_by_user(MR_RESOLVE_CONFLICT_ACTION, user) end + def track_resolve_thread_in_issue_action(user:) + track_unique_action_by_user(MR_RESOLVE_THREAD_IN_ISSUE_ACTION, user) + end + private def track_unique_action_by_merge_request(action, merge_request) diff --git a/spec/controllers/explore/projects_controller_spec.rb b/spec/controllers/explore/projects_controller_spec.rb index 02ed954508e..6e30ce3d5e1 100644 --- a/spec/controllers/explore/projects_controller_spec.rb +++ b/spec/controllers/explore/projects_controller_spec.rb @@ -205,9 +205,9 @@ RSpec.describe Explore::ProjectsController do let(:controller_action) { :index } let(:params_with_name) { { name: 'some project' } } - context 'when disable_anonymous_search is enabled' do + context 'when disable_anonymous_project_search is enabled' do before do - stub_feature_flags(disable_anonymous_search: true) + stub_feature_flags(disable_anonymous_project_search: true) end it 'does not show a flash message' do @@ -252,9 +252,9 @@ RSpec.describe Explore::ProjectsController do let(:controller_action) { :index } let(:params_with_name) { { name: 'some project' } } - context 'when disable_anonymous_search is enabled' do + context 'when disable_anonymous_project_search is enabled' do before do - stub_feature_flags(disable_anonymous_search: true) + stub_feature_flags(disable_anonymous_project_search: true) end it 'shows a flash message' do @@ -280,9 +280,9 @@ RSpec.describe Explore::ProjectsController do end end - context 'when disable_anonymous_search is disabled' do + context 'when disable_anonymous_project_search is disabled' do before do - stub_feature_flags(disable_anonymous_search: false) + stub_feature_flags(disable_anonymous_project_search: false) end it 'does not show a flash message' do diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index 980264bef5c..977879b453c 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -309,6 +309,8 @@ RSpec.describe Projects::IssuesController do it 'fills in an issue for a discussion' do note = create(:note_on_merge_request, project: project) + expect(Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter).to receive(:track_resolve_thread_in_issue_action).with(user: user) + get :new, params: { namespace_id: project.namespace.path, project_id: project, merge_request_to_resolve_discussions_of: note.noteable.iid, discussion_to_resolve: note.discussion_id } expect(assigns(:issue).title).not_to be_empty diff --git a/spec/finders/projects_finder_spec.rb b/spec/finders/projects_finder_spec.rb index de244856e12..d26180bbf94 100644 --- a/spec/finders/projects_finder_spec.rb +++ b/spec/finders/projects_finder_spec.rb @@ -195,9 +195,9 @@ RSpec.describe ProjectsFinder do let(:current_user) { nil } let(:params) { { search: 'C' } } - context 'with disable_anonymous_search feature flag enabled' do + context 'with disable_anonymous_project_search feature flag enabled' do before do - stub_feature_flags(disable_anonymous_search: true) + stub_feature_flags(disable_anonymous_project_search: true) end it 'does not perform search' do @@ -205,9 +205,9 @@ RSpec.describe ProjectsFinder do end end - context 'with disable_anonymous_search feature flag disabled' do + context 'with disable_anonymous_project_search feature flag disabled' do before do - stub_feature_flags(disable_anonymous_search: false) + stub_feature_flags(disable_anonymous_project_search: false) end it 'finds one public project' do diff --git a/spec/frontend/projects/storage_counter/mock_data.js b/spec/frontend/projects/storage_counter/mock_data.js index 8561a2714c6..b9fa68b3ec7 100644 --- a/spec/frontend/projects/storage_counter/mock_data.js +++ b/spec/frontend/projects/storage_counter/mock_data.js @@ -48,7 +48,7 @@ export const projectData = { 'There is a known issue with Artifact storage where the total could be incorrect for some projects. More details and progress are available in %{warningLinkStart}the epic%{warningLinkEnd}.', helpPath: '/build-artifacts', }, - value: '390.6 KiB', + value: 400000, }, { storageType: { @@ -57,7 +57,7 @@ export const projectData = { description: 'Audio samples, videos, datasets, and graphics.', helpPath: '/lsf-objects', }, - value: '4.6 MiB', + value: 4800000, }, { storageType: { @@ -66,7 +66,7 @@ export const projectData = { description: 'Code packages and container images.', helpPath: '/packages', }, - value: '3.6 MiB', + value: 3800000, }, { storageType: { @@ -75,7 +75,7 @@ export const projectData = { description: 'Git repository, managed by the Gitaly service.', helpPath: '/repository', }, - value: '3.7 MiB', + value: 3900000, }, { storageType: { @@ -84,7 +84,7 @@ export const projectData = { description: 'Shared bits of code and text.', helpPath: '/snippets', }, - value: '1.1 MiB', + value: 1200000, }, { storageType: { @@ -93,7 +93,7 @@ export const projectData = { description: 'File attachments and smaller design graphics.', helpPath: '/uploads', }, - value: '878.9 KiB', + value: 900000, }, { storageType: { @@ -102,7 +102,7 @@ export const projectData = { description: 'Wiki content.', helpPath: '/wiki', }, - value: '293.0 KiB', + value: 300000, }, ], }, diff --git a/spec/lib/gitlab/database/schema_migrations/context_spec.rb b/spec/lib/gitlab/database/schema_migrations/context_spec.rb index 9ff24a7906e..a79e6706149 100644 --- a/spec/lib/gitlab/database/schema_migrations/context_spec.rb +++ b/spec/lib/gitlab/database/schema_migrations/context_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Gitlab::Database::SchemaMigrations::Context do describe '#schema_directory' do it 'returns db/schema_migrations' do - expect(context.schema_directory).to eq(File.join(Rails.root, 'db/schema_migrations')) + expect(context.schema_directory).to eq(File.join(Rails.root, described_class.default_schema_migrations_path)) end context 'CI database' do @@ -19,7 +19,7 @@ RSpec.describe Gitlab::Database::SchemaMigrations::Context do it 'returns a directory path that is database specific' do skip_if_multiple_databases_not_setup - expect(context.schema_directory).to eq(File.join(Rails.root, 'db/schema_migrations')) + expect(context.schema_directory).to eq(File.join(Rails.root, described_class.default_schema_migrations_path)) end end diff --git a/spec/lib/gitlab/import_export/attributes_permitter_spec.rb b/spec/lib/gitlab/import_export/attributes_permitter_spec.rb index 0c1b1cd74bf..36a831a785c 100644 --- a/spec/lib/gitlab/import_export/attributes_permitter_spec.rb +++ b/spec/lib/gitlab/import_export/attributes_permitter_spec.rb @@ -74,4 +74,73 @@ RSpec.describe Gitlab::ImportExport::AttributesPermitter do expect(subject.permitted_attributes_for(:labels)).to contain_exactly(:title, :description, :type, :priorities) end end + + describe '#permitted_attributes_defined?' do + using RSpec::Parameterized::TableSyntax + + let(:attributes_permitter) { described_class.new } + + where(:relation_name, :permitted_attributes_defined) do + :user | false + :author | false + :ci_cd_settings | false + :issuable_sla | false + :push_rule | false + :metrics_setting | true + :project_badges | true + :pipeline_schedules | true + :error_tracking_setting | true + :auto_devops | true + end + + with_them do + it { expect(attributes_permitter.permitted_attributes_defined?(relation_name)).to eq(permitted_attributes_defined) } + end + end + + describe 'included_attributes for Project' do + let(:prohibited_attributes) { %i[remote_url my_attributes my_ids token my_id test] } + + subject { described_class.new } + + Gitlab::ImportExport::Config.new.to_h[:included_attributes].each do |relation_sym, permitted_attributes| + context "for #{relation_sym}" do + let(:import_export_config) { Gitlab::ImportExport::Config.new.to_h } + let(:project_relation_factory) { Gitlab::ImportExport::Project::RelationFactory } + + let(:relation_hash) { (permitted_attributes + prohibited_attributes).map(&:to_s).zip([]).to_h } + let(:relation_name) { project_relation_factory.overrides[relation_sym]&.to_sym || relation_sym } + let(:relation_class) { project_relation_factory.relation_class(relation_name) } + let(:excluded_keys) { import_export_config.dig(:excluded_keys, relation_sym) || [] } + + let(:cleaned_hash) do + Gitlab::ImportExport::AttributeCleaner.new( + relation_hash: relation_hash, + relation_class: relation_class, + excluded_keys: excluded_keys + ).clean + end + + let(:permitted_hash) { subject.permit(relation_sym, relation_hash) } + + if described_class.new.permitted_attributes_defined?(relation_sym) + it 'contains only attributes that are defined as permitted in the import/export config' do + expect(permitted_hash.keys).to contain_exactly(*permitted_attributes.map(&:to_s)) + end + + it 'does not contain attributes that would be cleaned with AttributeCleaner' do + expect(cleaned_hash.keys).to include(*permitted_hash.keys) + end + + it 'does not contain prohibited attributes that are not related to given relation' do + expect(permitted_hash.keys).not_to include(*prohibited_attributes.map(&:to_s)) + end + else + it 'is disabled' do + expect(subject).not_to be_permitted_attributes_defined(relation_sym) + end + end + end + end + end end diff --git a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb index ec34479ff7e..cd3388701fe 100644 --- a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb +++ b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb @@ -408,4 +408,12 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl let(:action) { described_class::MR_RESOLVE_CONFLICT_ACTION } end end + + describe '.track_resolve_thread_in_issue_action' do + subject { described_class.track_resolve_thread_in_issue_action(user: user) } + + it_behaves_like 'a tracked merge request unique event' do + let(:action) { described_class::MR_RESOLVE_THREAD_IN_ISSUE_ACTION } + end + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a6d767acf3c..aa791d1d2e7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -306,8 +306,9 @@ RSpec.configure do |config| # For more information check https://gitlab.com/gitlab-com/gl-infra/production/-/issues/4321 stub_feature_flags(block_issue_repositioning: false) - # This is an ops feature flag that's disabled by default + # These are ops feature flags that are disabled by default stub_feature_flags(disable_anonymous_search: false) + stub_feature_flags(disable_anonymous_project_search: false) # Disable the refactored top nav search until there is functionality # Can be removed once all existing functionality has been replicated |