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

warren 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 e8eea41b feat: extract author info from commit
e8eea41b is described below

commit e8eea41b69df0ac5e13fa147981bc43d7976fc05
Author: zhangliang <[email protected]>
AuthorDate: Wed Jul 13 00:32:44 2022 +0800

    feat: extract author info from commit
---
 plugins/gitextractor/store/database.go | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/plugins/gitextractor/store/database.go 
b/plugins/gitextractor/store/database.go
index b050da94..becb5264 100644
--- a/plugins/gitextractor/store/database.go
+++ b/plugins/gitextractor/store/database.go
@@ -21,7 +21,9 @@ import (
        "fmt"
        "reflect"
 
+       "github.com/apache/incubator-devlake/models/domainlayer"
        "github.com/apache/incubator-devlake/models/domainlayer/code"
+       "github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/helper"
 )
@@ -29,7 +31,6 @@ import (
 const BathSize = 100
 
 type Database struct {
-       //db     *gorm.DB
        driver *helper.BatchSaveDivider
 }
 
@@ -53,11 +54,25 @@ func (d *Database) RepoCommits(repoCommit *code.RepoCommit) 
error {
 }
 
 func (d *Database) Commits(commit *code.Commit) error {
-       batch, err := d.driver.ForType(reflect.TypeOf(commit))
+       account := &crossdomain.Account{
+               DomainEntity: domainlayer.DomainEntity{Id: commit.AuthorEmail},
+               Email:        commit.AuthorEmail,
+               FullName:     commit.AuthorName,
+               UserName:     commit.AuthorName,
+       }
+       accountBatch, err := d.driver.ForType(reflect.TypeOf(account))
+       if err != nil {
+               return err
+       }
+       err = accountBatch.Add(account)
+       if err != nil {
+               return err
+       }
+       commitBatch, err := d.driver.ForType(reflect.TypeOf(commit))
        if err != nil {
                return err
        }
-       return batch.Add(commit)
+       return commitBatch.Add(commit)
 }
 
 func (d *Database) Refs(ref *code.Ref) error {

Reply via email to