}, &github.ErrorResponse{
									Response: resp,
									Message:  "Head branch was modified. Review and try the merge again.",
								})
						}

						Context("every time", func() {
							BeforeEach(func() {
								mockMergeFailWithConflict()
							})

							It("retries and fails with a gateway error", func() {
								handle()

								// +1 because of the initial attempt
								pullRequests.AssertNumberOfCalls(GinkgoT(), "Get", grh.MergeRetryLimit+1)
								pullRequests.AssertNumberOfCalls(GinkgoT(), "Merge", grh.MergeRetryLimit+1)
								Expect(responseRecorder.Code).To(Equal(http.StatusBadGateway))
							})
						})

						Context("with merge succeeding with first retry", func() {
							BeforeEach(func() {
								mockMergeFailWithConflict().Once()

								additionalCommitMessage := ""
								pullRequests.
									On(
										"Merge",
										repositoryOwner,
										repositoryName,