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

commit 3477db5439569f33199ae2b06c7a3fcd5cedffff
Author: Yingchu Chen <[email protected]>
AuthorDate: Thu Oct 13 12:05:02 2022 +0800

    fix(github): modify blueprint according to review
---
 plugins/github/api/blueprint.go      | 30 ++++++++++++++++--------------
 plugins/github/api/blueprint_test.go |  2 --
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/plugins/github/api/blueprint.go b/plugins/github/api/blueprint.go
index 40e334fc..e9dc5d1a 100644
--- a/plugins/github/api/blueprint.go
+++ b/plugins/github/api/blueprint.go
@@ -68,12 +68,6 @@ func MakePipelinePlan(subtaskMetas []core.SubTaskMeta, 
connectionId uint64, scop
 func makePipelinePlan(subtaskMetas []core.SubTaskMeta, scope 
[]*core.BlueprintScopeV100, apiClient helper.ApiClientGetter, connection 
*models.GithubConnection) (core.PipelinePlan, errors.Error) {
        var err errors.Error
        var repo *tasks.GithubApiRepo
-       getApiRepoIfNil := func(op *tasks.GithubOptions) (*tasks.GithubApiRepo, 
errors.Error) {
-               if repo == nil {
-                       repo, err = getApiRepo(op, apiClient)
-               }
-               return repo, err
-       }
        plan := make(core.PipelinePlan, len(scope))
        for i, scopeElem := range scope {
                // handle taskOptions and transformationRules, by dumping them 
to taskOptions
@@ -113,6 +107,13 @@ func makePipelinePlan(subtaskMetas []core.SubTaskMeta, 
scope []*core.BlueprintSc
                if err != nil {
                        return nil, err
                }
+               memorizedGetApiRepo := func() (*tasks.GithubApiRepo, 
errors.Error) {
+                       if repo == nil {
+                               repo, err = getApiRepo(op, apiClient)
+                       }
+                       return repo, err
+               }
+
                // construct subtasks
                subtasks, err := helper.MakePipelinePlanSubtasks(subtaskMetas, 
scopeElem.Entities)
                if err != nil {
@@ -131,7 +132,7 @@ func makePipelinePlan(subtaskMetas []core.SubTaskMeta, 
scope []*core.BlueprintSc
                if utils.StringsContains(scopeElem.Entities, 
core.DOMAIN_TYPE_CODE) {
                        // here is the tricky part, we have to obtain the repo 
id beforehand
                        token := strings.Split(connection.Token, ",")[0]
-                       repo, err = getApiRepoIfNil(op)
+                       repo, err = memorizedGetApiRepo()
                        if err != nil {
                                return nil, err
                        }
@@ -165,21 +166,21 @@ func makePipelinePlan(subtaskMetas []core.SubTaskMeta, 
scope []*core.BlueprintSc
                        if err != nil {
                                return nil, err
                        }
-                       repo, err = getApiRepoIfNil(op)
+                       repo, err = memorizedGetApiRepo()
                        if err != nil {
                                return nil, err
                        }
 
-                       doraOption := make(map[string]interface{})
-                       doraOption["repoId"] = 
didgen.NewDomainIdGenerator(&models.GithubRepo{}).Generate(connection.ID, 
repo.GithubId)
-                       doraRules := make(map[string]interface{})
-                       doraRules["productionPattern"] = productionPattern
-                       doraOption["transformationRules"] = doraRules
                        plan[j] = core.PipelineStage{
                                {
                                        Plugin:   "dora",
                                        Subtasks: []string{"EnrichTaskEnv"},
-                                       Options:  doraOption,
+                                       Options: map[string]interface{}{
+                                               "repoId": 
didgen.NewDomainIdGenerator(&models.GithubRepo{}).Generate(connection.ID, 
repo.GithubId),
+                                               "transformationRules": 
map[string]interface{}{
+                                                       "productionPattern": 
productionPattern,
+                                               },
+                                       },
                                },
                        }
                        // remove it from github transformationRules
@@ -189,6 +190,7 @@ func makePipelinePlan(subtaskMetas []core.SubTaskMeta, 
scope []*core.BlueprintSc
                if err != nil {
                        return nil, err
                }
+               repo = nil
        }
        return plan, nil
 }
diff --git a/plugins/github/api/blueprint_test.go 
b/plugins/github/api/blueprint_test.go
index 08dd0390..c663e3ba 100644
--- a/plugins/github/api/blueprint_test.go
+++ b/plugins/github/api/blueprint_test.go
@@ -86,8 +86,6 @@ func TestProcessScope(t *testing.T) {
        plan, err := makePipelinePlan(nil, scopes, mockApiCLient, connection)
        assert.Nil(t, err)
 
-       //planJson, err1 := json.Marshal(plan)
-       //assert.Nil(t, err1)
        expectPlan := core.PipelinePlan{
                core.PipelineStage{
                        {

Reply via email to