@@ -18,18 +18,12 @@ limitations under the License.
1818package impl
1919
2020import (
21- "context"
22- "fmt"
2321 "github.com/apache/incubator-devlake/core/dal"
2422 "github.com/apache/incubator-devlake/core/errors"
25- "github.com/apache/incubator-devlake/core/log"
2623 "github.com/apache/incubator-devlake/core/plugin"
2724 helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
28- "github.com/apache/incubator-devlake/plugins/gitextractor/models"
2925 "github.com/apache/incubator-devlake/plugins/gitextractor/parser"
30- "github.com/apache/incubator-devlake/plugins/gitextractor/store"
3126 "github.com/apache/incubator-devlake/plugins/gitextractor/tasks"
32- "strings"
3327)
3428
3529var _ interface {
@@ -55,14 +49,15 @@ func (p GitExtractor) Name() string {
5549// return all available subtasks, framework will run them for you in order
5650func (p GitExtractor ) SubTaskMetas () []plugin.SubTaskMeta {
5751 return []plugin.SubTaskMeta {
52+ tasks .CloneGitRepoMeta ,
5853 tasks .CollectGitCommitMeta ,
5954 tasks .CollectGitBranchMeta ,
6055 tasks .CollectGitTagMeta ,
6156 tasks .CollectGitDiffLineMeta ,
6257 }
6358}
6459
65- // based on task context and user input options, return data that shared among all subtasks
60+ // PrepareTaskData based on task context and user input options, return data that shared among all subtasks
6661func (p GitExtractor ) PrepareTaskData (taskCtx plugin.TaskContext , options map [string ]interface {}) (interface {}, errors.Error ) {
6762 var op tasks.GitExtractorOptions
6863 if err := helper .Decode (options , & op , nil ); err != nil {
@@ -71,12 +66,10 @@ func (p GitExtractor) PrepareTaskData(taskCtx plugin.TaskContext, options map[st
7166 if err := op .Valid (); err != nil {
7267 return nil , err
7368 }
74- storage := store .NewDatabase (taskCtx , op .RepoId )
75- repo , err := NewGitRepo (taskCtx .GetContext (), taskCtx .GetLogger (), storage , op )
76- if err != nil {
77- return nil , err
69+ taskData := & tasks.GitExtractorTaskData {
70+ Options : & op ,
7871 }
79- return repo , nil
72+ return taskData , nil
8073}
8174
8275func (p GitExtractor ) Close (taskCtx plugin.TaskContext ) errors.Error {
@@ -91,20 +84,3 @@ func (p GitExtractor) Close(taskCtx plugin.TaskContext) errors.Error {
9184func (p GitExtractor ) RootPkgPath () string {
9285 return "github.com/apache/incubator-devlake/plugins/gitextractor"
9386}
94-
95- // NewGitRepo create and return a new parser git repo
96- func NewGitRepo (ctx context.Context , logger log.Logger , storage models.Store , op tasks.GitExtractorOptions ) (* parser.GitRepo , errors.Error ) {
97- var err errors.Error
98- var repo * parser.GitRepo
99- p := parser .NewGitRepoCreator (storage , logger )
100- if strings .HasPrefix (op .Url , "http" ) {
101- repo , err = p .CloneOverHTTP (ctx , op .RepoId , op .Url , op .User , op .Password , op .Proxy )
102- } else if url := strings .TrimPrefix (op .Url , "ssh://" ); strings .HasPrefix (url , "git@" ) {
103- repo , err = p .CloneOverSSH (ctx , op .RepoId , url , op .PrivateKey , op .Passphrase )
104- } else if strings .HasPrefix (op .Url , "/" ) {
105- repo , err = p .LocalRepo (op .Url , op .RepoId )
106- } else {
107- return nil , errors .BadInput .New (fmt .Sprintf ("unsupported url [%s]" , op .Url ))
108- }
109- return repo , err
110- }
0 commit comments