0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-12-25 17:55:23 +01:00

improvements

This commit is contained in:
Lunny Xiao 2025-05-24 21:00:14 -07:00
parent 1406b01095
commit 811e900d30
No known key found for this signature in database
GPG Key ID: C3B7C91B632F738A
4 changed files with 7 additions and 211 deletions

View File

@ -228,7 +228,7 @@ func (status *CommitStatus) HideActionsURL(ctx context.Context) {
}
}
// CalcCommitStatus returns commit status state via some status, the commit statues should order by id desc
// CalcCommitStatus returns a combined status, the commit statuses should order by id desc
func CalcCommitStatus(statuses []*CommitStatus) commitstatus.CombinedStatus {
states := make(commitstatus.CommitStatusStates, 0, len(statuses))
for _, status := range statuses {
@ -237,7 +237,7 @@ func CalcCommitStatus(statuses []*CommitStatus) commitstatus.CombinedStatus {
return states.Merge()
}
// CalcCommitStatusSummary returns commit status state via some status, the commit statues should order by id desc
// CalcCommitStatusSummary returns commit status summary, the commit statuses should order by id desc
func CalcCommitStatusSummary(statuses []*CommitStatus) *CommitStatusSummary {
if len(statuses) == 0 {
return nil

View File

@ -20,33 +20,10 @@ const (
CommitStatusWarning CommitStatusState = "warning"
)
var commitStatusPriorities = map[CommitStatusState]int{
CommitStatusError: 0,
CommitStatusFailure: 1,
CommitStatusWarning: 2,
CommitStatusPending: 3,
CommitStatusSuccess: 4,
}
func (css CommitStatusState) String() string {
return string(css)
}
// NoBetterThan returns true if this State is no better than the given State
// This function only handles the states defined in CommitStatusPriorities
func (css CommitStatusState) NoBetterThan(css2 CommitStatusState) bool {
// NoBetterThan only handles the 5 states above
if _, exist := commitStatusPriorities[css]; !exist {
return false
}
if _, exist := commitStatusPriorities[css2]; !exist {
return false
}
return commitStatusPriorities[css] <= commitStatusPriorities[css2]
}
// IsPending represents if commit status state is pending
func (css CommitStatusState) IsPending() bool {
return css == CommitStatusPending

View File

@ -1,174 +0,0 @@
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package commitstatus
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestNoBetterThan(t *testing.T) {
type args struct {
css CommitStatusState
css2 CommitStatusState
}
var unExpectedState CommitStatusState
tests := []struct {
name string
args args
want bool
}{
{
name: "success is no better than success",
args: args{
css: CommitStatusSuccess,
css2: CommitStatusSuccess,
},
want: true,
},
{
name: "success is no better than pending",
args: args{
css: CommitStatusSuccess,
css2: CommitStatusPending,
},
want: false,
},
{
name: "success is no better than failure",
args: args{
css: CommitStatusSuccess,
css2: CommitStatusFailure,
},
want: false,
},
{
name: "success is no better than error",
args: args{
css: CommitStatusSuccess,
css2: CommitStatusError,
},
want: false,
},
{
name: "pending is no better than success",
args: args{
css: CommitStatusPending,
css2: CommitStatusSuccess,
},
want: true,
},
{
name: "pending is no better than pending",
args: args{
css: CommitStatusPending,
css2: CommitStatusPending,
},
want: true,
},
{
name: "pending is no better than failure",
args: args{
css: CommitStatusPending,
css2: CommitStatusFailure,
},
want: false,
},
{
name: "pending is no better than error",
args: args{
css: CommitStatusPending,
css2: CommitStatusError,
},
want: false,
},
{
name: "failure is no better than success",
args: args{
css: CommitStatusFailure,
css2: CommitStatusSuccess,
},
want: true,
},
{
name: "failure is no better than pending",
args: args{
css: CommitStatusFailure,
css2: CommitStatusPending,
},
want: true,
},
{
name: "failure is no better than failure",
args: args{
css: CommitStatusFailure,
css2: CommitStatusFailure,
},
want: true,
},
{
name: "failure is no better than error",
args: args{
css: CommitStatusFailure,
css2: CommitStatusError,
},
want: false,
},
{
name: "error is no better than success",
args: args{
css: CommitStatusError,
css2: CommitStatusSuccess,
},
want: true,
},
{
name: "error is no better than pending",
args: args{
css: CommitStatusError,
css2: CommitStatusPending,
},
want: true,
},
{
name: "error is no better than failure",
args: args{
css: CommitStatusError,
css2: CommitStatusFailure,
},
want: true,
},
{
name: "error is no better than error",
args: args{
css: CommitStatusError,
css2: CommitStatusError,
},
want: true,
},
{
name: "unExpectedState is no better than success",
args: args{
css: unExpectedState,
css2: CommitStatusSuccess,
},
want: false,
},
{
name: "unExpectedState is no better than unExpectedState",
args: args{
css: unExpectedState,
css2: unExpectedState,
},
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result := tt.args.css.NoBetterThan(tt.args.css2)
assert.Equal(t, tt.want, result)
})
}
}

View File

@ -8,7 +8,6 @@ import (
git_model "code.gitea.io/gitea/models/git"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/commitstatus"
api "code.gitea.io/gitea/modules/structs"
)
@ -39,18 +38,12 @@ func ToCombinedStatus(ctx context.Context, statuses []*git_model.CommitStatus, r
return nil
}
retStatus := &api.CombinedStatus{
SHA: statuses[0].SHA,
summary := git_model.CalcCommitStatusSummary(statuses)
return &api.CombinedStatus{
State: summary.State,
SHA: summary.SHA,
TotalCount: len(statuses),
Repository: repo,
URL: "",
URL: summary.TargetURL,
}
states := make(commitstatus.CommitStatusStates, 0, len(statuses))
for _, status := range statuses {
retStatus.Statuses = append(retStatus.Statuses, ToCommitStatus(ctx, status))
states = append(states, status.State)
}
retStatus.State = states.Merge()
return retStatus
}