Skip to content

Commit 7d9367b

Browse files
authored
fix: pull request is not mergeable (#27)
* use correct timeout * move IsMergeable logic into should_skip logic * remove unused parameter
1 parent fce4289 commit 7d9367b

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

pkg/merge-with-label/worker/pull_request_worker.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -268,22 +268,6 @@ func (worker *pullRequestWorker) mergePullRequest(
268268
if cfg.Merge.Labels.ContainsOneOf(details.Labels...) == "" {
269269
return false, false, nil
270270
}
271-
if !details.IsMergeable {
272-
rootLogger.Debug().Msg("pull request not mergeable")
273-
if err := worker.CreateOrUpdateCheckRun(
274-
ctx,
275-
rootLogger,
276-
accessToken,
277-
repository,
278-
details.ID,
279-
details.LastCommitSha,
280-
"COMPLETED",
281-
"not merging: pull request is not mergeable", "",
282-
); err != nil {
283-
return false, false, errors.WithStack(err)
284-
}
285-
return true, false, nil
286-
}
287271

288272
result, err := worker.shouldSkipMerge(ctx, rootLogger, cfg, details)
289273
if err != nil {

pkg/merge-with-label/worker/should_skip.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ func (worker *Worker) shouldSkipMerge(
3737
worker.shouldSkipBecauseOfHistory(&cfg.Merge),
3838
worker.shouldSkipBecauseOfReviews(&cfg.Merge),
3939
worker.shouldSkipBecauseOfChecks(&cfg.Merge),
40+
worker.shouldSkipBecauseIsNotMergeable(&cfg.Merge),
4041
}
4142

4243
for i := range conditions {
@@ -264,7 +265,7 @@ func (worker *Worker) shouldSkipBecauseOfChecks(cfg *MergeConfigV1) shouldSkipFu
264265
}, nil
265266
}
266267

267-
if diff := time.Until(details.LastCommitTime.Add(worker.DurationToWaitAfterUpdateBranch)); diff > 0 {
268+
if diff := time.Until(details.LastCommitTime.Add(worker.DurationBeforeMergeAfterCheck)); diff > 0 {
268269
// it's a bit too early. block merging, push back onto the queue
269270
logger.Debug().Msg("delaying merge, because commit was too recent")
270271
return shouldSkipResult{SkipAction: false}, pushBackError{delay: diff}
@@ -321,3 +322,23 @@ func (worker *Worker) shouldSkipBecauseOfReviews(cfg *MergeConfigV1) shouldSkipF
321322
return shouldSkipResult{SkipAction: false}, nil
322323
}
323324
}
325+
326+
func (worker *Worker) shouldSkipBecauseIsNotMergeable(*MergeConfigV1) shouldSkipFunc {
327+
return func(_ context.Context, logger *zerolog.Logger, details *github.PullRequestDetails) (shouldSkipResult, error) {
328+
if details.IsMergeable {
329+
return shouldSkipResult{SkipAction: false}, nil
330+
}
331+
332+
if diff := time.Until(details.LastCommitTime.Add(worker.DurationBeforeMergeAfterCheck)); diff > 0 {
333+
// it's a bit too early. block merging, push back onto the queue
334+
logger.Debug().Msg("pull request not mergeable, but the the last commit is too recent, retrying")
335+
return shouldSkipResult{SkipAction: false}, pushBackError{delay: diff}
336+
}
337+
logger.Debug().Msg("pull request not mergeable")
338+
return shouldSkipResult{
339+
SkipAction: true,
340+
Title: "not merging",
341+
Summary: "pull request is not mergeable",
342+
}, nil
343+
}
344+
}

0 commit comments

Comments
 (0)