Add BuildMetadata event to BEP, send it before GotOptionsEvent.

RELNOTES:
None.
PiperOrigin-RevId: 263627780
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java b/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java
index 95cdcb4..1ce5163 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java
@@ -22,6 +22,7 @@
 import com.google.devtools.build.lib.vfs.PathFragment;
 import com.google.devtools.common.options.Converter;
 import com.google.devtools.common.options.Converters;
+import com.google.devtools.common.options.Converters.AssignmentConverter;
 import com.google.devtools.common.options.EnumConverter;
 import com.google.devtools.common.options.Option;
 import com.google.devtools.common.options.OptionDocumentationCategory;
@@ -30,6 +31,7 @@
 import com.google.devtools.common.options.OptionsBase;
 import com.google.devtools.common.options.OptionsParsingException;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 import java.util.logging.Level;
 
@@ -188,6 +190,16 @@
   public String buildRequestId;
 
   @Option(
+      name = "build_metadata",
+      converter = AssignmentConverter.class,
+      defaultValue = "",
+      allowMultiple = true,
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.TERMINAL_OUTPUT},
+      help = "Custom key-value string pairs to supply in a build event.")
+  public List<Map.Entry<String, String>> buildMetadata;
+
+  @Option(
       name = "oom_message",
       defaultValue = "",
       documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,