Skip to content

Commit e1fd9e3

Browse files
authored
Always return the relevant status information, even if no status exists. (#35335)
1 parent 4b19e29 commit e1fd9e3

File tree

2 files changed

+13
-18
lines changed

2 files changed

+13
-18
lines changed

routers/api/v1/repo/status.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,7 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
271271
}
272272
ctx.SetTotalCountHeader(count)
273273

274-
if len(statuses) == 0 {
275-
ctx.JSON(http.StatusOK, &api.CombinedStatus{})
276-
return
277-
}
278-
279-
combiStatus := convert.ToCombinedStatus(ctx, statuses, convert.ToRepo(ctx, repo, ctx.Repo.Permission))
274+
combiStatus := convert.ToCombinedStatus(ctx, refCommit.Commit.ID.String(), statuses,
275+
convert.ToRepo(ctx, repo, ctx.Repo.Permission))
280276
ctx.JSON(http.StatusOK, combiStatus)
281277
}

services/convert/status.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,19 @@ func ToCommitStatuses(ctx context.Context, statuses []*git_model.CommitStatus) [
4242
}
4343

4444
// ToCombinedStatus converts List of CommitStatus to a CombinedStatus
45-
func ToCombinedStatus(ctx context.Context, statuses []*git_model.CommitStatus, repo *api.Repository) *api.CombinedStatus {
46-
if len(statuses) == 0 {
47-
return nil
45+
func ToCombinedStatus(ctx context.Context, commitID string, statuses []*git_model.CommitStatus, repo *api.Repository) *api.CombinedStatus {
46+
status := api.CombinedStatus{
47+
SHA: commitID,
48+
TotalCount: len(statuses),
49+
Repository: repo,
50+
CommitURL: repo.URL + "/commits/" + url.PathEscape(commitID),
51+
URL: repo.URL + "/commits/" + url.PathEscape(commitID) + "/status",
4852
}
4953

5054
combinedStatus := git_model.CalcCommitStatus(statuses)
51-
52-
return &api.CombinedStatus{
53-
State: combinedStatus.State,
54-
Statuses: ToCommitStatuses(ctx, statuses),
55-
SHA: combinedStatus.SHA,
56-
TotalCount: len(statuses),
57-
Repository: repo,
58-
CommitURL: repo.URL + "/commits/" + url.PathEscape(combinedStatus.SHA),
59-
URL: repo.URL + "/commits/" + url.PathEscape(combinedStatus.SHA) + "/status",
55+
if combinedStatus != nil {
56+
status.Statuses = ToCommitStatuses(ctx, statuses)
57+
status.State = combinedStatus.State
6058
}
59+
return &status
6160
}

0 commit comments

Comments
 (0)