Rename CommitStatusSummary to CombinedStatus

This commit is contained in:
Lunny Xiao committed 2025-05-25 00:21:52 -07:00
1 parent 0915b18157
commit e3554b3945
21 files changed
+107 -103

No files matched your search

@@ -17,21 +17,25 @@ import (
"xorm.io/builder"
)
// CommitStatusSummary holds the latest combined Status of a single Commit
type CommitStatusSummary struct {
ID int64 `xorm:"pk autoincr"`
RepoID int64 `xorm:"INDEX UNIQUE(repo_id_sha)"`
Repo *repo_model.Repository `xorm:"-"`
SHA string `xorm:"VARCHAR(64) NOT NULL INDEX UNIQUE(repo_id_sha)"`
State commitstatus.CombinedStatus `xorm:"VARCHAR(7) NOT NULL"`
TargetURL string `xorm:"TEXT"`
// CombinedStatus holds the latest combined Status of a single Commit
type CombinedStatus struct {
ID int64 `xorm:"pk autoincr"`
RepoID int64 `xorm:"INDEX UNIQUE(repo_id_sha)"`
Repo *repo_model.Repository `xorm:"-"`
SHA string `xorm:"VARCHAR(64) NOT NULL INDEX UNIQUE(repo_id_sha)"`
State commitstatus.CombinedStatusState `xorm:"VARCHAR(7) NOT NULL"`
TargetURL string `xorm:"TEXT"`
}
func (CombinedStatus) TableName() string {
return "commit_status_summary" // legacy name for compatibility
}
func init() {
db.RegisterModel(new(CommitStatusSummary))
db.RegisterModel(new(CombinedStatus))
}
func (status *CommitStatusSummary) loadRepository(ctx context.Context) error {
func (status *CombinedStatus) loadRepository(ctx context.Context) error {
if status.RepoID == 0 || status.Repo != nil {
return nil
}
@@ -46,12 +50,12 @@ func (status *CommitStatusSummary) loadRepository(ctx context.Context) error {
}
// LocaleString returns the locale string name of the Status
func (status *CommitStatusSummary) LocaleString(lang translation.Locale) string {
func (status *CombinedStatus) LocaleString(lang translation.Locale) string {
return lang.TrString("repo.commitstatus." + status.State.String())
}
// HideActionsURL set `TargetURL` to an empty string if the status comes from Gitea Actions
func (status *CommitStatusSummary) HideActionsURL(ctx context.Context) {
func (status *CombinedStatus) HideActionsURL(ctx context.Context) {
if status.RepoID == 0 {
return
}
@@ -72,13 +76,13 @@ type RepoSHA struct {
SHA string
}
func GetLatestCombinedStatusForRepoAndSHAs(ctx context.Context, repoSHAs []RepoSHA) ([]*CommitStatusSummary, error) {
func GetLatestCombinedStatusForRepoAndSHAs(ctx context.Context, repoSHAs []RepoSHA) ([]*CombinedStatus, error) {
cond := builder.NewCond()
for _, rs := range repoSHAs {
cond = cond.Or(builder.Eq{"repo_id": rs.RepoID, "sha": rs.SHA})
}
var summaries []*CommitStatusSummary
var summaries []*CombinedStatus
if err := db.GetEngine(ctx).Where(cond).Find(&summaries); err != nil {
return nil, err
}
@@ -90,7 +94,7 @@ func UpdateCommitStatusSummary(ctx context.Context, repoID int64, sha string) er
if err != nil {
return err
}
summary := CalcCommitStatusSummary(commitStatuses)
summary := 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
@@ -111,7 +115,7 @@ func UpdateCommitStatusSummary(ctx context.Context, repoID int64, sha string) er
return nil
}
func CommitStatusSummeriesHideActionsURL(ctx context.Context, statuses []*CommitStatusSummary) {
func CombinedStatusesHideActionsURL(ctx context.Context, statuses []*CombinedStatus) {
idToRepos := make(map[int64]*repo_model.Repository)
for _, status := range statuses {
if status == nil {
+6 -6
View File
@@ -226,8 +226,8 @@ func (status *CommitStatus) HideActionsURL(ctx context.Context) {
}
}
// CalcCommitStatus returns a combined status, the commit statuses should order by id desc
func CalcCommitStatus(statuses []*CommitStatus) commitstatus.CombinedStatus {
// CalcCombinedStatusState returns a combined status state, the commit statuses should order by id desc
func CalcCombinedStatusState(statuses []*CommitStatus) commitstatus.CombinedStatusState {
states := make(commitstatus.CommitStatusStates, 0, len(statuses))
for _, status := range statuses {
states = append(states, status.State)
@@ -235,8 +235,8 @@ func CalcCommitStatus(statuses []*CommitStatus) commitstatus.CombinedStatus {
return states.Merge()
}
// CalcCommitStatusSummary returns commit status summary, the commit statuses should order by id desc
func CalcCommitStatusSummary(statuses []*CommitStatus) *CommitStatusSummary {
// CalcCombinedStatus returns combined status struct, the commit statuses should order by id desc
func CalcCombinedStatus(statuses []*CommitStatus) *CombinedStatus {
if len(statuses) == 0 {
return nil
}
@@ -249,7 +249,7 @@ func CalcCommitStatusSummary(statuses []*CommitStatus) *CommitStatusSummary {
targetURL = status.TargetURL
}
}
return &CommitStatusSummary{
return &CombinedStatus{
RepoID: statuses[0].RepoID,
SHA: statuses[0].SHA,
State: states.Merge(),
@@ -499,7 +499,7 @@ func NewCommitStatus(ctx context.Context, opts NewCommitStatusOptions) error {
// SignCommitWithStatuses represents a commit with validation of signature and status state.
type SignCommitWithStatuses struct {
Status *CommitStatusSummary
Status *CombinedStatus
Statuses []*CommitStatus
*asymkey_model.SignCommit
}
+9 -9
View File
@@ -70,7 +70,7 @@ func TestGetCommitStatuses(t *testing.T) {
func Test_CalcCommitStatus(t *testing.T) {
kases := []struct {
statuses []*git_model.CommitStatus
expected commitstatus.CombinedStatus
expected commitstatus.CombinedStatusState
}{
{
statuses: []*git_model.CommitStatus{
@@ -78,7 +78,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusPending,
},
},
expected: commitstatus.CombinedStatusPending,
expected: commitstatus.CombinedStatusStatePending,
},
{
statuses: []*git_model.CommitStatus{
@@ -89,7 +89,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusPending,
},
},
expected: commitstatus.CombinedStatusPending,
expected: commitstatus.CombinedStatusStatePending,
},
{
statuses: []*git_model.CommitStatus{
@@ -103,7 +103,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusPending,
expected: commitstatus.CombinedStatusStatePending,
},
{
statuses: []*git_model.CommitStatus{
@@ -117,7 +117,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusFailure,
expected: commitstatus.CombinedStatusStateFailure,
},
{
statuses: []*git_model.CommitStatus{
@@ -131,7 +131,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusPending,
expected: commitstatus.CombinedStatusStatePending,
},
{
statuses: []*git_model.CommitStatus{
@@ -145,7 +145,7 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusSuccess,
},
},
expected: commitstatus.CombinedStatusSuccess,
expected: commitstatus.CombinedStatusStateSuccess,
},
{
statuses: []*git_model.CommitStatus{
@@ -159,12 +159,12 @@ func Test_CalcCommitStatus(t *testing.T) {
State: commitstatus.CommitStatusWarning,
},
},
expected: commitstatus.CombinedStatusFailure,
expected: commitstatus.CombinedStatusStateFailure,
},
}
for _, kase := range kases {
assert.Equal(t, kase.expected, git_model.CalcCommitStatus(kase.statuses))
assert.Equal(t, kase.expected, git_model.CalcCombinedStatusState(kase.statuses))
}
}