summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java9
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/change/RebaseChangeOp.java8
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java3
3 files changed, 18 insertions, 2 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java
index 5bc3a362b7..f41d41d12e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java
@@ -95,6 +95,7 @@ public class PatchSetInserter extends BatchUpdate.Op {
private String message;
private CommitValidators.Policy validatePolicy =
CommitValidators.Policy.GERRIT;
+ private boolean checkAddPatchSetPermission = true;
private boolean draft;
private List<String> groups = Collections.emptyList();
private boolean fireRevisionCreated = true;
@@ -154,6 +155,12 @@ public class PatchSetInserter extends BatchUpdate.Op {
return this;
}
+ public PatchSetInserter setCheckAddPatchSetPermission(
+ boolean checkAddPatchSetPermission) {
+ this.checkAddPatchSetPermission = checkAddPatchSetPermission;
+ return this;
+ }
+
public PatchSetInserter setDraft(boolean draft) {
this.draft = draft;
return this;
@@ -294,7 +301,7 @@ public class PatchSetInserter extends BatchUpdate.Op {
CommitValidators cv = commitValidatorsFactory.create(
origCtl.getRefControl(), sshInfo, ctx.getRepository());
- if (!origCtl.canAddPatchSet(ctx.getDb())) {
+ if (checkAddPatchSetPermission && !origCtl.canAddPatchSet(ctx.getDb())) {
throw new AuthException("cannot add patch set");
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/RebaseChangeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/RebaseChangeOp.java
index 8909e609c6..20dbfb335e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/RebaseChangeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/RebaseChangeOp.java
@@ -65,6 +65,7 @@ public class RebaseChangeOp extends BatchUpdate.Op {
private PersonIdent committerIdent;
private boolean fireRevisionCreated = true;
private CommitValidators.Policy validate;
+ private boolean checkAddPatchSetPermission = true;
private boolean forceContentMerge;
private boolean copyApprovals = true;
@@ -101,6 +102,12 @@ public class RebaseChangeOp extends BatchUpdate.Op {
return this;
}
+ public RebaseChangeOp setCheckAddPatchSetPermission(
+ boolean checkAddPatchSetPermission) {
+ this.checkAddPatchSetPermission = checkAddPatchSetPermission;
+ return this;
+ }
+
public RebaseChangeOp setFireRevisionCreated(boolean fireRevisionCreated) {
this.fireRevisionCreated = fireRevisionCreated;
return this;
@@ -153,6 +160,7 @@ public class RebaseChangeOp extends BatchUpdate.Op {
.setSendMail(false)
.setFireRevisionCreated(fireRevisionCreated)
.setCopyApprovals(copyApprovals)
+ .setCheckAddPatchSetPermission(checkAddPatchSetPermission)
.setMessage(
"Patch Set " + rebasedPatchSetId.get()
+ ": Patch Set " + originalPatchSet.getId().get() + " was rebased");
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java
index a309e6ec89..7892a4ac5e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/strategy/RebaseIfNecessary.java
@@ -124,7 +124,8 @@ public class RebaseIfNecessary extends SubmitStrategy {
// Bypass approval copier since SubmitStrategyOp copy all approvals
// later anyway.
.setCopyApprovals(false)
- .setValidatePolicy(CommitValidators.Policy.NONE);
+ .setValidatePolicy(CommitValidators.Policy.NONE)
+ .setCheckAddPatchSetPermission(false);
try {
rebaseOp.updateRepo(ctx);
} catch (MergeConflictException | NoSuchChangeException e) {