Skip to content

Commit 0710a35

Browse files
author
joegoldman2
authored
feat(platform/gitea): use automergeStrategy in createPr (#26448)
1 parent 53e1ca6 commit 0710a35

File tree

2 files changed

+78
-2
lines changed

2 files changed

+78
-2
lines changed

lib/modules/platform/gitea/index.spec.ts

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,6 +1217,81 @@ describe('modules/platform/gitea/index', () => {
12171217
});
12181218
expect(helper.mergePR).not.toHaveBeenCalled();
12191219
});
1220+
1221+
it('should create PR with repository merge method when automergeStrategy is auto', async () => {
1222+
helper.createPR.mockResolvedValueOnce(mockNewPR);
1223+
await initFakePlatform('1.17.0');
1224+
await initFakeRepo();
1225+
await gitea.createPr({
1226+
sourceBranch: mockNewPR.head.label,
1227+
targetBranch: 'master',
1228+
prTitle: mockNewPR.title,
1229+
prBody: mockNewPR.body,
1230+
platformOptions: {
1231+
automergeStrategy: 'auto',
1232+
usePlatformAutomerge: true,
1233+
},
1234+
});
1235+
1236+
expect(helper.createPR).toHaveBeenCalledTimes(1);
1237+
expect(helper.createPR).toHaveBeenCalledWith(mockRepo.full_name, {
1238+
base: mockNewPR.base.ref,
1239+
head: mockNewPR.head.label,
1240+
title: mockNewPR.title,
1241+
body: mockNewPR.body,
1242+
labels: [],
1243+
});
1244+
expect(helper.mergePR).toHaveBeenCalledWith(
1245+
mockRepo.full_name,
1246+
mockNewPR.number,
1247+
{
1248+
Do: 'rebase',
1249+
merge_when_checks_succeed: true,
1250+
},
1251+
);
1252+
});
1253+
1254+
it.each`
1255+
automergeStrategy | prMergeStrategy
1256+
${'fast-forward'} | ${'rebase'}
1257+
${'merge-commit'} | ${'merge'}
1258+
${'rebase'} | ${'rebase-merge'}
1259+
${'squash'} | ${'squash'}
1260+
`(
1261+
'should create PR with mergeStrategy $prMergeStrategy',
1262+
async ({ automergeStrategy, prMergeStrategy }) => {
1263+
helper.createPR.mockResolvedValueOnce(mockNewPR);
1264+
await initFakePlatform('1.17.0');
1265+
await initFakeRepo();
1266+
await gitea.createPr({
1267+
sourceBranch: mockNewPR.head.label,
1268+
targetBranch: 'master',
1269+
prTitle: mockNewPR.title,
1270+
prBody: mockNewPR.body,
1271+
platformOptions: {
1272+
automergeStrategy,
1273+
usePlatformAutomerge: true,
1274+
},
1275+
});
1276+
1277+
expect(helper.createPR).toHaveBeenCalledTimes(1);
1278+
expect(helper.createPR).toHaveBeenCalledWith(mockRepo.full_name, {
1279+
base: mockNewPR.base.ref,
1280+
head: mockNewPR.head.label,
1281+
title: mockNewPR.title,
1282+
body: mockNewPR.body,
1283+
labels: [],
1284+
});
1285+
expect(helper.mergePR).toHaveBeenCalledWith(
1286+
mockRepo.full_name,
1287+
mockNewPR.number,
1288+
{
1289+
Do: prMergeStrategy,
1290+
merge_when_checks_succeed: true,
1291+
},
1292+
);
1293+
},
1294+
);
12201295
});
12211296

12221297
describe('updatePr', () => {

lib/modules/platform/gitea/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -544,8 +544,9 @@ const platform: Platform = {
544544
if (semver.gte(defaults.version, '1.17.0')) {
545545
try {
546546
await helper.mergePR(config.repository, gpr.number, {
547-
// TODO: pass strategy (#16884)
548-
Do: config.mergeMethod,
547+
Do:
548+
getMergeMethod(platformOptions?.automergeStrategy) ??
549+
config.mergeMethod,
549550
merge_when_checks_succeed: true,
550551
});
551552

0 commit comments

Comments
 (0)