Some improvements

This commit is contained in:
Lunny Xiao committed 2025-05-25 12:39:38 -07:00
1 parent 43ed136609
commit 083e0ba97a
10 files changed
+40 -38

No files matched your search

+5 -5
View File
@@ -89,27 +89,27 @@ func GetLatestCombinedStatusForRepoAndSHAs(ctx context.Context, repoSHAs []RepoS
return summaries, nil
}
func UpdateCommitStatusSummary(ctx context.Context, repoID int64, sha string) error {
func InsertOrUpdateCombinedStatus(ctx context.Context, repoID int64, sha string) error {
commitStatuses, _, err := GetLatestCommitStatus(ctx, repoID, sha, db.ListOptionsAll)
if err != nil {
return err
}
summary := CalcCombinedStatus(commitStatuses)
combinedStatus := CalcCombinedStatus(commitStatuses)
// mysql will return 0 when update a record which state hasn't been changed which behaviour is different from other database,
// so we need to use insert in on duplicate
if setting.Database.Type.IsMySQL() {
_, err := db.GetEngine(ctx).Exec("INSERT INTO commit_status_summary (repo_id,sha,state,target_url) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE state=?",
repoID, sha, summary.State, summary.TargetURL, summary.State)
repoID, sha, combinedStatus.State, combinedStatus.TargetURL, combinedStatus.State)
return err
}
if cnt, err := db.GetEngine(ctx).Where("repo_id=? AND sha=?", repoID, sha).
Cols("state, target_url").
Update(summary); err != nil {
Update(combinedStatus); err != nil {
return err
} else if cnt == 0 {
_, err = db.GetEngine(ctx).Insert(summary)
_, err = db.GetEngine(ctx).Insert(combinedStatus)
return err
}
return nil
+2 -2
View File
@@ -232,7 +232,7 @@ func CalcCombinedStatusState(statuses []*CommitStatus) commitstatus.CombinedStat
for _, status := range statuses {
states = append(states, status.State)
}
return states.Merge()
return states.CalcAsCombinedStatusState()
}
// CalcCombinedStatus returns combined status struct, the commit statuses should order by id desc
@@ -252,7 +252,7 @@ func CalcCombinedStatus(statuses []*CommitStatus) *CombinedStatus {
return &CombinedStatus{
RepoID: statuses[0].RepoID,
SHA: statuses[0].SHA,
State: states.Merge(),
State: states.CalcAsCombinedStatusState(),
TargetURL: targetURL,
}
}
+7 -7
View File
@@ -78,7 +78,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusPending,
},
},
expected: commitstatus.CombinedStatusStatePending,
expected: commitstatus.CombinedStatusPending,
},
{
statuses: []*git_model.CommitStatus{
@@ -89,7 +89,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusPending,
},
},
expected: commitstatus.CombinedStatusStatePending,
expected: commitstatus.CombinedStatusPending,
},
{
statuses: []*git_model.CommitStatus{
@@ -103,7 +103,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusStatePending,
expected: commitstatus.CombinedStatusPending,
},
{
statuses: []*git_model.CommitStatus{
@@ -117,7 +117,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusStateFailure,
expected: commitstatus.CombinedStatusFailure,
},
{
statuses: []*git_model.CommitStatus{
@@ -131,7 +131,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusStatePending,
expected: commitstatus.CombinedStatusPending,
},
{
statuses: []*git_model.CommitStatus{
@@ -145,7 +145,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusStateSuccess,
expected: commitstatus.CombinedStatusSuccess,
},
{
statuses: []*git_model.CommitStatus{
@@ -159,7 +159,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusWarning,
},
},
expected: commitstatus.CombinedStatusStateFailure,
expected: commitstatus.CombinedStatusFailure,
},
}