mirror of
https://github.com/go-gitea/gitea.git
synced 2025-12-28 10:41:41 +01:00
Rename CommitStatusSummary to CombinedStatus
This commit is contained in:
parent
0915b18157
commit
e3554b3945
@ -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 {
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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")
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
})
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user