Support public build in bisect_cros_repo and switch_cros_localbuild

BUG=b:441146529
TEST=Ran ./run_tests.sh

Change-Id: I1cfd501f6bd10d21cfa4e721c1560c81fd707436
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/bisect-kit/+/6999387
Tested-by: Yoshiki Iguchi <[email protected]>
Reviewed-by: MD Nayeem Jahan Rafi <[email protected]>
Commit-Queue: Yoshiki Iguchi <[email protected]>
diff --git a/bisect_cros_repo.py b/bisect_cros_repo.py
index f9d6d4a..b8ec597 100755
--- a/bisect_cros_repo.py
+++ b/bisect_cros_repo.py
@@ -83,6 +83,11 @@
             default=os.environ.get('CHROMEOS_MIRROR', ''),
             help='ChromeOS repo mirror path',
         )
+        parser.add_argument(
+            '--public-build',
+            action='store_true',
+            help='Use public build artifacts instead of internal ones.',
+        )
 
     @staticmethod
     def init(opts):
@@ -117,6 +122,7 @@
             "board": opts.board,
             "chromeos_root": opts.chromeos_root,
             "chromeos_mirror": opts.chromeos_mirror,
+            "is_public_build": opts.public_build,
         }
 
         spec_manager = cros_util.ChromeOSSpecManager(config)
diff --git a/switch_cros_localbuild.py b/switch_cros_localbuild.py
index e42f647..2ebe231 100755
--- a/switch_cros_localbuild.py
+++ b/switch_cros_localbuild.py
@@ -80,8 +80,6 @@
         default=os.environ.get('BOARD', ''),
         help='ChromeOS board name',
     )
-    # Adds --public-build flag for compatibility with other switch scripts, but it's not
-    # supported yet on this script.
     parser.add_argument(
         '--public-build',
         action='store_true',
@@ -248,9 +246,7 @@
         opts.dut,
         opts.board,
         image_info,
-        # TODO(b/441146529): Currently cros localbuild doesn't support a public
-        # build.
-        is_public_build=False,
+        is_public_build=opts.public_build,
         clobber_stateful=opts.clobber_stateful,
         disable_rootfs_verification=opts.disable_rootfs_verification,
         repair_callback=cros_lab_util.repair,
@@ -268,9 +264,7 @@
             "board": opts.board,
             "chromeos_root": opts.chromeos_root,
             "chromeos_mirror": opts.chromeos_mirror,
-            # TODO(b/441146529): Currently cros localbuild doesn't support a
-            # public build.
-            "is_public_build": False,
+            "is_public_build": opts.public_build,
         }
         spec_manager = cros_util.ChromeOSSpecManager(config)
         cache = repo_util.RepoMirror(opts.chromeos_mirror)