···2222 "code.gitea.io/gitea/modules/queue"
2323 notify_service "code.gitea.io/gitea/services/notify"
2424 pull_service "code.gitea.io/gitea/services/pull"
2525+ repo_service "code.gitea.io/gitea/services/repository"
2526 shared_automerge "code.gitea.io/gitea/services/shared/automerge"
2627)
2728···5253}
53545455// ScheduleAutoMerge if schedule is false and no error, pull can be merged directly
5555-func ScheduleAutoMerge(ctx context.Context, doer *user_model.User, pull *issues_model.PullRequest, style repo_model.MergeStyle, message string) (scheduled bool, err error) {
5656+func ScheduleAutoMerge(ctx context.Context, doer *user_model.User, pull *issues_model.PullRequest, style repo_model.MergeStyle, message string, deleteBranch bool) (scheduled bool, err error) {
5657 err = db.WithTx(ctx, func(ctx context.Context) error {
5757- if err := pull_model.ScheduleAutoMerge(ctx, doer, pull.ID, style, message); err != nil {
5858+ if err := pull_model.ScheduleAutoMerge(ctx, doer, pull.ID, style, message, deleteBranch); err != nil {
5859 return err
5960 }
6061 scheduled = true
···209210 // The resolution is add a new column on automerge table named `error_message` to store the error message and displayed
210211 // on the pull request page. But this should not be finished in a bug fix PR which will be backport to release branch.
211212 return
213213+ }
214214+215215+ if scheduledPRM.DeleteBranchAfterMerge {
216216+ err := repo_service.DeleteBranchAfterMerge(ctx, doer, pr, headGitRepo)
217217+ if err != nil {
218218+ log.Error("%d repo_service.DeleteBranchIfUnused: %v", pr.ID, err)
219219+ }
212220 }
213221}
+1-1
tests/integration/actions_commit_status_test.go
···3434 assert.False(t, pr.HasMerged, "PR should not be merged")
3535 assert.Equal(t, issues_model.PullRequestStatusMergeable, pr.Status, "PR should be mergeable")
36363737- scheduled, err := automerge.ScheduleAutoMerge(ctx, user, pr, repo_model.MergeStyleMerge, "Dummy")
3737+ scheduled, err := automerge.ScheduleAutoMerge(ctx, user, pr, repo_model.MergeStyleMerge, "Dummy", false)
38383939 require.NoError(t, err, "PR should be scheduled for automerge")
4040 assert.True(t, scheduled, "PR should be scheduled for automerge")