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 },
