MM-30801: pre-package channel export plugin (#16406)

* MM-30801: pre-package channel export plugin

The [channel export plugin](https://github.com/mattermost/mattermost-plugin-channel-export) complements [incident management](https://github.com/mattermost/mattermost-plugin-incident-management).

* only enable IM/CE by default on enterprise ready builds
Этот коммит содержится в:
Jesse Hallam
2020-12-04 15:09:05 -04:00
коммит произвёл GitHub
родитель 3f5041fa43
Коммит cd9185fa23
4 изменённых файлов: 54 добавлений и 2 удалений

Просмотреть файл

@@ -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)

Просмотреть файл

@@ -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)
}

Просмотреть файл

@@ -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()

Просмотреть файл

@@ -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",