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

klesh pushed a commit to branch kw-7852-components-field-length
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 26df5896b0a24f1d355cb363e0c2eb8a2acd2d9a
Author: Klesh Wong <[email protected]>
AuthorDate: Wed Aug 7 17:34:58 2024 +0800

    refactor: update github account/release extractor to adopt single record 
extraction
---
 .../plugins/github_graphql/tasks/account_extractor.go   | 17 +++++++----------
 .../plugins/github_graphql/tasks/release_extractor.go   | 16 +++++++---------
 2 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/backend/plugins/github_graphql/tasks/account_extractor.go 
b/backend/plugins/github_graphql/tasks/account_extractor.go
index deb5877a9..9be27afda 100644
--- a/backend/plugins/github_graphql/tasks/account_extractor.go
+++ b/backend/plugins/github_graphql/tasks/account_extractor.go
@@ -49,20 +49,17 @@ func ExtractAccounts(taskCtx plugin.SubTaskContext) 
errors.Error {
                        Table: RAW_ACCOUNTS_TABLE,
                },
                Extract: func(row *api.RawData) ([]interface{}, errors.Error) {
-                       apiAccount := &GraphqlQueryAccountWrapper{}
-                       err := errors.Convert(json.Unmarshal(row.Data, 
apiAccount))
+                       account := &GraphqlQueryAccount{}
+                       err := errors.Convert(json.Unmarshal(row.Data, account))
                        if err != nil {
                                return nil, err
                        }
-                       accounts := apiAccount.Users
                        var result []interface{}
-                       for _, account := range accounts {
-                               relatedUsers, err := convertAccount(account, 
data.Options.ConnectionId)
-                               if err != nil {
-                                       return nil, err
-                               }
-                               result = append(result, relatedUsers...)
+                       relatedUsers, err := convertAccount(account, 
data.Options.ConnectionId)
+                       if err != nil {
+                               return nil, err
                        }
+                       result = append(result, relatedUsers...)
                        return result, nil
                },
        })
@@ -74,7 +71,7 @@ func ExtractAccounts(taskCtx plugin.SubTaskContext) 
errors.Error {
        return extractor.Execute()
 }
 
-func convertAccount(res GraphqlQueryAccount, connId uint64) ([]interface{}, 
errors.Error) {
+func convertAccount(res *GraphqlQueryAccount, connId uint64) ([]interface{}, 
errors.Error) {
        results := make([]interface{}, 0, len(res.Organizations.Nodes)+1)
        githubAccount := &models.GithubAccount{
                ConnectionId: connId,
diff --git a/backend/plugins/github_graphql/tasks/release_extractor.go 
b/backend/plugins/github_graphql/tasks/release_extractor.go
index ef98a2803..4b819fc23 100644
--- a/backend/plugins/github_graphql/tasks/release_extractor.go
+++ b/backend/plugins/github_graphql/tasks/release_extractor.go
@@ -19,6 +19,7 @@ package tasks
 
 import (
        "encoding/json"
+
        "github.com/apache/incubator-devlake/core/errors"
        "github.com/apache/incubator-devlake/core/models/common"
        "github.com/apache/incubator-devlake/core/plugin"
@@ -49,21 +50,18 @@ func ExtractReleases(taskCtx plugin.SubTaskContext) 
errors.Error {
                        Table: RAW_RELEASE_TABLE,
                },
                Extract: func(row *api.RawData) ([]interface{}, errors.Error) {
-                       apiDeployment := &GraphqlQueryReleaseWrapper{}
-                       err := errors.Convert(json.Unmarshal(row.Data, 
apiDeployment))
+                       release := &GraphqlQueryRelease{}
+                       err := errors.Convert(json.Unmarshal(row.Data, release))
                        if err != nil {
                                return nil, err
                        }
 
-                       releases := apiDeployment.Repository.Releases.Releases
                        var results []interface{}
-                       for _, release := range releases {
-                               githubRelease, err := 
convertGitHubRelease(release, data.Options.ConnectionId, data.Options.GithubId)
-                               if err != nil {
-                                       return nil, errors.Convert(err)
-                               }
-                               results = append(results, githubRelease)
+                       githubRelease, err := convertGitHubRelease(release, 
data.Options.ConnectionId, data.Options.GithubId)
+                       if err != nil {
+                               return nil, errors.Convert(err)
                        }
+                       results = append(results, githubRelease)
 
                        return results, nil
                },

Reply via email to