Commit cea7765c authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab master

parents 4eb8816d 4ecc55da
// This file only applies to use of experiments through https://gitlab.com/gitlab-org/gitlab-experiment // This file only applies to use of experiments through https://gitlab.com/gitlab-org/gitlab-experiment
import { get } from 'lodash'; import { get, pick } from 'lodash';
import { DEFAULT_VARIANT, CANDIDATE_VARIANT, TRACKING_CONTEXT_SCHEMA } from './constants'; import { DEFAULT_VARIANT, CANDIDATE_VARIANT, TRACKING_CONTEXT_SCHEMA } from './constants';
function getExperimentsData() {
return get(window, ['gon', 'experiment'], {});
}
function convertExperimentDataToExperimentContext(experimentData) {
return { schema: TRACKING_CONTEXT_SCHEMA, data: experimentData };
}
export function getExperimentData(experimentName) { export function getExperimentData(experimentName) {
return get(window, ['gon', 'experiment', experimentName]); return getExperimentsData()[experimentName];
} }
export function getExperimentContexts(...experimentNames) { export function getExperimentContexts(...experimentNames) {
return experimentNames return Object.values(pick(getExperimentsData(), experimentNames)).map(
.map((name) => { convertExperimentDataToExperimentContext,
const data = getExperimentData(name); );
return data && { schema: TRACKING_CONTEXT_SCHEMA, data }; }
})
.filter((context) => context); export function getAllExperimentContexts() {
return Object.values(getExperimentsData()).map(convertExperimentDataToExperimentContext);
} }
export function isExperimentVariant(experimentName, variantName) { export function isExperimentVariant(experimentName, variantName) {
......
import { getAllExperimentContexts } from '~/experimentation/utils';
import { DEFAULT_SNOWPLOW_OPTIONS } from './constants'; import { DEFAULT_SNOWPLOW_OPTIONS } from './constants';
import getStandardContext from './get_standard_context'; import getStandardContext from './get_standard_context';
import Tracking from './tracking'; import Tracking from './tracking';
...@@ -41,7 +42,8 @@ export function initDefaultTrackers() { ...@@ -41,7 +42,8 @@ export function initDefaultTrackers() {
window.snowplow('enableActivityTracking', 30, 30); window.snowplow('enableActivityTracking', 30, 30);
// must be after enableActivityTracking // must be after enableActivityTracking
const standardContext = getStandardContext(); const standardContext = getStandardContext();
window.snowplow('trackPageView', null, [standardContext]); const experimentContexts = getAllExperimentContexts();
window.snowplow('trackPageView', null, [standardContext, ...experimentContexts]);
if (window.snowplowOptions.formTracking) { if (window.snowplowOptions.formTracking) {
Tracking.enableFormTracking(opts.formTrackingConfig); Tracking.enableFormTracking(opts.formTrackingConfig);
......
...@@ -9,6 +9,7 @@ module Types ...@@ -9,6 +9,7 @@ module Types
DEFAULT_COMPLEXITY = 1 DEFAULT_COMPLEXITY = 1
attr_reader :deprecation, :doc_reference attr_reader :deprecation, :doc_reference
attr_writer :max_page_size # Can be removed with :performance_roadmap feature flag: https://gitlab.com/gitlab-org/gitlab/-/issues/337198
def initialize(**kwargs, &block) def initialize(**kwargs, &block)
@calls_gitaly = !!kwargs.delete(:calls_gitaly) @calls_gitaly = !!kwargs.delete(:calls_gitaly)
......
...@@ -46,6 +46,7 @@ module Integrations ...@@ -46,6 +46,7 @@ module Integrations
has_one :issue_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::IssueTrackerData' has_one :issue_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::IssueTrackerData'
has_one :jira_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::JiraTrackerData' has_one :jira_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::JiraTrackerData'
has_one :open_project_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::OpenProjectTrackerData' has_one :open_project_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :service_id, class_name: 'Integrations::OpenProjectTrackerData'
has_one :zentao_tracker_data, autosave: true, inverse_of: :integration, foreign_key: :integration_id, class_name: 'Integrations::ZentaoTrackerData'
def data_fields def data_fields
raise NotImplementedError raise NotImplementedError
......
# frozen_string_literal: true
module Integrations
class Zentao < Integration
data_field :url, :api_url, :api_token, :zentao_product_xid
validates :url, public_url: true, presence: true, if: :activated?
validates :api_url, public_url: true, allow_blank: true
validates :api_token, presence: true, if: :activated?
validates :zentao_product_xid, presence: true, if: :activated?
def data_fields
zentao_tracker_data || self.build_zentao_tracker_data
end
def title
self.class.name.demodulize
end
def description
s_("ZentaoIntegration|Use Zentao as this project's issue tracker.")
end
def self.to_param
name.demodulize.downcase
end
def test(*_args)
client.ping
end
def self.supported_events
%w()
end
def self.supported_event_actions
%w()
end
def fields
[
{
type: 'text',
name: 'url',
title: s_('ZentaoIntegration|Zentao Web URL'),
placeholder: 'https://www.zentao.net',
help: s_('ZentaoIntegration|Base URL of the Zentao instance.'),
required: true
},
{
type: 'text',
name: 'api_url',
title: s_('ZentaoIntegration|Zentao API URL (optional)'),
help: s_('ZentaoIntegration|If different from Web URL.')
},
{
type: 'password',
name: 'api_token',
title: s_('ZentaoIntegration|Zentao API token'),
non_empty_password_title: s_('ZentaoIntegration|Enter API token'),
required: true
},
{
type: 'text',
name: 'zentao_product_xid',
title: s_('ZentaoIntegration|Zentao Product ID'),
required: true
}
]
end
private
def client
@client ||= ::Gitlab::Zentao::Client.new(self)
end
end
end
# frozen_string_literal: true
module Integrations
class ZentaoTrackerData < ApplicationRecord
belongs_to :integration, inverse_of: :zentao_tracker_data, foreign_key: :integration_id
delegate :activated?, to: :integration
validates :integration, presence: true
scope :encryption_options, -> do
{
key: Settings.attr_encrypted_db_key_base_32,
encode: true,
mode: :per_attribute_iv,
algorithm: 'aes-256-gcm'
}
end
attr_encrypted :url, encryption_options
attr_encrypted :api_url, encryption_options
attr_encrypted :zentao_product_xid, encryption_options
attr_encrypted :api_token, encryption_options
end
end
...@@ -209,6 +209,7 @@ class Project < ApplicationRecord ...@@ -209,6 +209,7 @@ class Project < ApplicationRecord
has_one :unify_circuit_integration, class_name: 'Integrations::UnifyCircuit' has_one :unify_circuit_integration, class_name: 'Integrations::UnifyCircuit'
has_one :webex_teams_integration, class_name: 'Integrations::WebexTeams' has_one :webex_teams_integration, class_name: 'Integrations::WebexTeams'
has_one :youtrack_integration, class_name: 'Integrations::Youtrack' has_one :youtrack_integration, class_name: 'Integrations::Youtrack'
has_one :zentao_integration, class_name: 'Integrations::Zentao'
has_one :root_of_fork_network, has_one :root_of_fork_network,
foreign_key: 'root_project_id', foreign_key: 'root_project_id',
...@@ -1455,7 +1456,7 @@ class Project < ApplicationRecord ...@@ -1455,7 +1456,7 @@ class Project < ApplicationRecord
end end
def disabled_integrations def disabled_integrations
[] [:zentao]
end end
def find_or_initialize_integration(name) def find_or_initialize_integration(name)
......
...@@ -83,8 +83,7 @@ ...@@ -83,8 +83,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: chaos:chaos_db_spin - :name: chaos:chaos_db_spin
:worker_name: Chaos::DbSpinWorker :worker_name: Chaos::DbSpinWorker
:feature_category: :not_owned :feature_category: :not_owned
...@@ -93,8 +92,7 @@ ...@@ -93,8 +92,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: chaos:chaos_kill - :name: chaos:chaos_kill
:worker_name: Chaos::KillWorker :worker_name: Chaos::KillWorker
:feature_category: :not_owned :feature_category: :not_owned
...@@ -103,8 +101,7 @@ ...@@ -103,8 +101,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: chaos:chaos_leak_mem - :name: chaos:chaos_leak_mem
:worker_name: Chaos::LeakMemWorker :worker_name: Chaos::LeakMemWorker
:feature_category: :not_owned :feature_category: :not_owned
...@@ -113,8 +110,7 @@ ...@@ -113,8 +110,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: chaos:chaos_sleep - :name: chaos:chaos_sleep
:worker_name: Chaos::SleepWorker :worker_name: Chaos::SleepWorker
:feature_category: :not_owned :feature_category: :not_owned
...@@ -123,8 +119,7 @@ ...@@ -123,8 +119,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: container_repository:cleanup_container_repository - :name: container_repository:cleanup_container_repository
:worker_name: CleanupContainerRepositoryWorker :worker_name: CleanupContainerRepositoryWorker
:feature_category: :container_registry :feature_category: :container_registry
...@@ -142,8 +137,7 @@ ...@@ -142,8 +137,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: container_repository:delete_container_repository - :name: container_repository:delete_container_repository
:worker_name: DeleteContainerRepositoryWorker :worker_name: DeleteContainerRepositoryWorker
:feature_category: :container_registry :feature_category: :container_registry
...@@ -170,8 +164,7 @@ ...@@ -170,8 +164,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:authorized_project_update_periodic_recalculate - :name: cronjob:authorized_project_update_periodic_recalculate
:worker_name: AuthorizedProjectUpdate::PeriodicRecalculateWorker :worker_name: AuthorizedProjectUpdate::PeriodicRecalculateWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -207,8 +200,7 @@ ...@@ -207,8 +200,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:ci_platform_metrics_update_cron - :name: cronjob:ci_platform_metrics_update_cron
:worker_name: CiPlatformMetricsUpdateCronWorker :worker_name: CiPlatformMetricsUpdateCronWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -226,8 +218,7 @@ ...@@ -226,8 +218,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:container_expiration_policy - :name: cronjob:container_expiration_policy
:worker_name: ContainerExpirationPolicyWorker :worker_name: ContainerExpirationPolicyWorker
:feature_category: :container_registry :feature_category: :container_registry
...@@ -245,8 +236,7 @@ ...@@ -245,8 +236,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:database_drop_detached_partitions - :name: cronjob:database_drop_detached_partitions
:worker_name: Database::DropDetachedPartitionsWorker :worker_name: Database::DropDetachedPartitionsWorker
:feature_category: :database :feature_category: :database
...@@ -345,8 +335,7 @@ ...@@ -345,8 +335,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:metrics_dashboard_schedule_annotations_prune - :name: cronjob:metrics_dashboard_schedule_annotations_prune
:worker_name: Metrics::Dashboard::ScheduleAnnotationsPruneWorker :worker_name: Metrics::Dashboard::ScheduleAnnotationsPruneWorker
:feature_category: :metrics :feature_category: :metrics
...@@ -364,8 +353,7 @@ ...@@ -364,8 +353,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:namespaces_prune_aggregation_schedules - :name: cronjob:namespaces_prune_aggregation_schedules
:worker_name: Namespaces::PruneAggregationSchedulesWorker :worker_name: Namespaces::PruneAggregationSchedulesWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -383,8 +371,7 @@ ...@@ -383,8 +371,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:pages_domain_removal_cron - :name: cronjob:pages_domain_removal_cron
:worker_name: PagesDomainRemovalCronWorker :worker_name: PagesDomainRemovalCronWorker
:feature_category: :pages :feature_category: :pages
...@@ -429,8 +416,7 @@ ...@@ -429,8 +416,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:personal_access_tokens_expiring - :name: cronjob:personal_access_tokens_expiring
:worker_name: PersonalAccessTokens::ExpiringWorker :worker_name: PersonalAccessTokens::ExpiringWorker
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
...@@ -466,8 +452,7 @@ ...@@ -466,8 +452,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:remove_expired_group_links - :name: cronjob:remove_expired_group_links
:worker_name: RemoveExpiredGroupLinksWorker :worker_name: RemoveExpiredGroupLinksWorker
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
...@@ -494,8 +479,7 @@ ...@@ -494,8 +479,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:remove_unreferenced_lfs_objects - :name: cronjob:remove_unreferenced_lfs_objects
:worker_name: RemoveUnreferencedLfsObjectsWorker :worker_name: RemoveUnreferencedLfsObjectsWorker
:feature_category: :git_lfs :feature_category: :git_lfs
...@@ -540,8 +524,7 @@ ...@@ -540,8 +524,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:schedule_migrate_external_diffs - :name: cronjob:schedule_migrate_external_diffs
:worker_name: ScheduleMigrateExternalDiffsWorker :worker_name: ScheduleMigrateExternalDiffsWorker
:feature_category: :code_review :feature_category: :code_review
...@@ -559,8 +542,7 @@ ...@@ -559,8 +542,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:ssh_keys_expiring_soon_notification - :name: cronjob:ssh_keys_expiring_soon_notification
:worker_name: SshKeys::ExpiringSoonNotificationWorker :worker_name: SshKeys::ExpiringSoonNotificationWorker
:feature_category: :compliance_management :feature_category: :compliance_management
...@@ -569,8 +551,7 @@ ...@@ -569,8 +551,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:stuck_ci_jobs - :name: cronjob:stuck_ci_jobs
:worker_name: StuckCiJobsWorker :worker_name: StuckCiJobsWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -624,8 +605,7 @@ ...@@ -624,8 +605,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:users_create_statistics - :name: cronjob:users_create_statistics
:worker_name: Users::CreateStatisticsWorker :worker_name: Users::CreateStatisticsWorker
:feature_category: :users :feature_category: :users
...@@ -643,8 +623,7 @@ ...@@ -643,8 +623,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:x509_issuer_crl_check - :name: cronjob:x509_issuer_crl_check
:worker_name: X509IssuerCrlCheckWorker :worker_name: X509IssuerCrlCheckWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -671,8 +650,7 @@ ...@@ -671,8 +650,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: deployment:deployments_hooks - :name: deployment:deployments_hooks
:worker_name: Deployments::HooksWorker :worker_name: Deployments::HooksWorker
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
...@@ -897,8 +875,7 @@ ...@@ -897,8 +875,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: github_importer:github_import_import_pull_request_review - :name: github_importer:github_import_import_pull_request_review
:worker_name: Gitlab::GithubImport::ImportPullRequestReviewWorker :worker_name: Gitlab::GithubImport::ImportPullRequestReviewWorker
:feature_category: :importers :feature_category: :importers
...@@ -907,8 +884,7 @@ ...@@ -907,8 +884,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: github_importer:github_import_refresh_import_jid - :name: github_importer:github_import_refresh_import_jid
:worker_name: Gitlab::GithubImport::RefreshImportJidWorker :worker_name: Gitlab::GithubImport::RefreshImportJidWorker
:feature_category: :importers :feature_category: :importers
...@@ -980,8 +956,7 @@ ...@@ -980,8 +956,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: github_importer:github_import_stage_import_pull_requests_reviews - :name: github_importer:github_import_stage_import_pull_requests_reviews
:worker_name: Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker :worker_name: Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker
:feature_category: :importers :feature_category: :importers
...@@ -990,8 +965,7 @@ ...@@ -990,8 +965,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: github_importer:github_import_stage_import_repository - :name: github_importer:github_import_stage_import_repository
:worker_name: Gitlab::GithubImport::Stage::ImportRepositoryWorker :worker_name: Gitlab::GithubImport::Stage::ImportRepositoryWorker
:feature_category: :importers :feature_category: :importers
...@@ -1010,7 +984,6 @@ ...@@ -1010,7 +984,6 @@
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags:
- :exclude_from_gitlab_com
- :needs_own_queue - :needs_own_queue
- :name: hashed_storage:hashed_storage_project_migrate - :name: hashed_storage:hashed_storage_project_migrate
:worker_name: HashedStorage::ProjectMigrateWorker :worker_name: HashedStorage::ProjectMigrateWorker
...@@ -1021,7 +994,6 @@ ...@@ -1021,7 +994,6 @@
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags:
- :exclude_from_gitlab_com
- :needs_own_queue - :needs_own_queue
- :name: hashed_storage:hashed_storage_project_rollback - :name: hashed_storage:hashed_storage_project_rollback
:worker_name: HashedStorage::ProjectRollbackWorker :worker_name: HashedStorage::ProjectRollbackWorker
...@@ -1032,7 +1004,6 @@ ...@@ -1032,7 +1004,6 @@
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags:
- :exclude_from_gitlab_com
- :needs_own_queue - :needs_own_queue
- :name: hashed_storage:hashed_storage_rollbacker - :name: hashed_storage:hashed_storage_rollbacker
:worker_name: HashedStorage::RollbackerWorker :worker_name: HashedStorage::RollbackerWorker
...@@ -1043,7 +1014,6 @@ ...@@ -1043,7 +1014,6 @@
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags:
- :exclude_from_gitlab_com
- :needs_own_queue - :needs_own_queue
- :name: incident_management:clusters_applications_check_prometheus_health - :name: incident_management:clusters_applications_check_prometheus_health
:worker_name: Clusters::Applications::CheckPrometheusHealthWorker :worker_name: Clusters::Applications::CheckPrometheusHealthWorker
...@@ -1062,8 +1032,7 @@ ...@@ -1062,8 +1032,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: incident_management:incident_management_pager_duty_process_incident - :name: incident_management:incident_management_pager_duty_process_incident
:worker_name: IncidentManagement::PagerDuty::ProcessIncidentWorker :worker_name: IncidentManagement::PagerDuty::ProcessIncidentWorker
:feature_category: :incident_management :feature_category: :incident_management
...@@ -1117,8 +1086,7 @@ ...@@ -1117,8 +1086,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: jira_connect:jira_connect_sync_deployments - :name: jira_connect:jira_connect_sync_deployments
:worker_name: JiraConnect::SyncDeploymentsWorker :worker_name: JiraConnect::SyncDeploymentsWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -1127,8 +1095,7 @@ ...@@ -1127,8 +1095,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: jira_connect:jira_connect_sync_feature_flags - :name: jira_connect:jira_connect_sync_feature_flags
:worker_name: JiraConnect::SyncFeatureFlagsWorker :worker_name: JiraConnect::SyncFeatureFlagsWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -1137,8 +1104,7 @@ ...@@ -1137,8 +1104,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: jira_connect:jira_connect_sync_merge_request - :name: jira_connect:jira_connect_sync_merge_request
:worker_name: JiraConnect::SyncMergeRequestWorker :worker_name: JiraConnect::SyncMergeRequestWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -1156,8 +1122,7 @@ ...@@ -1156,8 +1122,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: jira_importer:jira_import_advance_stage - :name: jira_importer:jira_import_advance_stage
:worker_name: Gitlab::JiraImport::AdvanceStageWorker :worker_name: Gitlab::JiraImport::AdvanceStageWorker
:feature_category: :importers :feature_category: :importers
...@@ -1319,8 +1284,7 @@ ...@@ -1319,8 +1284,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: package_repositories:packages_go_sync_packages - :name: package_repositories:packages_go_sync_packages
:worker_name: Packages::Go::SyncPackagesWorker :worker_name: Packages::Go::SyncPackagesWorker
:feature_category: :package_registry :feature_category: :package_registry
...@@ -1329,8 +1293,7 @@ ...@@ -1329,8 +1293,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: package_repositories:packages_helm_extraction - :name: package_repositories:packages_helm_extraction
:worker_name: Packages::Helm::ExtractionWorker :worker_name: Packages::Helm::ExtractionWorker
:feature_category: :package_registry :feature_category: :package_registry
...@@ -1348,8 +1311,7 @@ ...@@ -1348,8 +1311,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: package_repositories:packages_nuget_extraction - :name: package_repositories:packages_nuget_extraction
:worker_name: Packages::Nuget::ExtractionWorker :worker_name: Packages::Nuget::ExtractionWorker
:feature_category: :package_registry :feature_category: :package_registry
...@@ -1367,8 +1329,7 @@ ...@@ -1367,8 +1329,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pipeline_background:archive_trace - :name: pipeline_background:archive_trace
:worker_name: ArchiveTraceWorker :worker_name: ArchiveTraceWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -1422,8 +1383,7 @@ ...@@ -1422,8 +1383,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pipeline_background:ci_pipeline_success_unlock_artifacts - :name: pipeline_background:ci_pipeline_success_unlock_artifacts
:worker_name: Ci::PipelineSuccessUnlockArtifactsWorker :worker_name: Ci::PipelineSuccessUnlockArtifactsWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -1450,8 +1410,7 @@ ...@@ -1450,8 +1410,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pipeline_cache:expire_job_cache - :name: pipeline_cache:expire_job_cache
:worker_name: ExpireJobCacheWorker :worker_name: ExpireJobCacheWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -1523,8 +1482,7 @@ ...@@ -1523,8 +1482,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pipeline_default:ci_merge_requests_add_todo_when_build_fails - :name: pipeline_default:ci_merge_requests_add_todo_when_build_fails
:worker_name: Ci::MergeRequests::AddTodoWhenBuildFailsWorker :worker_name: Ci::MergeRequests::AddTodoWhenBuildFailsWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -1533,8 +1491,7 @@ ...@@ -1533,8 +1491,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pipeline_default:ci_pipeline_bridge_status - :name: pipeline_default:ci_pipeline_bridge_status
:worker_name: Ci::PipelineBridgeStatusWorker :worker_name: Ci::PipelineBridgeStatusWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -1732,8 +1689,7 @@ ...@@ -1732,8 +1689,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: todos_destroyer:todos_destroyer_entity_leave - :name: todos_destroyer:todos_destroyer_entity_leave
:worker_name: TodosDestroyer::EntityLeaveWorker :worker_name: TodosDestroyer::EntityLeaveWorker
:feature_category: :issue_tracking :feature_category: :issue_tracking
...@@ -1805,8 +1761,7 @@ ...@@ -1805,8 +1761,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: approve_blocked_pending_approval_users - :name: approve_blocked_pending_approval_users
:worker_name: ApproveBlockedPendingApprovalUsersWorker :worker_name: ApproveBlockedPendingApprovalUsersWorker
:feature_category: :users :feature_category: :users
...@@ -1815,8 +1770,7 @@ ...@@ -1815,8 +1770,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: authorized_keys - :name: authorized_keys
:worker_name: AuthorizedKeysWorker :worker_name: AuthorizedKeysWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -1852,8 +1806,7 @@ ...@@ -1852,8 +1806,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: bulk_imports_entity - :name: bulk_imports_entity
:worker_name: BulkImports::EntityWorker :worker_name: BulkImports::EntityWorker
:feature_category: :importers :feature_category: :importers
...@@ -1862,8 +1815,7 @@ ...@@ -1862,8 +1815,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: bulk_imports_export_request - :name: bulk_imports_export_request
:worker_name: BulkImports::ExportRequestWorker :worker_name: BulkImports::ExportRequestWorker
:feature_category: :importers :feature_category: :importers
...@@ -1881,8 +1833,7 @@ ...@@ -1881,8 +1833,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: bulk_imports_relation_export - :name: bulk_imports_relation_export
:worker_name: BulkImports::RelationExportWorker :worker_name: BulkImports::RelationExportWorker
:feature_category: :importers :feature_category: :importers
...@@ -1891,8 +1842,7 @@ ...@@ -1891,8 +1842,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: chat_notification - :name: chat_notification
:worker_name: ChatNotificationWorker :worker_name: ChatNotificationWorker
:feature_category: :chatops :feature_category: :chatops
...@@ -1910,8 +1860,7 @@ ...@@ -1910,8 +1860,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: create_commit_signature - :name: create_commit_signature
:worker_name: CreateCommitSignatureWorker :worker_name: CreateCommitSignatureWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -1983,8 +1932,7 @@ ...@@ -1983,8 +1932,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: design_management_new_version - :name: design_management_new_version
:worker_name: DesignManagement::NewVersionWorker :worker_name: DesignManagement::NewVersionWorker
:feature_category: :design_management :feature_category: :design_management
...@@ -2002,8 +1950,7 @@ ...@@ -2002,8 +1950,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: detect_repository_languages - :name: detect_repository_languages
:worker_name: DetectRepositoryLanguagesWorker :worker_name: DetectRepositoryLanguagesWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -2021,8 +1968,7 @@ ...@@ -2021,8 +1968,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: disallow_two_factor_for_subgroups - :name: disallow_two_factor_for_subgroups
:worker_name: DisallowTwoFactorForSubgroupsWorker :worker_name: DisallowTwoFactorForSubgroupsWorker
:feature_category: :subgroups :feature_category: :subgroups
...@@ -2031,8 +1977,7 @@ ...@@ -2031,8 +1977,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: email_receiver - :name: email_receiver
:worker_name: EmailReceiverWorker :worker_name: EmailReceiverWorker
:feature_category: :issue_tracking :feature_category: :issue_tracking
...@@ -2060,8 +2005,7 @@ ...@@ -2060,8 +2005,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: error_tracking_issue_link - :name: error_tracking_issue_link
:worker_name: ErrorTrackingIssueLinkWorker :worker_name: ErrorTrackingIssueLinkWorker
:feature_category: :error_tracking :feature_category: :error_tracking
...@@ -2079,8 +2023,7 @@ ...@@ -2079,8 +2023,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: expire_build_instance_artifacts - :name: expire_build_instance_artifacts
:worker_name: ExpireBuildInstanceArtifactsWorker :worker_name: ExpireBuildInstanceArtifactsWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -2125,8 +2068,7 @@ ...@@ -2125,8 +2068,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: github_import_advance_stage - :name: github_import_advance_stage
:worker_name: Gitlab::GithubImport::AdvanceStageWorker :worker_name: Gitlab::GithubImport::AdvanceStageWorker
:feature_category: :importers :feature_category: :importers
...@@ -2144,8 +2086,7 @@ ...@@ -2144,8 +2086,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: gitlab_shell - :name: gitlab_shell
:worker_name: GitlabShellWorker :worker_name: GitlabShellWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -2163,9 +2104,7 @@ ...@@ -2163,9 +2104,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :requires_disk_io
- :exclude_from_kubernetes
- :name: group_export - :name: group_export
:worker_name: GroupExportWorker :worker_name: GroupExportWorker
:feature_category: :importers :feature_category: :importers
...@@ -2255,8 +2194,7 @@ ...@@ -2255,8 +2194,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: mailers - :name: mailers
:worker_name: ActionMailer::MailDeliveryJob :worker_name: ActionMailer::MailDeliveryJob
:feature_category: :issue_tracking :feature_category: :issue_tracking
...@@ -2283,8 +2221,7 @@ ...@@ -2283,8 +2221,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: merge_request_mergeability_check - :name: merge_request_mergeability_check
:worker_name: MergeRequestMergeabilityCheckWorker :worker_name: MergeRequestMergeabilityCheckWorker
:feature_category: :code_review :feature_category: :code_review
...@@ -2338,8 +2275,7 @@ ...@@ -2338,8 +2275,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: migrate_external_diffs - :name: migrate_external_diffs
:worker_name: MigrateExternalDiffsWorker :worker_name: MigrateExternalDiffsWorker
:feature_category: :code_review :feature_category: :code_review
...@@ -2366,8 +2302,7 @@ ...@@ -2366,8 +2302,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: namespaces_onboarding_pipeline_created - :name: namespaces_onboarding_pipeline_created
:worker_name: Namespaces::OnboardingPipelineCreatedWorker :worker_name: Namespaces::OnboardingPipelineCreatedWorker
:feature_category: :subgroups :feature_category: :subgroups
...@@ -2376,8 +2311,7 @@ ...@@ -2376,8 +2311,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: namespaces_onboarding_progress - :name: namespaces_onboarding_progress
:worker_name: Namespaces::OnboardingProgressWorker :worker_name: Namespaces::OnboardingProgressWorker
:feature_category: :product_analytics :feature_category: :product_analytics
...@@ -2386,8 +2320,7 @@ ...@@ -2386,8 +2320,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: namespaces_onboarding_user_added - :name: namespaces_onboarding_user_added
:worker_name: Namespaces::OnboardingUserAddedWorker :worker_name: Namespaces::OnboardingUserAddedWorker
:feature_category: :users :feature_category: :users
...@@ -2396,8 +2329,7 @@ ...@@ -2396,8 +2329,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: new_issue - :name: new_issue
:worker_name: NewIssueWorker :worker_name: NewIssueWorker
:feature_category: :issue_tracking :feature_category: :issue_tracking
...@@ -2433,8 +2365,7 @@ ...@@ -2433,8 +2365,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pages - :name: pages
:worker_name: PagesWorker :worker_name: PagesWorker
:feature_category: :pages :feature_category: :pages
...@@ -2443,9 +2374,7 @@ ...@@ -2443,9 +2374,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :requires_disk_io
- :exclude_from_kubernetes
- :name: pages_domain_ssl_renewal - :name: pages_domain_ssl_renewal
:worker_name: PagesDomainSslRenewalWorker :worker_name: PagesDomainSslRenewalWorker
:feature_category: :pages :feature_category: :pages
...@@ -2454,9 +2383,7 @@ ...@@ -2454,9 +2383,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :requires_disk_io
- :exclude_from_kubernetes
- :name: pages_domain_verification - :name: pages_domain_verification
:worker_name: PagesDomainVerificationWorker :worker_name: PagesDomainVerificationWorker
:feature_category: :pages :feature_category: :pages
...@@ -2465,9 +2392,7 @@ ...@@ -2465,9 +2392,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :requires_disk_io
- :exclude_from_kubernetes
- :name: pages_remove - :name: pages_remove
:worker_name: PagesRemoveWorker :worker_name: PagesRemoveWorker
:feature_category: :pages :feature_category: :pages
...@@ -2476,8 +2401,7 @@ ...@@ -2476,8 +2401,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pages_transfer - :name: pages_transfer
:worker_name: PagesTransferWorker :worker_name: PagesTransferWorker
:feature_category: :pages :feature_category: :pages
...@@ -2486,8 +2410,7 @@ ...@@ -2486,8 +2410,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: pages_update_configuration - :name: pages_update_configuration
:worker_name: PagesUpdateConfigurationWorker :worker_name: PagesUpdateConfigurationWorker
:feature_category: :pages :feature_category: :pages
...@@ -2496,8 +2419,7 @@ ...@@ -2496,8 +2419,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: phabricator_import_import_tasks - :name: phabricator_import_import_tasks
:worker_name: Gitlab::PhabricatorImport::ImportTasksWorker :worker_name: Gitlab::PhabricatorImport::ImportTasksWorker
:feature_category: :importers :feature_category: :importers
...@@ -2551,9 +2473,7 @@ ...@@ -2551,9 +2473,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :requires_disk_io
- :exclude_from_kubernetes
- :name: project_export - :name: project_export
:worker_name: ProjectExportWorker :worker_name: ProjectExportWorker
:feature_category: :importers :feature_category: :importers
...@@ -2580,8 +2500,7 @@ ...@@ -2580,8 +2500,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: projects_post_creation - :name: projects_post_creation
:worker_name: Projects::PostCreationWorker :worker_name: Projects::PostCreationWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -2590,8 +2509,7 @@ ...@@ -2590,8 +2509,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: projects_schedule_bulk_repository_shard_moves - :name: projects_schedule_bulk_repository_shard_moves
:worker_name: Projects::ScheduleBulkRepositoryShardMovesWorker :worker_name: Projects::ScheduleBulkRepositoryShardMovesWorker
:feature_category: :gitaly :feature_category: :gitaly
...@@ -2636,8 +2554,7 @@ ...@@ -2636,8 +2554,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: propagate_integration_inherit - :name: propagate_integration_inherit
:worker_name: PropagateIntegrationInheritWorker :worker_name: PropagateIntegrationInheritWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -2646,8 +2563,7 @@ ...@@ -2646,8 +2563,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: propagate_integration_inherit_descendant - :name: propagate_integration_inherit_descendant
:worker_name: PropagateIntegrationInheritDescendantWorker :worker_name: PropagateIntegrationInheritDescendantWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -2656,8 +2572,7 @@ ...@@ -2656,8 +2572,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: propagate_integration_project - :name: propagate_integration_project
:worker_name: PropagateIntegrationProjectWorker :worker_name: PropagateIntegrationProjectWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -2666,8 +2581,7 @@ ...@@ -2666,8 +2581,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: propagate_service_template - :name: propagate_service_template
:worker_name: PropagateServiceTemplateWorker :worker_name: PropagateServiceTemplateWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -2703,8 +2617,7 @@ ...@@ -2703,8 +2617,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: remote_mirror_notification - :name: remote_mirror_notification
:worker_name: RemoteMirrorNotificationWorker :worker_name: RemoteMirrorNotificationWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -2876,8 +2789,7 @@ ...@@ -2876,8 +2789,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: web_hooks_log_execution - :name: web_hooks_log_execution
:worker_name: WebHooks::LogExecutionWorker :worker_name: WebHooks::LogExecutionWorker
:feature_category: :integrations :feature_category: :integrations
...@@ -2895,8 +2807,7 @@ ...@@ -2895,8 +2807,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: x509_certificate_revoke - :name: x509_certificate_revoke
:worker_name: X509CertificateRevokeWorker :worker_name: X509CertificateRevokeWorker
:feature_category: :source_code_management :feature_category: :source_code_management
......
...@@ -13,7 +13,6 @@ module Analytics ...@@ -13,7 +13,6 @@ module Analytics
DEFAULT_DELAY = 3.minutes.freeze DEFAULT_DELAY = 3.minutes.freeze
feature_category :devops_reports feature_category :devops_reports
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -12,7 +12,6 @@ module Analytics ...@@ -12,7 +12,6 @@ module Analytics
feature_category :devops_reports feature_category :devops_reports
urgency :low urgency :low
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -10,7 +10,6 @@ class ApproveBlockedPendingApprovalUsersWorker ...@@ -10,7 +10,6 @@ class ApproveBlockedPendingApprovalUsersWorker
idempotent! idempotent!
feature_category :users feature_category :users
tags :exclude_from_kubernetes
def perform(current_user_id) def perform(current_user_id)
current_user = User.find(current_user_id) current_user = User.find(current_user_id)
......
...@@ -6,7 +6,6 @@ class BulkImportWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -6,7 +6,6 @@ class BulkImportWorker # rubocop:disable Scalability/IdempotentWorker
data_consistency :always data_consistency :always
feature_category :importers feature_category :importers
tags :exclude_from_kubernetes
sidekiq_options retry: false, dead: false sidekiq_options retry: false, dead: false
......
...@@ -7,7 +7,6 @@ module BulkImports ...@@ -7,7 +7,6 @@ module BulkImports
data_consistency :always data_consistency :always
feature_category :importers feature_category :importers
tags :exclude_from_kubernetes
sidekiq_options retry: false, dead: false sidekiq_options retry: false, dead: false
......
...@@ -9,7 +9,6 @@ module BulkImports ...@@ -9,7 +9,6 @@ module BulkImports
NDJSON_PIPELINE_PERFORM_DELAY = 1.minute NDJSON_PIPELINE_PERFORM_DELAY = 1.minute
feature_category :importers feature_category :importers
tags :exclude_from_kubernetes
sidekiq_options retry: false, dead: false sidekiq_options retry: false, dead: false
......
...@@ -10,7 +10,6 @@ module BulkImports ...@@ -10,7 +10,6 @@ module BulkImports
idempotent! idempotent!
loggable_arguments 2, 3 loggable_arguments 2, 3
feature_category :importers feature_category :importers
tags :exclude_from_kubernetes
sidekiq_options status_expiration: StuckExportJobsWorker::EXPORT_JOBS_EXPIRATION sidekiq_options status_expiration: StuckExportJobsWorker::EXPORT_JOBS_EXPIRATION
def perform(user_id, portable_id, portable_class, relation) def perform(user_id, portable_id, portable_class, relation)
......
...@@ -10,7 +10,6 @@ module Ci ...@@ -10,7 +10,6 @@ module Ci
include LimitedCapacity::Worker include LimitedCapacity::Worker
feature_category :continuous_integration feature_category :continuous_integration
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform_work(*args) def perform_work(*args)
......
...@@ -9,8 +9,6 @@ module Ci ...@@ -9,8 +9,6 @@ module Ci
sidekiq_options retry: 3 sidekiq_options retry: 3
include PipelineQueue include PipelineQueue
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(pipeline_id, failure_reason) def perform(pipeline_id, failure_reason)
......
...@@ -10,7 +10,6 @@ module Ci ...@@ -10,7 +10,6 @@ module Ci
include PipelineQueue include PipelineQueue
urgency :low urgency :low
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(job_id) def perform(job_id)
......
...@@ -11,7 +11,6 @@ module Ci ...@@ -11,7 +11,6 @@ module Ci
queue_namespace :pipeline_background queue_namespace :pipeline_background
feature_category :code_testing feature_category :code_testing
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -15,7 +15,6 @@ module Ci ...@@ -15,7 +15,6 @@ module Ci
deduplicate :until_executed, including_scheduled: true deduplicate :until_executed, including_scheduled: true
idempotent! idempotent!
feature_category :continuous_integration feature_category :continuous_integration
tags :exclude_from_kubernetes
def perform def perform
service = ::Ci::PipelineArtifacts::DestroyAllExpiredService.new service = ::Ci::PipelineArtifacts::DestroyAllExpiredService.new
......
...@@ -12,7 +12,6 @@ module Ci ...@@ -12,7 +12,6 @@ module Ci
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
feature_category :continuous_integration feature_category :continuous_integration
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(*args) def perform(*args)
......
...@@ -9,8 +9,6 @@ module Ci ...@@ -9,8 +9,6 @@ module Ci
sidekiq_options retry: 3 sidekiq_options retry: 3
include PipelineBackgroundQueue include PipelineBackgroundQueue
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(pipeline_id) def perform(pipeline_id)
......
...@@ -6,6 +6,5 @@ module ChaosQueue ...@@ -6,6 +6,5 @@ module ChaosQueue
included do included do
queue_namespace :chaos queue_namespace :chaos
feature_category_not_owned! feature_category_not_owned!
tags :exclude_from_gitlab_com
end end
end end
...@@ -12,7 +12,6 @@ module ContainerExpirationPolicies ...@@ -12,7 +12,6 @@ module ContainerExpirationPolicies
queue_namespace :container_repository queue_namespace :container_repository
feature_category :container_registry feature_category :container_registry
tags :exclude_from_kubernetes
urgency :low urgency :low
worker_resource_boundary :unknown worker_resource_boundary :unknown
idempotent! idempotent!
......
...@@ -9,7 +9,6 @@ module Database ...@@ -9,7 +9,6 @@ module Database
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :database feature_category :database
tags :exclude_from_kubernetes
idempotent! idempotent!
LEASE_TIMEOUT_MULTIPLIER = 3 LEASE_TIMEOUT_MULTIPLIER = 3
......
...@@ -10,7 +10,6 @@ module Deployments ...@@ -10,7 +10,6 @@ module Deployments
queue_namespace :deployment queue_namespace :deployment
feature_category :continuous_delivery feature_category :continuous_delivery
tags :exclude_from_kubernetes
def perform(deployment_id) def perform(deployment_id)
Deployments::OlderDeploymentsDropService.new(deployment_id).execute Deployments::OlderDeploymentsDropService.new(deployment_id).execute
......
...@@ -9,7 +9,6 @@ module DesignManagement ...@@ -9,7 +9,6 @@ module DesignManagement
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :design_management feature_category :design_management
tags :exclude_from_kubernetes
idempotent! idempotent!
urgency :low urgency :low
......
...@@ -10,7 +10,6 @@ class DestroyPagesDeploymentsWorker ...@@ -10,7 +10,6 @@ class DestroyPagesDeploymentsWorker
loggable_arguments 0, 1 loggable_arguments 0, 1
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :pages feature_category :pages
tags :exclude_from_kubernetes
def perform(project_id, last_deployment_id = nil) def perform(project_id, last_deployment_id = nil)
project = Project.find_by_id(project_id) project = Project.find_by_id(project_id)
......
...@@ -9,7 +9,6 @@ class DisallowTwoFactorForGroupWorker ...@@ -9,7 +9,6 @@ class DisallowTwoFactorForGroupWorker
include ExceptionBacktrace include ExceptionBacktrace
feature_category :subgroups feature_category :subgroups
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(group_id) def perform(group_id)
......
...@@ -11,7 +11,6 @@ class DisallowTwoFactorForSubgroupsWorker ...@@ -11,7 +11,6 @@ class DisallowTwoFactorForSubgroupsWorker
INTERVAL = 2.seconds.to_i INTERVAL = 2.seconds.to_i
feature_category :subgroups feature_category :subgroups
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(group_id) def perform(group_id)
......
...@@ -11,7 +11,6 @@ module Environments ...@@ -11,7 +11,6 @@ module Environments
idempotent! idempotent!
worker_has_external_dependencies! worker_has_external_dependencies!
feature_category :continuous_delivery feature_category :continuous_delivery
tags :exclude_from_kubernetes
def perform(environment_id, params) def perform(environment_id, params)
Environment.find_by_id(environment_id).try do |environment| Environment.find_by_id(environment_id).try do |environment|
......
...@@ -9,7 +9,6 @@ module Experiments ...@@ -9,7 +9,6 @@ module Experiments
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :users feature_category :users
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -13,7 +13,6 @@ class FlushCounterIncrementsWorker ...@@ -13,7 +13,6 @@ class FlushCounterIncrementsWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category_not_owned! feature_category_not_owned!
tags :exclude_from_kubernetes
urgency :low urgency :low
deduplicate :until_executing, including_scheduled: true deduplicate :until_executing, including_scheduled: true
......
...@@ -5,7 +5,6 @@ module Gitlab ...@@ -5,7 +5,6 @@ module Gitlab
class ImportPullRequestMergedByWorker # rubocop:disable Scalability/IdempotentWorker class ImportPullRequestMergedByWorker # rubocop:disable Scalability/IdempotentWorker
include ObjectImporter include ObjectImporter
tags :exclude_from_kubernetes
worker_resource_boundary :cpu worker_resource_boundary :cpu
def representation_class def representation_class
......
...@@ -5,7 +5,6 @@ module Gitlab ...@@ -5,7 +5,6 @@ module Gitlab
class ImportPullRequestReviewWorker # rubocop:disable Scalability/IdempotentWorker class ImportPullRequestReviewWorker # rubocop:disable Scalability/IdempotentWorker
include ObjectImporter include ObjectImporter
tags :exclude_from_kubernetes
worker_resource_boundary :cpu worker_resource_boundary :cpu
def representation_class def representation_class
......
...@@ -12,8 +12,6 @@ module Gitlab ...@@ -12,8 +12,6 @@ module Gitlab
include GithubImport::Queue include GithubImport::Queue
include StageMethods include StageMethods
tags :exclude_from_kubernetes
# client - An instance of Gitlab::GithubImport::Client. # client - An instance of Gitlab::GithubImport::Client.
# project - An instance of Project. # project - An instance of Project.
def import(client, project) def import(client, project)
......
...@@ -12,8 +12,6 @@ module Gitlab ...@@ -12,8 +12,6 @@ module Gitlab
include GithubImport::Queue include GithubImport::Queue
include StageMethods include StageMethods
tags :exclude_from_kubernetes
# client - An instance of Gitlab::GithubImport::Client. # client - An instance of Gitlab::GithubImport::Client.
# project - An instance of Project. # project - An instance of Project.
def import(client, project) def import(client, project)
......
...@@ -15,7 +15,6 @@ class GitlabPerformanceBarStatsWorker ...@@ -15,7 +15,6 @@ class GitlabPerformanceBarStatsWorker
STATS_KEY_EXPIRE = 30.minutes.to_i STATS_KEY_EXPIRE = 30.minutes.to_i
feature_category :metrics feature_category :metrics
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(lease_uuid) def perform(lease_uuid)
......
...@@ -9,7 +9,6 @@ class GroupDestroyWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -9,7 +9,6 @@ class GroupDestroyWorker # rubocop:disable Scalability/IdempotentWorker
include ExceptionBacktrace include ExceptionBacktrace
feature_category :subgroups feature_category :subgroups
tags :requires_disk_io, :exclude_from_kubernetes
def perform(group_id, user_id) def perform(group_id, user_id)
begin begin
......
...@@ -13,7 +13,7 @@ module HashedStorage ...@@ -13,7 +13,7 @@ module HashedStorage
# Gitlab::HashedStorage::Migrator#migration_pending? depends on the # Gitlab::HashedStorage::Migrator#migration_pending? depends on the
# queue size of this worker. # queue size of this worker.
tags :exclude_from_gitlab_com, :needs_own_queue tags :needs_own_queue
# @param [Integer] start initial ID of the batch # @param [Integer] start initial ID of the batch
# @param [Integer] finish last ID of the batch # @param [Integer] finish last ID of the batch
......
...@@ -13,7 +13,7 @@ module HashedStorage ...@@ -13,7 +13,7 @@ module HashedStorage
# Gitlab::HashedStorage::Migrator#migration_pending? depends on the # Gitlab::HashedStorage::Migrator#migration_pending? depends on the
# queue size of this worker. # queue size of this worker.
tags :exclude_from_gitlab_com, :needs_own_queue tags :needs_own_queue
attr_reader :project_id attr_reader :project_id
......
...@@ -13,7 +13,7 @@ module HashedStorage ...@@ -13,7 +13,7 @@ module HashedStorage
# Gitlab::HashedStorage::Migrator#rollback_pending? depends on the # Gitlab::HashedStorage::Migrator#rollback_pending? depends on the
# queue size of this worker. # queue size of this worker.
tags :exclude_from_gitlab_com, :needs_own_queue tags :needs_own_queue
attr_reader :project_id attr_reader :project_id
......
...@@ -13,7 +13,7 @@ module HashedStorage ...@@ -13,7 +13,7 @@ module HashedStorage
# Gitlab::HashedStorage::Migrator#rollback_pending? depends on the # Gitlab::HashedStorage::Migrator#rollback_pending? depends on the
# queue size of this worker. # queue size of this worker.
tags :exclude_from_gitlab_com, :needs_own_queue tags :needs_own_queue
# @param [Integer] start initial ID of the batch # @param [Integer] start initial ID of the batch
# @param [Integer] finish last ID of the batch # @param [Integer] finish last ID of the batch
......
...@@ -11,7 +11,6 @@ module IncidentManagement ...@@ -11,7 +11,6 @@ module IncidentManagement
queue_namespace :incident_management queue_namespace :incident_management
feature_category :incident_management feature_category :incident_management
tags :exclude_from_kubernetes
def perform(incident_id, user_id) def perform(incident_id, user_id)
return if incident_id.blank? || user_id.blank? return if incident_id.blank? || user_id.blank?
......
...@@ -10,7 +10,6 @@ class IssueRebalancingWorker ...@@ -10,7 +10,6 @@ class IssueRebalancingWorker
idempotent! idempotent!
urgency :low urgency :low
feature_category :issue_tracking feature_category :issue_tracking
tags :exclude_from_kubernetes
deduplicate :until_executed, including_scheduled: true deduplicate :until_executed, including_scheduled: true
def perform(ignore = nil, project_id = nil, root_namespace_id = nil) def perform(ignore = nil, project_id = nil, root_namespace_id = nil)
......
...@@ -8,7 +8,6 @@ module JiraConnect ...@@ -8,7 +8,6 @@ module JiraConnect
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes
urgency :low urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!
......
...@@ -8,7 +8,6 @@ module JiraConnect ...@@ -8,7 +8,6 @@ module JiraConnect
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes
urgency :low urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!
......
...@@ -8,7 +8,6 @@ module JiraConnect ...@@ -8,7 +8,6 @@ module JiraConnect
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes
urgency :low urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!
......
...@@ -8,7 +8,6 @@ module JiraConnect ...@@ -8,7 +8,6 @@ module JiraConnect
queue_namespace :jira_connect queue_namespace :jira_connect
feature_category :integrations feature_category :integrations
data_consistency :delayed data_consistency :delayed
tags :exclude_from_kubernetes
urgency :low urgency :low
worker_has_external_dependencies! worker_has_external_dependencies!
......
...@@ -8,7 +8,6 @@ class MemberInvitationReminderEmailsWorker # rubocop:disable Scalability/Idempot ...@@ -8,7 +8,6 @@ class MemberInvitationReminderEmailsWorker # rubocop:disable Scalability/Idempot
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :subgroups feature_category :subgroups
tags :exclude_from_kubernetes
urgency :low urgency :low
def perform def perform
......
...@@ -10,7 +10,6 @@ class MergeRequestCleanupRefsWorker ...@@ -10,7 +10,6 @@ class MergeRequestCleanupRefsWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :code_review feature_category :code_review
tags :exclude_from_kubernetes
idempotent! idempotent!
# Hard-coded to 4 for now. Will be configurable later on via application settings. # Hard-coded to 4 for now. Will be configurable later on via application settings.
......
...@@ -10,7 +10,6 @@ module Metrics ...@@ -10,7 +10,6 @@ module Metrics
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :metrics feature_category :metrics
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -9,7 +9,6 @@ module Namespaces ...@@ -9,7 +9,6 @@ module Namespaces
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :subgroups feature_category :subgroups
tags :exclude_from_kubernetes
urgency :low urgency :low
def perform def perform
......
...@@ -9,7 +9,6 @@ module Namespaces ...@@ -9,7 +9,6 @@ module Namespaces
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :issue_tracking feature_category :issue_tracking
tags :exclude_from_kubernetes
urgency :low urgency :low
deduplicate :until_executing deduplicate :until_executing
......
...@@ -9,7 +9,6 @@ module Namespaces ...@@ -9,7 +9,6 @@ module Namespaces
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :subgroups feature_category :subgroups
tags :exclude_from_kubernetes
urgency :low urgency :low
deduplicate :until_executing deduplicate :until_executing
......
...@@ -10,7 +10,6 @@ module Namespaces ...@@ -10,7 +10,6 @@ module Namespaces
feature_category :product_analytics feature_category :product_analytics
worker_resource_boundary :cpu worker_resource_boundary :cpu
tags :exclude_from_kubernetes
urgency :low urgency :low
deduplicate :until_executed deduplicate :until_executed
......
...@@ -9,7 +9,6 @@ module Namespaces ...@@ -9,7 +9,6 @@ module Namespaces
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :users feature_category :users
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -10,7 +10,6 @@ module Packages ...@@ -10,7 +10,6 @@ module Packages
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :package_registry feature_category :package_registry
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -10,7 +10,6 @@ module Packages ...@@ -10,7 +10,6 @@ module Packages
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :package_registry feature_category :package_registry
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -13,7 +13,6 @@ module Packages ...@@ -13,7 +13,6 @@ module Packages
queue_namespace :package_repositories queue_namespace :package_repositories
feature_category :package_registry feature_category :package_registry
tags :exclude_from_kubernetes
def perform(package_file_id, user_id) def perform(package_file_id, user_id)
@package_file_id = package_file_id @package_file_id = package_file_id
......
...@@ -12,7 +12,6 @@ module Packages ...@@ -12,7 +12,6 @@ module Packages
queue_namespace :package_repositories queue_namespace :package_repositories
feature_category :package_registry feature_category :package_registry
tags :exclude_from_kubernetes
deduplicate :until_executing deduplicate :until_executing
idempotent! idempotent!
......
...@@ -13,7 +13,6 @@ module Packages ...@@ -13,7 +13,6 @@ module Packages
queue_namespace :package_repositories queue_namespace :package_repositories
feature_category :package_registry feature_category :package_registry
tags :exclude_from_kubernetes
deduplicate :until_executing deduplicate :until_executing
idempotent! idempotent!
......
...@@ -11,7 +11,6 @@ module Packages ...@@ -11,7 +11,6 @@ module Packages
queue_namespace :package_repositories queue_namespace :package_repositories
feature_category :package_registry feature_category :package_registry
tags :exclude_from_kubernetes
deduplicate :until_executing deduplicate :until_executing
def perform(package_file_id) def perform(package_file_id)
......
...@@ -8,7 +8,6 @@ class PagesDomainSslRenewalWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -8,7 +8,6 @@ class PagesDomainSslRenewalWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :pages feature_category :pages
tags :requires_disk_io, :exclude_from_kubernetes
def perform(domain_id) def perform(domain_id)
domain = PagesDomain.find_by_id(domain_id) domain = PagesDomain.find_by_id(domain_id)
......
...@@ -8,7 +8,6 @@ class PagesDomainVerificationWorker # rubocop:disable Scalability/IdempotentWork ...@@ -8,7 +8,6 @@ class PagesDomainVerificationWorker # rubocop:disable Scalability/IdempotentWork
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :pages feature_category :pages
tags :requires_disk_io, :exclude_from_kubernetes
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
def perform(domain_id) def perform(domain_id)
......
...@@ -8,7 +8,6 @@ class PagesRemoveWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -8,7 +8,6 @@ class PagesRemoveWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :pages feature_category :pages
tags :exclude_from_kubernetes
loggable_arguments 0 loggable_arguments 0
def perform(project_id) def perform(project_id)
......
...@@ -10,7 +10,6 @@ class PagesTransferWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -10,7 +10,6 @@ class PagesTransferWorker # rubocop:disable Scalability/IdempotentWorker
TransferFailedError = Class.new(StandardError) TransferFailedError = Class.new(StandardError)
feature_category :pages feature_category :pages
tags :exclude_from_kubernetes
loggable_arguments 0, 1 loggable_arguments 0, 1
def perform(method, args) def perform(method, args)
......
...@@ -9,7 +9,6 @@ class PagesUpdateConfigurationWorker ...@@ -9,7 +9,6 @@ class PagesUpdateConfigurationWorker
idempotent! idempotent!
feature_category :pages feature_category :pages
tags :exclude_from_kubernetes
def self.perform_async(*args) def self.perform_async(*args)
return unless ::Settings.pages.local_store.enabled return unless ::Settings.pages.local_store.enabled
......
...@@ -8,7 +8,6 @@ class PagesWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -8,7 +8,6 @@ class PagesWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :pages feature_category :pages
loggable_arguments 0, 1 loggable_arguments 0, 1
tags :requires_disk_io, :exclude_from_kubernetes
worker_resource_boundary :cpu worker_resource_boundary :cpu
def perform(action, *arg) def perform(action, *arg)
......
...@@ -9,7 +9,6 @@ module PersonalAccessTokens ...@@ -9,7 +9,6 @@ module PersonalAccessTokens
include CronjobQueue include CronjobQueue
feature_category :authentication_and_authorization feature_category :authentication_and_authorization
tags :exclude_from_kubernetes
def perform(*args) def perform(*args)
notification_service = NotificationService.new notification_service = NotificationService.new
......
...@@ -9,7 +9,6 @@ class ProjectDestroyWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -9,7 +9,6 @@ class ProjectDestroyWorker # rubocop:disable Scalability/IdempotentWorker
include ExceptionBacktrace include ExceptionBacktrace
feature_category :source_code_management feature_category :source_code_management
tags :requires_disk_io, :exclude_from_kubernetes
def perform(project_id, user_id, params) def perform(project_id, user_id, params)
project = Project.find(project_id) project = Project.find(project_id)
......
...@@ -5,8 +5,6 @@ module Projects ...@@ -5,8 +5,6 @@ module Projects
extend ::Gitlab::Utils::Override extend ::Gitlab::Utils::Override
include GitGarbageCollectMethods include GitGarbageCollectMethods
tags :exclude_from_kubernetes
private private
override :find_resource override :find_resource
......
...@@ -9,7 +9,6 @@ module Projects ...@@ -9,7 +9,6 @@ module Projects
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :source_code_management feature_category :source_code_management
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(project_id) def perform(project_id)
......
...@@ -6,7 +6,6 @@ class PropagateIntegrationGroupWorker ...@@ -6,7 +6,6 @@ class PropagateIntegrationGroupWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -6,7 +6,6 @@ class PropagateIntegrationInheritDescendantWorker ...@@ -6,7 +6,6 @@ class PropagateIntegrationInheritDescendantWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -6,7 +6,6 @@ class PropagateIntegrationInheritWorker ...@@ -6,7 +6,6 @@ class PropagateIntegrationInheritWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -6,7 +6,6 @@ class PropagateIntegrationProjectWorker ...@@ -6,7 +6,6 @@ class PropagateIntegrationProjectWorker
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -9,7 +9,6 @@ module Releases ...@@ -9,7 +9,6 @@ module Releases
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :release_evidence feature_category :release_evidence
tags :exclude_from_kubernetes
# pipeline_id is optional for backward compatibility with existing jobs # pipeline_id is optional for backward compatibility with existing jobs
# caller should always try to provide the pipeline and pass nil only # caller should always try to provide the pipeline and pass nil only
......
...@@ -9,7 +9,6 @@ module Releases ...@@ -9,7 +9,6 @@ module Releases
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :release_evidence feature_category :release_evidence
tags :exclude_from_kubernetes
def perform def perform
releases = Release.without_evidence.released_within_2hrs releases = Release.without_evidence.released_within_2hrs
......
...@@ -8,7 +8,6 @@ class RemoveUnacceptedMemberInvitesWorker # rubocop:disable Scalability/Idempote ...@@ -8,7 +8,6 @@ class RemoveUnacceptedMemberInvitesWorker # rubocop:disable Scalability/Idempote
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :authentication_and_authorization feature_category :authentication_and_authorization
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -8,7 +8,6 @@ class ScheduleMergeRequestCleanupRefsWorker ...@@ -8,7 +8,6 @@ class ScheduleMergeRequestCleanupRefsWorker
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :code_review feature_category :code_review
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform def perform
......
...@@ -9,7 +9,6 @@ module SshKeys ...@@ -9,7 +9,6 @@ module SshKeys
include CronjobQueue include CronjobQueue
feature_category :compliance_management feature_category :compliance_management
tags :exclude_from_kubernetes
idempotent! idempotent!
BATCH_SIZE = 500 BATCH_SIZE = 500
......
...@@ -9,7 +9,6 @@ module SshKeys ...@@ -9,7 +9,6 @@ module SshKeys
include CronjobQueue include CronjobQueue
feature_category :compliance_management feature_category :compliance_management
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform def perform
......
...@@ -9,8 +9,6 @@ module TodosDestroyer ...@@ -9,8 +9,6 @@ module TodosDestroyer
sidekiq_options retry: 3 sidekiq_options retry: 3
include TodosDestroyerQueue include TodosDestroyerQueue
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform(target_id, target_type) def perform(target_id, target_type)
......
...@@ -12,7 +12,6 @@ module UserStatusCleanup ...@@ -12,7 +12,6 @@ module UserStatusCleanup
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
feature_category :users feature_category :users
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -9,7 +9,6 @@ module Users ...@@ -9,7 +9,6 @@ module Users
include CronjobQueue include CronjobQueue
feature_category :utilization feature_category :utilization
tags :exclude_from_kubernetes
NUMBER_OF_BATCHES = 50 NUMBER_OF_BATCHES = 50
BATCH_SIZE = 200 BATCH_SIZE = 200
......
...@@ -7,7 +7,6 @@ module WebHooks ...@@ -7,7 +7,6 @@ module WebHooks
data_consistency :always data_consistency :always
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :integrations feature_category :integrations
tags :exclude_from_kubernetes
urgency :low urgency :low
idempotent! idempotent!
......
...@@ -5,8 +5,6 @@ module Wikis ...@@ -5,8 +5,6 @@ module Wikis
extend ::Gitlab::Utils::Override extend ::Gitlab::Utils::Override
include GitGarbageCollectMethods include GitGarbageCollectMethods
tags :exclude_from_kubernetes
private private
override :find_resource override :find_resource
......
...@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/337507 ...@@ -5,4 +5,4 @@ rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/337507
milestone: '14.2' milestone: '14.2'
type: development type: development
group: group::pipeline authoring group: group::pipeline authoring
default_enabled: false default_enabled: true
...@@ -450,12 +450,12 @@ that proposes expanding this feature to support more variables. ...@@ -450,12 +450,12 @@ that proposes expanding this feature to support more variables.
#### `rules` with `include` #### `rules` with `include`
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/276515) in GitLab 14.2. > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/276515) in GitLab 14.2.
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/337507) in GitLab 14.3 and is ready for production use.
> - [Enabled with `ci_include_rules` flag](https://gitlab.com/gitlab-org/gitlab/-/issues/337507) for self-managed GitLab in GitLab 14.3 and is ready for production use.
NOTE: FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, On self-managed GitLab, by default this feature is available. To hide the feature per project or for your entire instance, ask an administrator to [disable the `ci_include_rules` flag](../../administration/feature_flags.md). On GitLab.com, this feature is available.
ask an administrator to [enable the `ci_include_rules` flag](../../administration/feature_flags.md).
On GitLab.com, this feature is not available. The feature is not ready for production use.
You can use [`rules`](#rules) with `include` to conditionally include other configuration files. You can use [`rules`](#rules) with `include` to conditionally include other configuration files.
You can only use `rules:if` in `include` with [certain variables](#variables-with-include). You can only use `rules:if` in `include` with [certain variables](#variables-with-include).
...@@ -1627,7 +1627,7 @@ To disable directed acyclic graphs (DAG), set the limit to `0`. ...@@ -1627,7 +1627,7 @@ To disable directed acyclic graphs (DAG), set the limit to `0`.
#### Artifact downloads with `needs` #### Artifact downloads with `needs`
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14311) in GitLab v12.6. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14311) in GitLab 12.6.
When a job uses `needs`, it no longer downloads all artifacts from previous stages When a job uses `needs`, it no longer downloads all artifacts from previous stages
by default, because jobs with `needs` can start before earlier stages complete. With by default, because jobs with `needs` can start before earlier stages complete. With
...@@ -1679,7 +1679,7 @@ with `needs`. ...@@ -1679,7 +1679,7 @@ with `needs`.
#### Cross project artifact downloads with `needs` **(PREMIUM)** #### Cross project artifact downloads with `needs` **(PREMIUM)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14311) in GitLab v12.7. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14311) in GitLab 12.7.
Use `needs` to download artifacts from up to five jobs in pipelines: Use `needs` to download artifacts from up to five jobs in pipelines:
...@@ -1752,7 +1752,7 @@ pipelines running on the same ref could override the artifacts. ...@@ -1752,7 +1752,7 @@ pipelines running on the same ref could override the artifacts.
#### Artifact downloads to child pipelines #### Artifact downloads to child pipelines
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/255983) in GitLab v13.7. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/255983) in GitLab 13.7.
A [child pipeline](../pipelines/parent_child_pipelines.md) can download artifacts from a job in A [child pipeline](../pipelines/parent_child_pipelines.md) can download artifacts from a job in
its parent pipeline or another child pipeline in the same parent-child pipeline hierarchy. its parent pipeline or another child pipeline in the same parent-child pipeline hierarchy.
...@@ -2379,7 +2379,7 @@ cache-job: ...@@ -2379,7 +2379,7 @@ cache-job:
##### `cache:key:files` ##### `cache:key:files`
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/18986) in GitLab v12.5. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/18986) in GitLab 12.5.
Use the `cache:key:files` keyword to generate a new key when one or two specific files Use the `cache:key:files` keyword to generate a new key when one or two specific files
change. `cache:key:files` lets you reuse some caches, and rebuild them less often, change. `cache:key:files` lets you reuse some caches, and rebuild them less often,
...@@ -2417,7 +2417,7 @@ fallback key is `default`. ...@@ -2417,7 +2417,7 @@ fallback key is `default`.
##### `cache:key:prefix` ##### `cache:key:prefix`
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/18986) in GitLab v12.5. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/18986) in GitLab 12.5.
Use `cache:key:prefix` to combine a prefix with the SHA computed for [`cache:key:files`](#cachekeyfiles). Use `cache:key:prefix` to combine a prefix with the SHA computed for [`cache:key:files`](#cachekeyfiles).
......
...@@ -289,9 +289,9 @@ If the `latest` template does not exist yet, you can copy [the stable template]( ...@@ -289,9 +289,9 @@ If the `latest` template does not exist yet, you can copy [the stable template](
### How to include an older stable template ### How to include an older stable template
Users may want to use an older [stable template](#stable-version) that is not bundled Users may want to use an older [stable template](#stable-version) that is not bundled
in the current GitLab package. For example, the stable templates in GitLab v13.0 and in the current GitLab package. For example, the stable templates in GitLab 13.0 and
GitLab v14.0 could be so different that a user wants to continue using the v13.0 template even GitLab 14.0 could be so different that a user wants to continue using the GitLab 13.0
after upgrading to GitLab 14.0. template even after upgrading to GitLab 14.0.
You can add a note in the template or in documentation explaining how to use `include:remote` You can add a note in the template or in documentation explaining how to use `include:remote`
to include older template versions. If other templates are included with `include: template`, to include older template versions. If other templates are included with `include: template`,
......
...@@ -109,7 +109,7 @@ The following settings can be configured: ...@@ -109,7 +109,7 @@ The following settings can be configured:
- `enabled`: By default this is set to `false`. Set this to `true` to enable Rack Attack. - `enabled`: By default this is set to `false`. Set this to `true` to enable Rack Attack.
- `ip_whitelist`: Whitelist any IPs from being blocked. They must be formatted as strings within a Ruby array. - `ip_whitelist`: Whitelist any IPs from being blocked. They must be formatted as strings within a Ruby array.
CIDR notation is supported in GitLab v12.1 and up. CIDR notation is supported in GitLab 12.1 and later.
For example, `["127.0.0.1", "127.0.0.2", "127.0.0.3", "192.168.0.1/24"]`. For example, `["127.0.0.1", "127.0.0.2", "127.0.0.3", "192.168.0.1/24"]`.
- `maxretry`: The maximum amount of times a request can be made in the - `maxretry`: The maximum amount of times a request can be made in the
specified time. specified time.
......
...@@ -159,7 +159,7 @@ steps to upgrade to v2: ...@@ -159,7 +159,7 @@ steps to upgrade to v2:
To use a specific version of Auto Deploy dependencies, specify the previous Auto Deploy To use a specific version of Auto Deploy dependencies, specify the previous Auto Deploy
stable template that contains the [desired version of `auto-deploy-image` and `auto-deploy-app`](#verify-dependency-versions). stable template that contains the [desired version of `auto-deploy-image` and `auto-deploy-app`](#verify-dependency-versions).
For example, if the template is bundled in GitLab v13.3, change your `.gitlab-ci.yml` to: For example, if the template is bundled in GitLab 13.3, change your `.gitlab-ci.yml` to:
```yaml ```yaml
include: include:
......
...@@ -11,7 +11,7 @@ import { ...@@ -11,7 +11,7 @@ import {
GlFormTextarea, GlFormTextarea,
} from '@gitlab/ui'; } from '@gitlab/ui';
import { TYPE_ITERATIONS_CADENCE } from '~/graphql_shared/constants'; import { TYPE_ITERATIONS_CADENCE } from '~/graphql_shared/constants';
import { convertToGraphQLId } from '~/graphql_shared/utils'; import { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';
import { s__, __ } from '~/locale'; import { s__, __ } from '~/locale';
import createCadence from '../queries/cadence_create.mutation.graphql'; import createCadence from '../queries/cadence_create.mutation.graphql';
import updateCadence from '../queries/cadence_update.mutation.graphql'; import updateCadence from '../queries/cadence_update.mutation.graphql';
...@@ -164,12 +164,15 @@ export default { ...@@ -164,12 +164,15 @@ export default {
id: this.cadenceId, id: this.cadenceId,
}; };
}, },
result({ data: { group, errors } }) { result({ data: { group, errors }, error }) {
if (error) {
return;
}
if (errors?.length) { if (errors?.length) {
[this.errorMessage] = errors; [this.errorMessage] = errors;
return; return;
} }
const cadence = group?.iterationCadences?.nodes?.[0]; const cadence = group?.iterationCadences?.nodes?.[0];
if (!cadence) { if (!cadence) {
...@@ -244,14 +247,17 @@ export default { ...@@ -244,14 +247,17 @@ export default {
return; return;
} }
const { errors } = data?.result || {}; const { iterationCadence, errors } = data?.result || {};
if (errors?.length > 0) { if (errors?.length > 0) {
[this.errorMessage] = errors; [this.errorMessage] = errors;
return; return;
} }
this.$router.push({ name: 'index' }); this.$router.push({
name: 'index',
query: { createdCadenceId: getIdFromGraphQLId(iterationCadence.id) },
});
}) })
.catch((e) => { .catch((e) => {
this.errorMessage = __('Unable to save cadence. Please try again'); this.errorMessage = __('Unable to save cadence. Please try again');
......
...@@ -15,11 +15,13 @@ import { __, s__ } from '~/locale'; ...@@ -15,11 +15,13 @@ import { __, s__ } from '~/locale';
import { Namespace } from '../constants'; import { Namespace } from '../constants';
import groupQuery from '../queries/group_iterations_in_cadence.query.graphql'; import groupQuery from '../queries/group_iterations_in_cadence.query.graphql';
import projectQuery from '../queries/project_iterations_in_cadence.query.graphql'; import projectQuery from '../queries/project_iterations_in_cadence.query.graphql';
import TimeboxStatusBadge from './timebox_status_badge.vue';
const pageSize = 20; const pageSize = 20;
const i18n = Object.freeze({ const i18n = Object.freeze({
noResults: s__('Iterations|No iterations in cadence.'), noResults: s__('Iterations|No iterations in cadence.'),
createFirstIteration: s__('Iterations|Create your first iteration'),
error: __('Error loading iterations'), error: __('Error loading iterations'),
deleteCadence: s__('Iterations|Delete cadence'), deleteCadence: s__('Iterations|Delete cadence'),
...@@ -43,6 +45,7 @@ export default { ...@@ -43,6 +45,7 @@ export default {
GlInfiniteScroll, GlInfiniteScroll,
GlModal, GlModal,
GlSkeletonLoader, GlSkeletonLoader,
TimeboxStatusBadge,
}, },
apollo: { apollo: {
workspace: { workspace: {
...@@ -84,6 +87,11 @@ export default { ...@@ -84,6 +87,11 @@ export default {
type: String, type: String,
required: true, required: true,
}, },
showStateBadge: {
type: Boolean,
required: false,
default: false,
},
}, },
data() { data() {
return { return {
...@@ -150,6 +158,14 @@ export default { ...@@ -150,6 +158,14 @@ export default {
}; };
}, },
}, },
created() {
if (
`${this.$router.currentRoute?.query.createdCadenceId}` ===
`${getIdFromGraphQLId(this.cadenceId)}`
) {
this.expanded = true;
}
},
methods: { methods: {
fetchMore() { fetchMore() {
if (this.iterations.length === 0 || !this.hasNextPage || this.loading) { if (this.iterations.length === 0 || !this.hasNextPage || this.loading) {
...@@ -213,8 +229,7 @@ export default { ...@@ -213,8 +229,7 @@ export default {
name="chevron-right" name="chevron-right"
class="gl-transition-medium" class="gl-transition-medium"
:class="{ 'gl-rotate-90': expanded }" :class="{ 'gl-rotate-90': expanded }"
/> /><span class="gl-ml-2">{{ title }}</span>
{{ title }}
</gl-button> </gl-button>
<span v-if="durationInWeeks" class="gl-mr-5 gl-display-none gl-sm-display-inline-block"> <span v-if="durationInWeeks" class="gl-mr-5 gl-display-none gl-sm-display-inline-block">
...@@ -279,6 +294,7 @@ export default { ...@@ -279,6 +294,7 @@ export default {
<router-link :to="path(iteration.id)"> <router-link :to="path(iteration.id)">
{{ iteration.title }} {{ iteration.title }}
</router-link> </router-link>
<timebox-status-badge v-if="showStateBadge" :state="iteration.state" />
</li> </li>
</ol> </ol>
<div v-if="loading" class="gl-p-5"> <div v-if="loading" class="gl-p-5">
...@@ -286,9 +302,19 @@ export default { ...@@ -286,9 +302,19 @@ export default {
</div> </div>
</template> </template>
</gl-infinite-scroll> </gl-infinite-scroll>
<p v-else-if="!loading" class="gl-px-5"> <template v-else-if="!loading">
{{ i18n.noResults }} <p class="gl-px-7">{{ i18n.noResults }}</p>
</p> <gl-button
v-if="!automatic"
variant="confirm"
category="secondary"
class="gl-mb-5 gl-ml-7"
data-qa-selector="create_cadence_cta"
:to="newIteration"
>
{{ i18n.createFirstIteration }}
</gl-button>
</template>
</gl-collapse> </gl-collapse>
</li> </li>
</template> </template>
...@@ -97,6 +97,11 @@ export default { ...@@ -97,6 +97,11 @@ export default {
} }
}, },
}, },
mounted() {
if (this.$router.currentRoute.query.createdCadenceId) {
this.$apollo.queries.workspace.refetch();
}
},
methods: { methods: {
nextPage() { nextPage() {
this.pagination = { this.pagination = {
...@@ -172,6 +177,7 @@ export default { ...@@ -172,6 +177,7 @@ export default {
:automatic="cadence.automatic" :automatic="cadence.automatic"
:title="cadence.title" :title="cadence.title"
:iteration-state="state" :iteration-state="state"
:show-state-badge="tabIndex === 2"
@delete-cadence="deleteCadence" @delete-cadence="deleteCadence"
/> />
</ul> </ul>
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
/* eslint-disable vue/no-v-html */ /* eslint-disable vue/no-v-html */
import { import {
GlAlert, GlAlert,
GlBadge,
GlDropdown, GlDropdown,
GlDropdownItem, GlDropdownItem,
GlEmptyState, GlEmptyState,
...@@ -13,29 +12,24 @@ import BurnCharts from 'ee/burndown_chart/components/burn_charts.vue'; ...@@ -13,29 +12,24 @@ import BurnCharts from 'ee/burndown_chart/components/burn_charts.vue';
import { TYPE_ITERATION } from '~/graphql_shared/constants'; import { TYPE_ITERATION } from '~/graphql_shared/constants';
import { convertToGraphQLId } from '~/graphql_shared/utils'; import { convertToGraphQLId } from '~/graphql_shared/utils';
import { formatDate } from '~/lib/utils/datetime_utility'; import { formatDate } from '~/lib/utils/datetime_utility';
import { __, s__ } from '~/locale'; import { s__ } from '~/locale';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { Namespace } from '../constants'; import { Namespace } from '../constants';
import query from '../queries/iteration.query.graphql'; import query from '../queries/iteration.query.graphql';
import IterationReportTabs from './iteration_report_tabs.vue'; import IterationReportTabs from './iteration_report_tabs.vue';
import TimeboxStatusBadge from './timebox_status_badge.vue';
const iterationStates = {
closed: 'closed',
upcoming: 'upcoming',
expired: 'expired',
};
export default { export default {
components: { components: {
BurnCharts, BurnCharts,
GlAlert, GlAlert,
GlBadge,
GlIcon, GlIcon,
GlDropdown, GlDropdown,
GlDropdownItem, GlDropdownItem,
GlEmptyState, GlEmptyState,
GlLoadingIcon, GlLoadingIcon,
IterationReportTabs, IterationReportTabs,
TimeboxStatusBadge,
}, },
apollo: { apollo: {
iteration: { iteration: {
...@@ -85,21 +79,6 @@ export default { ...@@ -85,21 +79,6 @@ export default {
showEmptyState() { showEmptyState() {
return !this.loading && this.iteration && !this.iteration.title; return !this.loading && this.iteration && !this.iteration.title;
}, },
status() {
switch (this.iteration.state) {
case iterationStates.closed:
return {
text: __('Closed'),
variant: 'danger',
};
case iterationStates.expired:
return { text: __('Past due'), variant: 'warning' };
case iterationStates.upcoming:
return { text: __('Upcoming'), variant: 'neutral' };
default:
return { text: __('Open'), variant: 'success' };
}
},
editPage() { editPage() {
return { return {
name: 'editIteration', name: 'editIteration',
...@@ -130,9 +109,7 @@ export default { ...@@ -130,9 +109,7 @@ export default {
ref="topbar" ref="topbar"
class="gl-display-flex gl-justify-items-center gl-align-items-center gl-py-3 gl-border-1 gl-border-b-solid gl-border-gray-100" class="gl-display-flex gl-justify-items-center gl-align-items-center gl-py-3 gl-border-1 gl-border-b-solid gl-border-gray-100"
> >
<gl-badge :variant="status.variant"> <timebox-status-badge :state="iteration.state" />
{{ status.text }}
</gl-badge>
<span class="gl-ml-4" <span class="gl-ml-4"
>{{ formatDate(iteration.startDate) }}{{ formatDate(iteration.dueDate) }}</span >{{ formatDate(iteration.startDate) }}{{ formatDate(iteration.dueDate) }}</span
> >
......
<script>
import { GlBadge } from '@gitlab/ui';
import { __ } from '~/locale';
const iterationStates = {
closed: 'closed',
upcoming: 'upcoming',
expired: 'expired',
};
export default {
components: {
GlBadge,
},
props: {
state: {
type: String,
required: false,
default: '',
},
},
computed: {
status() {
switch (this.state) {
case iterationStates.closed:
return {
text: __('Closed'),
variant: 'danger',
};
case iterationStates.expired:
return { text: __('Past due'), variant: 'warning' };
case iterationStates.upcoming:
return { text: __('Upcoming'), variant: 'neutral' };
default:
return { text: __('Open'), variant: 'success' };
}
},
},
};
</script>
<template>
<gl-badge :variant="status.variant">
{{ status.text }}
</gl-badge>
</template>
...@@ -22,7 +22,6 @@ module EE ...@@ -22,7 +22,6 @@ module EE
field :epics, ::Types::EpicType.connection_type, null: true, field :epics, ::Types::EpicType.connection_type, null: true,
description: 'Find epics.', description: 'Find epics.',
extras: [:lookahead], extras: [:lookahead],
max_page_size: 2000,
resolver: ::Resolvers::EpicsResolver resolver: ::Resolvers::EpicsResolver
field :epic_board, field :epic_board,
......
# frozen_string_literal: true
module SetsMaxPageSize
extend ActiveSupport::Concern
DEPRECATED_MAX_PAGE_SIZE = 1000
# We no longer need 1000 page size after epics roadmap pagination feature is released,
# after :performance_roadmap flag rollout we can safely use default max page size(100)
# for epics, child epics and child issues without breaking current roadmaps.
#
# When removing :performance_roadmap flag delete this file and remove its method call and
# the fields using the resolver will keep using default max page size.
# Flag rollout issue: https://gitlab.com/gitlab-org/gitlab/-/issues/337198
private
def set_temp_limit_for(actor)
max_page_size =
if Feature.enabled?(:performance_roadmap, actor, default_enabled: :yaml)
context.schema.default_max_page_size
else
DEPRECATED_MAX_PAGE_SIZE
end
field.max_page_size = max_page_size # rubocop: disable Graphql/Descriptions
end
end
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
module Resolvers module Resolvers
class EpicIssuesResolver < BaseResolver class EpicIssuesResolver < BaseResolver
include CachingArrayResolver include CachingArrayResolver
include SetsMaxPageSize
type Types::EpicIssueType.connection_type, null: true type Types::EpicIssueType.connection_type, null: true
...@@ -21,6 +22,8 @@ module Resolvers ...@@ -21,6 +22,8 @@ module Resolvers
end end
def query_for(id) def query_for(id)
set_temp_limit_for(epic.group) # Can be removed with :performance_roadmap feature flag: https://gitlab.com/gitlab-org/gitlab/-/issues/337198
::Epic.related_issues(ids: id) ::Epic.related_issues(ids: id)
end end
......
...@@ -4,6 +4,7 @@ module Resolvers ...@@ -4,6 +4,7 @@ module Resolvers
class EpicsResolver < BaseResolver class EpicsResolver < BaseResolver
include TimeFrameArguments include TimeFrameArguments
include LooksAhead include LooksAhead
include SetsMaxPageSize
argument :iid, GraphQL::Types::ID, argument :iid, GraphQL::Types::ID,
required: false, required: false,
...@@ -102,6 +103,8 @@ module Resolvers ...@@ -102,6 +103,8 @@ module Resolvers
end end
def find_epics(args) def find_epics(args)
set_temp_limit_for(group) # Can be removed with :performance_roadmap feature flag: https://gitlab.com/gitlab-org/gitlab/-/issues/337198
apply_lookahead(EpicsFinder.new(context[:current_user], args).execute) apply_lookahead(EpicsFinder.new(context[:current_user], args).execute)
end end
......
...@@ -84,7 +84,6 @@ module Types ...@@ -84,7 +84,6 @@ module Types
field :children, ::Types::EpicType.connection_type, null: true, field :children, ::Types::EpicType.connection_type, null: true,
description: 'Children (sub-epics) of the epic.', description: 'Children (sub-epics) of the epic.',
max_page_size: 1000,
resolver: ::Resolvers::EpicsResolver resolver: ::Resolvers::EpicsResolver
field :labels, Types::LabelType.connection_type, null: true, field :labels, Types::LabelType.connection_type, null: true,
description: 'Labels assigned to the epic.' description: 'Labels assigned to the epic.'
...@@ -132,7 +131,6 @@ module Types ...@@ -132,7 +131,6 @@ module Types
null: true, null: true,
complexity: 5, complexity: 5,
description: 'A list of issues associated with the epic.', description: 'A list of issues associated with the epic.',
max_page_size: 1000,
resolver: Resolvers::EpicIssuesResolver resolver: Resolvers::EpicIssuesResolver
field :descendant_counts, Types::EpicDescendantCountType, null: true, field :descendant_counts, Types::EpicDescendantCountType, null: true,
......
...@@ -387,6 +387,10 @@ module EE ...@@ -387,6 +387,10 @@ module EE
feature_available?(:jira_issues_integration) feature_available?(:jira_issues_integration)
end end
def zentao_issues_integration_available?
feature_available?(:zentao_issues_integration)
end
def multiple_approval_rules_available? def multiple_approval_rules_available?
feature_available?(:multiple_approval_rules) feature_available?(:multiple_approval_rules)
end end
......
...@@ -137,6 +137,7 @@ class License < ApplicationRecord ...@@ -137,6 +137,7 @@ class License < ApplicationRecord
oncall_schedules oncall_schedules
escalation_policies escalation_policies
export_user_permissions export_user_permissions
zentao_issues_integration
] ]
EEP_FEATURES.freeze EEP_FEATURES.freeze
......
...@@ -11,7 +11,6 @@ class ActiveUserCountThresholdWorker # rubocop:disable Scalability/IdempotentWor ...@@ -11,7 +11,6 @@ class ActiveUserCountThresholdWorker # rubocop:disable Scalability/IdempotentWor
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
feature_category :license feature_category :license
tags :exclude_from_kubernetes
def perform def perform
License.with_valid_license do |license| License.with_valid_license do |license|
......
...@@ -20,8 +20,7 @@ ...@@ -20,8 +20,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:adjourned_group_deletion - :name: cronjob:adjourned_group_deletion
:worker_name: AdjournedGroupDeletionWorker :worker_name: AdjournedGroupDeletionWorker
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
...@@ -48,8 +47,7 @@ ...@@ -48,8 +47,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:app_sec_dast_profile_schedule - :name: cronjob:app_sec_dast_profile_schedule
:worker_name: AppSec::Dast::ProfileScheduleWorker :worker_name: AppSec::Dast::ProfileScheduleWorker
:feature_category: :dynamic_application_security_testing :feature_category: :dynamic_application_security_testing
...@@ -112,8 +110,7 @@ ...@@ -112,8 +110,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:geo_container_repository_sync_dispatch - :name: cronjob:geo_container_repository_sync_dispatch
:worker_name: Geo::ContainerRepositorySyncDispatchWorker :worker_name: Geo::ContainerRepositorySyncDispatchWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -122,8 +119,7 @@ ...@@ -122,8 +119,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_file_download_dispatch - :name: cronjob:geo_file_download_dispatch
:worker_name: Geo::FileDownloadDispatchWorker :worker_name: Geo::FileDownloadDispatchWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -132,8 +128,7 @@ ...@@ -132,8 +128,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_metrics_update - :name: cronjob:geo_metrics_update
:worker_name: Geo::MetricsUpdateWorker :worker_name: Geo::MetricsUpdateWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -142,8 +137,7 @@ ...@@ -142,8 +137,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_prune_event_log - :name: cronjob:geo_prune_event_log
:worker_name: Geo::PruneEventLogWorker :worker_name: Geo::PruneEventLogWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -152,8 +146,7 @@ ...@@ -152,8 +146,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_registry_sync - :name: cronjob:geo_registry_sync
:worker_name: Geo::RegistrySyncWorker :worker_name: Geo::RegistrySyncWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -171,8 +164,7 @@ ...@@ -171,8 +164,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_repository_verification_primary_batch - :name: cronjob:geo_repository_verification_primary_batch
:worker_name: Geo::RepositoryVerification::Primary::BatchWorker :worker_name: Geo::RepositoryVerification::Primary::BatchWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -181,8 +173,7 @@ ...@@ -181,8 +173,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_repository_verification_secondary_scheduler - :name: cronjob:geo_repository_verification_secondary_scheduler
:worker_name: Geo::RepositoryVerification::Secondary::SchedulerWorker :worker_name: Geo::RepositoryVerification::Secondary::SchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -191,8 +182,7 @@ ...@@ -191,8 +182,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_repository_verification_secondary_shard - :name: cronjob:geo_repository_verification_secondary_shard
:worker_name: Geo::RepositoryVerification::Secondary::ShardWorker :worker_name: Geo::RepositoryVerification::Secondary::ShardWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -201,8 +191,7 @@ ...@@ -201,8 +191,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_scheduler_per_shard_scheduler - :name: cronjob:geo_scheduler_per_shard_scheduler
:worker_name: Geo::Scheduler::PerShardSchedulerWorker :worker_name: Geo::Scheduler::PerShardSchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -211,8 +200,7 @@ ...@@ -211,8 +200,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_scheduler_primary_per_shard_scheduler - :name: cronjob:geo_scheduler_primary_per_shard_scheduler
:worker_name: Geo::Scheduler::Primary::PerShardSchedulerWorker :worker_name: Geo::Scheduler::Primary::PerShardSchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -221,8 +209,7 @@ ...@@ -221,8 +209,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_scheduler_secondary_per_shard_scheduler - :name: cronjob:geo_scheduler_secondary_per_shard_scheduler
:worker_name: Geo::Scheduler::Secondary::PerShardSchedulerWorker :worker_name: Geo::Scheduler::Secondary::PerShardSchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -231,8 +218,7 @@ ...@@ -231,8 +218,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_secondary_registry_consistency - :name: cronjob:geo_secondary_registry_consistency
:worker_name: Geo::Secondary::RegistryConsistencyWorker :worker_name: Geo::Secondary::RegistryConsistencyWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -241,8 +227,7 @@ ...@@ -241,8 +227,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: cronjob:geo_secondary_usage_data_cron - :name: cronjob:geo_secondary_usage_data_cron
:worker_name: Geo::SecondaryUsageDataCronWorker :worker_name: Geo::SecondaryUsageDataCronWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -251,9 +236,7 @@ ...@@ -251,9 +236,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: cronjob:geo_sidekiq_cron_config - :name: cronjob:geo_sidekiq_cron_config
:worker_name: Geo::SidekiqCronConfigWorker :worker_name: Geo::SidekiqCronConfigWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -271,9 +254,7 @@ ...@@ -271,9 +254,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: cronjob:geo_verification_cron - :name: cronjob:geo_verification_cron
:worker_name: Geo::VerificationCronWorker :worker_name: Geo::VerificationCronWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -282,9 +263,7 @@ ...@@ -282,9 +263,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: cronjob:historical_data - :name: cronjob:historical_data
:worker_name: HistoricalDataWorker :worker_name: HistoricalDataWorker
:feature_category: :utilization :feature_category: :utilization
...@@ -311,8 +290,7 @@ ...@@ -311,8 +290,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:incident_management_oncall_rotations_persist_all_rotations_shifts_job - :name: cronjob:incident_management_oncall_rotations_persist_all_rotations_shifts_job
:worker_name: IncidentManagement::OncallRotations::PersistAllRotationsShiftsJob :worker_name: IncidentManagement::OncallRotations::PersistAllRotationsShiftsJob
:feature_category: :incident_management :feature_category: :incident_management
...@@ -321,8 +299,7 @@ ...@@ -321,8 +299,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:incident_management_pending_escalations_schedule_check_cron - :name: cronjob:incident_management_pending_escalations_schedule_check_cron
:worker_name: IncidentManagement::PendingEscalations::ScheduleCheckCronWorker :worker_name: IncidentManagement::PendingEscalations::ScheduleCheckCronWorker
:feature_category: :incident_management :feature_category: :incident_management
...@@ -448,8 +425,7 @@ ...@@ -448,8 +425,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: cronjob:vulnerabilities_statistics_schedule - :name: cronjob:vulnerabilities_statistics_schedule
:worker_name: Vulnerabilities::Statistics::ScheduleWorker :worker_name: Vulnerabilities::Statistics::ScheduleWorker
:feature_category: :vulnerability_management :feature_category: :vulnerability_management
...@@ -467,8 +443,7 @@ ...@@ -467,8 +443,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 3 :weight: 3
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: dora_metrics:dora_daily_metrics_refresh - :name: dora_metrics:dora_daily_metrics_refresh
:worker_name: Dora::DailyMetrics::RefreshWorker :worker_name: Dora::DailyMetrics::RefreshWorker
:feature_category: :continuous_delivery :feature_category: :continuous_delivery
...@@ -477,8 +452,7 @@ ...@@ -477,8 +452,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: epics:epics_update_epics_dates - :name: epics:epics_update_epics_dates
:worker_name: Epics::UpdateEpicsDatesWorker :worker_name: Epics::UpdateEpicsDatesWorker
:feature_category: :epics :feature_category: :epics
...@@ -496,8 +470,7 @@ ...@@ -496,8 +470,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_batch_project_registry_scheduler - :name: geo:geo_batch_project_registry_scheduler
:worker_name: Geo::Batch::ProjectRegistrySchedulerWorker :worker_name: Geo::Batch::ProjectRegistrySchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -506,8 +479,7 @@ ...@@ -506,8 +479,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_container_repository_sync - :name: geo:geo_container_repository_sync
:worker_name: Geo::ContainerRepositorySyncWorker :worker_name: Geo::ContainerRepositorySyncWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -516,8 +488,7 @@ ...@@ -516,8 +488,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_design_repository_shard_sync - :name: geo:geo_design_repository_shard_sync
:worker_name: Geo::DesignRepositoryShardSyncWorker :worker_name: Geo::DesignRepositoryShardSyncWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -526,8 +497,7 @@ ...@@ -526,8 +497,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_design_repository_sync - :name: geo:geo_design_repository_sync
:worker_name: Geo::DesignRepositorySyncWorker :worker_name: Geo::DesignRepositorySyncWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -536,8 +506,7 @@ ...@@ -536,8 +506,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_destroy - :name: geo:geo_destroy
:worker_name: Geo::DestroyWorker :worker_name: Geo::DestroyWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -546,9 +515,7 @@ ...@@ -546,9 +515,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: geo:geo_event - :name: geo:geo_event
:worker_name: Geo::EventWorker :worker_name: Geo::EventWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -557,8 +524,7 @@ ...@@ -557,8 +524,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_file_download - :name: geo:geo_file_download
:worker_name: Geo::FileDownloadWorker :worker_name: Geo::FileDownloadWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -567,8 +533,7 @@ ...@@ -567,8 +533,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_file_registry_removal - :name: geo:geo_file_registry_removal
:worker_name: Geo::FileRegistryRemovalWorker :worker_name: Geo::FileRegistryRemovalWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -577,8 +542,7 @@ ...@@ -577,8 +542,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_file_removal - :name: geo:geo_file_removal
:worker_name: Geo::FileRemovalWorker :worker_name: Geo::FileRemovalWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -587,8 +551,7 @@ ...@@ -587,8 +551,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_hashed_storage_attachments_migration - :name: geo:geo_hashed_storage_attachments_migration
:worker_name: Geo::HashedStorageAttachmentsMigrationWorker :worker_name: Geo::HashedStorageAttachmentsMigrationWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -597,8 +560,7 @@ ...@@ -597,8 +560,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_hashed_storage_migration - :name: geo:geo_hashed_storage_migration
:worker_name: Geo::HashedStorageMigrationWorker :worker_name: Geo::HashedStorageMigrationWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -607,8 +569,7 @@ ...@@ -607,8 +569,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_project_sync - :name: geo:geo_project_sync
:worker_name: Geo::ProjectSyncWorker :worker_name: Geo::ProjectSyncWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -617,8 +578,7 @@ ...@@ -617,8 +578,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_rename_repository - :name: geo:geo_rename_repository
:worker_name: Geo::RenameRepositoryWorker :worker_name: Geo::RenameRepositoryWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -627,8 +587,7 @@ ...@@ -627,8 +587,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repositories_clean_up - :name: geo:geo_repositories_clean_up
:worker_name: Geo::RepositoriesCleanUpWorker :worker_name: Geo::RepositoriesCleanUpWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -637,8 +596,7 @@ ...@@ -637,8 +596,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repository_cleanup - :name: geo:geo_repository_cleanup
:worker_name: Geo::RepositoryCleanupWorker :worker_name: Geo::RepositoryCleanupWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -647,8 +605,7 @@ ...@@ -647,8 +605,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repository_destroy - :name: geo:geo_repository_destroy
:worker_name: GeoRepositoryDestroyWorker :worker_name: GeoRepositoryDestroyWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -657,8 +614,7 @@ ...@@ -657,8 +614,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repository_shard_sync - :name: geo:geo_repository_shard_sync
:worker_name: Geo::RepositoryShardSyncWorker :worker_name: Geo::RepositoryShardSyncWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -667,8 +623,7 @@ ...@@ -667,8 +623,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repository_verification_primary_shard - :name: geo:geo_repository_verification_primary_shard
:worker_name: Geo::RepositoryVerification::Primary::ShardWorker :worker_name: Geo::RepositoryVerification::Primary::ShardWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -677,8 +632,7 @@ ...@@ -677,8 +632,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repository_verification_primary_single - :name: geo:geo_repository_verification_primary_single
:worker_name: Geo::RepositoryVerification::Primary::SingleWorker :worker_name: Geo::RepositoryVerification::Primary::SingleWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -687,8 +641,7 @@ ...@@ -687,8 +641,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_repository_verification_secondary_single - :name: geo:geo_repository_verification_secondary_single
:worker_name: Geo::RepositoryVerification::Secondary::SingleWorker :worker_name: Geo::RepositoryVerification::Secondary::SingleWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -697,8 +650,7 @@ ...@@ -697,8 +650,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_reverification_batch - :name: geo:geo_reverification_batch
:worker_name: Geo::ReverificationBatchWorker :worker_name: Geo::ReverificationBatchWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -707,9 +659,7 @@ ...@@ -707,9 +659,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: geo:geo_scheduler_primary_scheduler - :name: geo:geo_scheduler_primary_scheduler
:worker_name: Geo::Scheduler::Primary::SchedulerWorker :worker_name: Geo::Scheduler::Primary::SchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -718,8 +668,7 @@ ...@@ -718,8 +668,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_scheduler_scheduler - :name: geo:geo_scheduler_scheduler
:worker_name: Geo::Scheduler::SchedulerWorker :worker_name: Geo::Scheduler::SchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -728,8 +677,7 @@ ...@@ -728,8 +677,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_scheduler_secondary_scheduler - :name: geo:geo_scheduler_secondary_scheduler
:worker_name: Geo::Scheduler::Secondary::SchedulerWorker :worker_name: Geo::Scheduler::Secondary::SchedulerWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -738,8 +686,7 @@ ...@@ -738,8 +686,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: geo:geo_verification - :name: geo:geo_verification
:worker_name: Geo::VerificationWorker :worker_name: Geo::VerificationWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -748,9 +695,7 @@ ...@@ -748,9 +695,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: geo:geo_verification_batch - :name: geo:geo_verification_batch
:worker_name: Geo::VerificationBatchWorker :worker_name: Geo::VerificationBatchWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -759,9 +704,7 @@ ...@@ -759,9 +704,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: geo:geo_verification_timeout - :name: geo:geo_verification_timeout
:worker_name: Geo::VerificationTimeoutWorker :worker_name: Geo::VerificationTimeoutWorker
:feature_category: :geo_replication :feature_category: :geo_replication
...@@ -770,9 +713,7 @@ ...@@ -770,9 +713,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :exclude_from_gitlab_com
- :name: iterations:iterations_roll_over_issues - :name: iterations:iterations_roll_over_issues
:worker_name: Iterations::RollOverIssuesWorker :worker_name: Iterations::RollOverIssuesWorker
:feature_category: :issue_tracking :feature_category: :issue_tracking
...@@ -844,8 +785,7 @@ ...@@ -844,8 +785,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: security_scans:security_track_secure_scans - :name: security_scans:security_track_secure_scans
:worker_name: Security::TrackSecureScansWorker :worker_name: Security::TrackSecureScansWorker
:feature_category: :vulnerability_management :feature_category: :vulnerability_management
...@@ -872,8 +812,7 @@ ...@@ -872,8 +812,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: adjourned_project_deletion - :name: adjourned_project_deletion
:worker_name: AdjournedProjectDeletionWorker :worker_name: AdjournedProjectDeletionWorker
:feature_category: :authentication_and_authorization :feature_category: :authentication_and_authorization
...@@ -909,8 +848,7 @@ ...@@ -909,8 +848,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: approval_rules_external_approval_rule_payload - :name: approval_rules_external_approval_rule_payload
:worker_name: ApprovalRules::ExternalApprovalRulePayloadWorker :worker_name: ApprovalRules::ExternalApprovalRulePayloadWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -919,8 +857,7 @@ ...@@ -919,8 +857,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: ci_batch_reset_minutes - :name: ci_batch_reset_minutes
:worker_name: Ci::BatchResetMinutesWorker :worker_name: Ci::BatchResetMinutesWorker
:feature_category: :continuous_integration :feature_category: :continuous_integration
...@@ -947,8 +884,7 @@ ...@@ -947,8 +884,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: elastic_association_indexer - :name: elastic_association_indexer
:worker_name: ElasticAssociationIndexerWorker :worker_name: ElasticAssociationIndexerWorker
:feature_category: :global_search :feature_category: :global_search
...@@ -957,8 +893,7 @@ ...@@ -957,8 +893,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: elastic_commit_indexer - :name: elastic_commit_indexer
:worker_name: ElasticCommitIndexerWorker :worker_name: ElasticCommitIndexerWorker
:feature_category: :global_search :feature_category: :global_search
...@@ -1030,8 +965,7 @@ ...@@ -1030,8 +965,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: group_wikis_git_garbage_collect - :name: group_wikis_git_garbage_collect
:worker_name: GroupWikis::GitGarbageCollectWorker :worker_name: GroupWikis::GitGarbageCollectWorker
:feature_category: :gitaly :feature_category: :gitaly
...@@ -1040,8 +974,7 @@ ...@@ -1040,8 +974,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: groups_export_memberships - :name: groups_export_memberships
:worker_name: Groups::ExportMembershipsWorker :worker_name: Groups::ExportMembershipsWorker
:feature_category: :compliance_management :feature_category: :compliance_management
...@@ -1077,8 +1010,7 @@ ...@@ -1077,8 +1010,7 @@
:resource_boundary: :cpu :resource_boundary: :cpu
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: incident_management_apply_incident_sla_exceeded_label - :name: incident_management_apply_incident_sla_exceeded_label
:worker_name: IncidentManagement::ApplyIncidentSlaExceededLabelWorker :worker_name: IncidentManagement::ApplyIncidentSlaExceededLabelWorker
:feature_category: :incident_management :feature_category: :incident_management
...@@ -1087,8 +1019,7 @@ ...@@ -1087,8 +1019,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: incident_management_oncall_rotations_persist_shifts_job - :name: incident_management_oncall_rotations_persist_shifts_job
:worker_name: IncidentManagement::OncallRotations::PersistShiftsJob :worker_name: IncidentManagement::OncallRotations::PersistShiftsJob
:feature_category: :incident_management :feature_category: :incident_management
...@@ -1097,8 +1028,7 @@ ...@@ -1097,8 +1028,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: incident_management_pending_escalations_alert_check - :name: incident_management_pending_escalations_alert_check
:worker_name: IncidentManagement::PendingEscalations::AlertCheckWorker :worker_name: IncidentManagement::PendingEscalations::AlertCheckWorker
:feature_category: :incident_management :feature_category: :incident_management
...@@ -1125,8 +1055,7 @@ ...@@ -1125,8 +1055,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 2 :weight: 2
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_gitlab_com
- :name: merge_request_reset_approvals - :name: merge_request_reset_approvals
:worker_name: MergeRequestResetApprovalsWorker :worker_name: MergeRequestResetApprovalsWorker
:feature_category: :source_code_management :feature_category: :source_code_management
...@@ -1172,8 +1101,7 @@ ...@@ -1172,8 +1101,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: :idempotent:
:tags: :tags: []
- :exclude_from_kubernetes
- :name: refresh_license_compliance_checks - :name: refresh_license_compliance_checks
:worker_name: RefreshLicenseComplianceChecksWorker :worker_name: RefreshLicenseComplianceChecksWorker
:feature_category: :license_compliance :feature_category: :license_compliance
...@@ -1209,8 +1137,7 @@ ...@@ -1209,8 +1137,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: requirements_management_process_requirements_reports - :name: requirements_management_process_requirements_reports
:worker_name: RequirementsManagement::ProcessRequirementsReportsWorker :worker_name: RequirementsManagement::ProcessRequirementsReportsWorker
:feature_category: :requirements_management :feature_category: :requirements_management
...@@ -1228,8 +1155,7 @@ ...@@ -1228,8 +1155,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: set_user_status_based_on_user_cap_setting - :name: set_user_status_based_on_user_cap_setting
:worker_name: SetUserStatusBasedOnUserCapSettingWorker :worker_name: SetUserStatusBasedOnUserCapSettingWorker
:feature_category: :users :feature_category: :users
...@@ -1238,8 +1164,7 @@ ...@@ -1238,8 +1164,7 @@
:resource_boundary: :unknown :resource_boundary: :unknown
:weight: 1 :weight: 1
:idempotent: true :idempotent: true
:tags: :tags: []
- :exclude_from_kubernetes
- :name: status_page_publish - :name: status_page_publish
:worker_name: StatusPage::PublishWorker :worker_name: StatusPage::PublishWorker
:feature_category: :incident_management :feature_category: :incident_management
......
...@@ -12,7 +12,6 @@ module Analytics ...@@ -12,7 +12,6 @@ module Analytics
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :devops_reports feature_category :devops_reports
tags :exclude_from_kubernetes
idempotent! idempotent!
WORKERS_GAP = 5.seconds WORKERS_GAP = 5.seconds
......
...@@ -12,7 +12,6 @@ module Analytics ...@@ -12,7 +12,6 @@ module Analytics
feature_category :devops_reports feature_category :devops_reports
idempotent! idempotent!
tags :exclude_from_kubernetes
def perform(enabled_namespace_id) def perform(enabled_namespace_id)
enabled_namespace = EnabledNamespace.find(enabled_namespace_id) enabled_namespace = EnabledNamespace.find(enabled_namespace_id)
......
...@@ -10,7 +10,6 @@ module ApprovalRules ...@@ -10,7 +10,6 @@ module ApprovalRules
idempotent! idempotent!
feature_category :source_code_management feature_category :source_code_management
tags :exclude_from_kubernetes
def perform(rule_id, data) def perform(rule_id, data)
rule = MergeRequests::ExternalStatusCheck.find(rule_id) rule = MergeRequests::ExternalStatusCheck.find(rule_id)
......
...@@ -7,6 +7,5 @@ module GeoQueue ...@@ -7,6 +7,5 @@ module GeoQueue
included do included do
queue_namespace :geo queue_namespace :geo
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_gitlab_com
end end
end end
...@@ -12,7 +12,6 @@ class DastSiteValidationWorker ...@@ -12,7 +12,6 @@ class DastSiteValidationWorker
sidekiq_retry_in { 25 } sidekiq_retry_in { 25 }
feature_category :dynamic_application_security_testing feature_category :dynamic_application_security_testing
tags :exclude_from_kubernetes
def perform(_dast_site_validation_id) def perform(_dast_site_validation_id)
# Scheduled for removal in %15.0 # Scheduled for removal in %15.0
......
...@@ -10,7 +10,6 @@ module Deployments ...@@ -10,7 +10,6 @@ module Deployments
idempotent! idempotent!
feature_category :continuous_delivery feature_category :continuous_delivery
tags :exclude_from_kubernetes
queue_namespace :deployment queue_namespace :deployment
def perform(environment_id) def perform(environment_id)
......
...@@ -13,7 +13,6 @@ module Dora ...@@ -13,7 +13,6 @@ module Dora
idempotent! idempotent!
queue_namespace :dora_metrics queue_namespace :dora_metrics
feature_category :continuous_delivery feature_category :continuous_delivery
tags :exclude_from_kubernetes
def perform(environment_id, date) def perform(environment_id, date)
Environment.find_by_id(environment_id).try do |environment| Environment.find_by_id(environment_id).try do |environment|
......
...@@ -9,7 +9,6 @@ class ElasticAssociationIndexerWorker # rubocop:disable Scalability/IdempotentWo ...@@ -9,7 +9,6 @@ class ElasticAssociationIndexerWorker # rubocop:disable Scalability/IdempotentWo
feature_category :global_search feature_category :global_search
worker_resource_boundary :cpu worker_resource_boundary :cpu
tags :exclude_from_kubernetes
loggable_arguments 0, 2 loggable_arguments 0, 2
def perform(class_name, id, indexed_associations) def perform(class_name, id, indexed_associations)
......
...@@ -9,7 +9,6 @@ class ElasticRemoveExpiredNamespaceSubscriptionsFromIndexCronWorker ...@@ -9,7 +9,6 @@ class ElasticRemoveExpiredNamespaceSubscriptionsFromIndexCronWorker
include CronjobQueue include CronjobQueue
feature_category :global_search feature_category :global_search
tags :exclude_from_kubernetes
idempotent! idempotent!
def perform def perform
......
...@@ -7,8 +7,6 @@ module Geo ...@@ -7,8 +7,6 @@ module Geo
include CronjobQueue include CronjobQueue
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
tags :exclude_from_gitlab_com
def perform def perform
unless ::Geo::ContainerRepositoryRegistry.replication_enabled? unless ::Geo::ContainerRepositoryRegistry.replication_enabled?
log_info('Container Registry replication is not enabled') log_info('Container Registry replication is not enabled')
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Geo module Geo
class DesignRepositoryShardSyncWorker < RepositoryShardSyncWorker # rubocop:disable Scalability/IdempotentWorker class DesignRepositoryShardSyncWorker < RepositoryShardSyncWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
private private
def schedule_job(project_id) def schedule_job(project_id)
......
...@@ -12,7 +12,6 @@ module Geo ...@@ -12,7 +12,6 @@ module Geo
idempotent! idempotent!
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
loggable_arguments 0 loggable_arguments 0
def perform(replicable_name, replicable_id) def perform(replicable_name, replicable_id)
......
...@@ -7,8 +7,6 @@ module Geo ...@@ -7,8 +7,6 @@ module Geo
include CronjobQueue include CronjobQueue
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
tags :exclude_from_gitlab_com
private private
# Cannot utilise backoff because there are no events currently being # Cannot utilise backoff because there are no events currently being
......
...@@ -13,7 +13,6 @@ module Geo ...@@ -13,7 +13,6 @@ module Geo
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_gitlab_com
LEASE_TIMEOUT = 5.minutes LEASE_TIMEOUT = 5.minutes
......
...@@ -13,7 +13,6 @@ module Geo ...@@ -13,7 +13,6 @@ module Geo
include ::Gitlab::Geo::LogHelpers include ::Gitlab::Geo::LogHelpers
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_gitlab_com
def perform def perform
return if Gitlab::Database.read_only? return if Gitlab::Database.read_only?
......
...@@ -4,7 +4,6 @@ module Geo ...@@ -4,7 +4,6 @@ module Geo
class RepositoryShardSyncWorker < Geo::Scheduler::Secondary::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker class RepositoryShardSyncWorker < Geo::Scheduler::Secondary::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: false sidekiq_options retry: false
loggable_arguments 0 loggable_arguments 0
tags :exclude_from_gitlab_com
attr_accessor :shard_name attr_accessor :shard_name
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
module Geo module Geo
class RepositorySyncWorker < Geo::Scheduler::Secondary::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker class RepositorySyncWorker < Geo::Scheduler::Secondary::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def schedule_job(shard_name) def schedule_job(shard_name)
Geo::RepositoryShardSyncWorker.perform_async(shard_name) Geo::RepositoryShardSyncWorker.perform_async(shard_name)
Geo::DesignRepositoryShardSyncWorker.perform_async(shard_name) Geo::DesignRepositoryShardSyncWorker.perform_async(shard_name)
......
...@@ -4,8 +4,6 @@ module Geo ...@@ -4,8 +4,6 @@ module Geo
module RepositoryVerification module RepositoryVerification
module Primary module Primary
class BatchWorker < Geo::Scheduler::Primary::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker class BatchWorker < Geo::Scheduler::Primary::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def perform def perform
return unless Gitlab::Geo.repository_verification_enabled? return unless Gitlab::Geo.repository_verification_enabled?
......
...@@ -6,7 +6,6 @@ module Geo ...@@ -6,7 +6,6 @@ module Geo
class ShardWorker < Geo::Scheduler::Primary::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker class ShardWorker < Geo::Scheduler::Primary::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: false sidekiq_options retry: false
loggable_arguments 0 loggable_arguments 0
tags :exclude_from_gitlab_com
attr_accessor :shard_name attr_accessor :shard_name
......
...@@ -11,7 +11,6 @@ module Geo ...@@ -11,7 +11,6 @@ module Geo
include ExclusiveLeaseGuard include ExclusiveLeaseGuard
sidekiq_options retry: false sidekiq_options retry: false
tags :exclude_from_gitlab_com
LEASE_TIMEOUT = 1.hour.to_i LEASE_TIMEOUT = 1.hour.to_i
......
...@@ -4,8 +4,6 @@ module Geo ...@@ -4,8 +4,6 @@ module Geo
module RepositoryVerification module RepositoryVerification
module Secondary module Secondary
class SchedulerWorker < Geo::Scheduler::Secondary::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker class SchedulerWorker < Geo::Scheduler::Secondary::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def perform def perform
return unless Gitlab::Geo.repository_verification_enabled? return unless Gitlab::Geo.repository_verification_enabled?
......
...@@ -12,7 +12,6 @@ module Geo ...@@ -12,7 +12,6 @@ module Geo
attr_accessor :shard_name attr_accessor :shard_name
loggable_arguments 0 loggable_arguments 0
tags :exclude_from_gitlab_com
def perform(shard_name) def perform(shard_name)
@shard_name = shard_name @shard_name = shard_name
......
...@@ -12,7 +12,6 @@ module Geo ...@@ -12,7 +12,6 @@ module Geo
include Gitlab::Geo::ProjectLogHelpers include Gitlab::Geo::ProjectLogHelpers
sidekiq_options retry: false sidekiq_options retry: false
tags :exclude_from_gitlab_com
LEASE_TIMEOUT = 1.hour.to_i LEASE_TIMEOUT = 1.hour.to_i
......
...@@ -17,7 +17,6 @@ module Geo ...@@ -17,7 +17,6 @@ module Geo
MAX_RUNNING_JOBS = 1 MAX_RUNNING_JOBS = 1
idempotent! idempotent!
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
loggable_arguments 0 loggable_arguments 0
def perform_work(replicable_name) def perform_work(replicable_name)
......
...@@ -15,7 +15,6 @@ module Geo ...@@ -15,7 +15,6 @@ module Geo
include ::EachShardWorker include ::EachShardWorker
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_gitlab_com
# These workers are enqueued every minute by sidekiq-cron. If one of them # These workers are enqueued every minute by sidekiq-cron. If one of them
# is already enqueued or running, then there isn't a strong case for # is already enqueued or running, then there isn't a strong case for
......
...@@ -4,8 +4,6 @@ module Geo ...@@ -4,8 +4,6 @@ module Geo
module Scheduler module Scheduler
module Primary module Primary
class PerShardSchedulerWorker < Geo::Scheduler::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker class PerShardSchedulerWorker < Geo::Scheduler::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def perform def perform
unless Gitlab::Geo.primary? unless Gitlab::Geo.primary?
log_info('Current node not a primary') log_info('Current node not a primary')
......
...@@ -4,8 +4,6 @@ module Geo ...@@ -4,8 +4,6 @@ module Geo
module Scheduler module Scheduler
module Primary module Primary
class SchedulerWorker < Geo::Scheduler::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker class SchedulerWorker < Geo::Scheduler::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def perform def perform
return unless Gitlab::Geo.primary? return unless Gitlab::Geo.primary?
......
...@@ -4,8 +4,6 @@ module Geo ...@@ -4,8 +4,6 @@ module Geo
module Scheduler module Scheduler
module Secondary module Secondary
class PerShardSchedulerWorker < Geo::Scheduler::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker class PerShardSchedulerWorker < Geo::Scheduler::PerShardSchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def perform def perform
unless Gitlab::Geo.geo_database_configured? unless Gitlab::Geo.geo_database_configured?
log_info('Geo database not configured') log_info('Geo database not configured')
......
...@@ -4,8 +4,6 @@ module Geo ...@@ -4,8 +4,6 @@ module Geo
module Scheduler module Scheduler
module Secondary module Secondary
class SchedulerWorker < Geo::Scheduler::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker class SchedulerWorker < Geo::Scheduler::SchedulerWorker # rubocop:disable Scalability/IdempotentWorker
tags :exclude_from_gitlab_com
def perform def perform
unless Gitlab::Geo.geo_database_configured? unless Gitlab::Geo.geo_database_configured?
log_info('Geo database not configured') log_info('Geo database not configured')
......
...@@ -17,7 +17,6 @@ module Geo ...@@ -17,7 +17,6 @@ module Geo
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_gitlab_com
REGISTRY_CLASSES = [ REGISTRY_CLASSES = [
Geo::ContainerRepositoryRegistry, Geo::ContainerRepositoryRegistry,
......
...@@ -13,7 +13,6 @@ module Geo ...@@ -13,7 +13,6 @@ module Geo
include ExclusiveLeaseGuard include ExclusiveLeaseGuard
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
def perform def perform
return unless Gitlab::Geo.secondary? return unless Gitlab::Geo.secondary?
......
...@@ -14,7 +14,6 @@ module Geo ...@@ -14,7 +14,6 @@ module Geo
idempotent! idempotent!
sidekiq_options retry: false, dead: false sidekiq_options retry: false, dead: false
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
def perform def perform
Gitlab::Geo.enabled_replicator_classes.each do |replicator_class| Gitlab::Geo.enabled_replicator_classes.each do |replicator_class|
......
...@@ -12,7 +12,6 @@ module Geo ...@@ -12,7 +12,6 @@ module Geo
include ::Gitlab::Geo::LogHelpers include ::Gitlab::Geo::LogHelpers
idempotent! idempotent!
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
loggable_arguments 0 loggable_arguments 0
def perform_work(replicable_name) def perform_work(replicable_name)
......
...@@ -17,7 +17,6 @@ module Geo ...@@ -17,7 +17,6 @@ module Geo
idempotent! idempotent!
feature_category :geo_replication feature_category :geo_replication
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
def perform def perform
Gitlab::Geo.verification_enabled_replicator_classes.each do |replicator_class| Gitlab::Geo.verification_enabled_replicator_classes.each do |replicator_class|
......
...@@ -11,7 +11,6 @@ module Geo ...@@ -11,7 +11,6 @@ module Geo
idempotent! idempotent!
sidekiq_options retry: false, dead: false sidekiq_options retry: false, dead: false
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
loggable_arguments 0 loggable_arguments 0
def perform(replicable_name) def perform(replicable_name)
......
...@@ -11,7 +11,6 @@ module Geo ...@@ -11,7 +11,6 @@ module Geo
sidekiq_options retry: 3, dead: false sidekiq_options retry: 3, dead: false
idempotent! idempotent!
tags :exclude_from_kubernetes, :exclude_from_gitlab_com
loggable_arguments 0 loggable_arguments 0
def perform(replicable_name, replicable_id) def perform(replicable_name, replicable_id)
......
...@@ -9,7 +9,6 @@ class GroupSamlGroupSyncWorker ...@@ -9,7 +9,6 @@ class GroupSamlGroupSyncWorker
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
feature_category :authentication_and_authorization feature_category :authentication_and_authorization
tags :exclude_from_kubernetes
idempotent! idempotent!
loggable_arguments 2 loggable_arguments 2
......
...@@ -5,8 +5,6 @@ module GroupWikis ...@@ -5,8 +5,6 @@ module GroupWikis
extend ::Gitlab::Utils::Override extend ::Gitlab::Utils::Override
include GitGarbageCollectMethods include GitGarbageCollectMethods
tags :exclude_from_kubernetes
private private
override :find_resource override :find_resource
......
...@@ -12,7 +12,6 @@ module Groups ...@@ -12,7 +12,6 @@ module Groups
worker_resource_boundary :cpu worker_resource_boundary :cpu
feature_category :source_code_management feature_category :source_code_management
tags :exclude_from_kubernetes
idempotent! idempotent!
loggable_arguments 0, 1 loggable_arguments 0, 1
......
...@@ -10,7 +10,6 @@ module IncidentManagement ...@@ -10,7 +10,6 @@ module IncidentManagement
idempotent! idempotent!
feature_category :incident_management feature_category :incident_management
tags :exclude_from_kubernetes
def perform(incident_id) def perform(incident_id)
@incident = Issue.find_by_id(incident_id) @incident = Issue.find_by_id(incident_id)
......
...@@ -11,7 +11,6 @@ module IncidentManagement ...@@ -11,7 +11,6 @@ module IncidentManagement
idempotent! idempotent!
feature_category :incident_management feature_category :incident_management
tags :exclude_from_kubernetes
def perform def perform
iterator = Gitlab::Pagination::Keyset::Iterator.new(scope: IssuableSla.exceeded) iterator = Gitlab::Pagination::Keyset::Iterator.new(scope: IssuableSla.exceeded)
......
...@@ -12,7 +12,6 @@ module IncidentManagement ...@@ -12,7 +12,6 @@ module IncidentManagement
idempotent! idempotent!
feature_category :incident_management feature_category :incident_management
tags :exclude_from_kubernetes
queue_namespace :cronjob queue_namespace :cronjob
def perform def perform
......
...@@ -15,7 +15,6 @@ module IncidentManagement ...@@ -15,7 +15,6 @@ module IncidentManagement
idempotent! idempotent!
feature_category :incident_management feature_category :incident_management
tags :exclude_from_kubernetes
def perform(rotation_id) def perform(rotation_id)
@rotation = ::IncidentManagement::OncallRotation.find_by_id(rotation_id) @rotation = ::IncidentManagement::OncallRotation.find_by_id(rotation_id)
......
...@@ -11,7 +11,6 @@ class LdapGroupSyncWorker # rubocop:disable Scalability/IdempotentWorker ...@@ -11,7 +11,6 @@ class LdapGroupSyncWorker # rubocop:disable Scalability/IdempotentWorker
worker_has_external_dependencies! worker_has_external_dependencies!
weight 2 weight 2
loggable_arguments 0, 1 loggable_arguments 0, 1
tags :exclude_from_gitlab_com
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
def perform(group_ids, provider = nil) def perform(group_ids, provider = nil)
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
# which significantly delays project creation from custom templates. # which significantly delays project creation from custom templates.
class ProjectTemplateExportWorker < ProjectExportWorker # rubocop:disable Scalability/IdempotentWorker class ProjectTemplateExportWorker < ProjectExportWorker # rubocop:disable Scalability/IdempotentWorker
feature_category :importers feature_category :importers
tags :exclude_from_kubernetes
loggable_arguments 2, 3 loggable_arguments 2, 3
sidekiq_options retry: false, dead: false sidekiq_options retry: false, dead: false
sidekiq_options status_expiration: StuckExportJobsWorker::EXPORT_JOBS_EXPIRATION sidekiq_options status_expiration: StuckExportJobsWorker::EXPORT_JOBS_EXPIRATION
......
...@@ -11,7 +11,6 @@ module RequirementsManagement ...@@ -11,7 +11,6 @@ module RequirementsManagement
idempotent! idempotent!
feature_category :requirements_management feature_category :requirements_management
tags :exclude_from_kubernetes
# TODO: Set worker_resource_boundary. # TODO: Set worker_resource_boundary.
# https://gitlab.com/gitlab-org/gitlab/-/issues/281173 # https://gitlab.com/gitlab-org/gitlab/-/issues/281173
......
...@@ -9,7 +9,6 @@ module Security ...@@ -9,7 +9,6 @@ module Security
sidekiq_options retry: 3 sidekiq_options retry: 3
feature_category :vulnerability_management feature_category :vulnerability_management
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -10,8 +10,6 @@ module Security ...@@ -10,8 +10,6 @@ module Security
sidekiq_options retry: 3 sidekiq_options retry: 3
include SecurityScansQueue include SecurityScansQueue
tags :exclude_from_kubernetes
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
def perform(pipeline_id) def perform(pipeline_id)
::Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline| ::Ci::Pipeline.find_by(id: pipeline_id).try do |pipeline|
......
...@@ -9,7 +9,6 @@ class SetUserStatusBasedOnUserCapSettingWorker ...@@ -9,7 +9,6 @@ class SetUserStatusBasedOnUserCapSettingWorker
include ::Gitlab::Utils::StrongMemoize include ::Gitlab::Utils::StrongMemoize
feature_category :users feature_category :users
tags :exclude_from_kubernetes
idempotent! idempotent!
......
...@@ -10,7 +10,6 @@ module TodosDestroyer ...@@ -10,7 +10,6 @@ module TodosDestroyer
queue_namespace :todos_destroyer queue_namespace :todos_destroyer
feature_category :epics feature_category :epics
tags :exclude_from_kubernetes
def perform(epic_id) def perform(epic_id)
return unless epic_id return unless epic_id
......
...@@ -13,7 +13,6 @@ module Vulnerabilities ...@@ -13,7 +13,6 @@ module Vulnerabilities
# rubocop:enable Scalability/CronWorkerContext # rubocop:enable Scalability/CronWorkerContext
feature_category :vulnerability_management feature_category :vulnerability_management
tags :exclude_from_kubernetes
def perform def perform
DeletionService.execute DeletionService.execute
......
...@@ -168,7 +168,12 @@ describe('Iteration cadence form', () => { ...@@ -168,7 +168,12 @@ describe('Iteration cadence form', () => {
await waitForPromises(); await waitForPromises();
expect(push).toHaveBeenCalledWith({ name: 'index' }); expect(push).toHaveBeenCalledWith({
name: 'index',
query: {
createdCadenceId: id,
},
});
}); });
it('does not submit if required fields missing', () => { it('does not submit if required fields missing', () => {
......
...@@ -3,12 +3,14 @@ import { createLocalVue, RouterLinkStub } from '@vue/test-utils'; ...@@ -3,12 +3,14 @@ import { createLocalVue, RouterLinkStub } from '@vue/test-utils';
import { nextTick } from 'vue'; import { nextTick } from 'vue';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import IterationCadenceListItem from 'ee/iterations/components/iteration_cadence_list_item.vue'; import IterationCadenceListItem from 'ee/iterations/components/iteration_cadence_list_item.vue';
import TimeboxStatusBadge from 'ee/iterations/components/timebox_status_badge.vue';
import { Namespace } from 'ee/iterations/constants'; import { Namespace } from 'ee/iterations/constants';
import groupIterationsInCadenceQuery from 'ee/iterations/queries/group_iterations_in_cadence.query.graphql'; import groupIterationsInCadenceQuery from 'ee/iterations/queries/group_iterations_in_cadence.query.graphql';
import projectIterationsInCadenceQuery from 'ee/iterations/queries/project_iterations_in_cadence.query.graphql'; import projectIterationsInCadenceQuery from 'ee/iterations/queries/project_iterations_in_cadence.query.graphql';
import createMockApollo from 'helpers/mock_apollo_helper'; import createMockApollo from 'helpers/mock_apollo_helper';
import { mountExtended as mount } from 'helpers/vue_test_utils_helper'; import { mountExtended as mount } from 'helpers/vue_test_utils_helper';
import waitForPromises from 'helpers/wait_for_promises'; import waitForPromises from 'helpers/wait_for_promises';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
const push = jest.fn(); const push = jest.fn();
const $router = { const $router = {
...@@ -82,11 +84,11 @@ describe('Iteration cadence list item', () => { ...@@ -82,11 +84,11 @@ describe('Iteration cadence list item', () => {
}, },
}, },
}; };
function createComponent({ function createComponent({
props = {}, props = {},
canCreateCadence, canCreateCadence,
canEditCadence, canEditCadence,
currentRoute,
namespaceType = Namespace.Group, namespaceType = Namespace.Group,
query = groupIterationsInCadenceQuery, query = groupIterationsInCadenceQuery,
resolverMock = jest.fn().mockResolvedValue(querySuccessResponse), resolverMock = jest.fn().mockResolvedValue(querySuccessResponse),
...@@ -97,7 +99,10 @@ describe('Iteration cadence list item', () => { ...@@ -97,7 +99,10 @@ describe('Iteration cadence list item', () => {
localVue, localVue,
apolloProvider, apolloProvider,
mocks: { mocks: {
$router, $router: {
...$router,
currentRoute,
},
}, },
stubs: { stubs: {
RouterLink: RouterLinkStub, RouterLink: RouterLinkStub,
...@@ -137,7 +142,7 @@ describe('Iteration cadence list item', () => { ...@@ -137,7 +142,7 @@ describe('Iteration cadence list item', () => {
expect(resolverMock).not.toHaveBeenCalled(); expect(resolverMock).not.toHaveBeenCalled();
}); });
it('shows empty text when no results', async () => { it('shows empty text and CTA when no results', async () => {
await createComponent({ await createComponent({
resolverMock: jest.fn().mockResolvedValue(queryEmptyResponse), resolverMock: jest.fn().mockResolvedValue(queryEmptyResponse),
}); });
...@@ -148,6 +153,7 @@ describe('Iteration cadence list item', () => { ...@@ -148,6 +153,7 @@ describe('Iteration cadence list item', () => {
expect(findLoader().exists()).toBe(false); expect(findLoader().exists()).toBe(false);
expect(wrapper.text()).toContain(IterationCadenceListItem.i18n.noResults); expect(wrapper.text()).toContain(IterationCadenceListItem.i18n.noResults);
expect(wrapper.text()).toContain(IterationCadenceListItem.i18n.createFirstIteration);
}); });
it('shows iterations after loading', async () => { it('shows iterations after loading', async () => {
...@@ -162,6 +168,18 @@ describe('Iteration cadence list item', () => { ...@@ -162,6 +168,18 @@ describe('Iteration cadence list item', () => {
}); });
}); });
it('automatically expands for newly created cadence', async () => {
await createComponent({
currentRoute: { query: { createdCadenceId: getIdFromGraphQLId(cadence.id) } },
});
await waitForPromises();
iterations.forEach(({ title }) => {
expect(wrapper.text()).toContain(title);
});
});
it('loads project iterations for Project namespaceType', async () => { it('loads project iterations for Project namespaceType', async () => {
await createComponent({ await createComponent({
namespaceType: Namespace.Project, namespaceType: Namespace.Project,
...@@ -261,4 +279,17 @@ describe('Iteration cadence list item', () => { ...@@ -261,4 +279,17 @@ describe('Iteration cadence list item', () => {
expect(wrapper.find(GlDropdown).exists()).toBe(true); expect(wrapper.find(GlDropdown).exists()).toBe(true);
}); });
it.each([
['hides', false],
['shows', true],
])('%s status badge when showStateBadge is %s', async (_, showStateBadge) => {
await createComponent({ props: { showStateBadge } });
expand();
await waitForPromises();
expect(wrapper.findComponent(TimeboxStatusBadge).exists()).toBe(showStateBadge);
});
}); });
...@@ -3,6 +3,7 @@ import { shallowMount, createLocalVue } from '@vue/test-utils'; ...@@ -3,6 +3,7 @@ import { shallowMount, createLocalVue } from '@vue/test-utils';
import VueApollo from 'vue-apollo'; import VueApollo from 'vue-apollo';
import IterationReport from 'ee/iterations/components/iteration_report.vue'; import IterationReport from 'ee/iterations/components/iteration_report.vue';
import IterationReportTabs from 'ee/iterations/components/iteration_report_tabs.vue'; import IterationReportTabs from 'ee/iterations/components/iteration_report_tabs.vue';
import TimeboxStatusBadge from 'ee/iterations/components/timebox_status_badge.vue';
import { Namespace } from 'ee/iterations/constants'; import { Namespace } from 'ee/iterations/constants';
import query from 'ee/iterations/queries/iteration.query.graphql'; import query from 'ee/iterations/queries/iteration.query.graphql';
import createMockApollo from 'helpers/mock_apollo_helper'; import createMockApollo from 'helpers/mock_apollo_helper';
...@@ -168,7 +169,9 @@ describe('Iterations report', () => { ...@@ -168,7 +169,9 @@ describe('Iterations report', () => {
it('shows status and date in header', () => { it('shows status and date in header', () => {
const startDate = IterationReport.methods.formatDate(mockIterationNode.startDate); const startDate = IterationReport.methods.formatDate(mockIterationNode.startDate);
const dueDate = IterationReport.methods.formatDate(mockIterationNode.startDate); const dueDate = IterationReport.methods.formatDate(mockIterationNode.startDate);
expect(findTopbar().text().toLowerCase()).toContain(mockIterationNode.state); expect(wrapper.findComponent(TimeboxStatusBadge).props('state')).toContain(
mockIterationNode.state,
);
expect(findTopbar().text()).toContain(startDate); expect(findTopbar().text()).toContain(startDate);
expect(findTopbar().text()).toContain(dueDate); expect(findTopbar().text()).toContain(dueDate);
}); });
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'getting epic issues information' do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, group: group) }
let_it_be(:project) { create(:project, group: group) }
before_all do
group.add_maintainer(user)
end
before do
stub_licensed_features(epics: true)
end
context 'when toggling performance_roadmap feature flag' do
let_it_be(:epic) { create(:epic, group: group, state: 'opened') }
let_it_be(:issue1) { create(:issue, project: project) }
let_it_be(:issue2) { create(:issue, project: project) }
let(:query) do
epic_issues_query(epic)
end
before_all do
create(:epic_issue, epic: epic, issue: issue1)
create(:epic_issue, epic: epic, issue: issue2)
end
def epic_issues_query(epic)
epic_issues_fragment = <<~EPIC_ISSUE
issues {
nodes {
id
}
}
EPIC_ISSUE
graphql_query_for(
:group,
{ 'fullPath' => epic.group.full_path },
query_graphql_field(
'epic', { iid: epic.iid },
epic_issues_fragment
)
)
end
def epic_issues_count
graphql_data_at(:group, :epic, :issues, :nodes).count
end
it 'returns epics with max page based on feature flag status' do
stub_const('SetsMaxPageSize::DEPRECATED_MAX_PAGE_SIZE', 1)
post_graphql(epic_issues_query(epic), current_user: user)
expect(epic_issues_count).to eq(2)
stub_feature_flags(performance_roadmap: false)
post_graphql(epic_issues_query(epic), current_user: user)
expect(epic_issues_count).to eq(1)
stub_feature_flags(performance_roadmap: true)
post_graphql(epic_issues_query(epic), current_user: user)
expect(epic_issues_count).to eq(2)
end
end
end
...@@ -13,6 +13,30 @@ RSpec.describe 'getting epics information' do ...@@ -13,6 +13,30 @@ RSpec.describe 'getting epics information' do
stub_licensed_features(epics: true) stub_licensed_features(epics: true)
end end
context 'when performance_roadmap flag is disabled' do
let_it_be(:epic1) { create(:epic, group: group, state: 'opened') }
let_it_be(:epic2) { create(:epic, group: group, state: 'opened') }
def epics_count
graphql_data_at(:group, :epics, :nodes).count
end
it 'returns epics within timeframe' do
stub_const('SetsMaxPageSize::DEPRECATED_MAX_PAGE_SIZE', 1)
post_graphql(epics_query_by_hash(group), current_user: user)
expect(epics_count).to eq(2)
stub_feature_flags(performance_roadmap: false)
post_graphql(epics_query_by_hash(group), current_user: user)
expect(epics_count).to eq(1)
stub_feature_flags(performance_roadmap: true)
post_graphql(epics_query_by_hash(group), current_user: user)
expect(epics_count).to eq(2)
end
end
describe 'query for epics which start with an iid' do describe 'query for epics which start with an iid' do
let_it_be(:epic1) { create(:epic, group: group, iid: 11) } let_it_be(:epic1) { create(:epic, group: group, iid: 11) }
let_it_be(:epic2) { create(:epic, group: group, iid: 22) } let_it_be(:epic2) { create(:epic, group: group, iid: 22) }
...@@ -130,14 +154,15 @@ RSpec.describe 'getting epics information' do ...@@ -130,14 +154,15 @@ RSpec.describe 'getting epics information' do
epics_query_by_hash(group, field => value) epics_query_by_hash(group, field => value)
end end
def epics_query_by_hash(group, args) def epics_query_by_hash(group, args = {})
field_queries = args.map { |key, value| "#{key}:\"#{value}\"" }.join(',') field_queries = args.map { |key, value| "#{key}:\"#{value}\"" }.join(',')
field_queries = " ( #{field_queries} ) " if field_queries.present?
<<~QUERY <<~QUERY
query { query {
group(fullPath: "#{group.full_path}") { group(fullPath: "#{group.full_path}") {
id, id,
epics(#{field_queries}) { epics#{field_queries} {
nodes { nodes {
id id
} }
......
...@@ -7,6 +7,7 @@ module Gitlab ...@@ -7,6 +7,7 @@ module Gitlab
AVAILABLE_LANGUAGES = { AVAILABLE_LANGUAGES = {
'bg' => 'Bulgarian - български', 'bg' => 'Bulgarian - български',
'cs_CZ' => 'Czech - čeština', 'cs_CZ' => 'Czech - čeština',
'da_DK' => 'Danish - dansk',
'de' => 'German - Deutsch', 'de' => 'German - Deutsch',
'en' => 'English', 'en' => 'English',
'eo' => 'Esperanto - esperanto', 'eo' => 'Esperanto - esperanto',
...@@ -18,10 +19,12 @@ module Gitlab ...@@ -18,10 +19,12 @@ module Gitlab
'it' => 'Italian - italiano', 'it' => 'Italian - italiano',
'ja' => 'Japanese - 日本語', 'ja' => 'Japanese - 日本語',
'ko' => 'Korean - 한국어', 'ko' => 'Korean - 한국어',
'nb_NO' => 'Norwegian (Bokmål) - norsk (bokmål)',
'nl_NL' => 'Dutch - Nederlands', 'nl_NL' => 'Dutch - Nederlands',
'pl_PL' => 'Polish - polski', 'pl_PL' => 'Polish - polski',
'pt_BR' => 'Portuguese (Brazil) - português (Brasil)', 'pt_BR' => 'Portuguese (Brazil) - português (Brasil)',
'ru' => 'Russian - Русский', 'ro_RO' => 'Romanian - română',
'ru' => 'Russian - русский',
'tr_TR' => 'Turkish - Türkçe', 'tr_TR' => 'Turkish - Türkçe',
'uk' => 'Ukrainian - українська', 'uk' => 'Ukrainian - українська',
'zh_CN' => 'Chinese, Simplified - 简体中文', 'zh_CN' => 'Chinese, Simplified - 简体中文',
...@@ -40,6 +43,7 @@ module Gitlab ...@@ -40,6 +43,7 @@ module Gitlab
TRANSLATION_LEVELS = { TRANSLATION_LEVELS = {
'bg' => 0, 'bg' => 0,
'cs_CZ' => 1, 'cs_CZ' => 1,
'da_DK' => 26,
'de' => 16, 'de' => 16,
'en' => 100, 'en' => 100,
'eo' => 0, 'eo' => 0,
...@@ -51,9 +55,11 @@ module Gitlab ...@@ -51,9 +55,11 @@ module Gitlab
'it' => 2, 'it' => 2,
'ja' => 39, 'ja' => 39,
'ko' => 12, 'ko' => 12,
'nb_NO' => 27,
'nl_NL' => 0, 'nl_NL' => 0,
'pl_PL' => 6, 'pl_PL' => 6,
'pt_BR' => 36, 'pt_BR' => 36,
'ro_RO' => 20,
'ru' => 28, 'ru' => 28,
'tr_TR' => 16, 'tr_TR' => 16,
'uk' => 40, 'uk' => 40,
......
...@@ -7,7 +7,7 @@ module Gitlab ...@@ -7,7 +7,7 @@ module Gitlab
Asana Assembla Bamboo Bugzilla Buildkite Campfire Confluence CustomIssueTracker Datadog Asana Assembla Bamboo Bugzilla Buildkite Campfire Confluence CustomIssueTracker Datadog
Discord DroneCi EmailsOnPush Ewm ExternalWiki Flowdock HangoutsChat Irker Jenkins Jira Mattermost Discord DroneCi EmailsOnPush Ewm ExternalWiki Flowdock HangoutsChat Irker Jenkins Jira Mattermost
MattermostSlashCommands MicrosoftTeams MockCi MockMonitoring Packagist PipelinesEmail Pivotaltracker MattermostSlashCommands MicrosoftTeams MockCi MockMonitoring Packagist PipelinesEmail Pivotaltracker
Prometheus Pushover Redmine Slack SlackSlashCommands Teamcity UnifyCircuit WebexTeams Youtrack Prometheus Pushover Redmine Slack SlackSlashCommands Teamcity UnifyCircuit WebexTeams Youtrack Zentao
)).freeze )).freeze
def self.namespaced_integrations def self.namespaced_integrations
......
# frozen_string_literal: true
module Gitlab
module Zentao
class Client
Error = Class.new(StandardError)
ConfigError = Class.new(Error)
attr_reader :integration
def initialize(integration)
raise ConfigError, 'Please check your integration configuration.' unless integration
@integration = integration
end
def ping
response = fetch_product(zentao_product_xid)
active = response.fetch('deleted') == '0' rescue false
if active
{ success: true }
else
{ success: false, message: 'Not Found' }
end
end
def fetch_product(product_id)
get("products/#{product_id}")
end
def fetch_issues(params = {})
get("products/#{zentao_product_xid}/issues",
params.reverse_merge(page: 1, limit: 20))
end
def fetch_issue(issue_id)
get("issues/#{issue_id}")
end
private
def get(path, params = {})
options = { headers: headers, query: params }
response = Gitlab::HTTP.get(url(path), options)
return {} unless response.success?
Gitlab::Json.parse(response.body)
rescue JSON::ParserError
{}
end
def url(path)
host = integration.api_url.presence || integration.url
URI.join(host, '/api.php/v1/', path)
end
def headers
{
'Content-Type': 'application/json',
'Token': integration.api_token
}
end
def zentao_product_xid
integration.zentao_product_xid
end
end
end
end
...@@ -18815,6 +18815,9 @@ msgstr "" ...@@ -18815,6 +18815,9 @@ msgstr ""
msgid "Iterations|Create cadence" msgid "Iterations|Create cadence"
msgstr "" msgstr ""
msgid "Iterations|Create your first iteration"
msgstr ""
msgid "Iterations|Delete cadence" msgid "Iterations|Delete cadence"
msgstr "" msgstr ""
...@@ -38922,6 +38925,30 @@ msgstr "" ...@@ -38922,6 +38925,30 @@ msgstr ""
msgid "Your username is %{username}." msgid "Your username is %{username}."
msgstr "" msgstr ""
msgid "ZentaoIntegration|Base URL of the Zentao instance."
msgstr ""
msgid "ZentaoIntegration|Enter API token"
msgstr ""
msgid "ZentaoIntegration|If different from Web URL."
msgstr ""
msgid "ZentaoIntegration|Use Zentao as this project's issue tracker."
msgstr ""
msgid "ZentaoIntegration|Zentao API URL (optional)"
msgstr ""
msgid "ZentaoIntegration|Zentao API token"
msgstr ""
msgid "ZentaoIntegration|Zentao Product ID"
msgstr ""
msgid "ZentaoIntegration|Zentao Web URL"
msgstr ""
msgid "Zoom meeting added" msgid "Zoom meeting added"
msgstr "" msgstr ""
......
...@@ -7,13 +7,21 @@ FactoryBot.define do ...@@ -7,13 +7,21 @@ FactoryBot.define do
integration factory: :jira_integration integration factory: :jira_integration
end end
factory :zentao_tracker_data, class: 'Integrations::ZentaoTrackerData' do
integration factory: :zentao_integration
url { 'https://jihudemo.zentao.net' }
api_url { '' }
api_token { 'ZENTAO_TOKEN' }
zentao_product_xid { '3' }
end
factory :issue_tracker_data, class: 'Integrations::IssueTrackerData' do factory :issue_tracker_data, class: 'Integrations::IssueTrackerData' do
integration integration
end end
factory :open_project_tracker_data, class: 'Integrations::OpenProjectTrackerData' do factory :open_project_tracker_data, class: 'Integrations::OpenProjectTrackerData' do
integration factory: :open_project_service integration factory: :open_project_service
url { 'http://openproject.example.com'} url { 'http://openproject.example.com' }
token { 'supersecret' } token { 'supersecret' }
project_identifier_code { 'PRJ-1' } project_identifier_code { 'PRJ-1' }
closed_status_id { '15' } closed_status_id { '15' }
......
...@@ -85,6 +85,32 @@ FactoryBot.define do ...@@ -85,6 +85,32 @@ FactoryBot.define do
end end
end end
factory :zentao_integration, class: 'Integrations::Zentao' do
project
active { true }
type { 'ZentaoService' }
transient do
create_data { true }
url { 'https://jihudemo.zentao.net' }
api_url { '' }
api_token { 'ZENTAO_TOKEN' }
zentao_product_xid { '3' }
end
after(:build) do |integration, evaluator|
if evaluator.create_data
integration.zentao_tracker_data = build(:zentao_tracker_data,
integration: integration,
url: evaluator.url,
api_url: evaluator.api_url,
api_token: evaluator.api_token,
zentao_product_xid: evaluator.zentao_product_xid
)
end
end
end
factory :confluence_integration, class: 'Integrations::Confluence' do factory :confluence_integration, class: 'Integrations::Confluence' do
project project
active { true } active { true }
......
...@@ -37,6 +37,50 @@ describe('experiment Utilities', () => { ...@@ -37,6 +37,50 @@ describe('experiment Utilities', () => {
}); });
}); });
describe('getAllExperimentContexts', () => {
const schema = TRACKING_CONTEXT_SCHEMA;
let origGon;
beforeEach(() => {
origGon = window.gon;
});
afterEach(() => {
window.gon = origGon;
});
it('collects all of the experiment contexts into a single array', () => {
const experiments = [
{ experiment: 'abc', variant: 'candidate' },
{ experiment: 'def', variant: 'control' },
{ experiment: 'ghi', variant: 'blue' },
];
window.gon = {
experiment: experiments.reduce((collector, { experiment, variant }) => {
return { ...collector, [experiment]: { experiment, variant } };
}, {}),
};
expect(experimentUtils.getAllExperimentContexts()).toEqual(
experiments.map((data) => ({ schema, data })),
);
});
it('returns an empty array if there are no experiments', () => {
window.gon.experiment = {};
expect(experimentUtils.getAllExperimentContexts()).toEqual([]);
});
it('includes all additional experiment data', () => {
const experiment = 'experimentWithCustomData';
const data = { experiment, variant: 'control', color: 'blue', style: 'rounded' };
window.gon.experiment[experiment] = data;
expect(experimentUtils.getAllExperimentContexts()).toContainEqual({ schema, data });
});
});
describe('isExperimentVariant', () => { describe('isExperimentVariant', () => {
describe.each` describe.each`
gon | input | output gon | input | output
......
import { setHTMLFixture } from 'helpers/fixtures'; import { setHTMLFixture } from 'helpers/fixtures';
import { TRACKING_CONTEXT_SCHEMA } from '~/experimentation/constants'; import { TRACKING_CONTEXT_SCHEMA } from '~/experimentation/constants';
import { getExperimentData } from '~/experimentation/utils'; import { getExperimentData, getAllExperimentContexts } from '~/experimentation/utils';
import Tracking, { initUserTracking, initDefaultTrackers } from '~/tracking'; import Tracking, { initUserTracking, initDefaultTrackers } from '~/tracking';
import getStandardContext from '~/tracking/get_standard_context'; import getStandardContext from '~/tracking/get_standard_context';
jest.mock('~/experimentation/utils', () => ({ getExperimentData: jest.fn() })); jest.mock('~/experimentation/utils', () => ({
getExperimentData: jest.fn(),
getAllExperimentContexts: jest.fn(),
}));
describe('Tracking', () => { describe('Tracking', () => {
let standardContext; let standardContext;
...@@ -29,6 +32,7 @@ describe('Tracking', () => { ...@@ -29,6 +32,7 @@ describe('Tracking', () => {
beforeEach(() => { beforeEach(() => {
getExperimentData.mockReturnValue(undefined); getExperimentData.mockReturnValue(undefined);
getAllExperimentContexts.mockReturnValue([]);
window.snowplow = window.snowplow || (() => {}); window.snowplow = window.snowplow || (() => {});
window.snowplowOptions = { window.snowplowOptions = {
...@@ -100,6 +104,31 @@ describe('Tracking', () => { ...@@ -100,6 +104,31 @@ describe('Tracking', () => {
initDefaultTrackers(); initDefaultTrackers();
expect(trackLoadEventsSpy).toHaveBeenCalled(); expect(trackLoadEventsSpy).toHaveBeenCalled();
}); });
describe('when there are experiment contexts', () => {
const experimentContexts = [
{
schema: TRACKING_CONTEXT_SCHEMA,
data: { experiment: 'experiment1', variant: 'control' },
},
{
schema: TRACKING_CONTEXT_SCHEMA,
data: { experiment: 'experiment_two', variant: 'candidate' },
},
];
beforeEach(() => {
getAllExperimentContexts.mockReturnValue(experimentContexts);
});
it('includes those contexts alongside the standard context', () => {
initDefaultTrackers();
expect(snowplowSpy).toHaveBeenCalledWith('trackPageView', null, [
standardContext,
...experimentContexts,
]);
});
});
}); });
describe('.event', () => { describe('.event', () => {
......
...@@ -320,6 +320,7 @@ integrations: ...@@ -320,6 +320,7 @@ integrations:
- project - project
- service_hook - service_hook
- jira_tracker_data - jira_tracker_data
- zentao_tracker_data
- issue_tracker_data - issue_tracker_data
- open_project_tracker_data - open_project_tracker_data
hooks: hooks:
...@@ -399,6 +400,7 @@ project: ...@@ -399,6 +400,7 @@ project:
- teamcity_integration - teamcity_integration
- pushover_integration - pushover_integration
- jira_integration - jira_integration
- zentao_integration
- redmine_integration - redmine_integration
- youtrack_integration - youtrack_integration
- custom_issue_tracker_integration - custom_issue_tracker_integration
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Zentao::Client do
subject(:integration) { described_class.new(zentao_integration) }
let(:zentao_integration) { create(:zentao_integration) }
let(:mock_get_products_url) { integration.send(:url, "products/#{zentao_integration.zentao_product_xid}") }
describe '#new' do
context 'if integration is nil' do
let(:zentao_integration) { nil }
it 'raises ConfigError' do
expect { integration }.to raise_error(described_class::ConfigError)
end
end
context 'integration is provided' do
it 'is initialized successfully' do
expect { integration }.not_to raise_error
end
end
end
describe '#fetch_product' do
let(:mock_headers) do
{
headers: {
'Content-Type' => 'application/json',
'Token' => zentao_integration.api_token
}
}
end
context 'with valid product' do
let(:mock_response) { { 'id' => zentao_integration.zentao_product_xid } }
before do
WebMock.stub_request(:get, mock_get_products_url)
.with(mock_headers).to_return(status: 200, body: mock_response.to_json)
end
it 'fetches the product' do
expect(integration.fetch_product(zentao_integration.zentao_product_xid)).to eq mock_response
end
end
context 'with invalid product' do
before do
WebMock.stub_request(:get, mock_get_products_url)
.with(mock_headers).to_return(status: 404, body: {}.to_json)
end
it 'fetches the empty product' do
expect(integration.fetch_product(zentao_integration.zentao_product_xid)).to eq({})
end
end
context 'with invalid response' do
before do
WebMock.stub_request(:get, mock_get_products_url)
.with(mock_headers).to_return(status: 200, body: '[invalid json}')
end
it 'fetches the empty product' do
expect(integration.fetch_product(zentao_integration.zentao_product_xid)).to eq({})
end
end
end
describe '#ping' do
let(:mock_headers) do
{
headers: {
'Content-Type' => 'application/json',
'Token' => zentao_integration.api_token
}
}
end
context 'with valid resource' do
before do
WebMock.stub_request(:get, mock_get_products_url)
.with(mock_headers).to_return(status: 200, body: { 'deleted' => '0' }.to_json)
end
it 'responds with success' do
expect(integration.ping[:success]).to eq true
end
end
context 'with deleted resource' do
before do
WebMock.stub_request(:get, mock_get_products_url)
.with(mock_headers).to_return(status: 200, body: { 'deleted' => '1' }.to_json)
end
it 'responds with unsuccess' do
expect(integration.ping[:success]).to eq false
end
end
end
end
...@@ -8,6 +8,18 @@ RSpec.describe AddTriggersToIntegrationsTypeNew do ...@@ -8,6 +8,18 @@ RSpec.describe AddTriggersToIntegrationsTypeNew do
let(:migration) { described_class.new } let(:migration) { described_class.new }
let(:integrations) { table(:integrations) } let(:integrations) { table(:integrations) }
# This matches Gitlab::Integrations::StiType at the time the trigger was added
let(:namespaced_integrations) do
%w[
Asana Assembla Bamboo Bugzilla Buildkite Campfire Confluence CustomIssueTracker Datadog
Discord DroneCi EmailsOnPush Ewm ExternalWiki Flowdock HangoutsChat Irker Jenkins Jira Mattermost
MattermostSlashCommands MicrosoftTeams MockCi MockMonitoring Packagist PipelinesEmail Pivotaltracker
Prometheus Pushover Redmine Slack SlackSlashCommands Teamcity UnifyCircuit WebexTeams Youtrack
Github GitlabSlackApplication
]
end
describe '#up' do describe '#up' do
before do before do
migrate! migrate!
...@@ -15,7 +27,7 @@ RSpec.describe AddTriggersToIntegrationsTypeNew do ...@@ -15,7 +27,7 @@ RSpec.describe AddTriggersToIntegrationsTypeNew do
describe 'INSERT trigger' do describe 'INSERT trigger' do
it 'sets `type_new` to the transformed `type` class name' do it 'sets `type_new` to the transformed `type` class name' do
Gitlab::Integrations::StiType.namespaced_integrations.each do |type| namespaced_integrations.each do |type|
integration = integrations.create!(type: "#{type}Service") integration = integrations.create!(type: "#{type}Service")
expect(integration.reload).to have_attributes( expect(integration.reload).to have_attributes(
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Integrations::Zentao do
let(:url) { 'https://jihudemo.zentao.net' }
let(:api_url) { 'https://jihudemo.zentao.net' }
let(:api_token) { 'ZENTAO_TOKEN' }
let(:zentao_product_xid) { '3' }
let(:zentao_integration) { create(:zentao_integration) }
describe '#create' do
let(:project) { create(:project, :repository) }
let(:params) do
{
project: project,
url: url,
api_url: api_url,
api_token: api_token,
zentao_product_xid: zentao_product_xid
}
end
it 'stores data in data_fields correctly' do
tracker_data = described_class.create!(params).zentao_tracker_data
expect(tracker_data.url).to eq(url)
expect(tracker_data.api_url).to eq(api_url)
expect(tracker_data.api_token).to eq(api_token)
expect(tracker_data.zentao_product_xid).to eq(zentao_product_xid)
end
end
describe '#fields' do
it 'returns custom fields' do
expect(zentao_integration.fields.pluck(:name)).to eq(%w[url api_url api_token zentao_product_xid])
end
end
describe '#test' do
let(:test_response) { { success: true } }
before do
allow_next_instance_of(Gitlab::Zentao::Client) do |client|
allow(client).to receive(:ping).and_return(test_response)
end
end
it 'gets response from Gitlab::Zentao::Client#ping' do
expect(zentao_integration.test).to eq(test_response)
end
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Integrations::ZentaoTrackerData do
describe 'factory available' do
let(:zentao_tracker_data) { create(:zentao_tracker_data) }
it { expect(zentao_tracker_data.valid?).to eq true }
end
describe 'associations' do
it { is_expected.to belong_to(:integration) }
end
describe 'encrypted attributes' do
subject { described_class.encrypted_attributes.keys }
it { is_expected.to contain_exactly(:url, :api_url, :zentao_product_xid, :api_token) }
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment