mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-05-12 22:10:25 +00:00
[v11.0/forgejo] fix: correctly compute required commit status (#10787)
**Backport:** https://codeberg.org/forgejo/forgejo/pulls/10747 We need to take all matching required status into account to get the desired status because there can be some pending. <!--start release-notes-assistant--> ## Release notes <!--URL:https://codeberg.org/forgejo/forgejo--> - Bug fixes - [PR](https://codeberg.org/forgejo/forgejo/pulls/10787): <!--number 10787 --><!--line 0 --><!--description Zml4OiBjb3JyZWN0bHkgY29tcHV0ZSByZXF1aXJlZCBjb21taXQgc3RhdHVz-->fix: correctly compute required commit status<!--description--> <!--end release-notes-assistant--> Co-authored-by: Michael Kriese <michael.kriese@visualon.de> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/10787 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Co-authored-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org> Co-committed-by: forgejo-backport-action <forgejo-backport-action@noreply.codeberg.org>
This commit is contained in:
parent
52406dc6ea
commit
7e73f047ba
2 changed files with 8 additions and 7 deletions
|
|
@ -40,9 +40,12 @@ func MergeRequiredContextsCommitStatus(commitStatuses []*git_model.CommitStatus,
|
||||||
var targetStatus structs.CommitStatusState
|
var targetStatus structs.CommitStatusState
|
||||||
for _, commitStatus := range commitStatuses {
|
for _, commitStatus := range commitStatuses {
|
||||||
if gp.Match(commitStatus.Context) {
|
if gp.Match(commitStatus.Context) {
|
||||||
targetStatus = commitStatus.State
|
if targetStatus == "" {
|
||||||
|
targetStatus = commitStatus.State
|
||||||
|
} else if commitStatus.State.NoBetterThan(targetStatus) {
|
||||||
|
targetStatus = commitStatus.State
|
||||||
|
}
|
||||||
matchedCount++
|
matchedCount++
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ func TestMergeRequiredContextsCommitStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{Context: "Build 1", State: structs.CommitStatusSuccess},
|
{Context: "Build 1", State: structs.CommitStatusSuccess},
|
||||||
{Context: "Build 2", State: structs.CommitStatusSuccess},
|
{Context: "Build 2", State: structs.CommitStatusPending},
|
||||||
{Context: "Build 2t", State: structs.CommitStatusPending},
|
{Context: "Build 2t", State: structs.CommitStatusSuccess},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
{Context: "Build 1", State: structs.CommitStatusSuccess},
|
{Context: "Build 1", State: structs.CommitStatusSuccess},
|
||||||
|
|
@ -58,8 +58,6 @@ func TestMergeRequiredContextsCommitStatus(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, commitStatuses := range testCases {
|
for i, commitStatuses := range testCases {
|
||||||
if MergeRequiredContextsCommitStatus(commitStatuses, testCasesRequiredContexts[i]) != testCasesExpected[i] {
|
assert.Equal(t, testCasesExpected[i], MergeRequiredContextsCommitStatus(commitStatuses, testCasesRequiredContexts[i]), "Test case %d failed", i+1)
|
||||||
assert.Fail(t, "Test case failed", "Test case %d failed", i+1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue