Skip to content

Commit 9931c1c

Browse files
authored
check: paginate by push date, not git commit date (#6)
* check: paginate by push date, not git commit date * Age: max with PR.CreatedAt
1 parent 9a56bb9 commit 9931c1c

File tree

5 files changed

+110
-90
lines changed

5 files changed

+110
-90
lines changed

check.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Loop:
4444
continue
4545
}
4646

47-
versionTime := p.Tip.CommittedDate.Time
47+
versionTime := p.Age()
4848
if len(request.Source.StatusFilters) > 0 {
4949
for _, statusFilter := range request.Source.StatusFilters {
5050
// "zero time - epoch = 0"
@@ -70,7 +70,7 @@ Loop:
7070
}
7171

7272
// Filter out commits that are too old.
73-
if !versionTime.After(request.Version.CommittedDate) {
73+
if !p.Age().After(request.Version.ChangedDate) {
7474
continue
7575
}
7676

@@ -232,7 +232,7 @@ func (r CheckResponse) Len() int {
232232
}
233233

234234
func (r CheckResponse) Less(i, j int) bool {
235-
return r[j].CommittedDate.After(r[i].CommittedDate)
235+
return r[j].ChangedDate.After(r[i].ChangedDate)
236236
}
237237

238238
func (r CheckResponse) Swap(i, j int) {

check_test.go

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func TestCheck(t *testing.T) {
5959
pullRequests: testPullRequests,
6060
files: [][]string{},
6161
expected: resource.CheckResponse{
62-
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
62+
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
6363
},
6464
},
6565

@@ -69,11 +69,11 @@ func TestCheck(t *testing.T) {
6969
Repository: "itsdalmo/test-repository",
7070
AccessToken: "oauthtoken",
7171
},
72-
version: resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
72+
version: resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
7373
pullRequests: testPullRequests,
7474
files: [][]string{},
7575
expected: resource.CheckResponse{
76-
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
76+
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
7777
},
7878
},
7979

@@ -83,12 +83,12 @@ func TestCheck(t *testing.T) {
8383
Repository: "itsdalmo/test-repository",
8484
AccessToken: "oauthtoken",
8585
},
86-
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.CommittedDate.Time),
86+
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.PushedDate.Time),
8787
pullRequests: testPullRequests,
8888
files: [][]string{},
8989
expected: resource.CheckResponse{
90-
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.CommittedDate.Time),
91-
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
90+
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.PushedDate.Time),
91+
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
9292
},
9393
},
9494

@@ -99,15 +99,15 @@ func TestCheck(t *testing.T) {
9999
AccessToken: "oauthtoken",
100100
Paths: []string{"terraform/*/*.tf", "terraform/*/*/*.tf"},
101101
},
102-
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.CommittedDate.Time),
102+
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.PushedDate.Time),
103103
pullRequests: testPullRequests,
104104
files: [][]string{
105105
{"README.md", "travis.yml"},
106106
{"terraform/modules/ecs/main.tf", "README.md"},
107107
{"terraform/modules/variables.tf", "travis.yml"},
108108
},
109109
expected: resource.CheckResponse{
110-
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.CommittedDate.Time),
110+
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.PushedDate.Time),
111111
},
112112
},
113113

@@ -118,15 +118,15 @@ func TestCheck(t *testing.T) {
118118
AccessToken: "oauthtoken",
119119
IgnorePaths: []string{"*.md", "*.yml"},
120120
},
121-
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.CommittedDate.Time),
121+
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.PushedDate.Time),
122122
pullRequests: testPullRequests,
123123
files: [][]string{
124124
{"README.md", "travis.yml"},
125125
{"terraform/modules/ecs/main.tf", "README.md"},
126126
{"terraform/modules/variables.tf", "travis.yml"},
127127
},
128128
expected: resource.CheckResponse{
129-
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.CommittedDate.Time),
129+
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.PushedDate.Time),
130130
},
131131
},
132132

@@ -137,10 +137,10 @@ func TestCheck(t *testing.T) {
137137
AccessToken: "oauthtoken",
138138
DisableCISkip: true,
139139
},
140-
version: resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
140+
version: resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
141141
pullRequests: testPullRequests,
142142
expected: resource.CheckResponse{
143-
resource.NewVersion(testPullRequests[0], testPullRequests[0].Tip.CommittedDate.Time),
143+
resource.NewVersion(testPullRequests[0], testPullRequests[0].Tip.PushedDate.Time),
144144
},
145145
},
146146

@@ -151,10 +151,10 @@ func TestCheck(t *testing.T) {
151151
AccessToken: "oauthtoken",
152152
IgnoreDrafts: true,
153153
},
154-
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.CommittedDate.Time),
154+
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.PushedDate.Time),
155155
pullRequests: testPullRequests,
156156
expected: resource.CheckResponse{
157-
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
157+
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
158158
},
159159
},
160160

@@ -165,11 +165,11 @@ func TestCheck(t *testing.T) {
165165
AccessToken: "oauthtoken",
166166
IgnoreDrafts: false,
167167
},
168-
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.CommittedDate.Time),
168+
version: resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.PushedDate.Time),
169169
pullRequests: testPullRequests,
170170
expected: resource.CheckResponse{
171-
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.CommittedDate.Time),
172-
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
171+
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.PushedDate.Time),
172+
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
173173
},
174174
},
175175

@@ -180,12 +180,12 @@ func TestCheck(t *testing.T) {
180180
AccessToken: "oauthtoken",
181181
DisableForks: true,
182182
},
183-
version: resource.NewVersion(testPullRequests[5], testPullRequests[5].Tip.CommittedDate.Time),
183+
version: resource.NewVersion(testPullRequests[5], testPullRequests[5].Tip.PushedDate.Time),
184184
pullRequests: testPullRequests,
185185
expected: resource.CheckResponse{
186-
resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.CommittedDate.Time),
187-
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.CommittedDate.Time),
188-
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.CommittedDate.Time),
186+
resource.NewVersion(testPullRequests[3], testPullRequests[3].Tip.PushedDate.Time),
187+
resource.NewVersion(testPullRequests[2], testPullRequests[2].Tip.PushedDate.Time),
188+
resource.NewVersion(testPullRequests[1], testPullRequests[1].Tip.PushedDate.Time),
189189
},
190190
},
191191

@@ -200,7 +200,7 @@ func TestCheck(t *testing.T) {
200200
pullRequests: testPullRequests,
201201
files: [][]string{},
202202
expected: resource.CheckResponse{
203-
resource.NewVersion(testPullRequests[6], testPullRequests[6].Tip.CommittedDate.Time),
203+
resource.NewVersion(testPullRequests[6], testPullRequests[6].Tip.PushedDate.Time),
204204
},
205205
},
206206

@@ -211,10 +211,10 @@ func TestCheck(t *testing.T) {
211211
AccessToken: "oauthtoken",
212212
RequiredReviewApprovals: 1,
213213
},
214-
version: resource.NewVersion(testPullRequests[8], testPullRequests[8].Tip.CommittedDate.Time),
214+
version: resource.NewVersion(testPullRequests[8], testPullRequests[8].Tip.PushedDate.Time),
215215
pullRequests: testPullRequests,
216216
expected: resource.CheckResponse{
217-
resource.NewVersion(testPullRequests[7], testPullRequests[7].Tip.CommittedDate.Time),
217+
resource.NewVersion(testPullRequests[7], testPullRequests[7].Tip.PushedDate.Time),
218218
},
219219
},
220220

@@ -229,7 +229,7 @@ func TestCheck(t *testing.T) {
229229
pullRequests: testPullRequests,
230230
files: [][]string{},
231231
expected: resource.CheckResponse{
232-
resource.NewVersion(testPullRequests[6], testPullRequests[6].Tip.CommittedDate.Time),
232+
resource.NewVersion(testPullRequests[6], testPullRequests[6].Tip.PushedDate.Time),
233233
},
234234
},
235235

@@ -244,7 +244,7 @@ func TestCheck(t *testing.T) {
244244
pullRequests: testPullRequests,
245245
files: [][]string{},
246246
expected: resource.CheckResponse{
247-
resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.CommittedDate.Time),
247+
resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.PushedDate.Time),
248248
},
249249
},
250250

@@ -267,12 +267,12 @@ func TestCheck(t *testing.T) {
267267
AccessToken: "oauthtoken",
268268
States: []githubv4.PullRequestState{githubv4.PullRequestStateClosed, githubv4.PullRequestStateMerged},
269269
},
270-
version: resource.NewVersion(testPullRequests[11], testPullRequests[11].Tip.CommittedDate.Time),
270+
version: resource.NewVersion(testPullRequests[11], testPullRequests[11].Tip.PushedDate.Time),
271271
pullRequests: testPullRequests,
272272
files: [][]string{},
273273
expected: resource.CheckResponse{
274-
resource.NewVersion(testPullRequests[10], testPullRequests[10].Tip.CommittedDate.Time),
275-
resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.CommittedDate.Time),
274+
resource.NewVersion(testPullRequests[10], testPullRequests[10].Tip.PushedDate.Time),
275+
resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.PushedDate.Time),
276276
},
277277
},
278278
{
@@ -288,7 +288,7 @@ func TestCheck(t *testing.T) {
288288
pullRequests: testPullRequests,
289289
files: [][]string{},
290290
expected: resource.CheckResponse{
291-
resource.NewVersion(testPullRequests[12], testPullRequests[12].Tip.CommittedDate.Time),
291+
resource.NewVersion(testPullRequests[12], testPullRequests[12].Tip.PushedDate.Time),
292292
},
293293
},
294294
{
@@ -300,11 +300,11 @@ func TestCheck(t *testing.T) {
300300
{Context: "my-status-check-2", State: "success"},
301301
},
302302
},
303-
version: resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.CommittedDate.Time),
303+
version: resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.PushedDate.Time),
304304
pullRequests: testPullRequests,
305305
files: [][]string{},
306306
expected: resource.CheckResponse{
307-
resource.NewVersion(testPullRequests[14], testPullRequests[14].Tip.Status.Contexts[0].CreatedAt.Time),
307+
resource.NewVersion(testPullRequests[9], testPullRequests[9].Tip.PushedDate.Time),
308308
},
309309
},
310310
{
@@ -322,7 +322,7 @@ func TestCheck(t *testing.T) {
322322
files: [][]string{},
323323
expected: resource.CheckResponse{
324324
// todo: pull request index
325-
resource.NewVersion(testPullRequests[13], testPullRequests[13].Tip.CommittedDate.Time),
325+
resource.NewVersion(testPullRequests[13], testPullRequests[13].Tip.PushedDate.Time),
326326
},
327327
},
328328
}

in_test.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ func TestGet(t *testing.T) {
3737
version: resource.Version{
3838
PR: "pr1",
3939
Commit: "commit1",
40-
CommittedDate: time.Time{},
40+
ChangedDate: time.Time{},
4141
ApprovedReviewCount: "0",
4242
State: githubv4.PullRequestStateOpen,
4343
},
4444
parameters: resource.GetParameters{},
4545
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
46-
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
46+
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
4747
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"user@example.com"},{"name":"state","value":"OPEN"}]`,
4848
},
4949
{
@@ -56,13 +56,13 @@ func TestGet(t *testing.T) {
5656
version: resource.Version{
5757
PR: "pr1",
5858
Commit: "commit1",
59-
CommittedDate: time.Time{},
59+
ChangedDate: time.Time{},
6060
ApprovedReviewCount: "0",
6161
State: githubv4.PullRequestStateOpen,
6262
},
6363
parameters: resource.GetParameters{},
6464
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
65-
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
65+
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
6666
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"user@example.com"},{"name":"state","value":"OPEN"}]`,
6767
},
6868
{
@@ -74,15 +74,15 @@ func TestGet(t *testing.T) {
7474
version: resource.Version{
7575
PR: "pr1",
7676
Commit: "commit1",
77-
CommittedDate: time.Time{},
77+
ChangedDate: time.Time{},
7878
ApprovedReviewCount: "0",
7979
State: githubv4.PullRequestStateOpen,
8080
},
8181
parameters: resource.GetParameters{
8282
IntegrationTool: "rebase",
8383
},
8484
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
85-
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
85+
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
8686
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"user@example.com"},{"name":"state","value":"OPEN"}]`,
8787
},
8888
{
@@ -94,15 +94,15 @@ func TestGet(t *testing.T) {
9494
version: resource.Version{
9595
PR: "pr1",
9696
Commit: "commit1",
97-
CommittedDate: time.Time{},
97+
ChangedDate: time.Time{},
9898
ApprovedReviewCount: "0",
9999
State: githubv4.PullRequestStateOpen,
100100
},
101101
parameters: resource.GetParameters{
102102
IntegrationTool: "checkout",
103103
},
104104
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
105-
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
105+
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
106106
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"user@example.com"},{"name":"state","value":"OPEN"}]`,
107107
},
108108
{
@@ -114,15 +114,15 @@ func TestGet(t *testing.T) {
114114
version: resource.Version{
115115
PR: "pr1",
116116
Commit: "commit1",
117-
CommittedDate: time.Time{},
117+
ChangedDate: time.Time{},
118118
ApprovedReviewCount: "0",
119119
State: githubv4.PullRequestStateOpen,
120120
},
121121
parameters: resource.GetParameters{
122122
GitDepth: 2,
123123
},
124124
pullRequest: createTestPR(1, "master", false, false, 0, nil, false, githubv4.PullRequestStateOpen, []resource.StatusContext{}),
125-
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
125+
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
126126
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"user@example.com"},{"name":"state","value":"OPEN"}]`,
127127
},
128128
{
@@ -134,7 +134,7 @@ func TestGet(t *testing.T) {
134134
version: resource.Version{
135135
PR: "pr1",
136136
Commit: "commit1",
137-
CommittedDate: time.Time{},
137+
ChangedDate: time.Time{},
138138
ApprovedReviewCount: "0",
139139
State: githubv4.PullRequestStateOpen,
140140
},
@@ -150,7 +150,7 @@ func TestGet(t *testing.T) {
150150
Path: "Other.md",
151151
},
152152
},
153-
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
153+
versionString: `{"pr":"pr1","commit":"commit1","committed":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","approved_review_count":"0","state":"OPEN"}`,
154154
metadataString: `[{"name":"pr","value":"1"},{"name":"title","value":"pr1 title"},{"name":"url","value":"pr1 url"},{"name":"head_name","value":"pr1"},{"name":"head_sha","value":"oid1"},{"name":"base_name","value":"master"},{"name":"base_sha","value":"sha"},{"name":"message","value":"commit message1"},{"name":"author","value":"login1"},{"name":"author_email","value":"user@example.com"},{"name":"state","value":"OPEN"}]`,
155155
filesString: "README.md\nOther.md\n",
156156
},
@@ -292,9 +292,9 @@ func TestGetSkipDownload(t *testing.T) {
292292
AccessToken: "oauthtoken",
293293
},
294294
version: resource.Version{
295-
PR: "pr1",
296-
Commit: "commit1",
297-
CommittedDate: time.Time{},
295+
PR: "pr1",
296+
Commit: "commit1",
297+
ChangedDate: time.Time{},
298298
},
299299
parameters: resource.GetParameters{SkipDownload: true},
300300
},
@@ -376,10 +376,10 @@ func createTestPR(
376376
MergedAt: githubv4.DateTime{Time: time.Now()},
377377
},
378378
Tip: resource.CommitObject{
379-
ID: fmt.Sprintf("commit%s", n),
380-
OID: fmt.Sprintf("oid%s", n),
381-
CommittedDate: githubv4.DateTime{Time: d},
382-
Message: m,
379+
ID: fmt.Sprintf("commit%s", n),
380+
OID: fmt.Sprintf("oid%s", n),
381+
PushedDate: &githubv4.DateTime{Time: d},
382+
Message: m,
383383
Author: struct {
384384
User struct{ Login string }
385385
Email string

0 commit comments

Comments
 (0)