reviewer
diff --git a/app_dart/lib/src/model/common/checks_extension.dart b/app_dart/lib/src/model/common/checks_extension.dart
index f8b9fa5..63b2137 100644
--- a/app_dart/lib/src/model/common/checks_extension.dart
+++ b/app_dart/lib/src/model/common/checks_extension.dart
@@ -69,4 +69,14 @@
       _ => .failed,
     };
   }
+
+  /// Converts a [TaskConclusion] to a [TaskStatus].
+  static TaskStatus fromTaskConclusion(TaskConclusion conclusion) {
+    return switch (conclusion) {
+      TaskConclusion.unknown || TaskConclusion.failure => TaskStatus.failed,
+      TaskConclusion.scheduled => TaskStatus.waitingForBackfill,
+      TaskConclusion.success => TaskStatus.succeeded,
+      TaskConclusion.neutral => TaskStatus.neutral,
+    };
+  }
 }
diff --git a/app_dart/lib/src/request_handlers/get_presubmit_guard.dart b/app_dart/lib/src/request_handlers/get_presubmit_guard.dart
index 74a93c1..eb906fb 100644
--- a/app_dart/lib/src/request_handlers/get_presubmit_guard.dart
+++ b/app_dart/lib/src/request_handlers/get_presubmit_guard.dart
@@ -7,11 +7,11 @@
 
 import 'package:cocoon_common/guard_status.dart';
 import 'package:cocoon_common/rpc_model.dart' as rpc_model;
-import 'package:cocoon_common/task_status.dart';
 import 'package:github/github.dart';
 import 'package:meta/meta.dart';
 
 import '../../cocoon_service.dart';
+import '../model/common/checks_extension.dart';
 import '../model/firestore/ci_staging.dart';
 import '../request_handling/public_api_request_handler.dart';
 import '../service/firestore/unified_check_run.dart';
@@ -201,7 +201,7 @@
                 0,
             jobs: {
               for (final MapEntry(:key, :value) in g.checkRuns.entries)
-                key: _taskStatusFromConclusion(value),
+                key: ChecksExtension.fromTaskConclusion(value),
             },
           ),
       ],
@@ -209,18 +209,4 @@
 
     return Response.json(response);
   }
-
-  TaskStatus _taskStatusFromConclusion(TaskConclusion conclusion) {
-    switch (conclusion) {
-      case TaskConclusion.unknown:
-      case TaskConclusion.failure:
-        return TaskStatus.failed;
-      case TaskConclusion.scheduled:
-        return TaskStatus.waitingForBackfill;
-      case TaskConclusion.success:
-        return TaskStatus.succeeded;
-      case TaskConclusion.neutral:
-        return TaskStatus.neutral;
-    }
-  }
 }
diff --git a/app_dart/test/model/common/checks_extension_test.dart b/app_dart/test/model/common/checks_extension_test.dart
index c5065a1..1f812c3 100644
--- a/app_dart/test/model/common/checks_extension_test.dart
+++ b/app_dart/test/model/common/checks_extension_test.dart
@@ -38,6 +38,29 @@
         TaskStatus.neutral,
       );
     });
+
+    test('fromTaskConclusion mapping', () {
+      expect(
+        ChecksExtension.fromTaskConclusion(TaskConclusion.success),
+        TaskStatus.succeeded,
+      );
+      expect(
+        ChecksExtension.fromTaskConclusion(TaskConclusion.neutral),
+        TaskStatus.neutral,
+      );
+      expect(
+        ChecksExtension.fromTaskConclusion(TaskConclusion.failure),
+        TaskStatus.failed,
+      );
+      expect(
+        ChecksExtension.fromTaskConclusion(TaskConclusion.scheduled),
+        TaskStatus.waitingForBackfill,
+      );
+      expect(
+        ChecksExtension.fromTaskConclusion(TaskConclusion.unknown),
+        TaskStatus.failed,
+      );
+    });
   });
 
   group('TaskConclusion', () {