chore: Remove auto merge user field

This commit is contained in:
Robin Shen 2025-09-05 08:35:39 +08:00
parent 78b31191cc
commit 3f024b687b
8 changed files with 27 additions and 38 deletions

View File

@ -1713,7 +1713,6 @@ public class McpHelperResource {
var autoMerge = new AutoMerge();
autoMerge.setEnabled(autoMergeEnabled);
autoMerge.setCommitMessage(StringUtils.trimToNull((String) data.remove("autoMergeCommitMessage")));
autoMerge.setUser(user);
var errorMessage = request.checkMergeCommitMessage(user, autoMerge.getCommitMessage());
if (errorMessage != null)
throw new NotAcceptableException("Error validating param auto merge commit message: " + errorMessage);

View File

@ -8193,6 +8193,14 @@ public class DataMigrator {
for (Element element : dom.getRootElement().elements()) {
groupIds.put(element.elementText("name").trim(), element.elementText("id").trim());
}
} else if (file.getName().startsWith("PullRequests.xml")) {
VersionedXmlDoc dom = VersionedXmlDoc.fromFile(file);
for (Element element : dom.getRootElement().elements()) {
var autoMergeUserElement = element.element("autoMerge").element("user");
if (autoMergeUserElement != null)
autoMergeUserElement.detach();
}
dom.writeToFile(file, false);
}
}

View File

@ -502,10 +502,7 @@ public class DefaultPullRequestManager extends BaseEntityManager<PullRequest>
if (request.isOpen()) {
var autoMerge = request.getAutoMerge();
if (autoMerge.isEnabled() && request.checkMergeCondition() == null) {
if (autoMerge.getUser() != null)
merge(autoMerge.getUser(), request, autoMerge.getCommitMessage());
else
throw new ExplicitException("Auto merge user not specified");
merge(userManager.getSystem(), request, autoMerge.getCommitMessage());
}
}
}

View File

@ -1308,7 +1308,8 @@ public class PullRequest extends ProjectBelonging
getBaseCommit().copy(), getLatestUpdate().getHeadCommit().copy(), new HashMap<>());
}
if (error == null && autoMerge.isEnabled()) {
var errorMessage = checkMergeCommitMessage(autoMerge.getUser(), autoMerge.getCommitMessage());
var system = OneDev.getInstance(UserManager.class).getSystem();
var errorMessage = checkMergeCommitMessage(system, autoMerge.getCommitMessage());
if (errorMessage != null)
error = new CommitMessageError(null, errorMessage);
}

View File

@ -1,11 +1,12 @@
package io.onedev.server.model.support.pullrequest;
import io.onedev.server.model.User;
import org.hibernate.annotations.OptimisticLock;
import java.io.Serializable;
import javax.annotation.Nullable;
import javax.persistence.*;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import org.hibernate.annotations.OptimisticLock;
@Embeddable
public class AutoMerge implements Serializable {
@ -13,20 +14,13 @@ public class AutoMerge implements Serializable {
private static final long serialVersionUID = 1L;
public static final String COLUMN_ENABLED = "AUTO_MERGE_ENABLED";
public static final String COLUMN_USER = "AUTO_MERGE_USER";
public static final String COLUMN_COMMIT_MESSAGE = "AUTO_MERGE_COMMIT_MESSAGE";
@Column(name=COLUMN_ENABLED, nullable = false)
@OptimisticLock(excluded=true)
private boolean enabled;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name=COLUMN_USER)
@OptimisticLock(excluded=true)
private User user;
@Column(length=1048576, name=COLUMN_COMMIT_MESSAGE)
@OptimisticLock(excluded=true)
private String commitMessage;
@ -39,14 +33,6 @@ public class AutoMerge implements Serializable {
this.enabled = enabled;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Nullable
public String getCommitMessage() {
return commitMessage;

View File

@ -373,7 +373,6 @@ public class PullRequestResource {
var autoMerge = new AutoMerge();
autoMerge.setEnabled(data.isEnabled());
autoMerge.setCommitMessage(data.getCommitMessage());
autoMerge.setUser(user);
var errorMessage = request.checkMergeCommitMessage(user, autoMerge.getCommitMessage());
if (errorMessage != null)
throw new NotAcceptableException("Error validating auto merge commit message: " + errorMessage);

View File

@ -78,6 +78,7 @@ import io.onedev.server.entitymanager.PullRequestReactionManager;
import io.onedev.server.entitymanager.PullRequestReviewManager;
import io.onedev.server.entitymanager.PullRequestWatchManager;
import io.onedev.server.entitymanager.SettingManager;
import io.onedev.server.entitymanager.UserManager;
import io.onedev.server.entityreference.EntityReference;
import io.onedev.server.entityreference.LinkTransformer;
import io.onedev.server.git.GitUtils;
@ -1379,8 +1380,7 @@ public abstract class PullRequestDetailPage extends ProjectPage implements PullR
if (request.isMergeCommitMessageRequired()) {
tipsContainer = new Fragment("tips", "autoMergeEnabledWithPresetCommitMessageFrag", PullRequestDetailPage.this);
WebMarkupContainer link;
if (SecurityUtils.canManagePullRequests(getProject())
|| autoMerge.getUser() != null && autoMerge.getUser().equals(SecurityUtils.getUser())) {
if (SecurityUtils.canModifyPullRequest(getPullRequest()) && SecurityUtils.canWriteCode(getProject())) {
link = new AjaxLink<Void>("commitMessage") {
@Override
@ -1396,7 +1396,8 @@ public abstract class PullRequestDetailPage extends ProjectPage implements PullR
@Override
protected String onSave(AjaxRequestTarget target, CommitMessageBean bean) {
var request = getPullRequest();
var branchProtection = getProject().getBranchProtection(request.getTargetBranch(), autoMerge.getUser());
var system = OneDev.getInstance(UserManager.class).getSystem();
var branchProtection = getProject().getBranchProtection(request.getTargetBranch(), system);
var errorMessage = branchProtection.checkCommitMessage(bean.getCommitMessage(),
request.getMergeStrategy() != SQUASH_SOURCE_BRANCH_COMMITS);
if (errorMessage != null) {
@ -1502,7 +1503,6 @@ public abstract class PullRequestDetailPage extends ProjectPage implements PullR
} else {
var autoMerge = new AutoMerge();
autoMerge.setEnabled(true);
autoMerge.setUser(user);
autoMerge.setCommitMessage(bean.getCommitMessage());
getPullRequestChangeManager().changeAutoMerge(getPullRequest(), autoMerge);
target.add(autoMergeContainer);
@ -1523,12 +1523,11 @@ public abstract class PullRequestDetailPage extends ProjectPage implements PullR
}
};
} else {
var autoMerge = new AutoMerge();
autoMerge.setEnabled(true);
autoMerge.setUser(SecurityUtils.getUser());
autoMerge.setCommitMessage(request.getAutoMerge().getCommitMessage());
getPullRequestChangeManager().changeAutoMerge(request, autoMerge);
target.add(autoMergeContainer);
var autoMerge = new AutoMerge();
autoMerge.setEnabled(true);
autoMerge.setCommitMessage(request.getAutoMerge().getCommitMessage());
getPullRequestChangeManager().changeAutoMerge(request, autoMerge);
target.add(autoMergeContainer);
}
} else {
var autoMerge = new AutoMerge();

@ -1 +1 @@
Subproject commit 64ca3d0811a5f1c57090e8d47c720871dd5edb8d
Subproject commit 2b7de662ca1fb90d20c0fb506b15f46dffcfe2b2