Skip to content

Commit 9c315d1

Browse files
authored
MergeRequestAcceptor: use fresh MR data on accepting (#32)
1 parent 9330c35 commit 9c315d1

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/MergeRequestAcceptor.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,12 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
144144
}
145145

146146
if (mergeRequestInfo.diverged_commits_count > 0) {
147-
await gitlabApi.updateMergeRequest(mergeRequest.project_id, mergeRequest.iid, {
147+
await gitlabApi.updateMergeRequest(mergeRequestInfo.project_id, mergeRequestInfo.iid, {
148148
labels: [...filterBotLabels(mergeRequestInfo.labels), BotLabels.Rebasing].join(','),
149149
});
150150
console.log(`[MR] source branch is not up to date, rebasing`);
151151
await tryCancelPipeline(gitlabApi, mergeRequestInfo, user);
152-
await gitlabApi.rebaseMergeRequest(mergeRequest.project_id, mergeRequest.iid);
152+
await gitlabApi.rebaseMergeRequest(mergeRequestInfo.project_id, mergeRequestInfo.iid);
153153
numberOfPipelineValidationRetries = defaultPipelineValidationRetries;
154154
await Promise.all(tasks);
155155
continue;
@@ -164,15 +164,15 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
164164
}
165165

166166
if (containsLabel(mergeRequestInfo.labels, BotLabels.Rebasing)) {
167-
await gitlabApi.updateMergeRequest(mergeRequest.project_id, mergeRequest.iid, {
167+
await gitlabApi.updateMergeRequest(mergeRequestInfo.project_id, mergeRequestInfo.iid, {
168168
labels: [...filterBotLabels(mergeRequestInfo.labels)].join(','),
169169
});
170170
}
171171

172172
let currentPipeline: MergeRequestPipeline | null = mergeRequestInfo.pipeline;
173173

174174
if (currentPipeline !== null && currentPipeline.sha !== mergeRequestInfo.sha) {
175-
const pipelines = await gitlabApi.getMergeRequestPipelines(mergeRequest.project_id, mergeRequest.iid);
175+
const pipelines = await gitlabApi.getMergeRequestPipelines(mergeRequestInfo.project_id, mergeRequestInfo.iid);
176176
const currentPipelineCandidate = pipelines.find((pipeline) => pipeline.sha === mergeRequestInfo.sha);
177177

178178
if (currentPipelineCandidate === undefined) {
@@ -202,7 +202,7 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
202202
if (currentPipeline.status === PipelineStatus.Running || currentPipeline.status === PipelineStatus.Pending) {
203203
if (!containsLabel(mergeRequestInfo.labels, BotLabels.WaitingForPipeline)) {
204204
tasks.push(
205-
gitlabApi.updateMergeRequest(mergeRequest.project_id, mergeRequest.iid, {
205+
gitlabApi.updateMergeRequest(mergeRequestInfo.project_id, mergeRequestInfo.iid, {
206206
labels: [...filterBotLabels(mergeRequestInfo.labels), BotLabels.WaitingForPipeline].join(','),
207207
}),
208208
);
@@ -215,7 +215,7 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
215215

216216
if (currentPipeline.status === PipelineStatus.Canceled) {
217217
console.log(`[MR] pipeline is canceled calling retry`);
218-
await gitlabApi.retryPipeline(mergeRequest.project_id, currentPipeline.id);
218+
await gitlabApi.retryPipeline(mergeRequestInfo.project_id, currentPipeline.id);
219219
numberOfPipelineValidationRetries = defaultPipelineValidationRetries;
220220
await Promise.all(tasks);
221221
continue;
@@ -236,13 +236,13 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
236236
}
237237

238238
console.log('[MR] Calling merge request');
239-
const response = await gitlabApi.sendRawRequest(`/api/v4/projects/${mergeRequest.project_id}/merge_requests/${mergeRequest.iid}/merge`, RequestMethod.Put, {
239+
const response = await gitlabApi.sendRawRequest(`/api/v4/projects/${mergeRequestInfo.project_id}/merge_requests/${mergeRequestInfo.iid}/merge`, RequestMethod.Put, {
240240
should_remove_source_branch: options.removeBranchAfterMerge,
241241
merge_when_pipeline_succeeds: true,
242242
sha: mergeRequestInfo.diff_refs.head_sha,
243243
squash: options.squashMergeRequest,
244-
squash_commit_message: `${mergeRequest.title} (!${mergeRequest.iid})`,
245-
merge_commit_message: `${mergeRequest.title} (!${mergeRequest.iid})`,
244+
squash_commit_message: `${mergeRequestInfo.title} (!${mergeRequestInfo.iid})`,
245+
merge_commit_message: `${mergeRequestInfo.title} (!${mergeRequestInfo.iid})`,
246246
});
247247

248248
if (response.status === 405) { // cannot be merged
@@ -277,7 +277,7 @@ export const acceptMergeRequest = async (gitlabApi: GitlabApi, mergeRequest: Mer
277277

278278
if (!containsLabel(mergeRequestInfo.labels, BotLabels.Accepting)) {
279279
tasks.push(
280-
gitlabApi.updateMergeRequest(mergeRequest.project_id, mergeRequest.iid, {
280+
gitlabApi.updateMergeRequest(mergeRequestInfo.project_id, mergeRequestInfo.iid, {
281281
labels: [...filterBotLabels(mergeRequestInfo.labels), BotLabels.Accepting].join(','),
282282
}),
283283
);

0 commit comments

Comments
 (0)