Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2021-07-26 18:09:51 +00:00
parent 81f9ca3c64
commit f57f1c6cd8
38 changed files with 135 additions and 183 deletions

View File

@ -39,47 +39,6 @@ Graphql/OldTypes:
- 'ee/app/graphql/ee/types/merge_request_type.rb' - 'ee/app/graphql/ee/types/merge_request_type.rb'
- 'ee/app/graphql/ee/types/namespace_type.rb' - 'ee/app/graphql/ee/types/namespace_type.rb'
- 'ee/app/graphql/ee/types/project_type.rb' - 'ee/app/graphql/ee/types/project_type.rb'
- 'ee/app/graphql/resolvers/alert_management/payload_alert_field_resolver.rb'
- 'ee/app/graphql/resolvers/clusters/agents_resolver.rb'
- 'ee/app/graphql/resolvers/concerns/common_requirement_arguments.rb'
- 'ee/app/graphql/resolvers/epic_ancestors_resolver.rb'
- 'ee/app/graphql/resolvers/epics_resolver.rb'
- 'ee/app/graphql/resolvers/geo/geo_node_resolver.rb'
- 'ee/app/graphql/resolvers/instance_security_dashboard/projects_resolver.rb'
- 'ee/app/graphql/resolvers/iterations/cadences_resolver.rb'
- 'ee/app/graphql/resolvers/iterations_resolver.rb'
- 'ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb'
- 'ee/app/graphql/resolvers/vulnerabilities_grade_resolver.rb'
- 'ee/app/graphql/resolvers/vulnerabilities_resolver.rb'
- 'ee/app/graphql/resolvers/vulnerability_severities_count_resolver.rb'
- 'ee/app/graphql/types/admin/cloud_licenses/current_license_type.rb'
- 'ee/app/graphql/types/admin/cloud_licenses/license_type.rb'
- 'ee/app/graphql/types/alert_management/payload_alert_field_input_type.rb'
- 'ee/app/graphql/types/alert_management/payload_alert_field_type.rb'
- 'ee/app/graphql/types/alert_management/payload_alert_mapping_field_type.rb'
- 'ee/app/graphql/types/analytics/devops_adoption/enabled_namespace_type.rb'
- 'ee/app/graphql/types/analytics/devops_adoption/snapshot_type.rb'
- 'ee/app/graphql/types/app_sec/fuzzing/api/scan_profile_type.rb'
- 'ee/app/graphql/types/boards/board_epic_input_type.rb'
- 'ee/app/graphql/types/boards/epic_board_type.rb'
- 'ee/app/graphql/types/boards/epic_list_type.rb'
- 'ee/app/graphql/types/boards/epic_user_preferences_type.rb'
- 'ee/app/graphql/types/burnup_chart_daily_totals_type.rb'
- 'ee/app/graphql/types/ci/code_coverage_activity_type.rb'
- 'ee/app/graphql/types/ci/code_coverage_summary_type.rb'
- 'ee/app/graphql/types/ci/code_quality_degradation_type.rb'
- 'ee/app/graphql/types/clusters/agent_token_type.rb'
- 'ee/app/graphql/types/clusters/agent_type.rb'
- 'ee/app/graphql/types/compliance_management/compliance_framework_input_type.rb'
- 'ee/app/graphql/types/compliance_management/compliance_framework_type.rb'
- 'ee/app/graphql/types/dast/profile_branch_type.rb'
- 'ee/app/graphql/types/dast/profile_type.rb'
- 'ee/app/graphql/types/dast/site_profile_auth_input_type.rb'
- 'ee/app/graphql/types/dast/site_profile_auth_type.rb'
- 'ee/app/graphql/types/dast_scanner_profile_type.rb'
- 'ee/app/graphql/types/dast_site_profile_type.rb'
- 'ee/app/graphql/types/dast_site_validation_type.rb'
- 'ee/app/graphql/types/dora_metric_type.rb'
# WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040 # WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040
Rails/SaveBang: Rails/SaveBang:

View File

