[fxbug.dev] Migrate bug numbers

This changes fxbug.dev/ URLs from Monorail bug numbers to the new
Fuchsia Issue Tracker numbers.

The migration to the new issue tracker was announced here:
https://groups.google.com/a/fuchsia.dev/g/announce/c/GOYfJozEqmk/m/qsGsaJ7UAAAJ

Bug: 298074672
Change-Id: I3a1ae2710ce81e550ed2e56c82adeb5a6549caf5
Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/980366
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Fuchsia-Auto-Submit: Mitchell Kember <mkember@google.com>
Reviewed-by: Cameron Dale <camrdale@google.com>
diff --git a/build/config/linux/BUILD.gn b/build/config/linux/BUILD.gn
index 212e189..ad58f18 100644
--- a/build/config/linux/BUILD.gn
+++ b/build/config/linux/BUILD.gn
@@ -23,7 +23,7 @@
     "-Wl,-rpath=\$ORIGIN/",
   ]
   if (host_os == "mac") {
-    # TODO(fxbug.dev/27079): When building binaries for Linux on macOS, we need to use
+    # TODO(fxbug.dev/42101568): When building binaries for Linux on macOS, we need to use
     # lld as a linker, hence this flag. This is not needed on Linux since our
     # Clang is configured to use lld as a default linker, but we cannot use the
     # same option on macOS since default linker is currently a per-toolchain,
@@ -36,7 +36,7 @@
     ":target",
   ]
 
