You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2022/10/24 06:44:53 UTC

[incubator-devlake] branch main updated: refactor: migration scripts of ICLA and Gitextractor (#3557)

This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new 453e3a8e refactor: migration scripts of ICLA and Gitextractor (#3557)
453e3a8e is described below

commit 453e3a8e263ffd3a3f662af7da30ec6378f46384
Author: mindlesscloud <li...@merico.dev>
AuthorDate: Mon Oct 24 14:44:49 2022 +0800

    refactor: migration scripts of ICLA and Gitextractor (#3557)
---
 plugins/gitextractor/gitextractor.go                  |  7 -------
 .../migrationscripts/20221021_add_icla_committer.go}  | 19 +++++++++++++++----
 .../models/migrationscripts/archived/committer.go}    | 15 ++++++++++-----
 .../models/migrationscripts/register.go               | 10 +++++-----
 plugins/icla/plugin_main.go                           | 17 +++++++++--------
 5 files changed, 39 insertions(+), 29 deletions(-)

diff --git a/plugins/gitextractor/gitextractor.go b/plugins/gitextractor/gitextractor.go
index e15f7a1e..5a3866e3 100644
--- a/plugins/gitextractor/gitextractor.go
+++ b/plugins/gitextractor/gitextractor.go
@@ -21,10 +21,8 @@ import (
 	"strings"
 
 	"github.com/apache/incubator-devlake/errors"
-	"github.com/apache/incubator-devlake/migration"
 	"github.com/apache/incubator-devlake/plugins/core"
 	"github.com/apache/incubator-devlake/plugins/gitextractor/models"
-	"github.com/apache/incubator-devlake/plugins/gitextractor/models/migrationscripts"
 	"github.com/apache/incubator-devlake/plugins/gitextractor/parser"
 	"github.com/apache/incubator-devlake/plugins/gitextractor/store"
 	"github.com/apache/incubator-devlake/plugins/gitextractor/tasks"
@@ -33,7 +31,6 @@ import (
 
 var _ core.PluginMeta = (*GitExtractor)(nil)
 var _ core.PluginTask = (*GitExtractor)(nil)
-var _ core.Migratable = (*GitExtractor)(nil)
 
 type GitExtractor struct{}
 
@@ -81,10 +78,6 @@ func (plugin GitExtractor) Close(taskCtx core.TaskContext) errors.Error {
 	return nil
 }
 
-func (plugin GitExtractor) MigrationScripts() []migration.Script {
-	return migrationscripts.All()
-}
-
 func (plugin GitExtractor) RootPkgPath() string {
 	return "github.com/apache/incubator-devlake/plugins/gitextractor"
 }
diff --git a/plugins/gitextractor/models/migrationscripts/register.go b/plugins/icla/models/migrationscripts/20221021_add_icla_committer.go
similarity index 61%
copy from plugins/gitextractor/models/migrationscripts/register.go
copy to plugins/icla/models/migrationscripts/20221021_add_icla_committer.go
index ddb59c0a..c8fe69e5 100644
--- a/plugins/gitextractor/models/migrationscripts/register.go
+++ b/plugins/icla/models/migrationscripts/20221021_add_icla_committer.go
@@ -18,10 +18,21 @@ limitations under the License.
 package migrationscripts
 
 import (
-	"github.com/apache/incubator-devlake/migration"
+	"github.com/apache/incubator-devlake/errors"
+	"github.com/apache/incubator-devlake/plugins/core"
+	"github.com/apache/incubator-devlake/plugins/icla/models/migrationscripts/archived"
 )
 
-// All return all the migration scripts
-func All() []migration.Script {
-	return []migration.Script{}
+type addIclaCommitter struct{}
+
+func (script *addIclaCommitter) Up(basicRes core.BasicRes) errors.Error {
+	return basicRes.GetDal().AutoMigrate(&archived.IclaCommitter{})
+}
+
+func (*addIclaCommitter) Version() uint64 {
+	return 20221021183022
+}
+
+func (*addIclaCommitter) Name() string {
+	return "create _tool_icla_committers"
 }
diff --git a/plugins/gitextractor/models/migrationscripts/register.go b/plugins/icla/models/migrationscripts/archived/committer.go
similarity index 70%
copy from plugins/gitextractor/models/migrationscripts/register.go
copy to plugins/icla/models/migrationscripts/archived/committer.go
index ddb59c0a..23e371be 100644
--- a/plugins/gitextractor/models/migrationscripts/register.go
+++ b/plugins/icla/models/migrationscripts/archived/committer.go
@@ -15,13 +15,18 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-package migrationscripts
+package archived
 
 import (
-	"github.com/apache/incubator-devlake/migration"
+	"github.com/apache/incubator-devlake/models/migrationscripts/archived"
 )
 
-// All return all the migration scripts
-func All() []migration.Script {
-	return []migration.Script{}
+type IclaCommitter struct {
+	UserName string `gorm:"primaryKey;type:varchar(255)"`
+	Name     string `gorm:"primaryKey;type:varchar(255)"`
+	archived.NoPKModel
+}
+
+func (IclaCommitter) TableName() string {
+	return "_tool_icla_committer"
 }
diff --git a/plugins/gitextractor/models/migrationscripts/register.go b/plugins/icla/models/migrationscripts/register.go
similarity index 84%
rename from plugins/gitextractor/models/migrationscripts/register.go
rename to plugins/icla/models/migrationscripts/register.go
index ddb59c0a..37988830 100644
--- a/plugins/gitextractor/models/migrationscripts/register.go
+++ b/plugins/icla/models/migrationscripts/register.go
@@ -17,11 +17,11 @@ limitations under the License.
 
 package migrationscripts
 
-import (
-	"github.com/apache/incubator-devlake/migration"
-)
+import "github.com/apache/incubator-devlake/plugins/core"
 
 // All return all the migration scripts
-func All() []migration.Script {
-	return []migration.Script{}
+func All() []core.MigrationScript {
+	return []core.MigrationScript{
+		new(addIclaCommitter),
+	}
 }
diff --git a/plugins/icla/plugin_main.go b/plugins/icla/plugin_main.go
index ce7fee89..e9125ccf 100644
--- a/plugins/icla/plugin_main.go
+++ b/plugins/icla/plugin_main.go
@@ -19,11 +19,12 @@ package main
 
 import (
 	"fmt"
-	"github.com/apache/incubator-devlake/errors"
-	"github.com/apache/incubator-devlake/plugins/helper"
 
+	"github.com/apache/incubator-devlake/errors"
 	"github.com/apache/incubator-devlake/plugins/core"
+	"github.com/apache/incubator-devlake/plugins/helper"
 	"github.com/apache/incubator-devlake/plugins/icla/models"
+	"github.com/apache/incubator-devlake/plugins/icla/models/migrationscripts"
 	"github.com/apache/incubator-devlake/plugins/icla/tasks"
 	"github.com/apache/incubator-devlake/runner"
 	"github.com/spf13/cobra"
@@ -36,6 +37,7 @@ var _ core.PluginMeta = (*Icla)(nil)
 var _ core.PluginInit = (*Icla)(nil)
 var _ core.PluginTask = (*Icla)(nil)
 var _ core.PluginApi = (*Icla)(nil)
+var _ core.PluginMigration = (*Icla)(nil)
 var _ core.CloseablePluginTask = (*Icla)(nil)
 
 // PluginEntry is a variable exported for Framework to search and load
@@ -54,12 +56,7 @@ func (plugin Icla) Description() string {
 }
 
 func (plugin Icla) Init(config *viper.Viper, logger core.Logger, db *gorm.DB) errors.Error {
-	// AutoSchemas is a **develop** script to auto migrate models easily.
-	// FIXME Don't submit it as a open source plugin
-	return errors.Convert(db.Migrator().AutoMigrate(
-		// TODO add your models in here
-		&models.IclaCommitter{},
-	))
+	return nil
 }
 
 func (plugin Icla) SubTaskMetas() []core.SubTaskMeta {
@@ -92,6 +89,10 @@ func (plugin Icla) RootPkgPath() string {
 	return "github.com/apache/incubator-devlake/plugins/icla"
 }
 
+func (plugin Icla) MigrationScripts() []core.MigrationScript {
+	return migrationscripts.All()
+}
+
 func (plugin Icla) ApiResources() map[string]map[string]core.ApiResourceHandler {
 	return nil
 }