@ -1,8 +1,9 @@
<script> <script>
/* eslint-disable vue/no-v-html */ /* eslint-disable vue/no-v-html */
import { GlFormGroup, GlButton, GlModal, GlToast, GlToggle } from '@gitlab/ui'; import { GlFormGroup, GlButton, GlModal, GlToast, GlToggle, GlLink } from '@gitlab/ui';
import Vue from 'vue'; import Vue from 'vue';
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import { helpPagePath } from '~/helpers/help_page_helper';
import { BV_SHOW_MODAL, BV_HIDE_MODAL } from '~/lib/utils/constants'; import { BV_SHOW_MODAL, BV_HIDE_MODAL } from '~/lib/utils/constants';
import { visitUrl, getBaseURL } from '~/lib/utils/url_utility'; import { visitUrl, getBaseURL } from '~/lib/utils/url_utility';
import { __, s__, sprintf } from '~/locale'; import { __, s__, sprintf } from '~/locale';
@ -15,9 +16,10 @@ export default {
GlButton, GlButton,
GlModal, GlModal,
GlToggle, GlToggle,
GlLink,
}, },
formLabels: { formLabels: {
createProject: __('Create Project'), createProject: __('Self monitoring'),
}, },
data() { data() {
return { return {
@ -48,7 +50,7 @@ export default {
if (this.projectCreated) { if (this.projectCreated) {
return sprintf( return sprintf(
s__( s__(
'SelfMonitoring|Enabling this feature creates a %{projectLinkStart}project%{projectLinkEnd} that can be used to monitor the health of your instance.', 'SelfMonitoring|Self monitoring is active. Use the %{projectLinkStart}self monitoring project%{projectLinkEnd} to monitor the health of your instance.',
), ),
{ {
projectLinkStart: `<a href="${this.selfMonitorProjectFullUrl}">`, projectLinkStart: `<a href="${this.selfMonitorProjectFullUrl}">`,
@ -59,9 +61,12 @@ export default {
} }
return s__( return s__(
'SelfMonitoring|Enabling this feature creates a project that can be used to monitor the health of your instance.', 'SelfMonitoring|Activate self monitoring to create a project to use to monitor the health of your instance.',
); );
}, },
helpDocsPath() {
return helpPagePath('administration/monitoring/gitlab_self_monitoring_project/index');
},
}, },
watch: { watch: {
selfMonitorEnabled() { selfMonitorEnabled() {
@ -126,7 +131,8 @@ export default {
</h4> </h4>
<gl-button class="js-settings-toggle">{{ __('Expand') }}</gl-button> <gl-button class="js-settings-toggle">{{ __('Expand') }}</gl-button>
<p class="js-section-sub-header"> <p class="js-section-sub-header">
{{ s__('SelfMonitoring|Enable or disable instance self monitoring') }} {{ s__('SelfMonitoring|Activate or deactivate instance self monitoring.') }}
<gl-link :href="helpDocsPath">{{ __('Learn more.') }}</gl-link>
</p> </p>
</div> </div>
<div class="settings-content"> <div class="settings-content">
@ -142,9 +148,9 @@ export default {
</form> </form>
</div> </div>
<gl-modal <gl-modal
:title="s__('SelfMonitoring|Disable self monitoring?')" :title="s__('SelfMonitoring|Deactivate self monitoring?')"
:modal-id="modalId" :modal-id="modalId"
:ok-title="__('Delete project')" :ok-title="__('Delete self monitoring project')"
:cancel-title="__('Cancel')" :cancel-title="__('Cancel')"
ok-variant="danger" ok-variant="danger"
category="primary" category="primary"
@ -154,7 +160,7 @@ export default {
<div> <div>
{{ {{
s__( s__(
'SelfMonitoring|Disabling this feature will delete the self monitoring project. Are you sure you want to delete the project?', 'SelfMonitoring|Deactivating self monitoring deletes the self monitoring project. Are you sure you want to deactivate self monitoring and delete the project?',
) )
}} }}
</div> </div>

View File

@ -56,7 +56,7 @@ export const requestCreateProjectSuccess = ({ commit, dispatch }, selfMonitorDat
commit(types.SET_LOADING, false); commit(types.SET_LOADING, false);
commit(types.SET_PROJECT_URL, selfMonitorData.project_full_path); commit(types.SET_PROJECT_URL, selfMonitorData.project_full_path);
commit(types.SET_ALERT_CONTENT, { commit(types.SET_ALERT_CONTENT, {
message: s__('SelfMonitoring|Self monitoring project has been successfully created.'), message: s__('SelfMonitoring|Self monitoring project successfully created.'),
actionText: __('View project'), actionText: __('View project'),
actionName: 'viewSelfMonitorProject', actionName: 'viewSelfMonitorProject',
}); });
@ -108,7 +108,7 @@ export const requestDeleteProjectSuccess = ({ commit }) => {
commit(types.SET_PROJECT_URL, ''); commit(types.SET_PROJECT_URL, '');
commit(types.SET_PROJECT_CREATED, false); commit(types.SET_PROJECT_CREATED, false);
commit(types.SET_ALERT_CONTENT, { commit(types.SET_ALERT_CONTENT, {
message: s__('SelfMonitoring|Self monitoring project has been successfully deleted.'), message: s__('SelfMonitoring|Self monitoring project successfully deleted.'),
actionText: __('Undo'), actionText: __('Undo'),
actionName: 'createProject', actionName: 'createProject',
}); });

View File

@ -100,7 +100,7 @@ class GroupsFinder < UnionFinder
def by_search(groups) def by_search(groups)
return groups unless params[:search].present? return groups unless params[:search].present?
groups.search(params[:search], include_parents: !params[:parent].present?) groups.search(params[:search], include_parents: params[:parent].blank?)
end end
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord

View File

@ -56,7 +56,7 @@ module Types
field :work_in_progress, GraphQL::Types::Boolean, method: :work_in_progress?, null: false, field :work_in_progress, GraphQL::Types::Boolean, method: :work_in_progress?, null: false,
deprecated: { reason: 'Use `draft`', milestone: '13.12' }, deprecated: { reason: 'Use `draft`', milestone: '13.12' },
description: 'Indicates if the merge request is a draft.' description: 'Indicates if the merge request is a draft.'
field :draft, GraphQL::Types::Boolean, method: :draft?, null: false, field :draft, GraphQL::Types::Boolean, null: false,
description: 'Indicates if the merge request is a draft.' description: 'Indicates if the merge request is a draft.'
field :merge_when_pipeline_succeeds, GraphQL::Types::Boolean, null: true, field :merge_when_pipeline_succeeds, GraphQL::Types::Boolean, null: true,
description: 'Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS).' description: 'Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS).'

View File

@ -4,10 +4,10 @@ class FileHookWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: false sidekiq_options retry: false
feature_category :integrations feature_category :integrations
loggable_arguments 0 loggable_arguments 0
urgency :low
def perform(file_name, data) def perform(file_name, data)
success, message = Gitlab::FileHook.execute(file_name, data) success, message = Gitlab::FileHook.execute(file_name, data)

View File

@ -7,10 +7,9 @@ class IrkerWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
urgency :low
def perform(project_id, channels, colors, push_data, settings) def perform(project_id, channels, colors, push_data, settings)
# Establish connection to irker server # Establish connection to irker server

View File

@ -5,9 +5,10 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!
def perform(installation_id, base_path, event_path) def perform(installation_id, base_path, event_path)

View File

@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
loggable_arguments 1, 2 loggable_arguments 1, 2
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!

View File

@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!

View File

@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!

View File

@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!

View File

@ -5,10 +5,10 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!

View File

@ -5,11 +5,11 @@ module JiraConnect
include ApplicationWorker include ApplicationWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!

View File

@ -4,11 +4,11 @@ class ProjectServiceWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
sidekiq_options dead: false sidekiq_options dead: false
feature_category :integrations feature_category :integrations
urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!
def perform(hook_id, data) def perform(hook_id, data)

View File

@ -4,11 +4,11 @@ class PropagateIntegrationGroupWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
idempotent! idempotent!
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord

View File

@ -4,11 +4,11 @@ class PropagateIntegrationInheritDescendantWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
idempotent! idempotent!
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord

View File

@ -4,11 +4,11 @@ class PropagateIntegrationInheritWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
idempotent! idempotent!
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord

View File

@ -4,11 +4,11 @@ class PropagateIntegrationProjectWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low
idempotent! idempotent!
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord

View File

@ -4,12 +4,12 @@ class PropagateIntegrationWorker
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
idempotent!
loggable_arguments 1 loggable_arguments 1
urgency :low
idempotent!
def perform(integration_id) def perform(integration_id)
Admin::PropagateIntegrationService.propagate(Integration.find(integration_id)) Admin::PropagateIntegrationService.propagate(Integration.find(integration_id))

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
# Worker for updating any project specific caches. # No longer in use https://gitlab.com/groups/gitlab-org/-/epics/5672
# To be removed https://gitlab.com/gitlab-org/gitlab/-/issues/335178
class PropagateServiceTemplateWorker # rubocop:disable Scalability/IdempotentWorker class PropagateServiceTemplateWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker include ApplicationWorker

View File

@ -6,11 +6,12 @@ class WebHookWorker
include ApplicationWorker include ApplicationWorker
feature_category :integrations feature_category :integrations
worker_has_external_dependencies!
loggable_arguments 2 loggable_arguments 2
data_consistency :delayed data_consistency :delayed
sidekiq_options retry: 4, dead: false sidekiq_options retry: 4, dead: false
urgency :low
worker_has_external_dependencies!
def perform(hook_id, data, hook_name) def perform(hook_id, data, hook_name)
hook = WebHook.find(hook_id) hook = WebHook.find(hook_id)

View File

@ -5,12 +5,11 @@ module WebHooks
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
def perform(user_id, web_hook_id) def perform(user_id, web_hook_id)

View File

@ -5,11 +5,11 @@ module WebHooks
include ApplicationWorker include ApplicationWorker
data_consistency :always data_consistency :always
idempotent!
feature_category :integrations feature_category :integrations
urgency :low urgency :low
idempotent!
# This worker accepts an extra argument. This enables us to # This worker accepts an extra argument. This enables us to
# treat this worker as idempotent. Currently this is set to # treat this worker as idempotent. Currently this is set to
# the Job ID (jid) of the parent worker. # the Job ID (jid) of the parent worker.

View File

@ -67,7 +67,6 @@ Rails.application.routes.draw do
Gitlab.ee do Gitlab.ee do
resources :groups, only: [:new, :create] resources :groups, only: [:new, :create]
resources :group_invites, only: [:new, :create]
resources :projects, only: [:new, :create] resources :projects, only: [:new, :create]
end end
end end

View File

@ -4,43 +4,44 @@ group: Monitor
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 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
--- ---
# GitLab self monitoring project **(FREE SELF)** # Self monitoring project **(FREE SELF)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32351) in GitLab 12.7, behind a disabled feature flag (`self_monitoring_project`). > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32351) in GitLab 12.7, behind a disabled feature flag (`self_monitoring_project`).
> - The feature flag was removed and the Self Monitoring Project was [made generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/198511) in GitLab 12.8. > - The feature flag was removed and the self monitoring project was [made generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/198511) in GitLab 12.8.
GitLab has been adding the ability for administrators to see insights into the GitLab provides administrators insights into the health of their GitLab instance.
health of their GitLab instance. To surface this experience in a native way
(similar to how you would interact with an application deployed using GitLab),
a base project called "GitLab self monitoring" with
[internal visibility](../../../public_access/public_access.md#internal-projects)
is added under a group called "GitLab Instance Administrators"
specifically created for visualizing and configuring the monitoring of your
GitLab instance.
All administrators at the time of creation of the project and group are To provide a native experience (similar interacting with an application deployed using GitLab), a
added as maintainers of the group and project, and as an administrator, you can project called **Monitoring** is created:
add new members to the group to give them the [Maintainer role](../../../user/permissions.md) for
the project.
This project is used to self monitor your GitLab instance. The metrics dashboard - With [internal visibility](../../../public_access/public_access.md#internal-projects).
of the project shows some basic resource usage charts, such as CPU and memory usage - Under a group called **GitLab Instance**.
of each server in [Omnibus GitLab](https://docs.gitlab.com/omnibus/) installations.
You can also use the project to configure your own The project is created specifically for visualizing and configuring the monitoring of your GitLab
[custom metrics](../../../operations/metrics/index.md#adding-custom-metrics) using instance.
metrics exposed by the [GitLab exporter](../prometheus/gitlab_metrics.md#metrics-available).
## Creating the self monitoring project When the project and group are created, all administrators are added as maintainers. As an
administrator, you can add new members to the group to give them the
[Maintainer role](../../../user/permissions.md) for the project.
This project can be used to:
- Self monitor your GitLab instance. The metrics dashboard of the project shows some basic resource
usage charts, such as CPU and memory usage of each server in
[Omnibus GitLab](https://docs.gitlab.com/omnibus/) installations.
- Also configure your own [custom metrics](../../../operations/metrics/index.md#adding-custom-metrics)
using metrics exposed by the [GitLab exporter](../prometheus/gitlab_metrics.md#metrics-available).
## Create the self monitoring project
1. On the top bar, select **Menu >** **{admin}** **Admin**. 1. On the top bar, select **Menu >** **{admin}** **Admin**.
1. On the left sidebar, select **Settings > Metrics and profiling** and expand **Self monitoring**. 1. On the left sidebar, select **Settings > Metrics and profiling** and expand **Self monitoring**.
1. Toggle the **Create Project** button on. 1. Toggle **Self monitoring** on.
1. After your GitLab instance creates the project, GitLab displays a link to the 1. After your GitLab instance creates the project, GitLab displays a link to the
project in the text above the **Create Project** toggle. You can also find it project in the text above the **Self monitoring** toggle. You can also find it
from the top bar by selecting **Menu > Project**, then selecting **Your projects**. from the top bar by selecting **Menu > Project**, then selecting **Your projects**.
## Deleting the self monitoring project ## Delete the self monitoring project
WARNING: WARNING:
Deleting the self monitoring project removes any changes made to the project. If Deleting the self monitoring project removes any changes made to the project. If
@ -48,8 +49,8 @@ you create the project again, it's created in its default state.
1. On the top bar, select **Menu >** **{admin}** **Admin**. 1. On the top bar, select **Menu >** **{admin}** **Admin**.
1. On the left sidebar, go to **Settings > Metrics and profiling** and expand **Self monitoring**. 1. On the left sidebar, go to **Settings > Metrics and profiling** and expand **Self monitoring**.
1. Toggle the **Create Project** button off. 1. Toggle **Self monitoring** off.
1. In the confirmation dialog that opens, click **Delete project**. 1. In the confirmation dialog that opens, click **Delete self monitoring project**.
It can take a few seconds for it to be deleted. It can take a few seconds for it to be deleted.
1. After the project is deleted, GitLab displays a message confirming your action. 1. After the project is deleted, GitLab displays a message confirming your action.
@ -66,27 +67,24 @@ The dashboard uses metrics available in
You can also You can also
[create your own dashboards](../../../operations/metrics/dashboards/index.md). [create your own dashboards](../../../operations/metrics/dashboards/index.md).
## Connection to Prometheus ## Connect to Prometheus
The project is automatically configured to connect to the The project is automatically configured to connect to the
[internal Prometheus](../prometheus/index.md) instance if the Prometheus [internal Prometheus](../prometheus/index.md) instance if the Prometheus instance is present.
instance is present (should be the case if GitLab was installed via Omnibus This should be the case if GitLab was installed using Omnibus GitLab and you haven't disabled it.
and you haven't disabled it).
If that's not the case or if you have an external Prometheus instance or a customized setup, If that's not the case, or if you have an external Prometheus instance or a customized setup,
you should you [configure it manually](../../../user/project/integrations/prometheus.md#manual-configuration-of-prometheus).
[configure it manually](../../../user/project/integrations/prometheus.md#manual-configuration-of-prometheus).
## Taking action on Prometheus alerts **(ULTIMATE)** ## Take action on Prometheus alerts **(ULTIMATE)**
You can [add a webhook](../../../operations/metrics/alerts.md#external-prometheus-instances) You can [add a webhook](../../../operations/metrics/alerts.md#external-prometheus-instances)
to the Prometheus configuration for GitLab to receive notifications of any to the Prometheus configuration for GitLab to receive notifications of any alerts.
alerts.
Once the webhook is setup, you can Once the webhook is setup, you can
[take action on incoming alerts](../../../operations/metrics/alerts.md#trigger-actions-from-alerts). [take action on incoming alerts](../../../operations/metrics/alerts.md#trigger-actions-from-alerts).
## Adding custom metrics to the self monitoring project ## Add custom metrics to the self monitoring project
You can add custom metrics in the self monitoring project by: You can add custom metrics in the self monitoring project by:
@ -95,11 +93,10 @@ You can add custom metrics in the self monitoring project by:
## Troubleshooting ## Troubleshooting
### Getting error message in logs: `Could not create instance administrators group. Errors: ["You don't have permission to create groups."]` ### Error message in logs: `Could not create instance administrators group. Errors: ["You don't have permission to create groups."]`
There is [a bug](https://gitlab.com/gitlab-org/gitlab/-/issues/208676) which causes A [bug](https://gitlab.com/gitlab-org/gitlab/-/issues/208676) causes project creation to fail with
project creation to fail with the following error (which appears in the log file) the following error in the log file when the first administrator user is an
when the first administrator user is an
[external user](../../../user/permissions.md#external-users): [external user](../../../user/permissions.md#external-users):
```plaintext ```plaintext

View File

@ -114,16 +114,15 @@ ruby:
### Go example ### Go example
Use the following job in `.gitlab-ci.yml`, and ensure you use `-set-exit-code`, Use the following job in `.gitlab-ci.yml`:
otherwise the pipeline is marked successful, even if the tests fail:
```yaml ```yaml
## Use https://github.com/jstemmer/go-junit-report to generate a JUnit report format XML file with go ## Use https://github.com/gotestyourself/gotestsum to generate a JUnit report format XML file with go
golang: golang:
stage: test stage: test
script: script:
- go get -u github.com/jstemmer/go-junit-report - go get gotest.tools/gotestsum
- go test -v 2>&1 | go-junit-report -set-exit-code > report.xml - gotestsum --junitfile report.xml --format testname
artifacts: artifacts:
when: always when: always
reports: reports:

View File

@ -85,7 +85,7 @@ To access the default page for Admin Area settings:
| [Metrics - Prometheus](../../../administration/monitoring/prometheus/gitlab_metrics.md) | Enable and configure Prometheus metrics. | | [Metrics - Prometheus](../../../administration/monitoring/prometheus/gitlab_metrics.md) | Enable and configure Prometheus metrics. |
| [Metrics - Grafana](../../../administration/monitoring/performance/grafana_configuration.md#integration-with-gitlab-ui) | Enable and configure Grafana. | | [Metrics - Grafana](../../../administration/monitoring/performance/grafana_configuration.md#integration-with-gitlab-ui) | Enable and configure Grafana. |
| [Profiling - Performance bar](../../../administration/monitoring/performance/performance_bar.md#enable-the-performance-bar-via-the-admin-area) | Enable access to the Performance Bar for a given group. | | [Profiling - Performance bar](../../../administration/monitoring/performance/performance_bar.md#enable-the-performance-bar-via-the-admin-area) | Enable access to the Performance Bar for a given group. |
| [Self monitoring](../../../administration/monitoring/gitlab_self_monitoring_project/index.md#creating-the-self-monitoring-project) | Enable or disable instance self monitoring. | | [Self monitoring](../../../administration/monitoring/gitlab_self_monitoring_project/index.md#create-the-self-monitoring-project) | Enable or disable instance self monitoring. |
| [Usage statistics](usage_statistics.md) | Enable or disable version check and Service Ping. | | [Usage statistics](usage_statistics.md) | Enable or disable version check and Service Ping. |
| [Pseudonymizer data collection](../../../administration/pseudonymizer.md) **(ULTIMATE)** | Enable or disable the Pseudonymizer data collection. | | [Pseudonymizer data collection](../../../administration/pseudonymizer.md) **(ULTIMATE)** | Enable or disable the Pseudonymizer data collection. |

View File

@ -82,6 +82,7 @@ The following table lists project permissions available for each role:
| Manage issue tracker | | ✓ | ✓ | ✓ | ✓ | | Manage issue tracker | | ✓ | ✓ | ✓ | ✓ |
| Manage labels | | ✓ | ✓ | ✓ | ✓ | | Manage labels | | ✓ | ✓ | ✓ | ✓ |
| Manage linked issues | | ✓ | ✓ | ✓ | ✓ | | Manage linked issues | | ✓ | ✓ | ✓ | ✓ |
| Move issues (*15*) | | ✓ | ✓ | ✓ | ✓ |
| Move [test case](../ci/test_cases/index.md) | | ✓ | ✓ | ✓ | ✓ | | Move [test case](../ci/test_cases/index.md) | | ✓ | ✓ | ✓ | ✓ |
| Pull [packages](packages/index.md) | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ | | Pull [packages](packages/index.md) | ✓ (*1*) | ✓ | ✓ | ✓ | ✓ |
| Reopen [test case](../ci/test_cases/index.md) | | ✓ | ✓ | ✓ | ✓ | | Reopen [test case](../ci/test_cases/index.md) | | ✓ | ✓ | ✓ | ✓ |
@ -211,6 +212,8 @@ The following table lists project permissions available for each role:
1. If the [tag is protected](#release-permissions-with-protected-tags), this depends on the access Developers and Maintainers are given. 1. If the [tag is protected](#release-permissions-with-protected-tags), this depends on the access Developers and Maintainers are given.
1. A Maintainer can't change project features visibility level if 1. A Maintainer can't change project features visibility level if
[project visibility](../public_access/public_access.md) is set to private. [project visibility](../public_access/public_access.md) is set to private.
1. Attached design files are moved together with the issue even if the user doesn't have the
Developer role.
## Project features permissions ## Project features permissions

View File

@ -9204,9 +9204,6 @@ msgstr ""
msgid "Create New Domain" msgid "Create New Domain"
msgstr "" msgstr ""
msgid "Create Project"
msgstr ""
msgid "Create a GitLab account first, and then connect it to your %{label} account." msgid "Create a GitLab account first, and then connect it to your %{label} account."
msgstr "" msgstr ""
@ -10557,6 +10554,9 @@ msgstr ""
msgid "Delete project. Are you ABSOLUTELY SURE?" msgid "Delete project. Are you ABSOLUTELY SURE?"
msgstr "" msgstr ""
msgid "Delete self monitoring project"
msgstr ""
msgid "Delete serverless domain?" msgid "Delete serverless domain?"
msgstr "" msgstr ""
@ -17986,9 +17986,6 @@ msgstr ""
msgid "InviteMember|Add members to this project and start collaborating with your team." msgid "InviteMember|Add members to this project and start collaborating with your team."
msgstr "" msgstr ""
msgid "InviteMember|Don't worry, you can always invite teammates later"
msgstr ""
msgid "InviteMember|Invite Member" msgid "InviteMember|Invite Member"
msgstr "" msgstr ""
@ -17998,33 +17995,15 @@ msgstr ""
msgid "InviteMember|Invite another member" msgid "InviteMember|Invite another member"
msgstr "" msgstr ""
msgid "InviteMember|Invite another teammate"
msgstr ""
msgid "InviteMember|Invite members" msgid "InviteMember|Invite members"
msgstr "" msgstr ""
msgid "InviteMember|Invite teammates to your GitLab group"
msgstr ""
msgid "InviteMember|Invite users to your group %{group_name} so you can collaborate on your projects"
msgstr ""
msgid "InviteMember|Invite your team" msgid "InviteMember|Invite your team"
msgstr "" msgstr ""
msgid "InviteMember|Invite your teammates"
msgstr ""
msgid "InviteMember|Invited users will be added with developer level permissions. %{linkStart}View the documentation%{linkEnd} to see how to change this later." msgid "InviteMember|Invited users will be added with developer level permissions. %{linkStart}View the documentation%{linkEnd} to see how to change this later."
msgstr "" msgstr ""
msgid "InviteMember|Send invitations"
msgstr ""
msgid "InviteMember|Skip this for now"
msgstr ""
msgid "InviteReminderEmail|%{inviter} is still waiting for you to join GitLab" msgid "InviteReminderEmail|%{inviter} is still waiting for you to join GitLab"
msgstr "" msgstr ""
@ -29546,6 +29525,9 @@ msgstr ""
msgid "Selective synchronization" msgid "Selective synchronization"
msgstr "" msgstr ""
msgid "Self monitoring"
msgstr ""
msgid "Self monitoring project does not exist" msgid "Self monitoring project does not exist"
msgstr "" msgstr ""
@ -29558,28 +29540,28 @@ msgstr ""
msgid "Self-monitoring project was not deleted. Please check logs for any error messages" msgid "Self-monitoring project was not deleted. Please check logs for any error messages"
msgstr "" msgstr ""
msgid "SelfMonitoring|Disable self monitoring?" msgid "SelfMonitoring|Activate or deactivate instance self monitoring."
msgstr "" msgstr ""
msgid "SelfMonitoring|Disabling this feature will delete the self monitoring project. Are you sure you want to delete the project?" msgid "SelfMonitoring|Activate self monitoring to create a project to use to monitor the health of your instance."
msgstr "" msgstr ""
msgid "SelfMonitoring|Enable or disable instance self monitoring" msgid "SelfMonitoring|Deactivate self monitoring?"
msgstr "" msgstr ""
msgid "SelfMonitoring|Enabling this feature creates a %{projectLinkStart}project%{projectLinkEnd} that can be used to monitor the health of your instance." msgid "SelfMonitoring|Deactivating self monitoring deletes the self monitoring project. Are you sure you want to deactivate self monitoring and delete the project?"
msgstr ""
msgid "SelfMonitoring|Enabling this feature creates a project that can be used to monitor the health of your instance."
msgstr "" msgstr ""
msgid "SelfMonitoring|Self monitoring" msgid "SelfMonitoring|Self monitoring"
msgstr "" msgstr ""
msgid "SelfMonitoring|Self monitoring project has been successfully created." msgid "SelfMonitoring|Self monitoring is active. Use the %{projectLinkStart}self monitoring project%{projectLinkEnd} to monitor the health of your instance."
msgstr "" msgstr ""
msgid "SelfMonitoring|Self monitoring project has been successfully deleted." msgid "SelfMonitoring|Self monitoring project successfully created."
msgstr ""
msgid "SelfMonitoring|Self monitoring project successfully deleted."
msgstr "" msgstr ""
msgid "Send" msgid "Send"

View File

@ -5,7 +5,7 @@ source 'https://rubygems.org'
gem 'gitlab-qa' gem 'gitlab-qa'
gem 'activesupport', '~> 6.1.3.2' # This should stay in sync with the root's Gemfile gem 'activesupport', '~> 6.1.3.2' # This should stay in sync with the root's Gemfile
gem 'allure-rspec', '~> 2.14.1' gem 'allure-rspec', '~> 2.14.1'
gem 'capybara', '~> 3.29.0' gem 'capybara', '~> 3.35.0'
gem 'capybara-screenshot', '~> 1.0.23' gem 'capybara-screenshot', '~> 1.0.23'
gem 'rake', '~> 12.3.3' gem 'rake', '~> 12.3.3'
gem 'rspec', '~> 3.7' gem 'rspec', '~> 3.7'

View File

@ -30,13 +30,13 @@ GEM
ast (2.4.1) ast (2.4.1)
binding_ninja (0.2.3) binding_ninja (0.2.3)
byebug (9.1.0) byebug (9.1.0)
capybara (3.29.0) capybara (3.35.3)
addressable addressable
mini_mime (>= 0.1.3) mini_mime (>= 0.1.3)
nokogiri (~> 1.8) nokogiri (~> 1.8)
rack (>= 1.6.0) rack (>= 1.6.0)
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
regexp_parser (~> 1.5) regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2) xpath (~> 3.2)
capybara-screenshot (1.0.23) capybara-screenshot (1.0.23)
capybara (>= 1.0, < 4) capybara (>= 1.0, < 4)
@ -98,7 +98,7 @@ GEM
mime-types (3.3.1) mime-types (3.3.1)
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2021.0704) mime-types-data (3.2021.0704)
mini_mime (1.0.2) mini_mime (1.1.0)
mini_portile2 (2.5.0) mini_portile2 (2.5.0)
minitest (5.14.4) minitest (5.14.4)
multipart-post (2.1.1) multipart-post (2.1.1)
@ -211,7 +211,7 @@ DEPENDENCIES
activesupport (~> 6.1.3.2) activesupport (~> 6.1.3.2)
airborne (~> 0.3.4) airborne (~> 0.3.4)
allure-rspec (~> 2.14.1) allure-rspec (~> 2.14.1)
capybara (~> 3.29.0) capybara (~> 3.35.0)
capybara-screenshot (~> 1.0.23) capybara-screenshot (~> 1.0.23)
chemlab (~> 0.7) chemlab (~> 0.7)
chemlab-library-www-gitlab-com (~> 0.1) chemlab-library-www-gitlab-com (~> 0.1)

View File

@ -12,6 +12,7 @@ RSpec.describe QA::Support::Page::Logging do
QA::Runtime::Logger.logger = logger QA::Runtime::Logger.logger = logger
allow(Capybara).to receive(:current_session).and_return(page) allow(Capybara).to receive(:current_session).and_return(page)
allow(page).to receive(:find).and_return(page)
allow(page).to receive(:current_url).and_return('http://current-url') allow(page).to receive(:current_url).and_return('http://current-url')
allow(page).to receive(:has_css?).with(any_args).and_return(true) allow(page).to receive(:has_css?).with(any_args).and_return(true)
end end

View File

@ -55,8 +55,6 @@ module DeprecationToolkitEnv
# one by one # one by one
def self.allowed_kwarg_warning_paths def self.allowed_kwarg_warning_paths
%w[ %w[
asciidoctor-2.0.12/lib/asciidoctor/extensions.rb
gitlab-labkit-0.20.0/lib/labkit/correlation/grpc/client_interceptor.rb
actionpack-6.1.3.2/lib/action_dispatch/routing/route_set.rb actionpack-6.1.3.2/lib/action_dispatch/routing/route_set.rb
] ]
end end

View File

@ -243,7 +243,9 @@ RSpec.describe GroupsFinder do
end end
it 'does not search in full path if parent is set' do it 'does not search in full path if parent is set' do
expect(described_class.new(user, { search: 'parent', parent: parent_group }).execute).to be_empty matching_subgroup = create(:group, parent: parent_group, path: "#{parent_group.path}-subgroup")
expect(described_class.new(user, { search: 'parent', parent: parent_group }).execute).to contain_exactly(matching_subgroup)
end end
context 'with group descendants' do context 'with group descendants' do

View File

@ -30,8 +30,13 @@ exports[`self monitor component When the self monitor project has not been creat
class="js-section-sub-header" class="js-section-sub-header"
> >
Enable or disable instance self monitoring Activate or deactivate instance self monitoring.
<gl-link-stub
href="/help/administration/monitoring/gitlab_self_monitoring_project/index"
>
Learn more.
</gl-link-stub>
</p> </p>
</div> </div>
@ -42,14 +47,14 @@ exports[`self monitor component When the self monitor project has not been creat
name="self-monitoring-form" name="self-monitoring-form"
> >
<p> <p>
Enabling this feature creates a project that can be used to monitor the health of your instance. Activate self monitoring to create a project to use to monitor the health of your instance.
</p> </p>
<gl-form-group-stub <gl-form-group-stub
labeldescription="" labeldescription=""
> >
<gl-toggle-stub <gl-toggle-stub
label="Create Project" label="Self monitoring"
labelposition="top" labelposition="top"
/> />
</gl-form-group-stub> </gl-form-group-stub>
@ -62,15 +67,15 @@ exports[`self monitor component When the self monitor project has not been creat
dismisslabel="Close" dismisslabel="Close"
modalclass="" modalclass=""
modalid="delete-self-monitor-modal" modalid="delete-self-monitor-modal"
ok-title="Delete project" ok-title="Delete self monitoring project"
ok-variant="danger" ok-variant="danger"
size="md" size="md"
title="Disable self monitoring?" title="Deactivate self monitoring?"
titletag="h4" titletag="h4"
> >
<div> <div>
Disabling this feature will delete the self monitoring project. Are you sure you want to delete the project? Deactivating self monitoring deletes the self monitoring project. Are you sure you want to deactivate self monitoring and delete the project?
</div> </div>
</gl-modal-stub> </gl-modal-stub>

View File

@ -53,7 +53,7 @@ describe('self monitor component', () => {
wrapper = shallowMount(SelfMonitor, { store }); wrapper = shallowMount(SelfMonitor, { store });
expect(wrapper.find('.js-section-sub-header').text()).toContain( expect(wrapper.find('.js-section-sub-header').text()).toContain(
'Enable or disable instance self monitoring', 'Activate or deactivate instance self monitoring.',
); );
}); });
}); });
@ -63,7 +63,7 @@ describe('self monitor component', () => {
wrapper = shallowMount(SelfMonitor, { store }); wrapper = shallowMount(SelfMonitor, { store });
expect(wrapper.vm.selfMonitoringFormText).toContain( expect(wrapper.vm.selfMonitoringFormText).toContain(
'Enabling this feature creates a project that can be used to monitor the health of your instance.', 'Activate self monitoring to create a project to use to monitor the health of your instance.',
); );
}); });

View File

@ -134,7 +134,7 @@ describe('self monitor actions', () => {
payload: { payload: {
actionName: 'viewSelfMonitorProject', actionName: 'viewSelfMonitorProject',
actionText: 'View project', actionText: 'View project',
message: 'Self monitoring project has been successfully created.', message: 'Self monitoring project successfully created.',
}, },
}, },
{ type: types.SET_SHOW_ALERT, payload: true }, { type: types.SET_SHOW_ALERT, payload: true },
@ -245,7 +245,7 @@ describe('self monitor actions', () => {
payload: { payload: {
actionName: 'createProject', actionName: 'createProject',
actionText: 'Undo', actionText: 'Undo',
message: 'Self monitoring project has been successfully deleted.', message: 'Self monitoring project successfully deleted.',
}, },
}, },
{ type: types.SET_SHOW_ALERT, payload: true }, { type: types.SET_SHOW_ALERT, payload: true },