diff options
author | Luca Milanesio <luca.milanesio@gmail.com> | 2023-05-08 08:17:09 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-05-08 08:17:09 +0000 |
commit | aa48a9041bb7dbae5d2c6f112febe357444dd552 (patch) | |
tree | faf4958da6a3c61fb0cab4e1be94bbc314921c8a | |
parent | f5450cb30611213a09f4d4638d33675ed4f149df (diff) | |
parent | 4079ff4d6b275f42318d0329903c9e60d62a2723 (diff) |
Merge "Generate a warning when new rules.pl files are uploaded" into stable-3.8
-rw-r--r-- | java/com/google/gerrit/server/config/GerritGlobalModule.java | 4 | ||||
-rw-r--r-- | java/com/google/gerrit/server/project/PrologRulesWarningValidator.java (renamed from java/com/google/gerrit/server/project/PrologRulesBlockerValidator.java) | 18 | ||||
-rw-r--r-- | javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java | 9 |
3 files changed, 17 insertions, 14 deletions
diff --git a/java/com/google/gerrit/server/config/GerritGlobalModule.java b/java/com/google/gerrit/server/config/GerritGlobalModule.java index 46e09fd518..eee1c835bd 100644 --- a/java/com/google/gerrit/server/config/GerritGlobalModule.java +++ b/java/com/google/gerrit/server/config/GerritGlobalModule.java @@ -190,7 +190,7 @@ import com.google.gerrit.server.project.CommentLinkProvider; import com.google.gerrit.server.project.ProjectCacheImpl; import com.google.gerrit.server.project.ProjectNameLockManager; import com.google.gerrit.server.project.ProjectState; -import com.google.gerrit.server.project.PrologRulesBlockerValidator; +import com.google.gerrit.server.project.PrologRulesWarningValidator; import com.google.gerrit.server.project.SubmitRequirementConfigValidator; import com.google.gerrit.server.project.SubmitRequirementsEvaluatorImpl; import com.google.gerrit.server.project.SubmitRuleEvaluator; @@ -402,7 +402,7 @@ public class GerritGlobalModule extends FactoryModule { DynamicSet.setOf(binder(), CommitValidationListener.class); DynamicSet.bind(binder(), CommitValidationListener.class) .to(SubmitRequirementConfigValidator.class); - DynamicSet.bind(binder(), CommitValidationListener.class).to(PrologRulesBlockerValidator.class); + DynamicSet.bind(binder(), CommitValidationListener.class).to(PrologRulesWarningValidator.class); DynamicSet.setOf(binder(), CommentValidator.class); DynamicSet.setOf(binder(), ChangeMessageModifier.class); DynamicSet.setOf(binder(), RefOperationValidationListener.class); diff --git a/java/com/google/gerrit/server/project/PrologRulesBlockerValidator.java b/java/com/google/gerrit/server/project/PrologRulesWarningValidator.java index d4af2b2565..5683fe7974 100644 --- a/java/com/google/gerrit/server/project/PrologRulesBlockerValidator.java +++ b/java/com/google/gerrit/server/project/PrologRulesWarningValidator.java @@ -24,6 +24,7 @@ import com.google.gerrit.server.events.CommitReceivedEvent; import com.google.gerrit.server.git.validators.CommitValidationException; import com.google.gerrit.server.git.validators.CommitValidationListener; import com.google.gerrit.server.git.validators.CommitValidationMessage; +import com.google.gerrit.server.git.validators.ValidationMessage; import com.google.gerrit.server.patch.DiffNotAvailableException; import com.google.gerrit.server.patch.DiffOperations; import com.google.gerrit.server.patch.DiffOptions; @@ -35,17 +36,17 @@ import java.util.Map; import java.util.stream.Collectors; /** - * A validator than bans creation of new Prolog rules. Modification and deletion will be allowed so - * that clients can get rid of prolog rules. New rules should use submit-requirements instead. + * A validator than emits a warning for newly added prolog rules file via git push. Modification and + * deletion are allowed so that clients can get rid of prolog rules. */ @Singleton -public class PrologRulesBlockerValidator implements CommitValidationListener { +public class PrologRulesWarningValidator implements CommitValidationListener { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final DiffOperations diffOperations; @Inject - public PrologRulesBlockerValidator(DiffOperations diffOperations) { + public PrologRulesWarningValidator(DiffOperations diffOperations) { this.diffOperations = diffOperations; } @@ -55,12 +56,11 @@ public class PrologRulesBlockerValidator implements CommitValidationListener { try { if (receiveEvent.refName.equals(RefNames.REFS_CONFIG) && isFileAdded(receiveEvent, RULES_PL_FILE)) { - throw new CommitValidationException( - "Uploading 'rule.pl' not allowed", + return ImmutableList.of( new CommitValidationMessage( - "Uploading a new 'rules.pl' file is not allowed." - + " Please add submit-requirements instead.", - /*isError= */ true)); + "Uploading a new 'rules.pl' file is discouraged." + + " Please consider adding submit-requirements instead.", + ValidationMessage.Type.WARNING)); } } catch (DiffNotAvailableException e) { logger.atWarning().withCause(e).log("Failed to retrieve the file diff."); diff --git a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java index 118b31b9d9..29ea7f45ce 100644 --- a/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java +++ b/javatests/com/google/gerrit/acceptance/api/change/ChangeIT.java @@ -159,6 +159,7 @@ import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestApiException; +import com.google.gerrit.git.ObjectIds; import com.google.gerrit.httpd.raw.IndexPreloadingUtil; import com.google.gerrit.index.IndexConfig; import com.google.gerrit.index.query.PostFilterPredicate; @@ -3607,10 +3608,12 @@ public class ChangeIT extends AbstractDaemonTest { + "add_non_author_approval(S1," + " [label('Non-Author-Code-Review', need(_)) | S1]).") .to(RefNames.REFS_CONFIG); - pushResult.assertErrorStatus(); + pushResult.assertOkStatus(); pushResult.assertMessage( - "Uploading a new 'rules.pl' file is not allowed." - + " Please add submit-requirements instead."); + String.format( + "WARNING: commit %s: Uploading a new 'rules.pl' file is discouraged. " + + "Please consider adding submit-requirements instead.", + ObjectIds.abbreviateName(pushResult.getCommit()))); } @Test |