diff --git a/Makefile b/Makefile index 04e00c3e36..35cd201dcf 100644 --- a/Makefile +++ b/Makefile @@ -96,6 +96,7 @@ PLUGIN_PACKAGES += mattermost-plugin-jira-v2.3.2 PLUGIN_PACKAGES += mattermost-plugin-gitlab-v1.1.0 PLUGIN_PACKAGES += mattermost-plugin-jenkins-v1.0.0 PLUGIN_PACKAGES += mattermost-plugin-incident-management-v1.1.1 +PLUGIN_PACKAGES += mattermost-plugin-channel-export-v0.2.2 # Prepares the enterprise build if exists. The IGNORE stuff is a hack to get the Makefile to execute the commands outside a target ifeq ($(BUILD_ENTERPRISE_READY),true) diff --git a/model/config.go b/model/config.go index 6fe0593734..94e7ee5c47 100644 --- a/model/config.go +++ b/model/config.go @@ -2676,11 +2676,16 @@ func (s *PluginSettings) SetDefaults(ls LogSettings) { s.PluginStates["com.mattermost.nps"] = &PluginState{Enable: ls.EnableDiagnostics == nil || *ls.EnableDiagnostics} } - if s.PluginStates["com.mattermost.plugin-incident-management"] == nil { + if s.PluginStates["com.mattermost.plugin-incident-management"] == nil && BuildEnterpriseReady == "true" { // Enable the incident management plugin by default s.PluginStates["com.mattermost.plugin-incident-management"] = &PluginState{Enable: true} } + if s.PluginStates["com.mattermost.plugin-channel-export"] == nil && BuildEnterpriseReady == "true" { + // Enable the channel export plugin by default + s.PluginStates["com.mattermost.plugin-channel-export"] = &PluginState{Enable: true} + } + if s.EnableMarketplace == nil { s.EnableMarketplace = NewBool(PLUGIN_SETTINGS_DEFAULT_ENABLE_MARKETPLACE) } diff --git a/model/config_test.go b/model/config_test.go index b8142da37a..9db0758f2f 100644 --- a/model/config_test.go +++ b/model/config_test.go @@ -309,14 +309,24 @@ func TestConfigDefaultNPSPluginState(t *testing.T) { } func TestConfigDefaultIncidentManagementPluginState(t *testing.T) { - t.Run("should enable IncidentManagement plugin by default", func(t *testing.T) { + t.Run("should enable IncidentManagement plugin by default on enterprise-ready builds", func(t *testing.T) { + BuildEnterpriseReady = "true" c1 := Config{} c1.SetDefaults() assert.True(t, c1.PluginSettings.PluginStates["com.mattermost.plugin-incident-management"].Enable) }) + t.Run("should not enable IncidentManagement plugin by default on non-enterprise-ready builds", func(t *testing.T) { + BuildEnterpriseReady = "" + c1 := Config{} + c1.SetDefaults() + + assert.Nil(t, c1.PluginSettings.PluginStates["com.mattermost.plugin-incident-management"]) + }) + t.Run("should not re-enable IncidentManagement plugin after it has been disabled", func(t *testing.T) { + BuildEnterpriseReady = "" c1 := Config{ PluginSettings: PluginSettings{ PluginStates: map[string]*PluginState{ @@ -333,6 +343,41 @@ func TestConfigDefaultIncidentManagementPluginState(t *testing.T) { }) } +func TestConfigDefaultChannelExportPluginState(t *testing.T) { + t.Run("should enable ChannelExport plugin by default on enterprise-ready builds", func(t *testing.T) { + BuildEnterpriseReady = "true" + c1 := Config{} + c1.SetDefaults() + + assert.True(t, c1.PluginSettings.PluginStates["com.mattermost.plugin-channel-export"].Enable) + }) + + t.Run("should not enable ChannelExport plugin by default on non-enterprise-ready builds", func(t *testing.T) { + BuildEnterpriseReady = "" + c1 := Config{} + c1.SetDefaults() + + assert.Nil(t, c1.PluginSettings.PluginStates["com.mattermost.plugin-channel-export"]) + }) + + t.Run("should not re-enable ChannelExport plugin after it has been disabled", func(t *testing.T) { + BuildEnterpriseReady = "" + c1 := Config{ + PluginSettings: PluginSettings{ + PluginStates: map[string]*PluginState{ + "com.mattermost.plugin-channel-export": { + Enable: false, + }, + }, + }, + } + + c1.SetDefaults() + + assert.False(t, c1.PluginSettings.PluginStates["com.mattermost.plugin-channel-export"].Enable) + }) +} + func TestTeamSettingsIsValidSiteNameEmpty(t *testing.T) { c1 := Config{} c1.SetDefaults() diff --git a/services/telemetry/telemetry.go b/services/telemetry/telemetry.go index 666889beef..d083b414a2 100644 --- a/services/telemetry/telemetry.go +++ b/services/telemetry/telemetry.go @@ -1282,6 +1282,7 @@ func (ts *TelemetryService) trackPluginConfig(cfg *model.Config, marketplaceURL "com.mattermost.custom-attributes", "com.mattermost.mscalendar", "com.mattermost.nps", + "com.mattermost.plugin-channel-export", "com.mattermost.plugin-incident-management", "com.mattermost.plugin-todo", "com.mattermost.webex",