Skip to content

Commit 5ea3557

Browse files
committed
fix: Improves pull request filtering logic
1 parent 9ec47e2 commit 5ea3557

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

check.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"path/filepath"
66
"regexp"
77
"sort"
8+
"strconv"
89
"strings"
910

1011
"github.com/shurcooL/githubv4"
@@ -44,8 +45,10 @@ Loop:
4445
continue
4546
}
4647

47-
// Filter out commits that are too old.
48-
if !p.UpdatedDate().Time.After(request.Version.CommittedDate) {
48+
// Filter out commits that are too old and don't have more approvals.
49+
approvedReviewCount, err := strconv.Atoi(request.Version.ApprovedReviewCount)
50+
if !(p.UpdatedDate().Time.After(request.Version.CommittedDate) ||
51+
(err != nil && p.ApprovedReviewCount > approvedReviewCount)) {
4952
continue
5053
}
5154

check_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ var (
2323
createTestPR(10, "master", false, false, 0, nil, false, githubv4.PullRequestStateClosed),
2424
createTestPR(11, "master", false, false, 0, nil, false, githubv4.PullRequestStateMerged),
2525
createTestPR(12, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen),
26+
createTestPR(13, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen),
27+
createTestPR(13, "master", false, false, 1, nil, false, githubv4.PullRequestStateOpen),
28+
}
29+
30+
testApprovalPullRequests = []*resource.PullRequest{
31+
createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen),
32+
createTestPR(1, "master", false, false, 1, nil, false, githubv4.PullRequestStateOpen),
2633
}
2734
)
2835

@@ -262,6 +269,20 @@ func TestCheck(t *testing.T) {
262269
resource.NewVersion(testPullRequests[10]),
263270
},
264271
},
272+
273+
{
274+
description: "check returns versions with more approvals, even if time is the same",
275+
source: resource.Source{
276+
Repository: "itsdalmo/test-repository",
277+
AccessToken: "oauthtoken",
278+
},
279+
version: resource.NewVersion(testApprovalPullRequests[0]),
280+
pullRequests: testApprovalPullRequests,
281+
files: [][]string{},
282+
expected: resource.CheckResponse{
283+
resource.NewVersion(testApprovalPullRequests[1]),
284+
},
285+
},
265286
}
266287

267288
for _, tc := range tests {

0 commit comments

Comments
 (0)