Start event: show id also for non-build requests

For requests like fetch, we still produce a sequence of build
events, even though nothing is actually built. In the BuildStarting
event of that stream, also report the UUID of the request.

Change-Id: If34ce6a34221320ed4a24408732ba6d372569d04
PiperOrigin-RevId: 164710704
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java
index 3e3192e..044053b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/NoBuildEvent.java
@@ -25,21 +25,27 @@
 
 /** This event raised to indicate that no build will be happening for the given command. */
 public final class NoBuildEvent implements BuildEvent {
+  private final String id;
   private final String command;
   private final Long startTimeMillis;
   private final boolean separateFinishedEvent;
   private final boolean showProgress;
 
   public NoBuildEvent(
-      String command, Long startTimeMillis, boolean separateFinishedEvent, boolean showProgress) {
+      String command,
+      Long startTimeMillis,
+      boolean separateFinishedEvent,
+      boolean showProgress,
+      String id) {
     this.command = command;
     this.startTimeMillis = startTimeMillis;
     this.separateFinishedEvent = separateFinishedEvent;
     this.showProgress = showProgress;
+    this.id = id;
   }
 
   public NoBuildEvent(String command, Long startTimeMillis, boolean separateFinishedEvent) {
-    this(command, startTimeMillis, separateFinishedEvent, false);
+    this(command, startTimeMillis, separateFinishedEvent, false, null);
   }
 
   public NoBuildEvent() {
@@ -71,6 +77,9 @@
     if (startTimeMillis != null) {
       started.setStartTimeMillis(startTimeMillis);
     }
+    if (id != null) {
+      started.setUuid(id);
+    }
     return GenericBuildEvent.protoChaining(this).setStarted(started.build()).build();
   }