-  # TODO(fxbug.dev/26846): The implicitly linked static libc++.a depends on these.
+  # TODO(fxbug.dev/42101309): The implicitly linked static libc++.a depends on these.
   libs = [
     "dl",
     "pthread",
diff --git a/build/go/build.py b/build/go/build.py
index d88b1ec..11ff988 100755
--- a/build/go/build.py
+++ b/build/go/build.py
@@ -115,7 +115,7 @@
           # EEXIST occurs if two gopath entries share the same parent name
           if e.errno != errno.EEXIST:
             raise
-        # TODO(fxbug.dev/3037): the following check might not be necessary anymore.
+        # TODO(fxbug.dev/42105225): the following check might not be necessary anymore.
         tgt = os.path.join(dstdir, os.path.basename(dst))
         # The source tree is effectively read-only once the build begins.
         # Therefore it is an error if tgt is in the source tree. At first
diff --git a/build/go/gen_library_metadata.py b/build/go/gen_library_metadata.py
index 4571c43..2177aed 100755
--- a/build/go/gen_library_metadata.py
+++ b/build/go/gen_library_metadata.py
@@ -79,7 +79,7 @@
 
     current_sources = []
     if args.sources:
-        # TODO(fxbug.dev/3037): verify that the sources are in a single folder.
+        # TODO(fxbug.dev/42105225): verify that the sources are in a single folder.
         for source in args.sources:
             current_sources.append(Source(os.path.join(name, source),
                                           os.path.join(args.source_dir, source),
diff --git a/build/go/go_binary.gni b/build/go/go_binary.gni
index 8bc2ae3..af4c8b0 100644
--- a/build/go/go_binary.gni
+++ b/build/go/go_binary.gni
@@ -11,7 +11,7 @@
   forward_variables_from(invoker, [ "visibility" ])
 
   go_build(target_name) {
-    # TODO(fxbug.dev/58755): Deprecate `gopackage` in favor of `library`.
+    # TODO(fxbug.dev/42136747): Deprecate `gopackage` in favor of `library`.
     if (defined(invoker.gopackage)) {
       gopackages = [ invoker.gopackage ]
     }
diff --git a/build/go/go_build.gni b/build/go/go_build.gni
index 7c98bbd..f38c873 100644
--- a/build/go/go_build.gni
+++ b/build/go/go_build.gni
@@ -82,14 +82,14 @@
     }
     args = []
 
-    # TODO(fxbug.dev/58755): Delete `gopackages` in favor of `library`.
+    # TODO(fxbug.dev/42136747): Delete `gopackages` in favor of `library`.
     if (defined(invoker.gopackages) == defined(invoker.library)) {
       assert(false, "Exactly one of gopackages or library must be set")
     } else if (defined(invoker.gopackages)) {
       gopackages = invoker.gopackages
 
       # Multi-package support was never implemented and is no longer planned as
-      # `gopackages` is slated for deletion as part of https://fxbug.dev/58755.
+      # `gopackages` is slated for deletion as part of https://fxbug.dev/42136747.
       assert(gopackages == [ gopackages[0] ],
              "gopackages only supports one package")
       foreach(gopackage, gopackages) {
diff --git a/build/go/go_library.gni b/build/go/go_library.gni
index cee0812..1a754bb 100644
--- a/build/go/go_library.gni
+++ b/build/go/go_library.gni
@@ -24,7 +24,7 @@
 #
 #   sources (optional)
 #     List of source files, relative to source_dir.
-#     TODO(fxbug.dev/3037): make this attribute required.
+#     TODO(fxbug.dev/42105225): make this attribute required.
 #
 #   deps (optional)
 #     List of labels for Go libraries this target depends on.
diff --git a/build/rust/config.gni b/build/rust/config.gni
index 3dc34b2..91403c4 100644
--- a/build/rust/config.gni
+++ b/build/rust/config.gni
@@ -42,7 +42,7 @@
 _sysroot = sysroot
 sysroot_deps = []
 
-# TODO(fxbug.dev/3039): sysroot.gni should provide the correct label and path to the Fuchsia sysroot.
+# TODO(fxbug.dev/42105247): sysroot.gni should provide the correct label and path to the Fuchsia sysroot.
 if (is_fuchsia) {
   sysroot_deps = [ "//sdk:zircon_sysroot_export" ]
   _sysroot = rebase_path(
diff --git a/src/algorithms/experimental/archived/response_randomizer.h b/src/algorithms/experimental/archived/response_randomizer.h
index ac5f9e7..3133322 100644
--- a/src/algorithms/experimental/archived/response_randomizer.h
+++ b/src/algorithms/experimental/archived/response_randomizer.h
@@ -25,7 +25,7 @@
   // (with probability (1 - |p|), the method returns the input |index|.
   //
   // Inputs larger than |max_index| are replaced with |max_index| before encoding.
-  // TODO(fxbug.dev/87115): Consider other ways of handling bad input.
+  // TODO(fxbug.dev/42168201): Consider other ways of handling bad input.
   uint32_t Encode(uint32_t index);
 
  private:
diff --git a/src/algorithms/experimental/randomized_response.h b/src/algorithms/experimental/randomized_response.h
index a990e18..930f6e9 100644
--- a/src/algorithms/experimental/randomized_response.h
+++ b/src/algorithms/experimental/randomized_response.h
@@ -24,7 +24,7 @@
   // (with probability (1 - |p|), the method returns the input |index|.
   //
   // Inputs larger than |max_index| are replaced with |max_index| before encoding.
-  // TODO(fxbug.dev/87115): Consider other ways of handling bad input.
+  // TODO(fxbug.dev/42168201): Consider other ways of handling bad input.
   uint32_t Encode(uint32_t index);
 
  private:
diff --git a/src/lib/clearcut/uploader.cc b/src/lib/clearcut/uploader.cc
index 2f93a9a..07d3b01 100644
--- a/src/lib/clearcut/uploader.cc
+++ b/src/lib/clearcut/uploader.cc
@@ -170,7 +170,7 @@
 
   LogResponse log_response;
   if (!log_response.ParseFromString(response.response)) {
-    // TODO(fxbug.dev/45751): add metric to capture how often this happens.
+    // TODO(fxbug.dev/42122310): add metric to capture how often this happens.
     LOG(ERROR) << "Unable to parse response from clearcut server";
   } else {
     if (log_response.next_request_wait_millis() >= 0) {
diff --git a/src/lib/util/clock.h b/src/lib/util/clock.h
index f197191..81b2591 100644
--- a/src/lib/util/clock.h
+++ b/src/lib/util/clock.h
@@ -23,7 +23,7 @@
 // The SystemClockInterface used in the constructor must remain valid for the entire lifetime of
 // this class.
 //
-// TODO(fxbug.dev/87103): Remove this once it is no longer used.
+// TODO(fxbug.dev/42168188): Remove this once it is no longer used.
 class SystemClockRef : public SystemClockInterface {
  public:
   explicit SystemClockRef(SystemClockInterface* ref) : ref_(ref) {}
diff --git a/src/local_aggregation/local_aggregate_storage/delayed_local_aggregate_storage.h b/src/local_aggregation/local_aggregate_storage/delayed_local_aggregate_storage.h
index d86ff4a..900d904 100644
--- a/src/local_aggregation/local_aggregate_storage/delayed_local_aggregate_storage.h
+++ b/src/local_aggregation/local_aggregate_storage/delayed_local_aggregate_storage.h
@@ -100,7 +100,7 @@
   // DeleteOutdatedMetrics walks the filesystem from the |base_directory_| down and deletes
   // MetricAggregate files, and project directories that do not exist in the CobaltRegistry.
   //
-  // TODO(fxbug.dev/51390): Customers that are not present in the registry should be deleted
+  // TODO(fxbug.dev/42128576): Customers that are not present in the registry should be deleted
   // too.
   void DeleteOutdatedMetrics();
 
diff --git a/src/local_aggregation/local_aggregate_storage/immediate_local_aggregate_storage.h b/src/local_aggregation/local_aggregate_storage/immediate_local_aggregate_storage.h
index 8ae1d0a..5863713 100644
--- a/src/local_aggregation/local_aggregate_storage/immediate_local_aggregate_storage.h
+++ b/src/local_aggregation/local_aggregate_storage/immediate_local_aggregate_storage.h
@@ -85,7 +85,7 @@
   // DeleteOutdatedMetrics walks the filesystem from the |base_directory_| down and deletes
   // MetricAggregate files, and project directories that do not exist in the CobaltRegistry.
   //
-  // TODO(fxbug.dev/51390): Customers that are not present in the registry should be deleted
+  // TODO(fxbug.dev/42128576): Customers that are not present in the registry should be deleted
   // too.
   void DeleteOutdatedMetrics();
 
diff --git a/src/local_aggregation/local_aggregate_storage/local_aggregate_storage.cc b/src/local_aggregation/local_aggregate_storage/local_aggregate_storage.cc
index c90fe1d..196f2e5 100644
--- a/src/local_aggregation/local_aggregate_storage/local_aggregate_storage.cc
+++ b/src/local_aggregation/local_aggregate_storage/local_aggregate_storage.cc
@@ -118,7 +118,7 @@
   bool changed = false;
 
   if (metric.deprecated_by_system_profile_size() > 0) {
-    // NOTE(fxbug.dev/87271): This is needed to clean up excess by_system_profiles in the aggregate
+    // NOTE(fxbug.dev/42168374): This is needed to clean up excess by_system_profiles in the aggregate
     // store. Do not delete unless you are *certain* there are no devices in the wild that still
     // need this cleanup
     metric.clear_deprecated_by_system_profile();
diff --git a/src/local_aggregation/testing/test_registry/CustomerA/ProjectA1/metrics.yaml b/src/local_aggregation/testing/test_registry/CustomerA/ProjectA1/metrics.yaml
index df84ac7..d2bae30 100644
--- a/src/local_aggregation/testing/test_registry/CustomerA/ProjectA1/metrics.yaml
+++ b/src/local_aggregation/testing/test_registry/CustomerA/ProjectA1/metrics.yaml
@@ -14,7 +14,7 @@
         privacy_level: NO_ADDED_PRIVACY
         event_vector_buffer_max: 100
         system_profile_field: [OS, SYSTEM_VERSION]
-        # TODO(fxbug.dev/85440): This is an invalid configuration.
+        # TODO(fxbug.dev/42166340): This is an invalid configuration.
         # system_profile_selection should not be set for
         # FLEETWIDE_OCCURRENCE_COUNTS metrics, and requires setting
         # skip_validation = true in BUILD.gn
diff --git a/src/observation_store/file_observation_store_test.cc b/src/observation_store/file_observation_store_test.cc
index de37969..65c5936 100644
--- a/src/observation_store/file_observation_store_test.cc
+++ b/src/observation_store/file_observation_store_test.cc
@@ -372,7 +372,7 @@
 }
 
 #if __has_feature(address_sanitizer) && defined(__Fuchsia__)
-// Skip this test under ASAN in Fuchsia. See: fxbug.dev/85575
+// Skip this test under ASAN in Fuchsia. See: fxbug.dev/42166489
 #else
 TEST_F(FileObservationStoreTest, StressTest) {
   std::random_device rd;
diff --git a/src/public/cobalt_config.h b/src/public/cobalt_config.h
index 9d0b39e..b7c481f 100644
--- a/src/public/cobalt_config.h
+++ b/src/public/cobalt_config.h
@@ -292,7 +292,7 @@
 
   // |enable_replacement_metrics|: DEPRECATED Determines whether or not replacement_metric_id should
   // be honored
-  // TODO(fxbug.dev/111165): Remove this once it is no longer referenced anywhere.
+  // TODO(fxbug.dev/42062466): Remove this once it is no longer referenced anywhere.
   bool enable_replacement_metrics = false;
 
   // |start_worker_threads|: Determines whether or not to start the worker threads.
diff --git a/src/public/diagnostics_interface.h b/src/public/diagnostics_interface.h
index 3ea5dc5..5ac1be8 100644
--- a/src/public/diagnostics_interface.h
+++ b/src/public/diagnostics_interface.h
@@ -60,7 +60,7 @@
   // |event_type|: tracks what the state is (1: Below quota, 2: Above quota, 3: Above quota and log
   //               rejected).
   //
-  // TODO(fxbug.dev/96540): Remove default implementation once this is implemented in Fuchsia.
+  // TODO(fxbug.dev/42178669): Remove default implementation once this is implemented in Fuchsia.
   virtual void LocalAggregationQuotaEvent(const lib::ProjectIdentifier& project, int event_type) {}
 };
 
diff --git a/src/registry/report_definition.proto b/src/registry/report_definition.proto
index 1c9132b..6bcf7c2 100644
--- a/src/registry/report_definition.proto
+++ b/src/registry/report_definition.proto
@@ -522,7 +522,7 @@
     // Numerical statistic aggregation procedures to be used with reports
     // of type UNIQUE_DEVICE_HISTOGRAMS, HOURLY_VALUE_HISTOGRAMS,
     // UNIQUE_DEVICE_NUMERIC_STATS and HOURLY_VALUE_NUMERIC_STATS.
-    // TODO(fxbug.dev/87151): Rename these to remove the '_PROCEDURE' suffix.
+    // TODO(fxbug.dev/42168241): Rename these to remove the '_PROCEDURE' suffix.
     SUM_PROCEDURE = 1;
     MIN_PROCEDURE = 2;
     MAX_PROCEDURE = 3;
diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn
index 347f025..73f7c8a 100644
--- a/third_party/boringssl/BUILD.gn
+++ b/third_party/boringssl/BUILD.gn
@@ -45,10 +45,10 @@
   assert(false, "unsupported OS or CPU: $current_os/$current_cpu")
 }
 
-# TODO(https://fxbug.dev/46139): remove this added source.
+# TODO(https://fxbug.dev/42122741): remove this added source.
 crypto_sources += [ "src/decrepit/xts/xts.c" ]
 
-# TODO(https://fxbug.dev/46139): Required for TPM2.0 TSS Library //third_party/tpm2-tss.
+# TODO(https://fxbug.dev/42122741): Required for TPM2.0 TSS Library //third_party/tpm2-tss.
 crypto_sources += [ "src/decrepit/cfb/cfb.c" ]
 
 ################
@@ -85,12 +85,12 @@
       configs -= [ ":export_symbols" ]
     }
     if (is_fuchsia) {
-      # TODO(https://fxbug.dev/60545): profile instrumentation significantly affects performance.
+      # TODO(https://fxbug.dev/42138737): profile instrumentation significantly affects performance.
       configs += [ "//build/config:no_profile" ]
 
       # boringssl should always be optimized for speed because otherwise performance is
       # significantly worse, impacting pave and boot times on debug builds. See
-      # https://fxbug.dev/55456.
+      # https://fxbug.dev/42133086.
       configs -= [ "//build/config:default_optimize" ]
       configs += [ "//build/config:optimize_speed" ]
 
@@ -294,7 +294,7 @@
   # GNI files; we rename it to avoid colliding with the similarly-named parameter
   # on the fuzzer_package.
   #
-  # TODO(https://fxbug.dev/105707): Remove once `fuzzers` parameter is removed.
+  # TODO(https://fxbug.dev/42056966): Remove once `fuzzers` parameter is removed.
   fuzzer_names = fuzzers
   fuzzers = []
 
diff --git a/tools/lint_todos.py b/tools/lint_todos.py
index 3b6116a..b3304c8 100755
--- a/tools/lint_todos.py
+++ b/tools/lint_todos.py
@@ -18,7 +18,7 @@
 )
 
 VALID_MONORAIL_FORMATS = (
-    'TODO(fxbug.dev/12345): With a colon if a message is present'
+    'TODO(fxbug.dev/42074368): With a colon if a message is present'
 )
 VALID_BUGANIZER_FORMATS = 'TODO(b/12345): With a colon if a message is present'
 SKIP_VALIDATION = [