If gitiles is empty; don't add it to reschedule (#4153)

This should fix flutter/flutter#161384
diff --git a/app_dart/lib/src/service/luci_build_service.dart b/app_dart/lib/src/service/luci_build_service.dart
index f002e17..a70f5ab 100644
--- a/app_dart/lib/src/service/luci_build_service.dart
+++ b/app_dart/lib/src/service/luci_build_service.dart
@@ -500,18 +500,20 @@
       value: rescheduleAttempt.toString(),
     );
 
-    return buildBucketClient.scheduleBuild(
-      bbv2.ScheduleBuildRequest(
-        builder: build.builder,
-        tags: tags,
-        properties: build.input.properties,
-        gitilesCommit: build.input.gitilesCommit,
-        notify: bbv2.NotificationConfig(
-          pubsubTopic: 'projects/flutter-dashboard/topics/build-bucket-presubmit',
-          userData: UserData.encodeUserDataToBytes(userDataMap),
-        ),
+    final request = bbv2.ScheduleBuildRequest(
+      builder: build.builder,
+      tags: tags,
+      properties: build.input.properties,
+      notify: bbv2.NotificationConfig(
+        pubsubTopic: 'projects/flutter-dashboard/topics/build-bucket-presubmit',
+        userData: UserData.encodeUserDataToBytes(userDataMap),
       ),
     );
+    if (build.input.hasGitilesCommit()) {
+      request.gitilesCommit = build.input.gitilesCommit;
+    }
+
+    return buildBucketClient.scheduleBuild(request);
   }
 
   /// Sends presubmit [ScheduleBuildRequest] for a pull request using [checkRunEvent].
diff --git a/app_dart/test/service/luci_build_service_test.dart b/app_dart/test/service/luci_build_service_test.dart
index 4dbe288..c312002 100644
--- a/app_dart/test/service/luci_build_service_test.dart
+++ b/app_dart/test/service/luci_build_service_test.dart
@@ -1279,6 +1279,7 @@
 
       final bbv2.ScheduleBuildRequest scheduleBuildRequest = captured[0];
       expect(scheduleBuildRequest, isNotNull);
+      expect(scheduleBuildRequest.hasGitilesCommit(), isFalse);
       final List<bbv2.StringPair> tags = scheduleBuildRequest.tags;
       final bbv2.StringPair attemptPair = tags.firstWhere((element) => element.key == 'current_attempt');
       expect(attemptPair.value, '2');
@@ -1311,6 +1312,7 @@
 
       final bbv2.ScheduleBuildRequest scheduleBuildRequest = captured[0];
       expect(scheduleBuildRequest, isNotNull);
+      expect(scheduleBuildRequest.hasGitilesCommit(), isTrue);
       final List<bbv2.StringPair> tags = scheduleBuildRequest.tags;
       final bbv2.StringPair attemptPair = tags.firstWhere((element) => element.key == 'current_attempt');
       expect(attemptPair.value, '2');