1
1
mirror of https://github.com/go-gitea/gitea synced 2025-08-24 10:28:27 +00:00

Always return the relevant status information, even if no status exists. (#35335)

This commit is contained in:
Lunny Xiao
2025-08-23 11:48:44 -07:00
committed by GitHub
parent 4b19e292b9
commit e1fd9e3cd1
2 changed files with 13 additions and 18 deletions

View File

@@ -271,11 +271,7 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
} }
ctx.SetTotalCountHeader(count) ctx.SetTotalCountHeader(count)
if len(statuses) == 0 { combiStatus := convert.ToCombinedStatus(ctx, refCommit.Commit.ID.String(), statuses,
ctx.JSON(http.StatusOK, &api.CombinedStatus{}) convert.ToRepo(ctx, repo, ctx.Repo.Permission))
return
}
combiStatus := convert.ToCombinedStatus(ctx, statuses, convert.ToRepo(ctx, repo, ctx.Repo.Permission))
ctx.JSON(http.StatusOK, combiStatus) ctx.JSON(http.StatusOK, combiStatus)
} }

View File

@@ -42,20 +42,19 @@ func ToCommitStatuses(ctx context.Context, statuses []*git_model.CommitStatus) [
} }
// ToCombinedStatus converts List of CommitStatus to a CombinedStatus // ToCombinedStatus converts List of CommitStatus to a CombinedStatus
func ToCombinedStatus(ctx context.Context, statuses []*git_model.CommitStatus, repo *api.Repository) *api.CombinedStatus { func ToCombinedStatus(ctx context.Context, commitID string, statuses []*git_model.CommitStatus, repo *api.Repository) *api.CombinedStatus {
if len(statuses) == 0 { status := api.CombinedStatus{
return nil SHA: commitID,
TotalCount: len(statuses),
Repository: repo,
CommitURL: repo.URL + "/commits/" + url.PathEscape(commitID),
URL: repo.URL + "/commits/" + url.PathEscape(commitID) + "/status",
} }
combinedStatus := git_model.CalcCommitStatus(statuses) combinedStatus := git_model.CalcCommitStatus(statuses)
if combinedStatus != nil {
return &api.CombinedStatus{ status.Statuses = ToCommitStatuses(ctx, statuses)
State: combinedStatus.State, status.State = combinedStatus.State
Statuses: ToCommitStatuses(ctx, statuses),
SHA: combinedStatus.SHA,
TotalCount: len(statuses),
Repository: repo,
CommitURL: repo.URL + "/commits/" + url.PathEscape(combinedStatus.SHA),
URL: repo.URL + "/commits/" + url.PathEscape(combinedStatus.SHA) + "/status",
} }
return &status
} }