From e3554b394550d5aa4c21ac065fc7c0cd74a2fc1a Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 25 May 2025 00:21:52 -0700 Subject: [PATCH] Rename CommitStatusSummary to CombinedStatus --- ...t_status_summary.go => combined_status.go} | 36 ++++++++++--------- models/git/commit_status.go | 12 +++---- models/git/commit_status_test.go | 18 +++++----- modules/commitstatus/combined_status.go | 30 ++++++++-------- modules/commitstatus/commit_status.go | 8 ++--- modules/structs/status.go | 14 ++++---- routers/web/repo/branch.go | 4 +-- routers/web/repo/commit.go | 2 +- routers/web/repo/pull.go | 6 ++-- routers/web/repo/release.go | 4 +-- routers/web/repo/repo.go | 10 +++--- routers/web/repo/view.go | 2 +- services/convert/status.go | 8 ++--- services/git/commit.go | 2 +- services/pull/commit_status.go | 10 +++--- services/pull/commit_status_test.go | 12 +++---- services/pull/pull.go | 8 ++--- .../repository/commitstatus/commitstatus.go | 12 +++---- services/repository/gitgraph/graph_models.go | 4 +-- services/repository/repository.go | 6 ++-- tests/integration/pull_status_test.go | 2 +- 21 files changed, 107 insertions(+), 103 deletions(-) rename models/git/{commit_status_summary.go => combined_status.go} (70%) diff --git a/models/git/commit_status_summary.go b/models/git/combined_status.go similarity index 70% rename from models/git/commit_status_summary.go rename to models/git/combined_status.go index aa980baecb..568c8b46d7 100644 --- a/models/git/commit_status_summary.go +++ b/models/git/combined_status.go @@ -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 { diff --git a/models/git/commit_status.go b/models/git/commit_status.go index 7ab89bd63b..79aa0d362e 100644 --- a/models/git/commit_status.go +++ b/models/git/commit_status.go @@ -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 } diff --git a/models/git/commit_status_test.go b/models/git/commit_status_test.go index 119711f12c..cd3b9a8dfa 100644 --- a/models/git/commit_status_test.go +++ b/models/git/commit_status_test.go @@ -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)) } } diff --git a/modules/commitstatus/combined_status.go b/modules/commitstatus/combined_status.go index ca8b86edb9..378dd1ad7d 100644 --- a/modules/commitstatus/combined_status.go +++ b/modules/commitstatus/combined_status.go @@ -3,33 +3,33 @@ package commitstatus -// CombinedStatus represents the combined status of a commit. -type CombinedStatus string +// CombinedStatusState represents the combined status of a commit. +type CombinedStatusState string const ( - // CombinedStatusPending is for when the CombinedStatus is Pending - CombinedStatusPending CombinedStatus = "pending" - // CombinedStatusSuccess is for when the CombinedStatus is Success - CombinedStatusSuccess CombinedStatus = "success" - // CombinedStatusFailure is for when the CombinedStatus is Failure - CombinedStatusFailure CombinedStatus = "failure" + // CombinedStatusStatePending is for when the CombinedStatus is Pending + CombinedStatusStatePending CombinedStatusState = "pending" + // CombinedStatusStateSuccess is for when the CombinedStatus is Success + CombinedStatusStateSuccess CombinedStatusState = "success" + // CombinedStatusStateFailure is for when the CombinedStatus is Failure + CombinedStatusStateFailure CombinedStatusState = "failure" ) -func (cs CombinedStatus) String() string { +func (cs CombinedStatusState) String() string { return string(cs) } // IsPending represents if commit status state is pending -func (cs CombinedStatus) IsPending() bool { - return cs == CombinedStatusPending +func (cs CombinedStatusState) IsPending() bool { + return cs == CombinedStatusStatePending } // IsSuccess represents if commit status state is success -func (cs CombinedStatus) IsSuccess() bool { - return cs == CombinedStatusSuccess +func (cs CombinedStatusState) IsSuccess() bool { + return cs == CombinedStatusStateSuccess } // IsFailure represents if commit status state is failure -func (cs CombinedStatus) IsFailure() bool { - return cs == CombinedStatusFailure +func (cs CombinedStatusState) IsFailure() bool { + return cs == CombinedStatusStateFailure } diff --git a/modules/commitstatus/commit_status.go b/modules/commitstatus/commit_status.go index f7d4c7d710..1bb979f528 100644 --- a/modules/commitstatus/commit_status.go +++ b/modules/commitstatus/commit_status.go @@ -57,19 +57,19 @@ type CommitStatusStates []CommitStatusState //nolint // > pending if there are no statuses or a context is pending // > success if the latest status for all contexts is success -func (css CommitStatusStates) Merge() CombinedStatus { +func (css CommitStatusStates) Merge() CombinedStatusState { successCnt := 0 for _, state := range css { switch { case state.IsError() || state.IsFailure(): - return CombinedStatusFailure + return CombinedStatusStateFailure case state.IsPending(): case state.IsSuccess() || state.IsWarning(): successCnt++ } } if successCnt > 0 && successCnt == len(css) { - return CombinedStatusSuccess + return CombinedStatusStateSuccess } - return CombinedStatusPending + return CombinedStatusStatePending } diff --git a/modules/structs/status.go b/modules/structs/status.go index d22ab6862c..4fd9f774ae 100644 --- a/modules/structs/status.go +++ b/modules/structs/status.go @@ -26,13 +26,13 @@ type CommitStatus struct { // CombinedStatus holds the combined state of several statuses for a single commit type CombinedStatus struct { - State commitstatus.CombinedStatus `json:"state"` - SHA string `json:"sha"` - TotalCount int `json:"total_count"` - Statuses []*CommitStatus `json:"statuses"` - Repository *Repository `json:"repository"` - CommitURL string `json:"commit_url"` - URL string `json:"url"` + State commitstatus.CombinedStatusState `json:"state"` + SHA string `json:"sha"` + TotalCount int `json:"total_count"` + Statuses []*CommitStatus `json:"statuses"` + Repository *Repository `json:"repository"` + CommitURL string `json:"commit_url"` + URL string `json:"url"` } // CreateStatusOption holds the information needed to create a new CommitStatus for a Commit diff --git a/routers/web/repo/branch.go b/routers/web/repo/branch.go index 3ef1bfbf27..d40a69de2b 100644 --- a/routers/web/repo/branch.go +++ b/routers/web/repo/branch.go @@ -75,9 +75,9 @@ func Branches(ctx *context.Context) { } } - commitStatus := make(map[string]*git_model.CommitStatusSummary, len(commitStatuses)) + commitStatus := make(map[string]*git_model.CombinedStatus, len(commitStatuses)) for commitID, cs := range commitStatuses { - commitStatus[commitID] = git_model.CalcCommitStatusSummary(cs) + commitStatus[commitID] = git_model.CalcCombinedStatus(cs) } ctx.Data["Keyword"] = kw diff --git a/routers/web/repo/commit.go b/routers/web/repo/commit.go index f9df09f4f1..9cc232b669 100644 --- a/routers/web/repo/commit.go +++ b/routers/web/repo/commit.go @@ -385,7 +385,7 @@ func Diff(ctx *context.Context) { git_model.CommitStatusesHideActionsURL(ctx, statuses) } - ctx.Data["CommitStatus"] = git_model.CalcCommitStatusSummary(statuses) + ctx.Data["CommitStatus"] = git_model.CalcCombinedStatus(statuses) ctx.Data["CommitStatuses"] = statuses verification := asymkey_service.ParseCommitWithSignature(ctx, commit) diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go index fd0ac1df3b..f5c0867d84 100644 --- a/routers/web/repo/pull.go +++ b/routers/web/repo/pull.go @@ -302,7 +302,7 @@ func prepareMergedViewPullInfo(ctx *context.Context, issue *issues_model.Issue) if len(commitStatuses) != 0 { ctx.Data["LatestCommitStatuses"] = commitStatuses - ctx.Data["LatestCommitStatus"] = git_model.CalcCommitStatusSummary(commitStatuses) + ctx.Data["LatestCommitStatus"] = git_model.CalcCombinedStatus(commitStatuses) } } @@ -369,7 +369,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C if len(commitStatuses) > 0 { ctx.Data["LatestCommitStatuses"] = commitStatuses - ctx.Data["LatestCommitStatus"] = git_model.CalcCommitStatusSummary(commitStatuses) + ctx.Data["LatestCommitStatus"] = git_model.CalcCombinedStatus(commitStatuses) } compareInfo, err := baseGitRepo.GetCompareInfo(pull.BaseRepo.RepoPath(), @@ -465,7 +465,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C if len(commitStatuses) > 0 { ctx.Data["LatestCommitStatuses"] = commitStatuses - ctx.Data["LatestCommitStatus"] = git_model.CalcCommitStatusSummary(commitStatuses) + ctx.Data["LatestCommitStatus"] = git_model.CalcCombinedStatus(commitStatuses) } if pb != nil && pb.EnableStatusCheck { diff --git a/routers/web/repo/release.go b/routers/web/repo/release.go index e78cda7b86..d8f790c5e6 100644 --- a/routers/web/repo/release.go +++ b/routers/web/repo/release.go @@ -72,7 +72,7 @@ func calReleaseNumCommitsBehind(repoCtx *context.Repository, release *repo_model type ReleaseInfo struct { Release *repo_model.Release - CommitStatus commitstatus.CombinedStatus + CommitStatus commitstatus.CombinedStatusState CommitStatuses []*git_model.CommitStatus } @@ -136,7 +136,7 @@ func getReleaseInfos(ctx *context.Context, opts *repo_model.FindReleasesOptions) return nil, err } - info.CommitStatus = git_model.CalcCommitStatus(statuses) + info.CommitStatus = git_model.CalcCombinedStatusState(statuses) info.CommitStatuses = statuses } diff --git a/routers/web/repo/repo.go b/routers/web/repo/repo.go index 024fa47c3a..cc16c4b87c 100644 --- a/routers/web/repo/repo.go +++ b/routers/web/repo/repo.go @@ -553,14 +553,14 @@ func SearchRepo(ctx *context.Context) { ctx.SetTotalCountHeader(count) - latestCommitStatuses, err := commitstatus_service.FindReposLastestCombinedStatuses(ctx, repos) + latestCombinedStatuses, err := commitstatus_service.FindReposLastestCombinedStatuses(ctx, repos) if err != nil { log.Error("FindReposLastestCommitStatuses: %v", err) ctx.JSON(http.StatusInternalServerError, nil) return } if !ctx.Repo.CanRead(unit.TypeActions) { - git_model.CommitStatusSummeriesHideActionsURL(ctx, latestCommitStatuses) + git_model.CombinedStatusesHideActionsURL(ctx, latestCombinedStatuses) } results := make([]*repo_service.WebSearchRepository, len(repos)) @@ -580,9 +580,9 @@ func SearchRepo(ctx *context.Context) { }, } - if latestCommitStatuses[i] != nil { - results[i].LatestCommitStatus = latestCommitStatuses[i] - results[i].LocaleLatestCommitStatus = latestCommitStatuses[i].LocaleString(ctx.Locale) + if latestCombinedStatuses[i] != nil { + results[i].LatestCombinedStatus = latestCombinedStatuses[i] + results[i].LocaleLatestCombinedStatus = latestCombinedStatuses[i].LocaleString(ctx.Locale) } } diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index b328e54ca0..2d67b573bd 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -139,7 +139,7 @@ func loadLatestCommitData(ctx *context.Context, latestCommit *git.Commit) bool { git_model.CommitStatusesHideActionsURL(ctx, statuses) } - ctx.Data["LatestCommitStatus"] = git_model.CalcCommitStatusSummary(statuses) + ctx.Data["LatestCommitStatus"] = git_model.CalcCombinedStatus(statuses) ctx.Data["LatestCommitStatuses"] = statuses } diff --git a/services/convert/status.go b/services/convert/status.go index f71766a2c4..997de94d3c 100644 --- a/services/convert/status.go +++ b/services/convert/status.go @@ -38,12 +38,12 @@ func ToCombinedStatus(ctx context.Context, statuses []*git_model.CommitStatus, r return nil } - summary := git_model.CalcCommitStatusSummary(statuses) + combinedStatus := git_model.CalcCombinedStatus(statuses) return &api.CombinedStatus{ - State: summary.State, - SHA: summary.SHA, + State: combinedStatus.State, + SHA: combinedStatus.SHA, TotalCount: len(statuses), Repository: repo, - URL: summary.TargetURL, + URL: combinedStatus.TargetURL, } } diff --git a/services/git/commit.go b/services/git/commit.go index a50256a429..811dab7c42 100644 --- a/services/git/commit.go +++ b/services/git/commit.go @@ -90,7 +90,7 @@ func ParseCommitsWithStatus(ctx context.Context, oldCommits []*asymkey_model.Sig } commit.Statuses = statuses - commit.Status = git_model.CalcCommitStatusSummary(statuses) + commit.Status = git_model.CalcCombinedStatus(statuses) newCommits = append(newCommits, commit) } return newCommits, nil diff --git a/services/pull/commit_status.go b/services/pull/commit_status.go index 62e7989792..7da02e28ab 100644 --- a/services/pull/commit_status.go +++ b/services/pull/commit_status.go @@ -19,7 +19,7 @@ import ( ) // MergeRequiredContextsCommitStatus returns a commit status state for given required contexts -func MergeRequiredContextsCommitStatus(commitStatuses []*git_model.CommitStatus, requiredContexts []string) commitstatus.CombinedStatus { +func MergeRequiredContextsCommitStatus(commitStatuses []*git_model.CommitStatus, requiredContexts []string) commitstatus.CombinedStatusState { if len(requiredContexts) > 0 { requiredContextsGlob := make(map[string]glob.Glob, len(requiredContexts)) for _, ctx := range requiredContexts { @@ -40,18 +40,18 @@ func MergeRequiredContextsCommitStatus(commitStatuses []*git_model.CommitStatus, } } if len(requiredCommitStatuses) > 0 { - return git_model.CalcCommitStatus(requiredCommitStatuses) + return git_model.CalcCombinedStatusState(requiredCommitStatuses) } } - return git_model.CalcCommitStatus(commitStatuses) + return git_model.CalcCombinedStatusState(commitStatuses) } // IsCommitStatusContextSuccess returns true if all required status check contexts succeed. func IsCommitStatusContextSuccess(commitStatuses []*git_model.CommitStatus, requiredContexts []string) bool { // If no specific context is required, require that last commit status is a success if len(requiredContexts) == 0 { - return git_model.CalcCommitStatus(commitStatuses) == commitstatus.CombinedStatusSuccess + return git_model.CalcCombinedStatusState(commitStatuses) == commitstatus.CombinedStatusStateSuccess } for _, ctx := range requiredContexts { @@ -91,7 +91,7 @@ func IsPullCommitStatusPass(ctx context.Context, pr *issues_model.PullRequest) ( } // GetPullRequestCommitStatusState returns pull request merged commit status state -func GetPullRequestCommitStatusState(ctx context.Context, pr *issues_model.PullRequest) (commitstatus.CombinedStatus, error) { +func GetPullRequestCommitStatusState(ctx context.Context, pr *issues_model.PullRequest) (commitstatus.CombinedStatusState, error) { // Ensure HeadRepo is loaded if err := pr.LoadHeadRepo(ctx); err != nil { return "", errors.Wrap(err, "LoadHeadRepo") diff --git a/services/pull/commit_status_test.go b/services/pull/commit_status_test.go index 501d01d32b..6ae6d20de1 100644 --- a/services/pull/commit_status_test.go +++ b/services/pull/commit_status_test.go @@ -49,12 +49,12 @@ func TestMergeRequiredContextsCommitStatus(t *testing.T) { {"Build*", "Build *", "Build 2t*", "Build 1*"}, } - testCasesExpected := []commitstatus.CombinedStatus{ - commitstatus.CombinedStatusSuccess, - commitstatus.CombinedStatusPending, - commitstatus.CombinedStatusFailure, - commitstatus.CombinedStatusPending, - commitstatus.CombinedStatusSuccess, + testCasesExpected := []commitstatus.CombinedStatusState{ + commitstatus.CombinedStatusStateSuccess, + commitstatus.CombinedStatusStatePending, + commitstatus.CombinedStatusStateFailure, + commitstatus.CombinedStatusStatePending, + commitstatus.CombinedStatusStateSuccess, } for i, commitStatuses := range testCases { diff --git a/services/pull/pull.go b/services/pull/pull.go index 54375c20a9..c408f9a31a 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -946,13 +946,13 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ } // GetIssuesLastCommitStatus returns a map of issue ID to the most recent commit's latest status -func GetIssuesLastCommitStatus(ctx context.Context, issues issues_model.IssueList) (map[int64]*git_model.CommitStatusSummary, error) { +func GetIssuesLastCommitStatus(ctx context.Context, issues issues_model.IssueList) (map[int64]*git_model.CombinedStatus, error) { _, lastStatus, err := GetIssuesAllCommitStatus(ctx, issues) return lastStatus, err } // GetIssuesAllCommitStatus returns a map of issue ID to a list of all statuses for the most recent commit as well as a map of issue ID to only the commit's latest status -func GetIssuesAllCommitStatus(ctx context.Context, issues issues_model.IssueList) (map[int64][]*git_model.CommitStatus, map[int64]*git_model.CommitStatusSummary, error) { +func GetIssuesAllCommitStatus(ctx context.Context, issues issues_model.IssueList) (map[int64][]*git_model.CommitStatus, map[int64]*git_model.CombinedStatus, error) { if err := issues.LoadPullRequests(ctx); err != nil { return nil, nil, err } @@ -963,7 +963,7 @@ func GetIssuesAllCommitStatus(ctx context.Context, issues issues_model.IssueList var ( gitRepos = make(map[int64]*git.Repository) res = make(map[int64][]*git_model.CommitStatus) - lastRes = make(map[int64]*git_model.CommitStatusSummary) + lastRes = make(map[int64]*git_model.CombinedStatus) err error ) defer func() { @@ -992,7 +992,7 @@ func GetIssuesAllCommitStatus(ctx context.Context, issues issues_model.IssueList continue } res[issue.PullRequest.ID] = statuses - lastRes[issue.PullRequest.ID] = git_model.CalcCommitStatusSummary(statuses) + lastRes[issue.PullRequest.ID] = git_model.CalcCombinedStatus(statuses) } return res, lastRes, nil } diff --git a/services/repository/commitstatus/commitstatus.go b/services/repository/commitstatus/commitstatus.go index cd0f8929b5..3eea51513c 100644 --- a/services/repository/commitstatus/commitstatus.go +++ b/services/repository/commitstatus/commitstatus.go @@ -47,7 +47,7 @@ func getCombinedStatusCache(repoID int64, branchName string) *combinedStatusCach return nil } -func updateCombinedStatusCache(repoID int64, branchName string, state commitstatus.CombinedStatus, targetURL string) error { +func updateCombinedStatusCache(repoID int64, branchName string, state commitstatus.CombinedStatusState, targetURL string) error { c := cache.GetCache() bs, err := json.Marshal(combinedStatusCacheValue{ State: string(state), @@ -121,13 +121,13 @@ func CreateCommitStatus(ctx context.Context, repo *repo_model.Repository, creato } // FindReposLastestCombinedStatuses loading repository default branch latest combinded commit status with cache -func FindReposLastestCombinedStatuses(ctx context.Context, repos []*repo_model.Repository) ([]*git_model.CommitStatusSummary, error) { - results := make([]*git_model.CommitStatusSummary, len(repos)) +func FindReposLastestCombinedStatuses(ctx context.Context, repos []*repo_model.Repository) ([]*git_model.CombinedStatus, error) { + results := make([]*git_model.CombinedStatus, len(repos)) allCached := true for i, repo := range repos { if cv := getCombinedStatusCache(repo.ID, repo.DefaultBranch); cv != nil { - results[i] = &git_model.CommitStatusSummary{ - State: commitstatus.CombinedStatus(cv.State), + results[i] = &git_model.CombinedStatus{ + State: commitstatus.CombinedStatusState(cv.State), TargetURL: cv.TargetURL, } } else { @@ -189,7 +189,7 @@ func FindReposLastestCombinedStatuses(ctx context.Context, repos []*repo_model.R for i, repo := range repos { if results[i] == nil { - results[i] = git_model.CalcCommitStatusSummary(repoToItsLatestCommitStatuses[repo.ID]) + results[i] = git_model.CalcCombinedStatus(repoToItsLatestCommitStatuses[repo.ID]) if results[i] != nil { if err := updateCombinedStatusCache(repo.ID, repo.DefaultBranch, results[i].State, results[i].TargetURL); err != nil { log.Error("updateCommitStatusCache[%d:%s] failed: %v", repo.ID, repo.DefaultBranch, err) diff --git a/services/repository/gitgraph/graph_models.go b/services/repository/gitgraph/graph_models.go index 07463e3f03..ef5f864130 100644 --- a/services/repository/gitgraph/graph_models.go +++ b/services/repository/gitgraph/graph_models.go @@ -125,7 +125,7 @@ func (graph *Graph) LoadAndProcessCommits(ctx context.Context, repository *repo_ if err != nil { log.Error("GetLatestCommitStatus: %v", err) } else { - c.Status = git_model.CalcCommitStatusSummary(statuses) + c.Status = git_model.CalcCombinedStatus(statuses) } } return nil @@ -249,7 +249,7 @@ type Commit struct { Commit *git.Commit User *user_model.User Verification *asymkey_model.CommitVerification - Status *git_model.CommitStatusSummary + Status *git_model.CombinedStatus Flow int64 Row int Column int diff --git a/services/repository/repository.go b/services/repository/repository.go index bdff4331cf..5b94bd29a6 100644 --- a/services/repository/repository.go +++ b/services/repository/repository.go @@ -34,9 +34,9 @@ import ( // WebSearchRepository represents a repository returned by web search type WebSearchRepository struct { - Repository *structs.Repository `json:"repository"` - LatestCommitStatus *git.CommitStatusSummary `json:"latest_commit_status"` - LocaleLatestCommitStatus string `json:"locale_latest_commit_status"` + Repository *structs.Repository `json:"repository"` + LatestCombinedStatus *git.CombinedStatus `json:"latest_commit_status"` + LocaleLatestCombinedStatus string `json:"locale_latest_commit_status"` } // WebSearchResults results of a successful web search diff --git a/tests/integration/pull_status_test.go b/tests/integration/pull_status_test.go index 00ffcfb632..c198ad8b4b 100644 --- a/tests/integration/pull_status_test.go +++ b/tests/integration/pull_status_test.go @@ -99,7 +99,7 @@ func TestPullCreate_CommitStatus(t *testing.T) { } repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user1", Name: "repo1"}) - css := unittest.AssertExistsAndLoadBean(t, &git_model.CommitStatusSummary{RepoID: repo1.ID, SHA: commitID}) + css := unittest.AssertExistsAndLoadBean(t, &git_model.CombinedStatus{RepoID: repo1.ID, SHA: commitID}) assert.Equal(t, commitstatus.CommitStatusWarning, css.State) }) }