Skip to content

Commit

Permalink
Merge pull request #133 from saschagrunert/status-types
Browse files Browse the repository at this point in the history
Use GitHub API native status types
  • Loading branch information
k8s-ci-robot authored Apr 24, 2024
2 parents 5f7490e + 0364235 commit 0a31882
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 42 deletions.
24 changes: 12 additions & 12 deletions pkg/tide/status_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ func TestExpectedStatus(t *testing.T) {
{
name: "single bad checkrun",
labels: neededLabels,
checkRuns: []CheckRun{{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateFailure)}},
checkRuns: []CheckRun{{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateFailure)}},
author: "batman",
firstQueryAuthor: "batman",
secondQueryAuthor: "batman",
Expand All @@ -286,7 +286,7 @@ func TestExpectedStatus(t *testing.T) {
{
name: "single good checkrun",
labels: neededLabels,
checkRuns: []CheckRun{{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)}},
checkRuns: []CheckRun{{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)}},
author: "batman",
firstQueryAuthor: "batman",
secondQueryAuthor: "batman",
Expand All @@ -300,8 +300,8 @@ func TestExpectedStatus(t *testing.T) {
name: "multiple good checkruns",
labels: neededLabels,
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("another-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("another-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)},
},
author: "batman",
firstQueryAuthor: "batman",
Expand All @@ -316,8 +316,8 @@ func TestExpectedStatus(t *testing.T) {
name: "mix of good and bad checkruns",
labels: neededLabels,
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("another-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateFailure)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("another-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateFailure)},
},
author: "batman",
firstQueryAuthor: "batman",
Expand All @@ -332,7 +332,7 @@ func TestExpectedStatus(t *testing.T) {
name: "mix of good status contexts and checkruns",
labels: neededLabels,
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)},
},
contexts: []Context{
{Context: githubql.String("other-job-name"), State: githubql.StatusStateSuccess},
Expand All @@ -350,7 +350,7 @@ func TestExpectedStatus(t *testing.T) {
name: "mix of bad status contexts and checkruns",
labels: neededLabels,
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateFailure)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateFailure)},
},
contexts: []Context{
{Context: githubql.String("other-job-name"), State: githubql.StatusStateFailure},
Expand All @@ -368,7 +368,7 @@ func TestExpectedStatus(t *testing.T) {
name: "good context, bad checkrun",
labels: neededLabels,
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateFailure)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateFailure)},
},
contexts: []Context{
{Context: githubql.String("other-job-name"), State: githubql.StatusStateSuccess},
Expand All @@ -386,7 +386,7 @@ func TestExpectedStatus(t *testing.T) {
name: "bad context, good checkrun",
labels: neededLabels,
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)},
},
contexts: []Context{
{Context: githubql.String("other-job-name"), State: githubql.StatusStateFailure},
Expand Down Expand Up @@ -424,8 +424,8 @@ func TestExpectedStatus(t *testing.T) {
secondQueryAuthor: "batman",
milestone: "v1.0",
checkRuns: []CheckRun{
{Name: githubql.String("job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateFailure)},
{Name: githubql.String("other-job-name"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateFailure)},
{Name: githubql.String("job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateFailure)},
{Name: githubql.String("other-job-name"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateFailure)},
},
inPool: false,

Expand Down
9 changes: 2 additions & 7 deletions pkg/tide/tide.go
Original file line number Diff line number Diff line change
Expand Up @@ -2114,23 +2114,18 @@ func isStateBetter(previous, current githubql.StatusState) bool {
return false
}

const (
checkRunStatusCompleted = githubql.String("COMPLETED")
checkRunConclusionNeutral = githubql.String("NEUTRAL")
)

// checkRunToContext translates a checkRun to a classic context
// ref: https://developer.github.com/v3/checks/runs/#parameters
func checkRunToContext(checkRun CheckRun) Context {
context := Context{
Context: checkRun.Name,
}
if checkRun.Status != checkRunStatusCompleted {
if checkRun.Status != githubql.String(githubql.CheckStatusStateCompleted) {
context.State = githubql.StatusStatePending
return context
}

if checkRun.Conclusion == checkRunConclusionNeutral || checkRun.Conclusion == githubql.String(githubql.CheckConclusionStateSkipped) || checkRun.Conclusion == githubql.String(githubql.StatusStateSuccess) {
if checkRun.Conclusion == githubql.String(githubql.CheckConclusionStateNeutral) || checkRun.Conclusion == githubql.String(githubql.CheckConclusionStateSkipped) || checkRun.Conclusion == githubql.String(githubql.StatusStateSuccess) {
context.State = githubql.StatusStateSuccess
return context
}
Expand Down
46 changes: 23 additions & 23 deletions pkg/tide/tide_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2374,7 +2374,7 @@ func TestFilterSubpool(t *testing.T) {
},
checkRuns: []CheckRun{{
Name: githubql.String("other-a"),
Status: checkRunStatusCompleted,
Status: githubql.String(githubql.CheckStatusStateCompleted),
Conclusion: githubql.String(githubql.StatusStateSuccess),
}},
},
Expand All @@ -2399,8 +2399,8 @@ func TestFilterSubpool(t *testing.T) {
},
checkRuns: []CheckRun{{
Name: githubql.String("other-a"),
Status: checkRunStatusCompleted,
Conclusion: checkRunConclusionNeutral,
Status: githubql.String(githubql.CheckStatusStateCompleted),
Conclusion: githubql.String(githubql.CheckConclusionStateNeutral),
}},
},
},
Expand Down Expand Up @@ -2447,7 +2447,7 @@ func TestFilterSubpool(t *testing.T) {
},
checkRuns: []CheckRun{{
Name: githubql.String("other-a"),
Status: checkRunStatusCompleted,
Status: githubql.String(githubql.CheckStatusStateCompleted),
Conclusion: githubql.String(githubql.StatusStateFailure),
}},
},
Expand Down Expand Up @@ -4276,24 +4276,24 @@ func TestCheckRunNodesToContexts(t *testing.T) {
},
{
name: "Neutral checkrun is considered success",
checkRuns: []CheckRun{{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: checkRunConclusionNeutral}},
checkRuns: []CheckRun{{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.CheckConclusionStateNeutral)}},
expected: []Context{{Context: "some-job", State: githubql.StatusStateSuccess}},
},
{
name: "Successful checkrun is considered success",
checkRuns: []CheckRun{{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)}},
checkRuns: []CheckRun{{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)}},
expected: []Context{{Context: "some-job", State: githubql.StatusStateSuccess}},
},
{
name: "Other checkrun conclusion is considered failure",
checkRuns: []CheckRun{{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: "unclear"}},
checkRuns: []CheckRun{{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: "unclear"}},
expected: []Context{{Context: "some-job", State: githubql.StatusStateFailure}},
},
{
name: "Multiple checkruns are translated correctly",
checkRuns: []CheckRun{
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: checkRunConclusionNeutral},
{Name: githubql.String("another-job"), Status: checkRunStatusCompleted, Conclusion: checkRunConclusionNeutral},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.CheckConclusionStateNeutral)},
{Name: githubql.String("another-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.CheckConclusionStateNeutral)},
},
expected: []Context{
{Context: "another-job", State: githubql.StatusStateSuccess},
Expand All @@ -4303,10 +4303,10 @@ func TestCheckRunNodesToContexts(t *testing.T) {
{
name: "De-duplicate checkruns, success > everything",
checkRuns: []CheckRun{
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String(githubql.StatusStateSuccess)},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted)},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.StatusStateSuccess)},
},
expected: []Context{
{Context: "some-job", State: githubql.StatusStateSuccess},
Expand All @@ -4315,10 +4315,10 @@ func TestCheckRunNodesToContexts(t *testing.T) {
{
name: "De-duplicate checkruns, neutral > everything",
checkRuns: []CheckRun{
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: checkRunConclusionNeutral},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted)},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String(githubql.CheckConclusionStateNeutral)},
},
expected: []Context{
{Context: "some-job", State: githubql.StatusStateSuccess},
Expand All @@ -4327,9 +4327,9 @@ func TestCheckRunNodesToContexts(t *testing.T) {
{
name: "De-duplicate checkruns, pending > failure",
checkRuns: []CheckRun{
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted)},
{Name: githubql.String("some-job")},
},
expected: []Context{
Expand All @@ -4339,9 +4339,9 @@ func TestCheckRunNodesToContexts(t *testing.T) {
{
name: "De-duplicate checkruns, only failures",
checkRuns: []CheckRun{
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted, Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: checkRunStatusCompleted},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("FAILURE")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted), Conclusion: githubql.String("ERROR")},
{Name: githubql.String("some-job"), Status: githubql.String(githubql.CheckStatusStateCompleted)},
},
expected: []Context{
{Context: "some-job", State: githubql.StatusStateFailure},
Expand Down

0 comments on commit 0a31882

Please sign in to comment.