From f03cafaabf732bb1774e536f2ad6d98f37bf0edc Mon Sep 17 00:00:00 2001 From: Greg Gibeling Date: Mon, 23 Feb 2026 18:06:12 -0800 Subject: [PATCH] G2-1873 Optionally ignore repositories while creating PRs --- .../java/com/g2forge/bulldozer/build/CreatePRs.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/bd-build/src/main/java/com/g2forge/bulldozer/build/CreatePRs.java b/bd-build/src/main/java/com/g2forge/bulldozer/build/CreatePRs.java index 9a8799e..85c6d37 100644 --- a/bd-build/src/main/java/com/g2forge/bulldozer/build/CreatePRs.java +++ b/bd-build/src/main/java/com/g2forge/bulldozer/build/CreatePRs.java @@ -3,6 +3,7 @@ import java.net.URL; import java.nio.file.Paths; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; @@ -50,7 +51,8 @@ public class CreatePRs implements IConstructorCommand { public static final IStandardCommand COMMAND_FACTORY = IStandardCommand.of(invocation -> { final String branch = new CommandLineStringInput(invocation, 1).fallback(new UserStringInput("Branch", true)).get(); final String title = new CommandLineStringInput(invocation, 2).fallback(new UserStringInput("Title", true)).get(); - return new CreatePRs(new Context(BulldozerProject::new, Paths.get(invocation.getArguments().get(0))), branch, title); + final Set ignore = (invocation.getArguments().size() > 3) ? new HashSet<>(invocation.getArguments().subList(3, invocation.getArguments().size())) : HCollection.emptySet(); + return new CreatePRs(new Context(BulldozerProject::new, Paths.get(invocation.getArguments().get(0))), branch, title, ignore); }); public static void main(String[] args) throws Throwable { @@ -63,6 +65,8 @@ public static void main(String[] args) throws Throwable { protected final String title; + protected final Set ignore; + protected final boolean allowDirty = new PropertyStringInput("bulldozer.allowdirty").map(Boolean::valueOf).fallback(NullableOptional.of(false)).get(); @Override @@ -79,6 +83,10 @@ public IExit invoke() throws Throwable { // In topological order... final Map projectToPullRequest = new HashMap<>(); for (String name : order) { + if (getIgnore().contains(name)) { + log.info(String.format("Ignoring on %1$s", name)); + continue; + } log.info(String.format("Working on %1$s", name)); final BulldozerProject project = getContext().getProjects().get(name); final String remote = HGit.getMyRemote(project.getGit());