|
|
@@ -1,6 +1,7 @@ |
|
|
|
package repo |
|
|
|
|
|
|
|
import ( |
|
|
|
"code.gitea.io/gitea/modules/repository" |
|
|
|
"encoding/json" |
|
|
|
"strconv" |
|
|
|
|
|
|
@@ -121,7 +122,7 @@ func HandleBlockChainUnSuccessRepos() { |
|
|
|
for _, repo := range repos { |
|
|
|
err = repo.GetOwner() |
|
|
|
if err != nil { |
|
|
|
log.Error("GetOwner(%s) failed:%s", repo.Name, err.Error()) |
|
|
|
log.Error("GetOwner(%s) failed:%v", repo.Name, err) |
|
|
|
continue |
|
|
|
} |
|
|
|
if len(repo.Owner.PrivateKey) == 0 || len(repo.Owner.PublicKey) == 0 { |
|
|
@@ -132,7 +133,7 @@ func HandleBlockChainUnSuccessRepos() { |
|
|
|
log.Info(strRepoID) |
|
|
|
_, err = blockchain.NewRepo(strRepoID, repo.Owner.PublicKey, repo.Name) |
|
|
|
if err != nil { |
|
|
|
log.Error("blockchain.NewRepo(%s) failed:%s", strRepoID, err.Error()) |
|
|
|
log.Error("blockchain.NewRepo(%s) failed:%v", strRepoID, err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -149,7 +150,7 @@ func HandleBlockChainUnSuccessCommits() { |
|
|
|
for _, block_chain := range blockChains { |
|
|
|
_, err = blockchain.Contribute(block_chain.ContractAddress, block_chain.Contributor, blockchain.ActionCommit, block_chain.CommitID, int(block_chain.Amount)) |
|
|
|
if err != nil { |
|
|
|
log.Error("blockchain.Contribute(%s) failed:%s", block_chain.CommitID, err.Error()) |
|
|
|
log.Error("blockchain.Contribute(%s) failed:%v", block_chain.CommitID, err) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -166,7 +167,7 @@ func HandleBlockChainUnSuccessUsers() { |
|
|
|
for _, user := range users { |
|
|
|
result, err := blockchain.CreateBlockchainAccount() |
|
|
|
if err != nil { |
|
|
|
log.Error("blockchain.CreateBlockchainAccount(%s) failed:%s", user.Name, err.Error()) |
|
|
|
log.Error("blockchain.CreateBlockchainAccount(%s) failed:%v", user.Name, err) |
|
|
|
continue |
|
|
|
} |
|
|
|
|
|
|
@@ -178,3 +179,72 @@ func HandleBlockChainUnSuccessUsers() { |
|
|
|
|
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
func HandleUnTransformedActions() { |
|
|
|
actions, err := models.GetUnTransformedActions() |
|
|
|
if err != nil { |
|
|
|
log.Error("GetUnTransformedActions failed:", err.Error()) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
isTransformed := true |
|
|
|
|
|
|
|
for _, action := range actions { |
|
|
|
var content repository.PushCommits |
|
|
|
err = json.Unmarshal([]byte(action.Content), &content) |
|
|
|
if err != nil { |
|
|
|
isTransformed = false |
|
|
|
log.Error("json.Unmarshal action.Content(%s) failed:%v", action.Content, err) |
|
|
|
break |
|
|
|
} |
|
|
|
|
|
|
|
repo, err := models.GetRepositoryByID(action.RepoID) |
|
|
|
if err != nil { |
|
|
|
isTransformed = false |
|
|
|
log.Error("GetRepositoryByID(%d) failed:%v", action.RepoID, err) |
|
|
|
break |
|
|
|
} |
|
|
|
|
|
|
|
if repo.ContractAddress == "" { |
|
|
|
isTransformed = false |
|
|
|
log.Error("the repo(%s) has not been initialized in block_chain", repo.Name) |
|
|
|
break |
|
|
|
} |
|
|
|
|
|
|
|
for _, commit := range content.Commits { |
|
|
|
_, err = models.GetBlockChainByCommitID(commit.Sha1) |
|
|
|
if err == nil { |
|
|
|
log.Info("the commit(%s) has been transformed", commit.Sha1) |
|
|
|
continue |
|
|
|
} |
|
|
|
|
|
|
|
user, err := models.GetUserByName(commit.CommitterName) |
|
|
|
if err != nil { |
|
|
|
isTransformed = false |
|
|
|
log.Error("GetUserByName(%s) failed:%v", commit.CommitterName, err) |
|
|
|
break |
|
|
|
} |
|
|
|
|
|
|
|
blockChain := models.BlockChain{ |
|
|
|
CommitID : commit.Sha1, |
|
|
|
Contributor : user.PublicKey, |
|
|
|
ContractAddress : repo.ContractAddress, |
|
|
|
Status : models.BlockChainCommitInit, |
|
|
|
Amount : 1, |
|
|
|
UserID : action.UserID, |
|
|
|
RepoID : action.RepoID, |
|
|
|
} |
|
|
|
_, err = models.InsertBlockChain(&blockChain) |
|
|
|
if err != nil { |
|
|
|
isTransformed = false |
|
|
|
log.Error("InsertBlockChain(%s) failed:%v", commit.Sha1, err) |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
log.Info("", isTransformed) |
|
|
|
|
|
|
|
return |
|
|
|
} |