flutter upgrade to mockito 5.3.2 (#2250)

diff --git a/app_dart/lib/src/model/ci_yaml/ci_yaml.dart b/app_dart/lib/src/model/ci_yaml/ci_yaml.dart
index 17bcba9..78b9ea1 100644
--- a/app_dart/lib/src/model/ci_yaml/ci_yaml.dart
+++ b/app_dart/lib/src/model/ci_yaml/ci_yaml.dart
@@ -193,7 +193,7 @@
 
   void _checkExceptions(List<String> exceptions) {
     if (exceptions.isNotEmpty) {
-      final String fullException = exceptions.reduce((String exception, _) => exception + '\n');
+      final String fullException = exceptions.reduce((String exception, _) => '$exception\n');
       throw FormatException(fullException);
     }
   }
@@ -226,7 +226,7 @@
     }
 
     if (exceptions.isNotEmpty) {
-      final String fullException = exceptions.reduce((String exception, _) => exception + '\n');
+      final String fullException = exceptions.reduce((String exception, _) => '$exception\n');
       throw FormatException(fullException);
     }
   }
diff --git a/app_dart/lib/src/request_handlers/flaky_handler_utils.dart b/app_dart/lib/src/request_handlers/flaky_handler_utils.dart
index 4e0b3b0..240e35a 100644
--- a/app_dart/lib/src/request_handlers/flaky_handler_utils.dart
+++ b/app_dart/lib/src/request_handlers/flaky_handler_utils.dart
@@ -157,8 +157,7 @@
     String result =
         '[$bucketString pool] current flaky ratio for the past (up to) 100 commits is ${_formatRate(statistic.flakyRate)}%. Flaky number: ${statistic.flakyNumber}; total number: ${statistic.totalNumber}.\n';
     if (statistic.flakyRate > 0.0) {
-      result = result +
-          '''
+      result += '''
 One recent flaky example for a same commit: ${_issueBuildLink(builder: statistic.name, build: statistic.flakyBuildOfRecentCommit, bucket: bucket)}
 Commit: $_commitPrefix${statistic.recentCommit}
 Flaky builds:
diff --git a/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart b/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart
index cb97892..e17455c 100644
--- a/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart
+++ b/app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart
@@ -70,10 +70,10 @@
       if (target.schedulerPolicy is! BatchPolicy) {
         continue;
       }
-      final FullTask? _backfill = _backfillTask(target, taskColumn);
+      final FullTask? backfillTask = _backfillTask(target, taskColumn);
       final int priority = backfillPriority(taskColumn.map((e) => e.task).toList(), BatchPolicy.kBatchSize);
-      if (_backfill != null) {
-        backfill.add(Tuple<Target, FullTask, int>(target, _backfill, priority));
+      if (backfillTask != null) {
+        backfill.add(Tuple<Target, FullTask, int>(target, backfillTask, priority));
       }
     }
 
diff --git a/app_dart/lib/src/request_handling/pubsub.dart b/app_dart/lib/src/request_handling/pubsub.dart
index 22c20ea..c5d42f3 100644
--- a/app_dart/lib/src/request_handling/pubsub.dart
+++ b/app_dart/lib/src/request_handling/pubsub.dart
@@ -31,8 +31,8 @@
     final PublishRequest request = PublishRequest(messages: <PubsubMessage>[
       PubsubMessage(data: messageBase64),
     ]);
-    final String _topic = 'projects/flutter-dashboard/topics/$topic';
-    final PublishResponse response = await pubsubApi.projects.topics.publish(request, _topic);
+    final String fullTopicName = 'projects/flutter-dashboard/topics/$topic';
+    final PublishResponse response = await pubsubApi.projects.topics.publish(request, fullTopicName);
     log.info('pubsub response messageId=${response.messageIds}');
   }
 }
diff --git a/app_dart/lib/src/request_handling/subscription_handler.dart b/app_dart/lib/src/request_handling/subscription_handler.dart
index a80b3f6..977ccec 100644
--- a/app_dart/lib/src/request_handling/subscription_handler.dart
+++ b/app_dart/lib/src/request_handling/subscription_handler.dart
@@ -59,9 +59,9 @@
     Future<void> Function(HttpStatusException)? onError,
   }) async {
     AuthenticatedContext authContext;
-    final AuthenticationProvider _authProvider = authProvider ?? PubsubAuthenticationProvider(config: config);
+    final AuthenticationProvider auth = authProvider ?? PubsubAuthenticationProvider(config: config);
     try {
-      authContext = await _authProvider.authenticate(request);
+      authContext = await auth.authenticate(request);
     } on Unauthenticated catch (error) {
       final HttpResponse response = request.response;
       response
diff --git a/app_dart/lib/src/service/config.dart b/app_dart/lib/src/service/config.dart
index eae4182..5960e96 100644
--- a/app_dart/lib/src/service/config.dart
+++ b/app_dart/lib/src/service/config.dart
@@ -367,13 +367,13 @@
     );
 
     final String token = await githubOAuthToken;
-    final AuthLink _authLink = AuthLink(
+    final AuthLink authLink = AuthLink(
       getToken: () async => 'Bearer $token',
     );
 
     return GraphQLClient(
       cache: GraphQLCache(),
-      link: _authLink.concat(httpLink),
+      link: authLink.concat(httpLink),
     );
   }
 
diff --git a/app_dart/lib/src/service/github_checks_service.dart b/app_dart/lib/src/service/github_checks_service.dart
index 63e6401..18c83f1 100644
--- a/app_dart/lib/src/service/github_checks_service.dart
+++ b/app_dart/lib/src/service/github_checks_service.dart
@@ -121,7 +121,7 @@
   /// reference from github check run page.
   String getGithubSummary(String? summary) {
     if (summary == null) {
-      return kGithubSummary + 'Empty summaryMarkdown';
+      return '${kGithubSummary}Empty summaryMarkdown';
     }
     // This is an imposed GitHub limit
     const int checkSummaryLimit = 65535;
@@ -129,9 +129,10 @@
     const int checkSummaryBufferLimit = checkSummaryLimit - 10000 - kGithubSummary.length;
     // Return the last [checkSummaryBufferLimit] characters as they are likely the most relevant.
     if (summary.length > checkSummaryBufferLimit) {
-      summary = '[TRUNCATED...] ' + summary.substring(summary.length - checkSummaryBufferLimit);
+      final String truncatedSummary = summary.substring(summary.length - checkSummaryBufferLimit);
+      summary = '[TRUNCATED...] $truncatedSummary';
     }
-    return kGithubSummary + summary;
+    return '$kGithubSummary$summary';
   }
 
   /// Transforms a [push_message.Result] to a [github.CheckRunConclusion].
diff --git a/app_dart/pubspec.lock b/app_dart/pubspec.lock
index efe0e09..07434dd 100644
--- a/app_dart/pubspec.lock
+++ b/app_dart/pubspec.lock
@@ -5,729 +5,833 @@
     dependency: transitive
     description:
       name: _discoveryapis_commons
-      url: "https://pub.dartlang.org"
+      sha256: "50d83f715747fd9f41bcdc87eec93fa300c63dd9ca16bb884bbe7864a2a547bd"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.3"
   _fe_analyzer_shared:
     dependency: transitive
     description:
       name: _fe_analyzer_shared
-      url: "https://pub.dartlang.org"
+      sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
+      url: "https://pub.dev"
     source: hosted
     version: "47.0.0"
   analyzer:
-    dependency: transitive
+    dependency: "direct dev"
     description:
       name: analyzer
-      url: "https://pub.dartlang.org"
+      sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
+      url: "https://pub.dev"
     source: hosted
     version: "4.7.0"
   appengine:
     dependency: "direct main"
     description:
       name: appengine
-      url: "https://pub.dartlang.org"
+      sha256: "3e2a0fbfa16d9312f5a8bcb3f984851ada01b99d1bcea951a90f7ab957fcbb25"
+      url: "https://pub.dev"
     source: hosted
     version: "0.13.2"
   archive:
     dependency: transitive
     description:
       name: archive
-      url: "https://pub.dartlang.org"
+      sha256: "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb"
+      url: "https://pub.dev"
     source: hosted
     version: "3.3.2"
   args:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: args
-      url: "https://pub.dartlang.org"
+      sha256: b003c3098049a51720352d219b0bb5f219b60fbfb68e7a4748139a06a5676515
+      url: "https://pub.dev"
     source: hosted
     version: "2.3.1"
   asn1lib:
     dependency: transitive
     description:
       name: asn1lib
-      url: "https://pub.dartlang.org"
+      sha256: d7f1708143914ebf1d876de719998a6dad75194e85f5e85a2500402a5fc2de5f
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.0"
   async:
     dependency: transitive
     description:
       name: async
-      url: "https://pub.dartlang.org"
+      sha256: "271b8899fc99f9df4f4ed419fa14e2fff392c7b2c162fbb87b222e2e963ddc73"
+      url: "https://pub.dev"
     source: hosted
     version: "2.9.0"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
-      url: "https://pub.dartlang.org"
+      sha256: "5bbf32bc9e518d41ec49718e2931cd4527292c9b0c6d2dffcf7fe6b9a8a8cf72"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   build:
     dependency: transitive
     description:
       name: build
-      url: "https://pub.dartlang.org"
+      sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
+      url: "https://pub.dev"
     source: hosted
     version: "2.3.1"
   build_config:
     dependency: transitive
     description:
       name: build_config
-      url: "https://pub.dartlang.org"
+      sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.1"
   build_daemon:
     dependency: transitive
     description:
       name: build_daemon
-      url: "https://pub.dartlang.org"
+      sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.0"
   build_resolvers:
     dependency: transitive
     description:
       name: build_resolvers
-      url: "https://pub.dartlang.org"
+      sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.10"
   build_runner:
     dependency: "direct dev"
     description:
       name: build_runner
-      url: "https://pub.dartlang.org"
+      sha256: "6f48c61a9dcd2c3a9e62d3dcdab1ba382790e2f31026288cbabe55d6003c9c23"
+      url: "https://pub.dev"
     source: hosted
     version: "2.3.2"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
-      url: "https://pub.dartlang.org"
+      sha256: "597a55d780766b10e02595b57b933a597cfbfa08c1bb0f5edfe826d34af1d818"
+      url: "https://pub.dev"
     source: hosted
     version: "7.2.6"
   built_collection:
     dependency: transitive
     description:
       name: built_collection
-      url: "https://pub.dartlang.org"
+      sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
+      url: "https://pub.dev"
     source: hosted
     version: "5.1.1"
   built_value:
     dependency: transitive
     description:
       name: built_value
-      url: "https://pub.dartlang.org"
+      sha256: d7a9cd57c215bdf8d502772447aa6b52a8ab3f956d25d5fdea6ef1df2d2dad60
+      url: "https://pub.dev"
     source: hosted
     version: "8.4.1"
   checked_yaml:
     dependency: transitive
     description:
       name: checked_yaml
-      url: "https://pub.dartlang.org"
+      sha256: dd007e4fb8270916820a0d66e24f619266b60773cddd082c6439341645af2659
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   clock:
     dependency: transitive
     description:
       name: clock
-      url: "https://pub.dartlang.org"
+      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.1"
   code_builder:
     dependency: transitive
     description:
       name: code_builder
-      url: "https://pub.dartlang.org"
+      sha256: "02ce3596b459c666530f045ad6f96209474e8fee6e4855940a3cee65fb872ec5"
+      url: "https://pub.dev"
     source: hosted
     version: "4.3.0"
   collection:
     dependency: "direct main"
     description:
       name: collection
-      url: "https://pub.dartlang.org"
+      sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
+      url: "https://pub.dev"
     source: hosted
     version: "1.17.0"
   convert:
     dependency: transitive
     description:
       name: convert
-      url: "https://pub.dartlang.org"
+      sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.1"
   corsac_jwt:
     dependency: "direct main"
     description:
       name: corsac_jwt
-      url: "https://pub.dartlang.org"
+      sha256: f86d1a1ad7d4db5727ae5d68dfd4437cbcf62daabe920190fcd5425457f5f377
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.0-nullsafety.1"
   coverage:
     dependency: transitive
     description:
       name: coverage
-      url: "https://pub.dartlang.org"
+      sha256: d2494157c32b303f47dedee955b1479f2979c4ff66934eb7c0def44fd9e0267a
+      url: "https://pub.dev"
     source: hosted
     version: "1.6.1"
   crypto:
     dependency: "direct main"
     description:
       name: crypto
-      url: "https://pub.dartlang.org"
+      sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.2"
   dart_style:
     dependency: transitive
     description:
       name: dart_style
-      url: "https://pub.dartlang.org"
+      sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
+      url: "https://pub.dev"
     source: hosted
     version: "2.2.4"
   dbcrypt:
     dependency: "direct main"
     description:
       name: dbcrypt
-      url: "https://pub.dartlang.org"
+      sha256: b32a786486509ddc31b1fa97932a2fc9a3838bbed5d82e43bd636604c96b031e
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.0"
   fake_async:
     dependency: "direct dev"
     description:
       name: fake_async
-      url: "https://pub.dartlang.org"
+      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+      url: "https://pub.dev"
     source: hosted
     version: "1.3.1"
   file:
     dependency: "direct main"
     description:
       name: file
-      url: "https://pub.dartlang.org"
+      sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+      url: "https://pub.dev"
     source: hosted
     version: "6.1.4"
   fixnum:
     dependency: "direct main"
     description:
       name: fixnum
-      url: "https://pub.dartlang.org"
+      sha256: "04be3e934c52e082558cc9ee21f42f5c1cd7a1262f4c63cd0357c08d5bba81ec"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.1"
   flutter_lints:
     dependency: "direct dev"
     description:
       name: flutter_lints
-      url: "https://pub.dartlang.org"
+      sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
+      url: "https://pub.dev"
     source: hosted
-    version: "1.0.4"
+    version: "2.0.1"
   frontend_server_client:
     dependency: transitive
     description:
       name: frontend_server_client
-      url: "https://pub.dartlang.org"
+      sha256: "82715f8041a85a534a7bf64400b2ee0bb3d594ccf695d97c0bb017259657ff5d"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.0"
   gcloud:
     dependency: "direct main"
     description:
       name: gcloud
-      url: "https://pub.dartlang.org"
+      sha256: a8ba019d4be7d2a4347eeff5baeee7dacb4d6b4f9b27dc747d3b51831ba1a54d
+      url: "https://pub.dev"
     source: hosted
     version: "0.8.6"
   github:
     dependency: "direct main"
     description:
       name: github
-      url: "https://pub.dartlang.org"
+      sha256: "51b66773ac2c4276c4ecc2657a9997a5cb91da33adb20b6107b2ba76b3a829ba"
+      url: "https://pub.dev"
     source: hosted
     version: "9.4.0"
   glob:
     dependency: transitive
     description:
       name: glob
-      url: "https://pub.dartlang.org"
+      sha256: c51b4fdfee4d281f49b8c957f1add91b815473597f76bcf07377987f66a55729
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   googleapis:
     dependency: "direct main"
     description:
       name: googleapis
-      url: "https://pub.dartlang.org"
+      sha256: dfea9984f0785ed445ba78e2aa8c55dadd86d6a60ea9e0ffbadad51edb5e7e36
+      url: "https://pub.dev"
     source: hosted
     version: "9.2.0"
   googleapis_auth:
     dependency: "direct main"
     description:
       name: googleapis_auth
-      url: "https://pub.dartlang.org"
+      sha256: "127b1bbd32170ab8312f503bd57f1d654d8e4039ddfbc63c027d3f7ade0eff74"
+      url: "https://pub.dev"
     source: hosted
     version: "1.3.1"
   gql:
     dependency: "direct main"
     description:
       name: gql
-      url: "https://pub.dartlang.org"
+      sha256: "11fa39353e8a69ec9d3c32bd133054593129c99564be18461c1b3ce212966373"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.13.1"
+    version: "0.14.1-alpha+1661890990239"
   gql_dedupe_link:
     dependency: transitive
     description:
       name: gql_dedupe_link
-      url: "https://pub.dartlang.org"
+      sha256: "024aa836258fdc67a25ae4547c3bafbea10c4948f925c6d6d6fd77c8e8dcbfb1"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.0.2"
+    version: "2.0.3"
   gql_error_link:
     dependency: transitive
     description:
       name: gql_error_link
-      url: "https://pub.dartlang.org"
+      sha256: a80b1f5f858798bc3ede38910e4c262d99755bffccb55d146c364bfeb8fa8350
+      url: "https://pub.dev"
     source: hosted
-    version: "0.2.2"
+    version: "0.2.3"
   gql_exec:
     dependency: transitive
     description:
       name: gql_exec
-      url: "https://pub.dartlang.org"
+      sha256: "983b702593eba382a5c518d30678b86798bf20fbf1b03affb8b10a418439160e"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.4.0"
+    version: "0.4.1"
   gql_http_link:
     dependency: transitive
     description:
       name: gql_http_link
-      url: "https://pub.dartlang.org"
+      sha256: "101232d7fd5a3524974c05d26bb3c247a3d35c5b4a8806a361accf841a8e942e"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.4.2"
+    version: "0.4.4+1"
   gql_link:
     dependency: transitive
     description:
       name: gql_link
-      url: "https://pub.dartlang.org"
+      sha256: "50c36e7462530361859e6a34bb84885b3091a1906846494295c5ea947019d854"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.4.2"
+    version: "0.5.1-alpha+1660256327632"
   gql_transform_link:
     dependency: transitive
     description:
       name: gql_transform_link
-      url: "https://pub.dartlang.org"
+      sha256: b532c777b5d1d7147d4ae5cc27fcd57bfcddb47a09e102c7b4a2e98fcc162737
+      url: "https://pub.dev"
     source: hosted
-    version: "0.2.2"
+    version: "0.2.3-alpha+1660256327655"
   graphql:
     dependency: "direct main"
     description:
       name: graphql
-      url: "https://pub.dartlang.org"
+      sha256: f4a91622de5f77e8df785e48286de57fed2efd8e8898d035409de07e530efc0d
+      url: "https://pub.dev"
     source: hosted
-    version: "5.1.1"
+    version: "5.1.2-beta.5"
   graphs:
     dependency: transitive
     description:
       name: graphs
-      url: "https://pub.dartlang.org"
+      sha256: ae0b3d956ff324c6f8671f08dcb2dbd71c99cdbf2aa3ca63a14190c47aa6679c
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   grpc:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: grpc
-      url: "https://pub.dartlang.org"
+      sha256: "3e8e04c6277059b66d67951143842097e52bbf3f2c6fca2e67d3607b48d5c3ab"
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.2"
   hive:
     dependency: transitive
     description:
       name: hive
-      url: "https://pub.dartlang.org"
+      sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
+      url: "https://pub.dev"
     source: hosted
     version: "2.2.3"
   http:
     dependency: "direct main"
     description:
       name: http
-      url: "https://pub.dartlang.org"
+      sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
+      url: "https://pub.dev"
     source: hosted
     version: "0.13.5"
   http2:
     dependency: transitive
     description:
       name: http2
-      url: "https://pub.dartlang.org"
+      sha256: "58805ebc6513eed3b98ee0a455a8357e61d187bf2e0fdc1e53120770f78de258"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   http_multi_server:
     dependency: transitive
     description:
       name: http_multi_server
-      url: "https://pub.dartlang.org"
+      sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
+      url: "https://pub.dev"
     source: hosted
     version: "3.2.1"
   http_parser:
     dependency: transitive
     description:
       name: http_parser
-      url: "https://pub.dartlang.org"
+      sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+      url: "https://pub.dev"
     source: hosted
     version: "4.0.2"
   io:
     dependency: transitive
     description:
       name: io
-      url: "https://pub.dartlang.org"
+      sha256: "0d4c73c3653ab85bf696d51a9657604c900a370549196a91f33e4c39af760852"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.3"
   js:
     dependency: transitive
     description:
       name: js
-      url: "https://pub.dartlang.org"
+      sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
+      url: "https://pub.dev"
     source: hosted
     version: "0.6.5"
   json_annotation:
     dependency: "direct main"
     description:
       name: json_annotation
-      url: "https://pub.dartlang.org"
+      sha256: "3520fa844009431b5d4491a5a778603520cdc399ab3406332dcc50f93547258c"
+      url: "https://pub.dev"
     source: hosted
     version: "4.7.0"
   json_serializable:
     dependency: "direct dev"
     description:
       name: json_serializable
-      url: "https://pub.dartlang.org"
+      sha256: "87ce738d360e9f97861a06a7ed99bad56c60cdb76adc37b870c2667001c2bfb0"
+      url: "https://pub.dev"
     source: hosted
     version: "6.5.3"
   lints:
     dependency: transitive
     description:
       name: lints
-      url: "https://pub.dartlang.org"
+      sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
+      url: "https://pub.dev"
     source: hosted
-    version: "1.0.1"
+    version: "2.0.1"
   logging:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: logging
-      url: "https://pub.dartlang.org"
+      sha256: c0bbfe94d46aedf9b8b3e695cf3bd48c8e14b35e3b2c639e0aa7755d589ba946
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.0"
   matcher:
     dependency: transitive
     description:
       name: matcher
-      url: "https://pub.dartlang.org"
+      sha256: "80c2989398773fa06e2457e9ff08580f24e9858b28462a722241cb53e5613478"
+      url: "https://pub.dev"
     source: hosted
     version: "0.12.12"
   meta:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: meta
-      url: "https://pub.dartlang.org"
+      sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
+      url: "https://pub.dev"
     source: hosted
     version: "1.8.0"
   mime:
     dependency: "direct main"
     description:
       name: mime
-      url: "https://pub.dartlang.org"
+      sha256: dab22e92b41aa1255ea90ddc4bc2feaf35544fd0728e209638cad041a6e3928a
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.2"
   mockito:
     dependency: "direct dev"
     description:
       name: mockito
-      url: "https://pub.dartlang.org"
+      sha256: "2a8a17b82b1bde04d514e75d90d634a0ac23f6cb4991f6098009dd56836aeafe"
+      url: "https://pub.dev"
     source: hosted
-    version: "5.3.0"
+    version: "5.3.2"
   neat_cache:
     dependency: "direct main"
     description:
       name: neat_cache
-      url: "https://pub.dartlang.org"
+      sha256: "98f528e6787988b85dc1384cfe9ed0b472a7277a1c7ea5a40cbed51e22f71163"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.2"
   node_preamble:
     dependency: transitive
     description:
       name: node_preamble
-      url: "https://pub.dartlang.org"
+      sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   normalize:
     dependency: transitive
     description:
       name: normalize
-      url: "https://pub.dartlang.org"
+      sha256: baf8caf2d8b745af5737cca6c24f7fe3cf3158897fdbcde9a909b9c8d3e2e5af
+      url: "https://pub.dev"
     source: hosted
-    version: "0.6.0+1"
+    version: "0.7.2"
   package_config:
     dependency: transitive
     description:
       name: package_config
-      url: "https://pub.dartlang.org"
+      sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   path:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: path
-      url: "https://pub.dartlang.org"
+      sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
+      url: "https://pub.dev"
     source: hosted
     version: "1.8.2"
   platform:
     dependency: "direct dev"
     description:
       name: platform
-      url: "https://pub.dartlang.org"
+      sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.0"
   pointycastle:
     dependency: transitive
     description:
       name: pointycastle
-      url: "https://pub.dartlang.org"
+      sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
+      url: "https://pub.dev"
     source: hosted
     version: "3.6.2"
   pool:
     dependency: transitive
     description:
       name: pool
-      url: "https://pub.dartlang.org"
+      sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
+      url: "https://pub.dev"
     source: hosted
     version: "1.5.1"
   process:
-    dependency: "direct dev"
+    dependency: "direct main"
     description:
       name: process
-      url: "https://pub.dartlang.org"
+      sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
+      url: "https://pub.dev"
     source: hosted
     version: "4.2.4"
   process_runner:
     dependency: "direct main"
     description:
       name: process_runner
-      url: "https://pub.dartlang.org"
+      sha256: a3511a69d42216522166583f19cce6bf44efe109f3ca52fc7994f64bbdbe01e6
+      url: "https://pub.dev"
     source: hosted
     version: "4.1.2"
   protobuf:
     dependency: "direct main"
     description:
       name: protobuf
-      url: "https://pub.dartlang.org"
+      sha256: "01dd9bd0fa02548bf2ceee13545d4a0ec6046459d847b6b061d8a27237108a08"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   pub_semver:
     dependency: transitive
     description:
       name: pub_semver
-      url: "https://pub.dartlang.org"
+      sha256: b959af0a045c3484c4a8f4997731f5bfe4cac60d732fd8ce35b351f2d6a459fe
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.2"
   pubspec_parse:
     dependency: transitive
     description:
       name: pubspec_parse
-      url: "https://pub.dartlang.org"
+      sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.1"
   retry:
     dependency: "direct main"
     description:
       name: retry
-      url: "https://pub.dartlang.org"
+      sha256: "45dfeebaf095b606fdb9dbfb4c114cc204449bc274783b452658365e03afdbab"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.0"
   rsa_pkcs:
     dependency: transitive
     description:
       name: rsa_pkcs
-      url: "https://pub.dartlang.org"
+      sha256: "17a52b0c010319f0d4c7bcc635eb89e2efeaec44975b3fb45f850b350a2b0513"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   rxdart:
     dependency: transitive
     description:
       name: rxdart
-      url: "https://pub.dartlang.org"
+      sha256: "5d22055fd443806c03ef24a02000637cf51eae49c2a0168d38a43fc166b0209c"
+      url: "https://pub.dev"
     source: hosted
     version: "0.27.5"
   shelf:
     dependency: transitive
     description:
       name: shelf
-      url: "https://pub.dartlang.org"
+      sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
+      url: "https://pub.dev"
     source: hosted
     version: "1.4.0"
   shelf_packages_handler:
     dependency: transitive
     description:
       name: shelf_packages_handler
-      url: "https://pub.dartlang.org"
+      sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.1"
   shelf_static:
     dependency: transitive
     description:
       name: shelf_static
-      url: "https://pub.dartlang.org"
+      sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.1"
   shelf_web_socket:
     dependency: transitive
     description:
       name: shelf_web_socket
-      url: "https://pub.dartlang.org"
+      sha256: "6db16374bc3497d21aa0eebe674d3db9fdf82082aac0f04dc7b44e4af5b08afc"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.2"
   source_gen:
     dependency: transitive
     description:
       name: source_gen
-      url: "https://pub.dartlang.org"
+      sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.6"
   source_helper:
     dependency: transitive
     description:
       name: source_helper
-      url: "https://pub.dartlang.org"
+      sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
+      url: "https://pub.dev"
     source: hosted
     version: "1.3.3"
   source_map_stack_trace:
     dependency: transitive
     description:
       name: source_map_stack_trace
-      url: "https://pub.dartlang.org"
+      sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.1"
   source_maps:
     dependency: transitive
     description:
       name: source_maps
-      url: "https://pub.dartlang.org"
+      sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427"
+      url: "https://pub.dev"
     source: hosted
     version: "0.10.11"
   source_span:
     dependency: transitive
     description:
       name: source_span
-      url: "https://pub.dartlang.org"
+      sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
+      url: "https://pub.dev"
     source: hosted
     version: "1.9.1"
   stack_trace:
     dependency: transitive
     description:
       name: stack_trace
-      url: "https://pub.dartlang.org"
+      sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
+      url: "https://pub.dev"
     source: hosted
     version: "1.11.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
-      url: "https://pub.dartlang.org"
+      sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.1"
   stream_transform:
     dependency: transitive
     description:
       name: stream_transform
-      url: "https://pub.dartlang.org"
+      sha256: f1d172e22a5432c042b5adfa9aff621372e4292231d9d73ad00f486ad01c2395
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
-      url: "https://pub.dartlang.org"
+      sha256: "862015c5db1f3f3c4ea3b94dc2490363a84262994b88902315ed74be1155612f"
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.1"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
-      url: "https://pub.dartlang.org"
+      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.1"
   test:
     dependency: "direct dev"
     description:
       name: test
-      url: "https://pub.dartlang.org"
+      sha256: "9ffb8dbda445ba2922522423e7c7288967de89129205ce2dadf856abfd2b72ae"
+      url: "https://pub.dev"
     source: hosted
     version: "1.21.6"
   test_api:
     dependency: transitive
     description:
       name: test_api
-      url: "https://pub.dartlang.org"
+      sha256: ceeddf59d613e862e77f4b506cfc2945ac9637ce0b4c00f4f4c1ac639f3e9731
+      url: "https://pub.dev"
     source: hosted
     version: "0.4.14"
   test_core:
     dependency: transitive
     description:
       name: test_core
-      url: "https://pub.dartlang.org"
+      sha256: "2b38b8ecfa37f8d375b4aa2a106a86ade536b577411530c2ea68c83abb1f004b"
+      url: "https://pub.dev"
     source: hosted
     version: "0.4.18"
   timing:
     dependency: transitive
     description:
       name: timing
-      url: "https://pub.dartlang.org"
+      sha256: c386d07d7f5efc613479a7c4d9d64b03710b03cfaa7e8ad5f2bfb295a1f0dfad
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.0"
   truncate:
     dependency: "direct main"
     description:
       name: truncate
-      url: "https://pub.dartlang.org"
+      sha256: ac4f0c447d440886e53dc583423d2ce963add32160bf7790d5f72cbda5dc76c2
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.1"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
-      url: "https://pub.dartlang.org"
+      sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
+      url: "https://pub.dev"
     source: hosted
     version: "1.3.1"
   uuid:
     dependency: transitive
     description:
       name: uuid
-      url: "https://pub.dartlang.org"
+      sha256: "2469694ad079893e3b434a627970c33f2fa5adc46dfe03c9617546969a9a8afc"
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.6"
   vm_service:
     dependency: transitive
     description:
       name: vm_service
-      url: "https://pub.dartlang.org"
+      sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7
+      url: "https://pub.dev"
     source: hosted
     version: "9.4.0"
   watcher:
     dependency: transitive
     description:
       name: watcher
-      url: "https://pub.dartlang.org"
+      sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.2"
   web_socket_channel:
     dependency: transitive
     description:
       name: web_socket_channel
-      url: "https://pub.dartlang.org"
+      sha256: "3a969ddcc204a3e34e863d204b29c0752716f78b6f9cc8235083208d268a4ccd"
+      url: "https://pub.dev"
     source: hosted
     version: "2.2.0"
   webkit_inspection_protocol:
     dependency: transitive
     description:
       name: webkit_inspection_protocol
-      url: "https://pub.dartlang.org"
+      sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.0"
   yaml:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: yaml
-      url: "https://pub.dartlang.org"
+      sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.1"
 sdks:
-  dart: ">=2.18.0 <3.0.0"
+  dart: ">=2.19.0-0 <4.0.0"
diff --git a/app_dart/pubspec.yaml b/app_dart/pubspec.yaml
index 487f383..c34126a 100644
--- a/app_dart/pubspec.yaml
+++ b/app_dart/pubspec.yaml
@@ -8,10 +8,11 @@
 publish_to: none
 
 environment:
-  sdk: '>=2.17.0 <3.0.0'
+  sdk: '>=2.19.0-0 <3.0.0'
 
 dependencies:
   appengine: ^0.13.2
+  args: ^2.3.1
   collection: ^1.17.0
   corsac_jwt: ^1.0.0-nullsafety.1
   crypto: ^3.0.2
@@ -22,25 +23,31 @@
   github: ^9.4.0
   googleapis: ^9.2.0
   googleapis_auth: ^1.3.1
-  gql: ^0.13.1
+  gql: ^0.14.0
   graphql: ^5.1.1
+  grpc: ^3.0.2
   http: ^0.13.5
   json_annotation: ^4.7.0
+  logging: ^1.1.0
+  meta: ^1.8.0
   mime: ^1.0.2
   neat_cache: ^2.0.2
+  path: ^1.8.2
+  process: ^4.2.4
   process_runner: ^4.1.2
   protobuf: ^2.1.0
   retry: ^3.1.0
   truncate: ^3.0.1
+  yaml: ^3.1.1
 
 dev_dependencies:
+  analyzer: ^4.0.0
   build_runner: ^2.3.2
   fake_async: ^1.3.1
-  flutter_lints: ^1.0.4
+  flutter_lints: ^2.0.1
   json_serializable: ^6.5.3
-  mockito: '>=5.2.0 <=5.3.0'
+  mockito: ^5.3.0
   platform: ^3.1.0
-  process: ^4.2.4
   test: ^1.21.6
 
 builders:
diff --git a/app_dart/test/request_handlers/github/webhook_subscription_test.dart b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
index 53e3391..9740d49 100644
--- a/app_dart/test/request_handlers/github/webhook_subscription_test.dart
+++ b/app_dart/test/request_handlers/github/webhook_subscription_test.dart
@@ -263,12 +263,12 @@
       );
       bool batchRequestCalled = false;
 
-      Future<BatchResponse> _getBatchResponse() async {
+      Future<BatchResponse> getBatchResponse() async {
         batchRequestCalled = true;
         fail('Marking a draft ready for review should not trigger new builds');
       }
 
-      fakeBuildBucketClient.batchResponse = _getBatchResponse;
+      fakeBuildBucketClient.batchResponse = getBatchResponse;
 
       await tester.post(webhook);
 
@@ -285,7 +285,7 @@
       );
       bool batchRequestCalled = false;
 
-      Future<BatchResponse> _getBatchResponse() async {
+      Future<BatchResponse> getBatchResponse() async {
         batchRequestCalled = true;
         return BatchResponse(
           responses: <Response>[
@@ -307,7 +307,7 @@
         );
       }
 
-      fakeBuildBucketClient.batchResponse = _getBatchResponse;
+      fakeBuildBucketClient.batchResponse = getBatchResponse;
 
       await tester.post(webhook);
 
@@ -2307,7 +2307,7 @@
     test('When synchronized, cancels existing builds and schedules new ones', () async {
       const int issueNumber = 12345;
       bool batchRequestCalled = false;
-      Future<BatchResponse> _getBatchResponse() async {
+      Future<BatchResponse> getBatchResponse() async {
         batchRequestCalled = true;
         return BatchResponse(
           responses: <Response>[
@@ -2329,7 +2329,7 @@
         );
       }
 
-      fakeBuildBucketClient.batchResponse = _getBatchResponse;
+      fakeBuildBucketClient.batchResponse = getBatchResponse;
 
       tester.message = generateGithubWebhookMessage(
         action: 'synchronize',
@@ -2346,7 +2346,7 @@
     group('BuildBucket', () {
       const int issueNumber = 123;
 
-      Future<void> _testActions(String action) async {
+      Future<void> testActions(String action) async {
         when(issuesService.listLabelsByIssue(any, issueNumber)).thenAnswer((_) {
           return Stream<IssueLabel>.fromIterable(<IssueLabel>[
             IssueLabel()..name = 'Random Label',
@@ -2379,27 +2379,27 @@
       }
 
       test('Edited Action works properly', () async {
-        await _testActions('edited');
+        await testActions('edited');
       });
 
       test('Opened Action works properly', () async {
-        await _testActions('opened');
+        await testActions('opened');
       });
 
       test('Ready_for_review Action works properly', () async {
-        await _testActions('ready_for_review');
+        await testActions('ready_for_review');
       });
 
       test('Reopened Action works properly', () async {
-        await _testActions('reopened');
+        await testActions('reopened');
       });
 
       test('Labeled Action works properly', () async {
-        await _testActions('labeled');
+        await testActions('labeled');
       });
 
       test('Synchronize Action works properly', () async {
-        await _testActions('synchronize');
+        await testActions('synchronize');
       });
 
       test('Comments on PR but does not schedule builds for unmergeable PRs', () async {
diff --git a/app_dart/test/request_handling/static_file_handler_test.dart b/app_dart/test/request_handling/static_file_handler_test.dart
index 3519ad9..514a6e2 100644
--- a/app_dart/test/request_handling/static_file_handler_test.dart
+++ b/app_dart/test/request_handling/static_file_handler_test.dart
@@ -32,7 +32,7 @@
       fs.file('build/web/$dartMapFileName').writeAsStringSync('[{}]');
     });
 
-    Future<String> _decodeHandlerBody(Body body) {
+    Future<String> decodeHandlerBody(Body body) {
       return utf8.decoder.bind(body.serialize() as Stream<List<int>>).first;
     }
 
@@ -47,7 +47,7 @@
 
       final Body body = await tester.get(staticFileHandler);
       expect(body, isNotNull);
-      final String response = await _decodeHandlerBody(body);
+      final String response = await decodeHandlerBody(body);
       expect(response, indexFileContent);
     });
 
@@ -56,7 +56,7 @@
 
       final Body body = await tester.get(staticFileHandler);
       expect(body, isNotNull);
-      final String response = await _decodeHandlerBody(body);
+      final String response = await decodeHandlerBody(body);
       expect(response, '[{}]');
     });
 
@@ -66,7 +66,7 @@
 
       final Body body = await tester.get(staticFileHandler);
       expect(body, isNotNull);
-      final String response = await _decodeHandlerBody(body);
+      final String response = await decodeHandlerBody(body);
       expect(response, 'abc');
     });
   });
diff --git a/app_dart/test/service/buildbucket_test.dart b/app_dart/test/service/buildbucket_test.dart
index 504087a..b9eab76 100644
--- a/app_dart/test/service/buildbucket_test.dart
+++ b/app_dart/test/service/buildbucket_test.dart
@@ -43,7 +43,7 @@
       mockAccessTokenProvider = MockAccessTokenService();
     });
 
-    Future<T> _httpTest<R extends JsonBody, T>(
+    Future<T> httpTest<R extends JsonBody, T>(
       R request,
       String response,
       String urlPrefix,
@@ -105,7 +105,7 @@
         },
       );
 
-      final Build build = await _httpTest<ScheduleBuildRequest, Build>(
+      final Build build = await httpTest<ScheduleBuildRequest, Build>(
         request,
         buildJson,
         'builds',
@@ -128,7 +128,7 @@
         summaryMarkdown: 'Because I felt like it.',
       );
 
-      final Build build = await _httpTest<CancelBuildRequest, Build>(
+      final Build build = await httpTest<CancelBuildRequest, Build>(
         request,
         buildJson,
         'builds',
@@ -158,7 +158,7 @@
         ))
       ]);
 
-      final BatchResponse response = await _httpTest<BatchRequest, BatchResponse>(
+      final BatchResponse response = await httpTest<BatchRequest, BatchResponse>(
         request,
         batchJson,
         'builds',
@@ -183,7 +183,7 @@
         ))
       ]);
 
-      final BatchResponse response = await _httpTest<BatchRequest, BatchResponse>(
+      final BatchResponse response = await httpTest<BatchRequest, BatchResponse>(
         request,
         batchJson,
         'builds',
@@ -200,7 +200,7 @@
         id: '1234',
       );
 
-      final Build build = await _httpTest<GetBuildRequest, Build>(
+      final Build build = await httpTest<GetBuildRequest, Build>(
         request,
         buildJson,
         'builds',
@@ -221,7 +221,7 @@
         ),
       );
 
-      final SearchBuildsResponse response = await _httpTest<SearchBuildsRequest, SearchBuildsResponse>(
+      final SearchBuildsResponse response = await httpTest<SearchBuildsRequest, SearchBuildsResponse>(
         request,
         searchJson,
         'builds',
@@ -236,7 +236,7 @@
     test('ListBuilders', () async {
       const ListBuildersRequest request = ListBuildersRequest(project: 'test');
 
-      final ListBuildersResponse listBuildersResponse = await _httpTest<ListBuildersRequest, ListBuildersResponse>(
+      final ListBuildersResponse listBuildersResponse = await httpTest<ListBuildersRequest, ListBuildersResponse>(
         request,
         builderJson,
         'builders',
diff --git a/app_dart/test/service/datastore_test.dart b/app_dart/test/service/datastore_test.dart
index 4ea8166..2fa08aa 100644
--- a/app_dart/test/service/datastore_test.dart
+++ b/app_dart/test/service/datastore_test.dart
@@ -172,7 +172,7 @@
 
     test('LookupByValue', () async {
       config.db.values[commit.key] = commit;
-      final Commit? expected = await datastoreService.lookupByValue(commit.key);
+      final Commit expected = await datastoreService.lookupByValue(commit.key);
       expect(expected, equals(commit));
     });
 
diff --git a/app_dart/test/src/utilities/entity_generators.dart b/app_dart/test/src/utilities/entity_generators.dart
index 197b210..aa465b1 100644
--- a/app_dart/test/src/utilities/entity_generators.dart
+++ b/app_dart/test/src/utilities/entity_generators.dart
@@ -31,7 +31,7 @@
       branch: branch,
       key: generateKey<String>(
         Commit,
-        'flutter/$repo/$branch/' + (sha ?? '$i'),
+        'flutter/$repo/$branch/${sha ?? '$i'}',
       ),
     );
 
diff --git a/app_dart/test/src/utilities/mocks.dart b/app_dart/test/src/utilities/mocks.dart
index c0daa4c..87c0686 100644
--- a/app_dart/test/src/utilities/mocks.dart
+++ b/app_dart/test/src/utilities/mocks.dart
@@ -55,18 +55,6 @@
 }) async =>
     FakeAuthClient(baseClient ?? MockClient((_) => throw const InternalServerError('Test did not set up HttpClient')));
 
-const List<MockSpec<dynamic>> _mocks = <MockSpec<dynamic>>[
-  MockSpec<Cache<Uint8List>>(),
-  MockSpec<GitHub>(
-    fallbackGenerators: <Symbol, Function>{
-      #postJSON: postJsonShim,
-    },
-  ),
-  // MockSpec<GerritService>(fallbackGenerators: <Symbol, Function>{
-  //   #authClientProvider: authClientProviderShim,
-  // }),
-];
-
 @GenerateMocks(
   <Type>[
     AccessClientProvider,
@@ -92,7 +80,14 @@
     TabledataResource,
     UsersService,
   ],
-  customMocks: _mocks,
+  customMocks: [
+    MockSpec<Cache<Uint8List>>(),
+    MockSpec<GitHub>(
+      fallbackGenerators: <Symbol, Function>{
+        #postJSON: postJsonShim,
+      },
+    ),
+  ],
 )
 void main() {}
 
diff --git a/app_dart/test/src/utilities/mocks.mocks.dart b/app_dart/test/src/utilities/mocks.mocks.dart
new file mode 100644
index 0000000..f524363
--- /dev/null
+++ b/app_dart/test/src/utilities/mocks.mocks.dart
@@ -0,0 +1,7429 @@
+// Mocks generated by Mockito 5.3.2 from annotations
+// in cocoon_service/test/src/utilities/mocks.dart.
+// Do not manually edit this file.
+
+// ignore_for_file: no_leading_underscores_for_library_prefixes
+import 'dart:async' as _i17;
+import 'dart:convert' as _i16;
+import 'dart:io' as _i15;
+import 'dart:typed_data' as _i27;
+
+import 'package:cocoon_service/src/foundation/github_checks_util.dart' as _i11;
+import 'package:cocoon_service/src/foundation/utils.dart' as _i35;
+import 'package:cocoon_service/src/model/appengine/commit.dart' as _i34;
+import 'package:cocoon_service/src/model/appengine/task.dart' as _i36;
+import 'package:cocoon_service/src/model/ci_yaml/target.dart' as _i32;
+import 'package:cocoon_service/src/model/github/checks.dart' as _i33;
+import 'package:cocoon_service/src/model/luci/buildbucket.dart' as _i9;
+import 'package:cocoon_service/src/model/luci/push_message.dart' as _i30;
+import 'package:cocoon_service/src/request_handling/pubsub.dart' as _i19;
+import 'package:cocoon_service/src/service/access_client_provider.dart' as _i5;
+import 'package:cocoon_service/src/service/access_token_provider.dart' as _i21;
+import 'package:cocoon_service/src/service/bigquery.dart' as _i22;
+import 'package:cocoon_service/src/service/branch_service.dart' as _i23;
+import 'package:cocoon_service/src/service/buildbucket.dart' as _i18;
+import 'package:cocoon_service/src/service/config.dart' as _i3;
+import 'package:cocoon_service/src/service/datastore.dart' as _i37;
+import 'package:cocoon_service/src/service/gerrit_service.dart' as _i7;
+import 'package:cocoon_service/src/service/github_checks_service.dart' as _i28;
+import 'package:cocoon_service/src/service/github_service.dart' as _i25;
+import 'package:cocoon_service/src/service/luci_build_service.dart' as _i31;
+import 'package:cocoon_service/src/service/scheduler.dart' as _i29;
+import 'package:github/github.dart' as _i10;
+import 'package:github/hooks.dart' as _i24;
+import 'package:googleapis/bigquery/v2.dart' as _i6;
+import 'package:googleapis_auth/auth_io.dart' as _i4;
+import 'package:graphql/src/cache/cache.dart' as _i13;
+import 'package:graphql/src/core/core.dart' as _i12;
+import 'package:graphql/src/graphql_client.dart' as _i14;
+import 'package:http/http.dart' as _i2;
+import 'package:mockito/mockito.dart' as _i1;
+import 'package:neat_cache/neat_cache.dart' as _i20;
+import 'package:process/src/interface/process_manager.dart' as _i38;
+import 'package:retry/retry.dart' as _i8;
+
+import '../../service/cache_service_test.dart' as _i26;
+import 'mocks.dart' as _i39;
+
+// ignore_for_file: type=lint
+// ignore_for_file: avoid_redundant_argument_values
+// ignore_for_file: avoid_setters_without_getters
+// ignore_for_file: comment_references
+// ignore_for_file: implementation_imports
+// ignore_for_file: invalid_use_of_visible_for_testing_member
+// ignore_for_file: prefer_const_constructors
+// ignore_for_file: unnecessary_parenthesis
+// ignore_for_file: camel_case_types
+// ignore_for_file: subtype_of_sealed_class
+
+class _FakeClient_0 extends _i1.SmartFake implements _i2.Client {
+  _FakeClient_0(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeConfig_1 extends _i1.SmartFake implements _i3.Config {
+  _FakeConfig_1(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeAccessToken_2 extends _i1.SmartFake implements _i4.AccessToken {
+  _FakeAccessToken_2(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeAccessClientProvider_3 extends _i1.SmartFake implements _i5.AccessClientProvider {
+  _FakeAccessClientProvider_3(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeTabledataResource_4 extends _i1.SmartFake implements _i6.TabledataResource {
+  _FakeTabledataResource_4(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeJobsResource_5 extends _i1.SmartFake implements _i6.JobsResource {
+  _FakeJobsResource_5(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGerritService_6 extends _i1.SmartFake implements _i7.GerritService {
+  _FakeGerritService_6(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRetryOptions_7 extends _i1.SmartFake implements _i8.RetryOptions {
+  _FakeRetryOptions_7(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeBuild_8 extends _i1.SmartFake implements _i9.Build {
+  _FakeBuild_8(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeSearchBuildsResponse_9 extends _i1.SmartFake implements _i9.SearchBuildsResponse {
+  _FakeSearchBuildsResponse_9(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeBatchResponse_10 extends _i1.SmartFake implements _i9.BatchResponse {
+  _FakeBatchResponse_10(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeListBuildersResponse_11 extends _i1.SmartFake implements _i9.ListBuildersResponse {
+  _FakeListBuildersResponse_11(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitHub_12 extends _i1.SmartFake implements _i10.GitHub {
+  _FakeGitHub_12(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeIssue_13 extends _i1.SmartFake implements _i10.Issue {
+  _FakeIssue_13(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeIssueComment_14 extends _i1.SmartFake implements _i10.IssueComment {
+  _FakeIssueComment_14(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeIssueLabel_15 extends _i1.SmartFake implements _i10.IssueLabel {
+  _FakeIssueLabel_15(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeMilestone_16 extends _i1.SmartFake implements _i10.Milestone {
+  _FakeMilestone_16(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGithubChecksUtil_17 extends _i1.SmartFake implements _i11.GithubChecksUtil {
+  _FakeGithubChecksUtil_17(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCheckRunConclusion_18 extends _i1.SmartFake implements _i10.CheckRunConclusion {
+  _FakeCheckRunConclusion_18(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCheckRunStatus_19 extends _i1.SmartFake implements _i10.CheckRunStatus {
+  _FakeCheckRunStatus_19(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCheckSuite_20 extends _i1.SmartFake implements _i10.CheckSuite {
+  _FakeCheckSuite_20(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCheckRun_21 extends _i1.SmartFake implements _i10.CheckRun {
+  _FakeCheckRun_21(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePullRequest_22 extends _i1.SmartFake implements _i10.PullRequest {
+  _FakePullRequest_22(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitReference_23 extends _i1.SmartFake implements _i10.GitReference {
+  _FakeGitReference_23(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRateLimit_24 extends _i1.SmartFake implements _i10.RateLimit {
+  _FakeRateLimit_24(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitBlob_25 extends _i1.SmartFake implements _i10.GitBlob {
+  _FakeGitBlob_25(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitCommit_26 extends _i1.SmartFake implements _i10.GitCommit {
+  _FakeGitCommit_26(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitTag_27 extends _i1.SmartFake implements _i10.GitTag {
+  _FakeGitTag_27(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitTree_28 extends _i1.SmartFake implements _i10.GitTree {
+  _FakeGitTree_28(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeDefaultPolicies_29 extends _i1.SmartFake implements _i12.DefaultPolicies {
+  _FakeDefaultPolicies_29(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeLink_30 extends _i1.SmartFake implements _i12.Link {
+  _FakeLink_30(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGraphQLCache_31 extends _i1.SmartFake implements _i13.GraphQLCache {
+  _FakeGraphQLCache_31(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeQueryManager_32 extends _i1.SmartFake implements _i12.QueryManager {
+  _FakeQueryManager_32(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGraphQLClient_33 extends _i1.SmartFake implements _i14.GraphQLClient {
+  _FakeGraphQLClient_33(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeObservableQuery_34<TParsed> extends _i1.SmartFake implements _i12.ObservableQuery<TParsed> {
+  _FakeObservableQuery_34(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeQueryResult_35<TParsed extends Object?> extends _i1.SmartFake implements _i12.QueryResult<TParsed> {
+  _FakeQueryResult_35(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeDuration_36 extends _i1.SmartFake implements Duration {
+  _FakeDuration_36(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeHttpClientRequest_37 extends _i1.SmartFake implements _i15.HttpClientRequest {
+  _FakeHttpClientRequest_37(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeUri_38 extends _i1.SmartFake implements Uri {
+  _FakeUri_38(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeHttpHeaders_39 extends _i1.SmartFake implements _i15.HttpHeaders {
+  _FakeHttpHeaders_39(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeHttpClientResponse_40 extends _i1.SmartFake implements _i15.HttpClientResponse {
+  _FakeHttpClientResponse_40(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeEncoding_41 extends _i1.SmartFake implements _i16.Encoding {
+  _FakeEncoding_41(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeSocket_42 extends _i1.SmartFake implements _i15.Socket {
+  _FakeSocket_42(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeStreamSubscription_43<T> extends _i1.SmartFake implements _i17.StreamSubscription<T> {
+  _FakeStreamSubscription_43(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeJobCancelResponse_44 extends _i1.SmartFake implements _i6.JobCancelResponse {
+  _FakeJobCancelResponse_44(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeJob_45 extends _i1.SmartFake implements _i6.Job {
+  _FakeJob_45(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGetQueryResultsResponse_46 extends _i1.SmartFake implements _i6.GetQueryResultsResponse {
+  _FakeGetQueryResultsResponse_46(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeJobList_47 extends _i1.SmartFake implements _i6.JobList {
+  _FakeJobList_47(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeQueryResponse_48 extends _i1.SmartFake implements _i6.QueryResponse {
+  _FakeQueryResponse_48(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeBuildBucketClient_49 extends _i1.SmartFake implements _i18.BuildBucketClient {
+  _FakeBuildBucketClient_49(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePubSub_50 extends _i1.SmartFake implements _i19.PubSub {
+  _FakePubSub_50(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeProcess_51 extends _i1.SmartFake implements _i15.Process {
+  _FakeProcess_51(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeProcessResult_52 extends _i1.SmartFake implements _i15.ProcessResult {
+  _FakeProcessResult_52(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePullRequestMerge_53 extends _i1.SmartFake implements _i10.PullRequestMerge {
+  _FakePullRequestMerge_53(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePullRequestComment_54 extends _i1.SmartFake implements _i10.PullRequestComment {
+  _FakePullRequestComment_54(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePullRequestReview_55 extends _i1.SmartFake implements _i10.PullRequestReview {
+  _FakePullRequestReview_55(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRepository_56 extends _i1.SmartFake implements _i10.Repository {
+  _FakeRepository_56(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeLicenseDetails_57 extends _i1.SmartFake implements _i10.LicenseDetails {
+  _FakeLicenseDetails_57(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeLanguageBreakdown_58 extends _i1.SmartFake implements _i10.LanguageBreakdown {
+  _FakeLanguageBreakdown_58(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeBranch_59 extends _i1.SmartFake implements _i10.Branch {
+  _FakeBranch_59(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCommitComment_60 extends _i1.SmartFake implements _i10.CommitComment {
+  _FakeCommitComment_60(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRepositoryCommit_61 extends _i1.SmartFake implements _i10.RepositoryCommit {
+  _FakeRepositoryCommit_61(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitHubComparison_62 extends _i1.SmartFake implements _i10.GitHubComparison {
+  _FakeGitHubComparison_62(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitHubFile_63 extends _i1.SmartFake implements _i10.GitHubFile {
+  _FakeGitHubFile_63(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRepositoryContents_64 extends _i1.SmartFake implements _i10.RepositoryContents {
+  _FakeRepositoryContents_64(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeContentCreation_65 extends _i1.SmartFake implements _i10.ContentCreation {
+  _FakeContentCreation_65(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeHook_66 extends _i1.SmartFake implements _i10.Hook {
+  _FakeHook_66(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePublicKey_67 extends _i1.SmartFake implements _i10.PublicKey {
+  _FakePublicKey_67(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRepositoryPages_68 extends _i1.SmartFake implements _i10.RepositoryPages {
+  _FakeRepositoryPages_68(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePageBuild_69 extends _i1.SmartFake implements _i10.PageBuild {
+  _FakePageBuild_69(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRelease_70 extends _i1.SmartFake implements _i10.Release {
+  _FakeRelease_70(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeReleaseAsset_71 extends _i1.SmartFake implements _i10.ReleaseAsset {
+  _FakeReleaseAsset_71(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeContributorParticipation_72 extends _i1.SmartFake implements _i10.ContributorParticipation {
+  _FakeContributorParticipation_72(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRepositoryStatus_73 extends _i1.SmartFake implements _i10.RepositoryStatus {
+  _FakeRepositoryStatus_73(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCombinedRepositoryStatus_74 extends _i1.SmartFake implements _i10.CombinedRepositoryStatus {
+  _FakeCombinedRepositoryStatus_74(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeReleaseNotes_75 extends _i1.SmartFake implements _i10.ReleaseNotes {
+  _FakeReleaseNotes_75(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeTableDataInsertAllResponse_76 extends _i1.SmartFake implements _i6.TableDataInsertAllResponse {
+  _FakeTableDataInsertAllResponse_76(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeTableDataList_77 extends _i1.SmartFake implements _i6.TableDataList {
+  _FakeTableDataList_77(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeUser_78 extends _i1.SmartFake implements _i10.User {
+  _FakeUser_78(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCurrentUser_79 extends _i1.SmartFake implements _i10.CurrentUser {
+  _FakeCurrentUser_79(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeEntry_80<T> extends _i1.SmartFake implements _i20.Entry<T> {
+  _FakeEntry_80(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeCache_81<T> extends _i1.SmartFake implements _i20.Cache<T> {
+  _FakeCache_81(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeActivityService_82 extends _i1.SmartFake implements _i10.ActivityService {
+  _FakeActivityService_82(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeAuthorizationsService_83 extends _i1.SmartFake implements _i10.AuthorizationsService {
+  _FakeAuthorizationsService_83(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGistsService_84 extends _i1.SmartFake implements _i10.GistsService {
+  _FakeGistsService_84(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeGitService_85 extends _i1.SmartFake implements _i10.GitService {
+  _FakeGitService_85(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeIssuesService_86 extends _i1.SmartFake implements _i10.IssuesService {
+  _FakeIssuesService_86(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeMiscService_87 extends _i1.SmartFake implements _i10.MiscService {
+  _FakeMiscService_87(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeOrganizationsService_88 extends _i1.SmartFake implements _i10.OrganizationsService {
+  _FakeOrganizationsService_88(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakePullRequestsService_89 extends _i1.SmartFake implements _i10.PullRequestsService {
+  _FakePullRequestsService_89(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeRepositoriesService_90 extends _i1.SmartFake implements _i10.RepositoriesService {
+  _FakeRepositoriesService_90(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeSearchService_91 extends _i1.SmartFake implements _i10.SearchService {
+  _FakeSearchService_91(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeUrlShortenerService_92 extends _i1.SmartFake implements _i10.UrlShortenerService {
+  _FakeUrlShortenerService_92(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeUsersService_93 extends _i1.SmartFake implements _i10.UsersService {
+  _FakeUsersService_93(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeChecksService_94 extends _i1.SmartFake implements _i10.ChecksService {
+  _FakeChecksService_94(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+class _FakeResponse_95 extends _i1.SmartFake implements _i2.Response {
+  _FakeResponse_95(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
+}
+
+/// A class which mocks [AccessClientProvider].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockAccessClientProvider extends _i1.Mock implements _i5.AccessClientProvider {
+  MockAccessClientProvider() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i17.Future<_i2.Client> createAccessClient(
+          {List<String>? scopes = const [r'https://www.googleapis.com/auth/cloud-platform']}) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createAccessClient,
+          [],
+          {#scopes: scopes},
+        ),
+        returnValue: _i17.Future<_i2.Client>.value(_FakeClient_0(
+          this,
+          Invocation.method(
+            #createAccessClient,
+            [],
+            {#scopes: scopes},
+          ),
+        )),
+      ) as _i17.Future<_i2.Client>);
+}
+
+/// A class which mocks [AccessTokenService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockAccessTokenService extends _i1.Mock implements _i21.AccessTokenService {
+  MockAccessTokenService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i3.Config get config => (super.noSuchMethod(
+        Invocation.getter(#config),
+        returnValue: _FakeConfig_1(
+          this,
+          Invocation.getter(#config),
+        ),
+      ) as _i3.Config);
+  @override
+  _i17.Future<_i4.AccessToken> createAccessToken() => (super.noSuchMethod(
+        Invocation.method(
+          #createAccessToken,
+          [],
+        ),
+        returnValue: _i17.Future<_i4.AccessToken>.value(_FakeAccessToken_2(
+          this,
+          Invocation.method(
+            #createAccessToken,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i4.AccessToken>);
+}
+
+/// A class which mocks [BigqueryService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockBigqueryService extends _i1.Mock implements _i22.BigqueryService {
+  MockBigqueryService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i5.AccessClientProvider get accessClientProvider => (super.noSuchMethod(
+        Invocation.getter(#accessClientProvider),
+        returnValue: _FakeAccessClientProvider_3(
+          this,
+          Invocation.getter(#accessClientProvider),
+        ),
+      ) as _i5.AccessClientProvider);
+  @override
+  _i17.Future<_i6.TabledataResource> defaultTabledata() => (super.noSuchMethod(
+        Invocation.method(
+          #defaultTabledata,
+          [],
+        ),
+        returnValue: _i17.Future<_i6.TabledataResource>.value(_FakeTabledataResource_4(
+          this,
+          Invocation.method(
+            #defaultTabledata,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i6.TabledataResource>);
+  @override
+  _i17.Future<_i6.JobsResource> defaultJobs() => (super.noSuchMethod(
+        Invocation.method(
+          #defaultJobs,
+          [],
+        ),
+        returnValue: _i17.Future<_i6.JobsResource>.value(_FakeJobsResource_5(
+          this,
+          Invocation.method(
+            #defaultJobs,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i6.JobsResource>);
+  @override
+  _i17.Future<List<_i22.BuilderStatistic>> listBuilderStatistic(
+    String? projectId, {
+    int? limit = 100,
+    String? bucket = r'prod',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listBuilderStatistic,
+          [projectId],
+          {
+            #limit: limit,
+            #bucket: bucket,
+          },
+        ),
+        returnValue: _i17.Future<List<_i22.BuilderStatistic>>.value(<_i22.BuilderStatistic>[]),
+      ) as _i17.Future<List<_i22.BuilderStatistic>>);
+  @override
+  _i17.Future<List<_i22.BuilderRecord>> listRecentBuildRecordsForBuilder(
+    String? projectId, {
+    String? builder,
+    int? limit,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listRecentBuildRecordsForBuilder,
+          [projectId],
+          {
+            #builder: builder,
+            #limit: limit,
+          },
+        ),
+        returnValue: _i17.Future<List<_i22.BuilderRecord>>.value(<_i22.BuilderRecord>[]),
+      ) as _i17.Future<List<_i22.BuilderRecord>>);
+}
+
+/// A class which mocks [BranchService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockBranchService extends _i1.Mock implements _i23.BranchService {
+  MockBranchService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i3.Config get config => (super.noSuchMethod(
+        Invocation.getter(#config),
+        returnValue: _FakeConfig_1(
+          this,
+          Invocation.getter(#config),
+        ),
+      ) as _i3.Config);
+  @override
+  _i7.GerritService get gerritService => (super.noSuchMethod(
+        Invocation.getter(#gerritService),
+        returnValue: _FakeGerritService_6(
+          this,
+          Invocation.getter(#gerritService),
+        ),
+      ) as _i7.GerritService);
+  @override
+  _i8.RetryOptions get retryOptions => (super.noSuchMethod(
+        Invocation.getter(#retryOptions),
+        returnValue: _FakeRetryOptions_7(
+          this,
+          Invocation.getter(#retryOptions),
+        ),
+      ) as _i8.RetryOptions);
+  @override
+  _i17.Future<void> handleCreateRequest(_i24.CreateEvent? createEvent) => (super.noSuchMethod(
+        Invocation.method(
+          #handleCreateRequest,
+          [createEvent],
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<void> branchFlutterRecipes(String? branch) => (super.noSuchMethod(
+        Invocation.method(
+          #branchFlutterRecipes,
+          [branch],
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<List<Map<String, String>>> getReleaseBranches({
+    required _i25.GithubService? githubService,
+    required _i10.RepositorySlug? slug,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseBranches,
+          [],
+          {
+            #githubService: githubService,
+            #slug: slug,
+          },
+        ),
+        returnValue: _i17.Future<List<Map<String, String>>>.value(<Map<String, String>>[]),
+      ) as _i17.Future<List<Map<String, String>>>);
+}
+
+/// A class which mocks [BuildBucketClient].
+///
+/// See the documentation for Mockito's code generation for more information.
+// ignore: must_be_immutable
+class MockBuildBucketClient extends _i1.Mock implements _i18.BuildBucketClient {
+  MockBuildBucketClient() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  String get buildBucketBuildUri => (super.noSuchMethod(
+        Invocation.getter(#buildBucketBuildUri),
+        returnValue: '',
+      ) as String);
+  @override
+  String get buildBucketBuilderUri => (super.noSuchMethod(
+        Invocation.getter(#buildBucketBuilderUri),
+        returnValue: '',
+      ) as String);
+  @override
+  _i2.Client get httpClient => (super.noSuchMethod(
+        Invocation.getter(#httpClient),
+        returnValue: _FakeClient_0(
+          this,
+          Invocation.getter(#httpClient),
+        ),
+      ) as _i2.Client);
+  @override
+  _i17.Future<_i9.Build> scheduleBuild(
+    _i9.ScheduleBuildRequest? request, {
+    String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #scheduleBuild,
+          [request],
+          {#buildBucketUri: buildBucketUri},
+        ),
+        returnValue: _i17.Future<_i9.Build>.value(_FakeBuild_8(
+          this,
+          Invocation.method(
+            #scheduleBuild,
+            [request],
+            {#buildBucketUri: buildBucketUri},
+          ),
+        )),
+      ) as _i17.Future<_i9.Build>);
+  @override
+  _i17.Future<_i9.SearchBuildsResponse> searchBuilds(
+    _i9.SearchBuildsRequest? request, {
+    String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #searchBuilds,
+          [request],
+          {#buildBucketUri: buildBucketUri},
+        ),
+        returnValue: _i17.Future<_i9.SearchBuildsResponse>.value(_FakeSearchBuildsResponse_9(
+          this,
+          Invocation.method(
+            #searchBuilds,
+            [request],
+            {#buildBucketUri: buildBucketUri},
+          ),
+        )),
+      ) as _i17.Future<_i9.SearchBuildsResponse>);
+  @override
+  _i17.Future<_i9.BatchResponse> batch(
+    _i9.BatchRequest? request, {
+    String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #batch,
+          [request],
+          {#buildBucketUri: buildBucketUri},
+        ),
+        returnValue: _i17.Future<_i9.BatchResponse>.value(_FakeBatchResponse_10(
+          this,
+          Invocation.method(
+            #batch,
+            [request],
+            {#buildBucketUri: buildBucketUri},
+          ),
+        )),
+      ) as _i17.Future<_i9.BatchResponse>);
+  @override
+  _i17.Future<_i9.Build> cancelBuild(
+    _i9.CancelBuildRequest? request, {
+    String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #cancelBuild,
+          [request],
+          {#buildBucketUri: buildBucketUri},
+        ),
+        returnValue: _i17.Future<_i9.Build>.value(_FakeBuild_8(
+          this,
+          Invocation.method(
+            #cancelBuild,
+            [request],
+            {#buildBucketUri: buildBucketUri},
+          ),
+        )),
+      ) as _i17.Future<_i9.Build>);
+  @override
+  _i17.Future<_i9.Build> getBuild(
+    _i9.GetBuildRequest? request, {
+    String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getBuild,
+          [request],
+          {#buildBucketUri: buildBucketUri},
+        ),
+        returnValue: _i17.Future<_i9.Build>.value(_FakeBuild_8(
+          this,
+          Invocation.method(
+            #getBuild,
+            [request],
+            {#buildBucketUri: buildBucketUri},
+          ),
+        )),
+      ) as _i17.Future<_i9.Build>);
+  @override
+  _i17.Future<_i9.ListBuildersResponse> listBuilders(
+    _i9.ListBuildersRequest? request, {
+    String? buildBucketUri = r'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builders',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listBuilders,
+          [request],
+          {#buildBucketUri: buildBucketUri},
+        ),
+        returnValue: _i17.Future<_i9.ListBuildersResponse>.value(_FakeListBuildersResponse_11(
+          this,
+          Invocation.method(
+            #listBuilders,
+            [request],
+            {#buildBucketUri: buildBucketUri},
+          ),
+        )),
+      ) as _i17.Future<_i9.ListBuildersResponse>);
+  @override
+  void close() => super.noSuchMethod(
+        Invocation.method(
+          #close,
+          [],
+        ),
+        returnValueForMissingStub: null,
+      );
+}
+
+/// A class which mocks [FakeEntry].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockFakeEntry extends _i1.Mock implements _i26.FakeEntry {
+  MockFakeEntry() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i27.Uint8List get value => (super.noSuchMethod(
+        Invocation.getter(#value),
+        returnValue: _i27.Uint8List(0),
+      ) as _i27.Uint8List);
+  @override
+  set value(_i27.Uint8List? _value) => super.noSuchMethod(
+        Invocation.setter(
+          #value,
+          _value,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i17.Future<_i27.Uint8List> get([
+    _i17.Future<_i27.Uint8List?> Function()? create,
+    Duration? ttl,
+  ]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #get,
+          [
+            create,
+            ttl,
+          ],
+        ),
+        returnValue: _i17.Future<_i27.Uint8List>.value(_i27.Uint8List(0)),
+      ) as _i17.Future<_i27.Uint8List>);
+  @override
+  _i17.Future<void> purge({int? retries = 0}) => (super.noSuchMethod(
+        Invocation.method(
+          #purge,
+          [],
+          {#retries: retries},
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<_i27.Uint8List?> set(
+    _i27.Uint8List? value, [
+    Duration? ttl,
+  ]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #set,
+          [
+            value,
+            ttl,
+          ],
+        ),
+        returnValue: _i17.Future<_i27.Uint8List?>.value(),
+      ) as _i17.Future<_i27.Uint8List?>);
+}
+
+/// A class which mocks [IssuesService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockIssuesService extends _i1.Mock implements _i10.IssuesService {
+  MockIssuesService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i10.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_12(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i10.GitHub);
+  @override
+  _i17.Stream<_i10.Issue> listAll({
+    int? milestoneNumber,
+    String? state,
+    String? direction,
+    String? sort,
+    DateTime? since,
+    int? perPage,
+    List<String>? labels,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listAll,
+          [],
+          {
+            #milestoneNumber: milestoneNumber,
+            #state: state,
+            #direction: direction,
+            #sort: sort,
+            #since: since,
+            #perPage: perPage,
+            #labels: labels,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Issue>.empty(),
+      ) as _i17.Stream<_i10.Issue>);
+  @override
+  _i17.Stream<_i10.Issue> listByUser({
+    int? milestoneNumber,
+    String? state,
+    String? direction,
+    String? sort,
+    DateTime? since,
+    int? perPage,
+    List<String>? labels,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listByUser,
+          [],
+          {
+            #milestoneNumber: milestoneNumber,
+            #state: state,
+            #direction: direction,
+            #sort: sort,
+            #since: since,
+            #perPage: perPage,
+            #labels: labels,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Issue>.empty(),
+      ) as _i17.Stream<_i10.Issue>);
+  @override
+  _i17.Stream<_i10.Issue> listByOrg(
+    String? org, {
+    int? milestoneNumber,
+    String? state,
+    String? direction,
+    String? sort,
+    DateTime? since,
+    int? perPage,
+    List<String>? labels,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listByOrg,
+          [org],
+          {
+            #milestoneNumber: milestoneNumber,
+            #state: state,
+            #direction: direction,
+            #sort: sort,
+            #since: since,
+            #perPage: perPage,
+            #labels: labels,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Issue>.empty(),
+      ) as _i17.Stream<_i10.Issue>);
+  @override
+  _i17.Stream<_i10.Issue> listByRepo(
+    _i10.RepositorySlug? slug, {
+    int? milestoneNumber,
+    String? state,
+    String? direction,
+    String? sort,
+    DateTime? since,
+    int? perPage,
+    List<String>? labels,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listByRepo,
+          [slug],
+          {
+            #milestoneNumber: milestoneNumber,
+            #state: state,
+            #direction: direction,
+            #sort: sort,
+            #since: since,
+            #perPage: perPage,
+            #labels: labels,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Issue>.empty(),
+      ) as _i17.Stream<_i10.Issue>);
+  @override
+  _i17.Stream<_i10.Reaction> listReactions(
+    _i10.RepositorySlug? slug,
+    int? issueNumber, {
+    _i10.ReactionType? content,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listReactions,
+          [
+            slug,
+            issueNumber,
+          ],
+          {#content: content},
+        ),
+        returnValue: _i17.Stream<_i10.Reaction>.empty(),
+      ) as _i17.Stream<_i10.Reaction>);
+  @override
+  _i17.Future<_i10.Issue> edit(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+    _i10.IssueRequest? issue,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #edit,
+          [
+            slug,
+            issueNumber,
+            issue,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Issue>.value(_FakeIssue_13(
+          this,
+          Invocation.method(
+            #edit,
+            [
+              slug,
+              issueNumber,
+              issue,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Issue>);
+  @override
+  _i17.Future<_i10.Issue> get(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #get,
+          [
+            slug,
+            issueNumber,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Issue>.value(_FakeIssue_13(
+          this,
+          Invocation.method(
+            #get,
+            [
+              slug,
+              issueNumber,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Issue>);
+  @override
+  _i17.Future<_i10.Issue> create(
+    _i10.RepositorySlug? slug,
+    _i10.IssueRequest? issue,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #create,
+          [
+            slug,
+            issue,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Issue>.value(_FakeIssue_13(
+          this,
+          Invocation.method(
+            #create,
+            [
+              slug,
+              issue,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Issue>);
+  @override
+  _i17.Stream<_i10.User> listAssignees(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listAssignees,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.User>.empty(),
+      ) as _i17.Stream<_i10.User>);
+  @override
+  _i17.Future<bool> isAssignee(
+    _i10.RepositorySlug? slug,
+    String? repoName,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #isAssignee,
+          [
+            slug,
+            repoName,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.IssueComment> listCommentsByIssue(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listCommentsByIssue,
+          [
+            slug,
+            issueNumber,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.IssueComment>.empty(),
+      ) as _i17.Stream<_i10.IssueComment>);
+  @override
+  _i17.Stream<_i10.IssueComment> listCommentsByRepo(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommentsByRepo,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.IssueComment>.empty(),
+      ) as _i17.Stream<_i10.IssueComment>);
+  @override
+  _i17.Future<_i10.IssueComment> getComment(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getComment,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.IssueComment>.value(_FakeIssueComment_14(
+          this,
+          Invocation.method(
+            #getComment,
+            [
+              slug,
+              id,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.IssueComment>);
+  @override
+  _i17.Future<_i10.IssueComment> createComment(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+    String? body,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createComment,
+          [
+            slug,
+            issueNumber,
+            body,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.IssueComment>.value(_FakeIssueComment_14(
+          this,
+          Invocation.method(
+            #createComment,
+            [
+              slug,
+              issueNumber,
+              body,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.IssueComment>);
+  @override
+  _i17.Future<_i10.IssueComment> updateComment(
+    _i10.RepositorySlug? slug,
+    int? id,
+    String? body,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #updateComment,
+          [
+            slug,
+            id,
+            body,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.IssueComment>.value(_FakeIssueComment_14(
+          this,
+          Invocation.method(
+            #updateComment,
+            [
+              slug,
+              id,
+              body,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.IssueComment>);
+  @override
+  _i17.Future<bool> deleteComment(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteComment,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.IssueLabel> listLabels(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listLabels,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.IssueLabel>.empty(),
+      ) as _i17.Stream<_i10.IssueLabel>);
+  @override
+  _i17.Future<_i10.IssueLabel> getLabel(
+    _i10.RepositorySlug? slug,
+    String? name,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getLabel,
+          [
+            slug,
+            name,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.IssueLabel>.value(_FakeIssueLabel_15(
+          this,
+          Invocation.method(
+            #getLabel,
+            [
+              slug,
+              name,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.IssueLabel>);
+  @override
+  _i17.Future<_i10.IssueLabel> createLabel(
+    _i10.RepositorySlug? slug,
+    String? name,
+    String? color,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createLabel,
+          [
+            slug,
+            name,
+            color,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.IssueLabel>.value(_FakeIssueLabel_15(
+          this,
+          Invocation.method(
+            #createLabel,
+            [
+              slug,
+              name,
+              color,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.IssueLabel>);
+  @override
+  _i17.Future<_i10.IssueLabel> editLabel(
+    _i10.RepositorySlug? slug,
+    String? name,
+    String? color,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editLabel,
+          [
+            slug,
+            name,
+            color,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.IssueLabel>.value(_FakeIssueLabel_15(
+          this,
+          Invocation.method(
+            #editLabel,
+            [
+              slug,
+              name,
+              color,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.IssueLabel>);
+  @override
+  _i17.Future<bool> deleteLabel(
+    _i10.RepositorySlug? slug,
+    String? name,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteLabel,
+          [
+            slug,
+            name,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.IssueLabel> listLabelsByIssue(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listLabelsByIssue,
+          [
+            slug,
+            issueNumber,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.IssueLabel>.empty(),
+      ) as _i17.Stream<_i10.IssueLabel>);
+  @override
+  _i17.Future<List<_i10.IssueLabel>> addLabelsToIssue(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+    List<String>? labels,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #addLabelsToIssue,
+          [
+            slug,
+            issueNumber,
+            labels,
+          ],
+        ),
+        returnValue: _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]),
+      ) as _i17.Future<List<_i10.IssueLabel>>);
+  @override
+  _i17.Future<List<_i10.IssueLabel>> replaceLabelsForIssue(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+    List<String>? labels,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #replaceLabelsForIssue,
+          [
+            slug,
+            issueNumber,
+            labels,
+          ],
+        ),
+        returnValue: _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]),
+      ) as _i17.Future<List<_i10.IssueLabel>>);
+  @override
+  _i17.Future<bool> removeLabelForIssue(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+    String? label,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #removeLabelForIssue,
+          [
+            slug,
+            issueNumber,
+            label,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> removeAllLabelsForIssue(
+    _i10.RepositorySlug? slug,
+    int? issueNumber,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #removeAllLabelsForIssue,
+          [
+            slug,
+            issueNumber,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.Milestone> listMilestones(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listMilestones,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Milestone>.empty(),
+      ) as _i17.Stream<_i10.Milestone>);
+  @override
+  _i17.Future<_i10.Milestone> createMilestone(
+    _i10.RepositorySlug? slug,
+    _i10.CreateMilestone? request,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createMilestone,
+          [
+            slug,
+            request,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Milestone>.value(_FakeMilestone_16(
+          this,
+          Invocation.method(
+            #createMilestone,
+            [
+              slug,
+              request,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Milestone>);
+  @override
+  _i17.Future<bool> deleteMilestone(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteMilestone,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+}
+
+/// A class which mocks [GithubChecksService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockGithubChecksService extends _i1.Mock implements _i28.GithubChecksService {
+  MockGithubChecksService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i3.Config get config => (super.noSuchMethod(
+        Invocation.getter(#config),
+        returnValue: _FakeConfig_1(
+          this,
+          Invocation.getter(#config),
+        ),
+      ) as _i3.Config);
+  @override
+  set config(_i3.Config? _config) => super.noSuchMethod(
+        Invocation.setter(
+          #config,
+          _config,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i11.GithubChecksUtil get githubChecksUtil => (super.noSuchMethod(
+        Invocation.getter(#githubChecksUtil),
+        returnValue: _FakeGithubChecksUtil_17(
+          this,
+          Invocation.getter(#githubChecksUtil),
+        ),
+      ) as _i11.GithubChecksUtil);
+  @override
+  set githubChecksUtil(_i11.GithubChecksUtil? _githubChecksUtil) => super.noSuchMethod(
+        Invocation.setter(
+          #githubChecksUtil,
+          _githubChecksUtil,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i17.Future<void> handleCheckSuite(
+    _i10.PullRequest? pullRequest,
+    _i24.CheckSuiteEvent? checkSuiteEvent,
+    _i29.Scheduler? scheduler,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #handleCheckSuite,
+          [
+            pullRequest,
+            checkSuiteEvent,
+            scheduler,
+          ],
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<bool> updateCheckStatus(
+    _i30.BuildPushMessage? buildPushMessage,
+    _i31.LuciBuildService? luciBuildService,
+    _i10.RepositorySlug? slug,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #updateCheckStatus,
+          [
+            buildPushMessage,
+            luciBuildService,
+            slug,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  String getGithubSummary(String? summary) => (super.noSuchMethod(
+        Invocation.method(
+          #getGithubSummary,
+          [summary],
+        ),
+        returnValue: '',
+      ) as String);
+  @override
+  _i10.CheckRunConclusion conclusionForResult(_i30.Result? result) => (super.noSuchMethod(
+        Invocation.method(
+          #conclusionForResult,
+          [result],
+        ),
+        returnValue: _FakeCheckRunConclusion_18(
+          this,
+          Invocation.method(
+            #conclusionForResult,
+            [result],
+          ),
+        ),
+      ) as _i10.CheckRunConclusion);
+  @override
+  _i10.CheckRunStatus statusForResult(_i30.Status? status) => (super.noSuchMethod(
+        Invocation.method(
+          #statusForResult,
+          [status],
+        ),
+        returnValue: _FakeCheckRunStatus_19(
+          this,
+          Invocation.method(
+            #statusForResult,
+            [status],
+          ),
+        ),
+      ) as _i10.CheckRunStatus);
+}
+
+/// A class which mocks [GithubChecksUtil].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockGithubChecksUtil extends _i1.Mock implements _i11.GithubChecksUtil {
+  MockGithubChecksUtil() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i17.Future<Map<String, _i10.CheckRun>> allCheckRuns(
+    _i10.GitHub? gitHubClient,
+    _i24.CheckSuiteEvent? checkSuiteEvent,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #allCheckRuns,
+          [
+            gitHubClient,
+            checkSuiteEvent,
+          ],
+        ),
+        returnValue: _i17.Future<Map<String, _i10.CheckRun>>.value(<String, _i10.CheckRun>{}),
+      ) as _i17.Future<Map<String, _i10.CheckRun>>);
+  @override
+  _i17.Future<_i10.CheckSuite> getCheckSuite(
+    _i10.GitHub? gitHubClient,
+    _i10.RepositorySlug? slug,
+    int? checkSuiteId,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCheckSuite,
+          [
+            gitHubClient,
+            slug,
+            checkSuiteId,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.CheckSuite>.value(_FakeCheckSuite_20(
+          this,
+          Invocation.method(
+            #getCheckSuite,
+            [
+              gitHubClient,
+              slug,
+              checkSuiteId,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.CheckSuite>);
+  @override
+  _i17.Future<void> updateCheckRun(
+    _i3.Config? cocoonConfig,
+    _i10.RepositorySlug? slug,
+    _i10.CheckRun? checkRun, {
+    _i10.CheckRunStatus? status = _i10.CheckRunStatus.queued,
+    _i10.CheckRunConclusion? conclusion,
+    String? detailsUrl,
+    _i10.CheckRunOutput? output,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #updateCheckRun,
+          [
+            cocoonConfig,
+            slug,
+            checkRun,
+          ],
+          {
+            #status: status,
+            #conclusion: conclusion,
+            #detailsUrl: detailsUrl,
+            #output: output,
+          },
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<_i10.CheckRun> getCheckRun(
+    _i3.Config? cocoonConfig,
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCheckRun,
+          [
+            cocoonConfig,
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.CheckRun>.value(_FakeCheckRun_21(
+          this,
+          Invocation.method(
+            #getCheckRun,
+            [
+              cocoonConfig,
+              slug,
+              id,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.CheckRun>);
+  @override
+  _i17.Future<_i10.CheckRun> createCheckRun(
+    _i3.Config? cocoonConfig,
+    _i10.RepositorySlug? slug,
+    String? sha,
+    String? name, {
+    _i10.CheckRunOutput? output,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createCheckRun,
+          [
+            cocoonConfig,
+            slug,
+            sha,
+            name,
+          ],
+          {#output: output},
+        ),
+        returnValue: _i17.Future<_i10.CheckRun>.value(_FakeCheckRun_21(
+          this,
+          Invocation.method(
+            #createCheckRun,
+            [
+              cocoonConfig,
+              slug,
+              sha,
+              name,
+            ],
+            {#output: output},
+          ),
+        )),
+      ) as _i17.Future<_i10.CheckRun>);
+}
+
+/// A class which mocks [GithubService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockGithubService extends _i1.Mock implements _i25.GithubService {
+  MockGithubService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i10.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_12(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i10.GitHub);
+  @override
+  _i17.Future<List<_i10.RepositoryCommit>> listCommits(
+    _i10.RepositorySlug? slug,
+    String? branch,
+    int? lastCommitTimestampMills,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listCommits,
+          [
+            slug,
+            branch,
+            lastCommitTimestampMills,
+          ],
+        ),
+        returnValue: _i17.Future<List<_i10.RepositoryCommit>>.value(<_i10.RepositoryCommit>[]),
+      ) as _i17.Future<List<_i10.RepositoryCommit>>);
+  @override
+  _i17.Future<List<_i10.PullRequest>> listPullRequests(
+    _i10.RepositorySlug? slug,
+    String? branch,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listPullRequests,
+          [
+            slug,
+            branch,
+          ],
+        ),
+        returnValue: _i17.Future<List<_i10.PullRequest>>.value(<_i10.PullRequest>[]),
+      ) as _i17.Future<List<_i10.PullRequest>>);
+  @override
+  _i17.Future<_i10.PullRequest> createPullRequest(
+    _i10.RepositorySlug? slug, {
+    required String? title,
+    String? body,
+    String? commitMessage,
+    required _i10.GitReference? baseRef,
+    List<_i10.CreateGitTreeEntry>? entries,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createPullRequest,
+          [slug],
+          {
+            #title: title,
+            #body: body,
+            #commitMessage: commitMessage,
+            #baseRef: baseRef,
+            #entries: entries,
+          },
+        ),
+        returnValue: _i17.Future<_i10.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #createPullRequest,
+            [slug],
+            {
+              #title: title,
+              #body: body,
+              #commitMessage: commitMessage,
+              #baseRef: baseRef,
+              #entries: entries,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequest>);
+  @override
+  _i17.Future<void> assignReviewer(
+    _i10.RepositorySlug? slug, {
+    int? pullRequestNumber,
+    String? reviewer,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #assignReviewer,
+          [slug],
+          {
+            #pullRequestNumber: pullRequestNumber,
+            #reviewer: reviewer,
+          },
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<List<_i10.Issue>> listIssues(
+    _i10.RepositorySlug? slug, {
+    List<String>? labels,
+    String? state = r'open',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listIssues,
+          [slug],
+          {
+            #labels: labels,
+            #state: state,
+          },
+        ),
+        returnValue: _i17.Future<List<_i10.Issue>>.value(<_i10.Issue>[]),
+      ) as _i17.Future<List<_i10.Issue>>);
+  @override
+  _i17.Future<_i10.Issue>? getIssue(
+    _i10.RepositorySlug? slug, {
+    required int? issueNumber,
+  }) =>
+      (super.noSuchMethod(Invocation.method(
+        #getIssue,
+        [slug],
+        {#issueNumber: issueNumber},
+      )) as _i17.Future<_i10.Issue>?);
+  @override
+  _i17.Future<void> assignIssue(
+    _i10.RepositorySlug? slug, {
+    required int? issueNumber,
+    required String? assignee,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #assignIssue,
+          [slug],
+          {
+            #issueNumber: issueNumber,
+            #assignee: assignee,
+          },
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<_i10.Issue> createIssue(
+    _i10.RepositorySlug? slug, {
+    String? title,
+    String? body,
+    List<String>? labels,
+    String? assignee,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createIssue,
+          [slug],
+          {
+            #title: title,
+            #body: body,
+            #labels: labels,
+            #assignee: assignee,
+          },
+        ),
+        returnValue: _i17.Future<_i10.Issue>.value(_FakeIssue_13(
+          this,
+          Invocation.method(
+            #createIssue,
+            [slug],
+            {
+              #title: title,
+              #body: body,
+              #labels: labels,
+              #assignee: assignee,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.Issue>);
+  @override
+  _i17.Future<_i10.IssueComment?> createComment(
+    _i10.RepositorySlug? slug, {
+    required int? issueNumber,
+    required String? body,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createComment,
+          [slug],
+          {
+            #issueNumber: issueNumber,
+            #body: body,
+          },
+        ),
+        returnValue: _i17.Future<_i10.IssueComment?>.value(),
+      ) as _i17.Future<_i10.IssueComment?>);
+  @override
+  _i17.Future<List<_i10.IssueLabel>> replaceLabelsForIssue(
+    _i10.RepositorySlug? slug, {
+    required int? issueNumber,
+    required List<String>? labels,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #replaceLabelsForIssue,
+          [slug],
+          {
+            #issueNumber: issueNumber,
+            #labels: labels,
+          },
+        ),
+        returnValue: _i17.Future<List<_i10.IssueLabel>>.value(<_i10.IssueLabel>[]),
+      ) as _i17.Future<List<_i10.IssueLabel>>);
+  @override
+  _i17.Future<List<String>> listFiles(_i10.PullRequest? pullRequest) => (super.noSuchMethod(
+        Invocation.method(
+          #listFiles,
+          [pullRequest],
+        ),
+        returnValue: _i17.Future<List<String>>.value(<String>[]),
+      ) as _i17.Future<List<String>>);
+  @override
+  _i17.Future<String> getFileContent(
+    _i10.RepositorySlug? slug,
+    String? path, {
+    String? ref,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getFileContent,
+          [
+            slug,
+            path,
+          ],
+          {#ref: ref},
+        ),
+        returnValue: _i17.Future<String>.value(''),
+      ) as _i17.Future<String>);
+  @override
+  _i17.Future<_i10.GitReference> getReference(
+    _i10.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReference,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitReference>.value(_FakeGitReference_23(
+          this,
+          Invocation.method(
+            #getReference,
+            [
+              slug,
+              ref,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitReference>);
+  @override
+  _i17.Future<_i10.RateLimit> getRateLimit() => (super.noSuchMethod(
+        Invocation.method(
+          #getRateLimit,
+          [],
+        ),
+        returnValue: _i17.Future<_i10.RateLimit>.value(_FakeRateLimit_24(
+          this,
+          Invocation.method(
+            #getRateLimit,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i10.RateLimit>);
+}
+
+/// A class which mocks [GitService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockGitService extends _i1.Mock implements _i10.GitService {
+  MockGitService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i10.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_12(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i10.GitHub);
+  @override
+  _i17.Future<_i10.GitBlob> getBlob(
+    _i10.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getBlob,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitBlob>.value(_FakeGitBlob_25(
+          this,
+          Invocation.method(
+            #getBlob,
+            [
+              slug,
+              sha,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitBlob>);
+  @override
+  _i17.Future<_i10.GitBlob> createBlob(
+    _i10.RepositorySlug? slug,
+    _i10.CreateGitBlob? blob,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createBlob,
+          [
+            slug,
+            blob,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitBlob>.value(_FakeGitBlob_25(
+          this,
+          Invocation.method(
+            #createBlob,
+            [
+              slug,
+              blob,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitBlob>);
+  @override
+  _i17.Future<_i10.GitCommit> getCommit(
+    _i10.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommit,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitCommit>.value(_FakeGitCommit_26(
+          this,
+          Invocation.method(
+            #getCommit,
+            [
+              slug,
+              sha,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitCommit>);
+  @override
+  _i17.Future<_i10.GitCommit> createCommit(
+    _i10.RepositorySlug? slug,
+    _i10.CreateGitCommit? commit,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createCommit,
+          [
+            slug,
+            commit,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitCommit>.value(_FakeGitCommit_26(
+          this,
+          Invocation.method(
+            #createCommit,
+            [
+              slug,
+              commit,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitCommit>);
+  @override
+  _i17.Future<_i10.GitReference> getReference(
+    _i10.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReference,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitReference>.value(_FakeGitReference_23(
+          this,
+          Invocation.method(
+            #getReference,
+            [
+              slug,
+              ref,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitReference>);
+  @override
+  _i17.Stream<_i10.GitReference> listReferences(
+    _i10.RepositorySlug? slug, {
+    String? type,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listReferences,
+          [slug],
+          {#type: type},
+        ),
+        returnValue: _i17.Stream<_i10.GitReference>.empty(),
+      ) as _i17.Stream<_i10.GitReference>);
+  @override
+  _i17.Future<_i10.GitReference> createReference(
+    _i10.RepositorySlug? slug,
+    String? ref,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createReference,
+          [
+            slug,
+            ref,
+            sha,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitReference>.value(_FakeGitReference_23(
+          this,
+          Invocation.method(
+            #createReference,
+            [
+              slug,
+              ref,
+              sha,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitReference>);
+  @override
+  _i17.Future<_i10.GitReference> editReference(
+    _i10.RepositorySlug? slug,
+    String? ref,
+    String? sha, {
+    bool? force = false,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editReference,
+          [
+            slug,
+            ref,
+            sha,
+          ],
+          {#force: force},
+        ),
+        returnValue: _i17.Future<_i10.GitReference>.value(_FakeGitReference_23(
+          this,
+          Invocation.method(
+            #editReference,
+            [
+              slug,
+              ref,
+              sha,
+            ],
+            {#force: force},
+          ),
+        )),
+      ) as _i17.Future<_i10.GitReference>);
+  @override
+  _i17.Future<bool> deleteReference(
+    _i10.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteReference,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<_i10.GitTag> getTag(
+    _i10.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getTag,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitTag>.value(_FakeGitTag_27(
+          this,
+          Invocation.method(
+            #getTag,
+            [
+              slug,
+              sha,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitTag>);
+  @override
+  _i17.Future<_i10.GitTag> createTag(
+    _i10.RepositorySlug? slug,
+    _i10.CreateGitTag? tag,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createTag,
+          [
+            slug,
+            tag,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitTag>.value(_FakeGitTag_27(
+          this,
+          Invocation.method(
+            #createTag,
+            [
+              slug,
+              tag,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitTag>);
+  @override
+  _i17.Future<_i10.GitTree> getTree(
+    _i10.RepositorySlug? slug,
+    String? sha, {
+    bool? recursive = false,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getTree,
+          [
+            slug,
+            sha,
+          ],
+          {#recursive: recursive},
+        ),
+        returnValue: _i17.Future<_i10.GitTree>.value(_FakeGitTree_28(
+          this,
+          Invocation.method(
+            #getTree,
+            [
+              slug,
+              sha,
+            ],
+            {#recursive: recursive},
+          ),
+        )),
+      ) as _i17.Future<_i10.GitTree>);
+  @override
+  _i17.Future<_i10.GitTree> createTree(
+    _i10.RepositorySlug? slug,
+    _i10.CreateGitTree? tree,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createTree,
+          [
+            slug,
+            tree,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitTree>.value(_FakeGitTree_28(
+          this,
+          Invocation.method(
+            #createTree,
+            [
+              slug,
+              tree,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitTree>);
+}
+
+/// A class which mocks [GraphQLClient].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockGraphQLClient extends _i1.Mock implements _i14.GraphQLClient {
+  MockGraphQLClient() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i12.DefaultPolicies get defaultPolicies => (super.noSuchMethod(
+        Invocation.getter(#defaultPolicies),
+        returnValue: _FakeDefaultPolicies_29(
+          this,
+          Invocation.getter(#defaultPolicies),
+        ),
+      ) as _i12.DefaultPolicies);
+  @override
+  set defaultPolicies(_i12.DefaultPolicies? _defaultPolicies) => super.noSuchMethod(
+        Invocation.setter(
+          #defaultPolicies,
+          _defaultPolicies,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i12.Link get link => (super.noSuchMethod(
+        Invocation.getter(#link),
+        returnValue: _FakeLink_30(
+          this,
+          Invocation.getter(#link),
+        ),
+      ) as _i12.Link);
+  @override
+  _i13.GraphQLCache get cache => (super.noSuchMethod(
+        Invocation.getter(#cache),
+        returnValue: _FakeGraphQLCache_31(
+          this,
+          Invocation.getter(#cache),
+        ),
+      ) as _i13.GraphQLCache);
+  @override
+  _i12.QueryManager get queryManager => (super.noSuchMethod(
+        Invocation.getter(#queryManager),
+        returnValue: _FakeQueryManager_32(
+          this,
+          Invocation.getter(#queryManager),
+        ),
+      ) as _i12.QueryManager);
+  @override
+  set queryManager(_i12.QueryManager? _queryManager) => super.noSuchMethod(
+        Invocation.setter(
+          #queryManager,
+          _queryManager,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i14.GraphQLClient copyWith({
+    _i12.Link? link,
+    _i13.GraphQLCache? cache,
+    _i12.DefaultPolicies? defaultPolicies,
+    bool? alwaysRebroadcast,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #copyWith,
+          [],
+          {
+            #link: link,
+            #cache: cache,
+            #defaultPolicies: defaultPolicies,
+            #alwaysRebroadcast: alwaysRebroadcast,
+          },
+        ),
+        returnValue: _FakeGraphQLClient_33(
+          this,
+          Invocation.method(
+            #copyWith,
+            [],
+            {
+              #link: link,
+              #cache: cache,
+              #defaultPolicies: defaultPolicies,
+              #alwaysRebroadcast: alwaysRebroadcast,
+            },
+          ),
+        ),
+      ) as _i14.GraphQLClient);
+  @override
+  _i12.ObservableQuery<TParsed> watchQuery<TParsed>(_i12.WatchQueryOptions<TParsed>? options) => (super.noSuchMethod(
+        Invocation.method(
+          #watchQuery,
+          [options],
+        ),
+        returnValue: _FakeObservableQuery_34<TParsed>(
+          this,
+          Invocation.method(
+            #watchQuery,
+            [options],
+          ),
+        ),
+      ) as _i12.ObservableQuery<TParsed>);
+  @override
+  _i12.ObservableQuery<TParsed> watchMutation<TParsed>(_i12.WatchQueryOptions<TParsed>? options) => (super.noSuchMethod(
+        Invocation.method(
+          #watchMutation,
+          [options],
+        ),
+        returnValue: _FakeObservableQuery_34<TParsed>(
+          this,
+          Invocation.method(
+            #watchMutation,
+            [options],
+          ),
+        ),
+      ) as _i12.ObservableQuery<TParsed>);
+  @override
+  _i17.Future<_i12.QueryResult<TParsed>> query<TParsed>(_i12.QueryOptions<TParsed>? options) => (super.noSuchMethod(
+        Invocation.method(
+          #query,
+          [options],
+        ),
+        returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value(_FakeQueryResult_35<TParsed>(
+          this,
+          Invocation.method(
+            #query,
+            [options],
+          ),
+        )),
+      ) as _i17.Future<_i12.QueryResult<TParsed>>);
+  @override
+  _i17.Future<_i12.QueryResult<TParsed>> mutate<TParsed>(_i12.MutationOptions<TParsed>? options) => (super.noSuchMethod(
+        Invocation.method(
+          #mutate,
+          [options],
+        ),
+        returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value(_FakeQueryResult_35<TParsed>(
+          this,
+          Invocation.method(
+            #mutate,
+            [options],
+          ),
+        )),
+      ) as _i17.Future<_i12.QueryResult<TParsed>>);
+  @override
+  _i17.Stream<_i12.QueryResult<TParsed>> subscribe<TParsed>(_i12.SubscriptionOptions<TParsed>? options) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #subscribe,
+          [options],
+        ),
+        returnValue: _i17.Stream<_i12.QueryResult<TParsed>>.empty(),
+      ) as _i17.Stream<_i12.QueryResult<TParsed>>);
+  @override
+  _i17.Future<_i12.QueryResult<TParsed>> fetchMore<TParsed>(
+    _i12.FetchMoreOptions? fetchMoreOptions, {
+    required _i12.QueryOptions<TParsed>? originalOptions,
+    required _i12.QueryResult<TParsed>? previousResult,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #fetchMore,
+          [fetchMoreOptions],
+          {
+            #originalOptions: originalOptions,
+            #previousResult: previousResult,
+          },
+        ),
+        returnValue: _i17.Future<_i12.QueryResult<TParsed>>.value(_FakeQueryResult_35<TParsed>(
+          this,
+          Invocation.method(
+            #fetchMore,
+            [fetchMoreOptions],
+            {
+              #originalOptions: originalOptions,
+              #previousResult: previousResult,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i12.QueryResult<TParsed>>);
+  @override
+  Map<String, dynamic>? readQuery(
+    _i12.Request? request, {
+    bool? optimistic = true,
+  }) =>
+      (super.noSuchMethod(Invocation.method(
+        #readQuery,
+        [request],
+        {#optimistic: optimistic},
+      )) as Map<String, dynamic>?);
+  @override
+  Map<String, dynamic>? readFragment(
+    _i13.FragmentRequest? fragmentRequest, {
+    bool? optimistic = true,
+  }) =>
+      (super.noSuchMethod(Invocation.method(
+        #readFragment,
+        [fragmentRequest],
+        {#optimistic: optimistic},
+      )) as Map<String, dynamic>?);
+  @override
+  void writeQuery(
+    _i12.Request? request, {
+    required Map<String, dynamic>? data,
+    bool? broadcast = true,
+  }) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #writeQuery,
+          [request],
+          {
+            #data: data,
+            #broadcast: broadcast,
+          },
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void writeFragment(
+    _i13.FragmentRequest? fragmentRequest, {
+    bool? broadcast = true,
+    required Map<String, dynamic>? data,
+  }) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #writeFragment,
+          [fragmentRequest],
+          {
+            #broadcast: broadcast,
+            #data: data,
+          },
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i17.Future<List<_i12.QueryResult<Object?>?>>? resetStore({bool? refetchQueries = true}) =>
+      (super.noSuchMethod(Invocation.method(
+        #resetStore,
+        [],
+        {#refetchQueries: refetchQueries},
+      )) as _i17.Future<List<_i12.QueryResult<Object?>?>>?);
+}
+
+/// A class which mocks [HttpClient].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockHttpClient extends _i1.Mock implements _i15.HttpClient {
+  MockHttpClient() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  Duration get idleTimeout => (super.noSuchMethod(
+        Invocation.getter(#idleTimeout),
+        returnValue: _FakeDuration_36(
+          this,
+          Invocation.getter(#idleTimeout),
+        ),
+      ) as Duration);
+  @override
+  set idleTimeout(Duration? _idleTimeout) => super.noSuchMethod(
+        Invocation.setter(
+          #idleTimeout,
+          _idleTimeout,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set connectionTimeout(Duration? _connectionTimeout) => super.noSuchMethod(
+        Invocation.setter(
+          #connectionTimeout,
+          _connectionTimeout,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set maxConnectionsPerHost(int? _maxConnectionsPerHost) => super.noSuchMethod(
+        Invocation.setter(
+          #maxConnectionsPerHost,
+          _maxConnectionsPerHost,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  bool get autoUncompress => (super.noSuchMethod(
+        Invocation.getter(#autoUncompress),
+        returnValue: false,
+      ) as bool);
+  @override
+  set autoUncompress(bool? _autoUncompress) => super.noSuchMethod(
+        Invocation.setter(
+          #autoUncompress,
+          _autoUncompress,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set userAgent(String? _userAgent) => super.noSuchMethod(
+        Invocation.setter(
+          #userAgent,
+          _userAgent,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set authenticate(
+          _i17.Future<bool> Function(
+    Uri,
+    String,
+    String?,
+  )?
+              f) =>
+      super.noSuchMethod(
+        Invocation.setter(
+          #authenticate,
+          f,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set connectionFactory(
+          _i17.Future<_i15.ConnectionTask<_i15.Socket>> Function(
+    Uri,
+    String?,
+    int?,
+  )?
+              f) =>
+      super.noSuchMethod(
+        Invocation.setter(
+          #connectionFactory,
+          f,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set findProxy(String Function(Uri)? f) => super.noSuchMethod(
+        Invocation.setter(
+          #findProxy,
+          f,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set authenticateProxy(
+          _i17.Future<bool> Function(
+    String,
+    int,
+    String,
+    String?,
+  )?
+              f) =>
+      super.noSuchMethod(
+        Invocation.setter(
+          #authenticateProxy,
+          f,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set badCertificateCallback(
+          bool Function(
+    _i15.X509Certificate,
+    String,
+    int,
+  )?
+              callback) =>
+      super.noSuchMethod(
+        Invocation.setter(
+          #badCertificateCallback,
+          callback,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  set keyLog(dynamic Function(String)? callback) => super.noSuchMethod(
+        Invocation.setter(
+          #keyLog,
+          callback,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i17.Future<_i15.HttpClientRequest> open(
+    String? method,
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #open,
+          [
+            method,
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #open,
+            [
+              method,
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> openUrl(
+    String? method,
+    Uri? url,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #openUrl,
+          [
+            method,
+            url,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #openUrl,
+            [
+              method,
+              url,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> get(
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #get,
+          [
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #get,
+            [
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> getUrl(Uri? url) => (super.noSuchMethod(
+        Invocation.method(
+          #getUrl,
+          [url],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #getUrl,
+            [url],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> post(
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #post,
+          [
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #post,
+            [
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> postUrl(Uri? url) => (super.noSuchMethod(
+        Invocation.method(
+          #postUrl,
+          [url],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #postUrl,
+            [url],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> put(
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #put,
+          [
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #put,
+            [
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> putUrl(Uri? url) => (super.noSuchMethod(
+        Invocation.method(
+          #putUrl,
+          [url],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #putUrl,
+            [url],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> delete(
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #delete,
+          [
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #delete,
+            [
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> deleteUrl(Uri? url) => (super.noSuchMethod(
+        Invocation.method(
+          #deleteUrl,
+          [url],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #deleteUrl,
+            [url],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> patch(
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #patch,
+          [
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #patch,
+            [
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> patchUrl(Uri? url) => (super.noSuchMethod(
+        Invocation.method(
+          #patchUrl,
+          [url],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #patchUrl,
+            [url],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> head(
+    String? host,
+    int? port,
+    String? path,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #head,
+          [
+            host,
+            port,
+            path,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #head,
+            [
+              host,
+              port,
+              path,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  _i17.Future<_i15.HttpClientRequest> headUrl(Uri? url) => (super.noSuchMethod(
+        Invocation.method(
+          #headUrl,
+          [url],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientRequest>.value(_FakeHttpClientRequest_37(
+          this,
+          Invocation.method(
+            #headUrl,
+            [url],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientRequest>);
+  @override
+  void addCredentials(
+    Uri? url,
+    String? realm,
+    _i15.HttpClientCredentials? credentials,
+  ) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #addCredentials,
+          [
+            url,
+            realm,
+            credentials,
+          ],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void addProxyCredentials(
+    String? host,
+    int? port,
+    String? realm,
+    _i15.HttpClientCredentials? credentials,
+  ) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #addProxyCredentials,
+          [
+            host,
+            port,
+            realm,
+            credentials,
+          ],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void close({bool? force = false}) => super.noSuchMethod(
+        Invocation.method(
+          #close,
+          [],
+          {#force: force},
+        ),
+        returnValueForMissingStub: null,
+      );
+}
+
+/// A class which mocks [HttpClientRequest].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockHttpClientRequest extends _i1.Mock implements _i15.HttpClientRequest {
+  MockHttpClientRequest() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  bool get persistentConnection => (super.noSuchMethod(
+        Invocation.getter(#persistentConnection),
+        returnValue: false,
+      ) as bool);
+  @override
+  set persistentConnection(bool? _persistentConnection) => super.noSuchMethod(
+        Invocation.setter(
+          #persistentConnection,
+          _persistentConnection,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  bool get followRedirects => (super.noSuchMethod(
+        Invocation.getter(#followRedirects),
+        returnValue: false,
+      ) as bool);
+  @override
+  set followRedirects(bool? _followRedirects) => super.noSuchMethod(
+        Invocation.setter(
+          #followRedirects,
+          _followRedirects,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  int get maxRedirects => (super.noSuchMethod(
+        Invocation.getter(#maxRedirects),
+        returnValue: 0,
+      ) as int);
+  @override
+  set maxRedirects(int? _maxRedirects) => super.noSuchMethod(
+        Invocation.setter(
+          #maxRedirects,
+          _maxRedirects,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  int get contentLength => (super.noSuchMethod(
+        Invocation.getter(#contentLength),
+        returnValue: 0,
+      ) as int);
+  @override
+  set contentLength(int? _contentLength) => super.noSuchMethod(
+        Invocation.setter(
+          #contentLength,
+          _contentLength,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  bool get bufferOutput => (super.noSuchMethod(
+        Invocation.getter(#bufferOutput),
+        returnValue: false,
+      ) as bool);
+  @override
+  set bufferOutput(bool? _bufferOutput) => super.noSuchMethod(
+        Invocation.setter(
+          #bufferOutput,
+          _bufferOutput,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  String get method => (super.noSuchMethod(
+        Invocation.getter(#method),
+        returnValue: '',
+      ) as String);
+  @override
+  Uri get uri => (super.noSuchMethod(
+        Invocation.getter(#uri),
+        returnValue: _FakeUri_38(
+          this,
+          Invocation.getter(#uri),
+        ),
+      ) as Uri);
+  @override
+  _i15.HttpHeaders get headers => (super.noSuchMethod(
+        Invocation.getter(#headers),
+        returnValue: _FakeHttpHeaders_39(
+          this,
+          Invocation.getter(#headers),
+        ),
+      ) as _i15.HttpHeaders);
+  @override
+  List<_i15.Cookie> get cookies => (super.noSuchMethod(
+        Invocation.getter(#cookies),
+        returnValue: <_i15.Cookie>[],
+      ) as List<_i15.Cookie>);
+  @override
+  _i17.Future<_i15.HttpClientResponse> get done => (super.noSuchMethod(
+        Invocation.getter(#done),
+        returnValue: _i17.Future<_i15.HttpClientResponse>.value(_FakeHttpClientResponse_40(
+          this,
+          Invocation.getter(#done),
+        )),
+      ) as _i17.Future<_i15.HttpClientResponse>);
+  @override
+  _i16.Encoding get encoding => (super.noSuchMethod(
+        Invocation.getter(#encoding),
+        returnValue: _FakeEncoding_41(
+          this,
+          Invocation.getter(#encoding),
+        ),
+      ) as _i16.Encoding);
+  @override
+  set encoding(_i16.Encoding? _encoding) => super.noSuchMethod(
+        Invocation.setter(
+          #encoding,
+          _encoding,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i17.Future<_i15.HttpClientResponse> close() => (super.noSuchMethod(
+        Invocation.method(
+          #close,
+          [],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientResponse>.value(_FakeHttpClientResponse_40(
+          this,
+          Invocation.method(
+            #close,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientResponse>);
+  @override
+  void abort([
+    Object? exception,
+    StackTrace? stackTrace,
+  ]) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #abort,
+          [
+            exception,
+            stackTrace,
+          ],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void add(List<int>? data) => super.noSuchMethod(
+        Invocation.method(
+          #add,
+          [data],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void write(Object? object) => super.noSuchMethod(
+        Invocation.method(
+          #write,
+          [object],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void writeAll(
+    Iterable<dynamic>? objects, [
+    String? separator = r'',
+  ]) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #writeAll,
+          [
+            objects,
+            separator,
+          ],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void writeln([Object? object = r'']) => super.noSuchMethod(
+        Invocation.method(
+          #writeln,
+          [object],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void writeCharCode(int? charCode) => super.noSuchMethod(
+        Invocation.method(
+          #writeCharCode,
+          [charCode],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void addError(
+    Object? error, [
+    StackTrace? stackTrace,
+  ]) =>
+      super.noSuchMethod(
+        Invocation.method(
+          #addError,
+          [
+            error,
+            stackTrace,
+          ],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i17.Future<dynamic> addStream(_i17.Stream<List<int>>? stream) => (super.noSuchMethod(
+        Invocation.method(
+          #addStream,
+          [stream],
+        ),
+        returnValue: _i17.Future<dynamic>.value(),
+      ) as _i17.Future<dynamic>);
+  @override
+  _i17.Future<dynamic> flush() => (super.noSuchMethod(
+        Invocation.method(
+          #flush,
+          [],
+        ),
+        returnValue: _i17.Future<dynamic>.value(),
+      ) as _i17.Future<dynamic>);
+}
+
+/// A class which mocks [HttpClientResponse].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockHttpClientResponse extends _i1.Mock implements _i15.HttpClientResponse {
+  MockHttpClientResponse() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  int get statusCode => (super.noSuchMethod(
+        Invocation.getter(#statusCode),
+        returnValue: 0,
+      ) as int);
+  @override
+  String get reasonPhrase => (super.noSuchMethod(
+        Invocation.getter(#reasonPhrase),
+        returnValue: '',
+      ) as String);
+  @override
+  int get contentLength => (super.noSuchMethod(
+        Invocation.getter(#contentLength),
+        returnValue: 0,
+      ) as int);
+  @override
+  _i15.HttpClientResponseCompressionState get compressionState => (super.noSuchMethod(
+        Invocation.getter(#compressionState),
+        returnValue: _i15.HttpClientResponseCompressionState.notCompressed,
+      ) as _i15.HttpClientResponseCompressionState);
+  @override
+  bool get persistentConnection => (super.noSuchMethod(
+        Invocation.getter(#persistentConnection),
+        returnValue: false,
+      ) as bool);
+  @override
+  bool get isRedirect => (super.noSuchMethod(
+        Invocation.getter(#isRedirect),
+        returnValue: false,
+      ) as bool);
+  @override
+  List<_i15.RedirectInfo> get redirects => (super.noSuchMethod(
+        Invocation.getter(#redirects),
+        returnValue: <_i15.RedirectInfo>[],
+      ) as List<_i15.RedirectInfo>);
+  @override
+  _i15.HttpHeaders get headers => (super.noSuchMethod(
+        Invocation.getter(#headers),
+        returnValue: _FakeHttpHeaders_39(
+          this,
+          Invocation.getter(#headers),
+        ),
+      ) as _i15.HttpHeaders);
+  @override
+  List<_i15.Cookie> get cookies => (super.noSuchMethod(
+        Invocation.getter(#cookies),
+        returnValue: <_i15.Cookie>[],
+      ) as List<_i15.Cookie>);
+  @override
+  bool get isBroadcast => (super.noSuchMethod(
+        Invocation.getter(#isBroadcast),
+        returnValue: false,
+      ) as bool);
+  @override
+  _i17.Future<int> get length => (super.noSuchMethod(
+        Invocation.getter(#length),
+        returnValue: _i17.Future<int>.value(0),
+      ) as _i17.Future<int>);
+  @override
+  _i17.Future<bool> get isEmpty => (super.noSuchMethod(
+        Invocation.getter(#isEmpty),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<List<int>> get first => (super.noSuchMethod(
+        Invocation.getter(#first),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<List<int>> get last => (super.noSuchMethod(
+        Invocation.getter(#last),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<List<int>> get single => (super.noSuchMethod(
+        Invocation.getter(#single),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<_i15.HttpClientResponse> redirect([
+    String? method,
+    Uri? url,
+    bool? followLoops,
+  ]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #redirect,
+          [
+            method,
+            url,
+            followLoops,
+          ],
+        ),
+        returnValue: _i17.Future<_i15.HttpClientResponse>.value(_FakeHttpClientResponse_40(
+          this,
+          Invocation.method(
+            #redirect,
+            [
+              method,
+              url,
+              followLoops,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i15.HttpClientResponse>);
+  @override
+  _i17.Future<_i15.Socket> detachSocket() => (super.noSuchMethod(
+        Invocation.method(
+          #detachSocket,
+          [],
+        ),
+        returnValue: _i17.Future<_i15.Socket>.value(_FakeSocket_42(
+          this,
+          Invocation.method(
+            #detachSocket,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i15.Socket>);
+  @override
+  _i17.Stream<List<int>> asBroadcastStream({
+    void Function(_i17.StreamSubscription<List<int>>)? onListen,
+    void Function(_i17.StreamSubscription<List<int>>)? onCancel,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #asBroadcastStream,
+          [],
+          {
+            #onListen: onListen,
+            #onCancel: onCancel,
+          },
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.StreamSubscription<List<int>> listen(
+    void Function(List<int>)? onData, {
+    Function? onError,
+    void Function()? onDone,
+    bool? cancelOnError,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listen,
+          [onData],
+          {
+            #onError: onError,
+            #onDone: onDone,
+            #cancelOnError: cancelOnError,
+          },
+        ),
+        returnValue: _FakeStreamSubscription_43<List<int>>(
+          this,
+          Invocation.method(
+            #listen,
+            [onData],
+            {
+              #onError: onError,
+              #onDone: onDone,
+              #cancelOnError: cancelOnError,
+            },
+          ),
+        ),
+      ) as _i17.StreamSubscription<List<int>>);
+  @override
+  _i17.Stream<List<int>> where(bool Function(List<int>)? test) => (super.noSuchMethod(
+        Invocation.method(
+          #where,
+          [test],
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Stream<S> map<S>(S Function(List<int>)? convert) => (super.noSuchMethod(
+        Invocation.method(
+          #map,
+          [convert],
+        ),
+        returnValue: _i17.Stream<S>.empty(),
+      ) as _i17.Stream<S>);
+  @override
+  _i17.Stream<E> asyncMap<E>(_i17.FutureOr<E> Function(List<int>)? convert) => (super.noSuchMethod(
+        Invocation.method(
+          #asyncMap,
+          [convert],
+        ),
+        returnValue: _i17.Stream<E>.empty(),
+      ) as _i17.Stream<E>);
+  @override
+  _i17.Stream<E> asyncExpand<E>(_i17.Stream<E>? Function(List<int>)? convert) => (super.noSuchMethod(
+        Invocation.method(
+          #asyncExpand,
+          [convert],
+        ),
+        returnValue: _i17.Stream<E>.empty(),
+      ) as _i17.Stream<E>);
+  @override
+  _i17.Stream<List<int>> handleError(
+    Function? onError, {
+    bool Function(dynamic)? test,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #handleError,
+          [onError],
+          {#test: test},
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Stream<S> expand<S>(Iterable<S> Function(List<int>)? convert) => (super.noSuchMethod(
+        Invocation.method(
+          #expand,
+          [convert],
+        ),
+        returnValue: _i17.Stream<S>.empty(),
+      ) as _i17.Stream<S>);
+  @override
+  _i17.Future<dynamic> pipe(_i17.StreamConsumer<List<int>>? streamConsumer) => (super.noSuchMethod(
+        Invocation.method(
+          #pipe,
+          [streamConsumer],
+        ),
+        returnValue: _i17.Future<dynamic>.value(),
+      ) as _i17.Future<dynamic>);
+  @override
+  _i17.Stream<S> transform<S>(_i17.StreamTransformer<List<int>, S>? streamTransformer) => (super.noSuchMethod(
+        Invocation.method(
+          #transform,
+          [streamTransformer],
+        ),
+        returnValue: _i17.Stream<S>.empty(),
+      ) as _i17.Stream<S>);
+  @override
+  _i17.Future<List<int>> reduce(
+          List<int> Function(
+    List<int>,
+    List<int>,
+  )?
+              combine) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #reduce,
+          [combine],
+        ),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<S> fold<S>(
+    S? initialValue,
+    S Function(
+      S,
+      List<int>,
+    )?
+        combine,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #fold,
+          [
+            initialValue,
+            combine,
+          ],
+        ),
+        returnValue: _i17.Future<S>.value(null),
+      ) as _i17.Future<S>);
+  @override
+  _i17.Future<String> join([String? separator = r'']) => (super.noSuchMethod(
+        Invocation.method(
+          #join,
+          [separator],
+        ),
+        returnValue: _i17.Future<String>.value(''),
+      ) as _i17.Future<String>);
+  @override
+  _i17.Future<bool> contains(Object? needle) => (super.noSuchMethod(
+        Invocation.method(
+          #contains,
+          [needle],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<dynamic> forEach(void Function(List<int>)? action) => (super.noSuchMethod(
+        Invocation.method(
+          #forEach,
+          [action],
+        ),
+        returnValue: _i17.Future<dynamic>.value(),
+      ) as _i17.Future<dynamic>);
+  @override
+  _i17.Future<bool> every(bool Function(List<int>)? test) => (super.noSuchMethod(
+        Invocation.method(
+          #every,
+          [test],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> any(bool Function(List<int>)? test) => (super.noSuchMethod(
+        Invocation.method(
+          #any,
+          [test],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<R> cast<R>() => (super.noSuchMethod(
+        Invocation.method(
+          #cast,
+          [],
+        ),
+        returnValue: _i17.Stream<R>.empty(),
+      ) as _i17.Stream<R>);
+  @override
+  _i17.Future<List<List<int>>> toList() => (super.noSuchMethod(
+        Invocation.method(
+          #toList,
+          [],
+        ),
+        returnValue: _i17.Future<List<List<int>>>.value(<List<int>>[]),
+      ) as _i17.Future<List<List<int>>>);
+  @override
+  _i17.Future<Set<List<int>>> toSet() => (super.noSuchMethod(
+        Invocation.method(
+          #toSet,
+          [],
+        ),
+        returnValue: _i17.Future<Set<List<int>>>.value(<List<int>>{}),
+      ) as _i17.Future<Set<List<int>>>);
+  @override
+  _i17.Future<E> drain<E>([E? futureValue]) => (super.noSuchMethod(
+        Invocation.method(
+          #drain,
+          [futureValue],
+        ),
+        returnValue: _i17.Future<E>.value(null),
+      ) as _i17.Future<E>);
+  @override
+  _i17.Stream<List<int>> take(int? count) => (super.noSuchMethod(
+        Invocation.method(
+          #take,
+          [count],
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Stream<List<int>> takeWhile(bool Function(List<int>)? test) => (super.noSuchMethod(
+        Invocation.method(
+          #takeWhile,
+          [test],
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Stream<List<int>> skip(int? count) => (super.noSuchMethod(
+        Invocation.method(
+          #skip,
+          [count],
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Stream<List<int>> skipWhile(bool Function(List<int>)? test) => (super.noSuchMethod(
+        Invocation.method(
+          #skipWhile,
+          [test],
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Stream<List<int>> distinct(
+          [bool Function(
+            List<int>,
+            List<int>,
+          )?
+              equals]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #distinct,
+          [equals],
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+  @override
+  _i17.Future<List<int>> firstWhere(
+    bool Function(List<int>)? test, {
+    List<int> Function()? orElse,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #firstWhere,
+          [test],
+          {#orElse: orElse},
+        ),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<List<int>> lastWhere(
+    bool Function(List<int>)? test, {
+    List<int> Function()? orElse,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #lastWhere,
+          [test],
+          {#orElse: orElse},
+        ),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<List<int>> singleWhere(
+    bool Function(List<int>)? test, {
+    List<int> Function()? orElse,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #singleWhere,
+          [test],
+          {#orElse: orElse},
+        ),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Future<List<int>> elementAt(int? index) => (super.noSuchMethod(
+        Invocation.method(
+          #elementAt,
+          [index],
+        ),
+        returnValue: _i17.Future<List<int>>.value(<int>[]),
+      ) as _i17.Future<List<int>>);
+  @override
+  _i17.Stream<List<int>> timeout(
+    Duration? timeLimit, {
+    void Function(_i17.EventSink<List<int>>)? onTimeout,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #timeout,
+          [timeLimit],
+          {#onTimeout: onTimeout},
+        ),
+        returnValue: _i17.Stream<List<int>>.empty(),
+      ) as _i17.Stream<List<int>>);
+}
+
+/// A class which mocks [JobsResource].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockJobsResource extends _i1.Mock implements _i6.JobsResource {
+  MockJobsResource() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i17.Future<_i6.JobCancelResponse> cancel(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #cancel,
+          [
+            projectId,
+            jobId,
+          ],
+          {
+            #location: location,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i17.Future<_i6.JobCancelResponse>.value(_FakeJobCancelResponse_44(
+          this,
+          Invocation.method(
+            #cancel,
+            [
+              projectId,
+              jobId,
+            ],
+            {
+              #location: location,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i6.JobCancelResponse>);
+  @override
+  _i17.Future<void> delete(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #delete,
+          [
+            projectId,
+            jobId,
+          ],
+          {
+            #location: location,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<_i6.Job> get(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #get,
+          [
+            projectId,
+            jobId,
+          ],
+          {
+            #location: location,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i17.Future<_i6.Job>.value(_FakeJob_45(
+          this,
+          Invocation.method(
+            #get,
+            [
+              projectId,
+              jobId,
+            ],
+            {
+              #location: location,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i6.Job>);
+  @override
+  _i17.Future<_i6.GetQueryResultsResponse> getQueryResults(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    int? maxResults,
+    String? pageToken,
+    String? startIndex,
+    int? timeoutMs,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getQueryResults,
+          [
+            projectId,
+            jobId,
+          ],
+          {
+            #location: location,
+            #maxResults: maxResults,
+            #pageToken: pageToken,
+            #startIndex: startIndex,
+            #timeoutMs: timeoutMs,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i17.Future<_i6.GetQueryResultsResponse>.value(_FakeGetQueryResultsResponse_46(
+          this,
+          Invocation.method(
+            #getQueryResults,
+            [
+              projectId,
+              jobId,
+            ],
+            {
+              #location: location,
+              #maxResults: maxResults,
+              #pageToken: pageToken,
+              #startIndex: startIndex,
+              #timeoutMs: timeoutMs,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i6.GetQueryResultsResponse>);
+  @override
+  _i17.Future<_i6.Job> insert(
+    _i6.Job? request,
+    String? projectId, {
+    String? $fields,
+    _i6.UploadOptions? uploadOptions = _i6.UploadOptions.defaultOptions,
+    _i6.Media? uploadMedia,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #insert,
+          [
+            request,
+            projectId,
+          ],
+          {
+            #$fields: $fields,
+            #uploadOptions: uploadOptions,
+            #uploadMedia: uploadMedia,
+          },
+        ),
+        returnValue: _i17.Future<_i6.Job>.value(_FakeJob_45(
+          this,
+          Invocation.method(
+            #insert,
+            [
+              request,
+              projectId,
+            ],
+            {
+              #$fields: $fields,
+              #uploadOptions: uploadOptions,
+              #uploadMedia: uploadMedia,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i6.Job>);
+  @override
+  _i17.Future<_i6.JobList> list(
+    String? projectId, {
+    bool? allUsers,
+    String? maxCreationTime,
+    int? maxResults,
+    String? minCreationTime,
+    String? pageToken,
+    String? parentJobId,
+    String? projection,
+    List<String>? stateFilter,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #list,
+          [projectId],
+          {
+            #allUsers: allUsers,
+            #maxCreationTime: maxCreationTime,
+            #maxResults: maxResults,
+            #minCreationTime: minCreationTime,
+            #pageToken: pageToken,
+            #parentJobId: parentJobId,
+            #projection: projection,
+            #stateFilter: stateFilter,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i17.Future<_i6.JobList>.value(_FakeJobList_47(
+          this,
+          Invocation.method(
+            #list,
+            [projectId],
+            {
+              #allUsers: allUsers,
+              #maxCreationTime: maxCreationTime,
+              #maxResults: maxResults,
+              #minCreationTime: minCreationTime,
+              #pageToken: pageToken,
+              #parentJobId: parentJobId,
+              #projection: projection,
+              #stateFilter: stateFilter,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i6.JobList>);
+  @override
+  _i17.Future<_i6.QueryResponse> query(
+    _i6.QueryRequest? request,
+    String? projectId, {
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #query,
+          [
+            request,
+            projectId,
+          ],
+          {#$fields: $fields},
+        ),
+        returnValue: _i17.Future<_i6.QueryResponse>.value(_FakeQueryResponse_48(
+          this,
+          Invocation.method(
+            #query,
+            [
+              request,
+              projectId,
+            ],
+            {#$fields: $fields},
+          ),
+        )),
+      ) as _i17.Future<_i6.QueryResponse>);
+}
+
+/// A class which mocks [LuciBuildService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockLuciBuildService extends _i1.Mock implements _i31.LuciBuildService {
+  MockLuciBuildService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i18.BuildBucketClient get buildBucketClient => (super.noSuchMethod(
+        Invocation.getter(#buildBucketClient),
+        returnValue: _FakeBuildBucketClient_49(
+          this,
+          Invocation.getter(#buildBucketClient),
+        ),
+      ) as _i18.BuildBucketClient);
+  @override
+  set buildBucketClient(_i18.BuildBucketClient? _buildBucketClient) => super.noSuchMethod(
+        Invocation.setter(
+          #buildBucketClient,
+          _buildBucketClient,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i3.Config get config => (super.noSuchMethod(
+        Invocation.getter(#config),
+        returnValue: _FakeConfig_1(
+          this,
+          Invocation.getter(#config),
+        ),
+      ) as _i3.Config);
+  @override
+  set config(_i3.Config? _config) => super.noSuchMethod(
+        Invocation.setter(
+          #config,
+          _config,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i11.GithubChecksUtil get githubChecksUtil => (super.noSuchMethod(
+        Invocation.getter(#githubChecksUtil),
+        returnValue: _FakeGithubChecksUtil_17(
+          this,
+          Invocation.getter(#githubChecksUtil),
+        ),
+      ) as _i11.GithubChecksUtil);
+  @override
+  set githubChecksUtil(_i11.GithubChecksUtil? _githubChecksUtil) => super.noSuchMethod(
+        Invocation.setter(
+          #githubChecksUtil,
+          _githubChecksUtil,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i7.GerritService get gerritService => (super.noSuchMethod(
+        Invocation.getter(#gerritService),
+        returnValue: _FakeGerritService_6(
+          this,
+          Invocation.getter(#gerritService),
+        ),
+      ) as _i7.GerritService);
+  @override
+  set gerritService(_i7.GerritService? _gerritService) => super.noSuchMethod(
+        Invocation.setter(
+          #gerritService,
+          _gerritService,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  _i19.PubSub get pubsub => (super.noSuchMethod(
+        Invocation.getter(#pubsub),
+        returnValue: _FakePubSub_50(
+          this,
+          Invocation.getter(#pubsub),
+        ),
+      ) as _i19.PubSub);
+  @override
+  _i17.Future<List<List<_i9.Request>>> shard(
+    List<_i9.Request>? requests,
+    int? max,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #shard,
+          [
+            requests,
+            max,
+          ],
+        ),
+        returnValue: _i17.Future<List<List<_i9.Request>>>.value(<List<_i9.Request>>[]),
+      ) as _i17.Future<List<List<_i9.Request>>>);
+  @override
+  _i17.Future<Iterable<_i9.Build>> getTryBuilds(
+    _i10.RepositorySlug? slug,
+    String? sha,
+    String? builderName,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getTryBuilds,
+          [
+            slug,
+            sha,
+            builderName,
+          ],
+        ),
+        returnValue: _i17.Future<Iterable<_i9.Build>>.value(<_i9.Build>[]),
+      ) as _i17.Future<Iterable<_i9.Build>>);
+  @override
+  _i17.Future<Iterable<_i9.Build>> getProdBuilds(
+    _i10.RepositorySlug? slug,
+    String? commitSha,
+    String? builderName,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getProdBuilds,
+          [
+            slug,
+            commitSha,
+            builderName,
+          ],
+        ),
+        returnValue: _i17.Future<Iterable<_i9.Build>>.value(<_i9.Build>[]),
+      ) as _i17.Future<Iterable<_i9.Build>>);
+  @override
+  _i17.Future<Iterable<_i9.Build>> getBuilds(
+    _i10.RepositorySlug? slug,
+    String? commitSha,
+    String? builderName,
+    String? bucket,
+    Map<String, List<String>>? tags,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getBuilds,
+          [
+            slug,
+            commitSha,
+            builderName,
+            bucket,
+            tags,
+          ],
+        ),
+        returnValue: _i17.Future<Iterable<_i9.Build>>.value(<_i9.Build>[]),
+      ) as _i17.Future<Iterable<_i9.Build>>);
+  @override
+  _i17.Future<Map<String?, _i9.Build?>> tryBuildsForPullRequest(_i10.PullRequest? pullRequest) => (super.noSuchMethod(
+        Invocation.method(
+          #tryBuildsForPullRequest,
+          [pullRequest],
+        ),
+        returnValue: _i17.Future<Map<String?, _i9.Build?>>.value(<String?, _i9.Build?>{}),
+      ) as _i17.Future<Map<String?, _i9.Build?>>);
+  @override
+  _i17.Future<List<_i32.Target>> scheduleTryBuilds({
+    required List<_i32.Target>? targets,
+    required _i10.PullRequest? pullRequest,
+    _i24.CheckSuiteEvent? checkSuiteEvent,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #scheduleTryBuilds,
+          [],
+          {
+            #targets: targets,
+            #pullRequest: pullRequest,
+            #checkSuiteEvent: checkSuiteEvent,
+          },
+        ),
+        returnValue: _i17.Future<List<_i32.Target>>.value(<_i32.Target>[]),
+      ) as _i17.Future<List<_i32.Target>>);
+  @override
+  _i17.Future<void> cancelBuilds(
+    _i10.PullRequest? pullRequest,
+    String? reason,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #cancelBuilds,
+          [
+            pullRequest,
+            reason,
+          ],
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<List<_i9.Build?>> failedBuilds(
+    _i10.PullRequest? pullRequest,
+    List<_i32.Target>? targets,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #failedBuilds,
+          [
+            pullRequest,
+            targets,
+          ],
+        ),
+        returnValue: _i17.Future<List<_i9.Build?>>.value(<_i9.Build?>[]),
+      ) as _i17.Future<List<_i9.Build?>>);
+  @override
+  _i17.Future<bool> rescheduleBuild({
+    required String? commitSha,
+    required String? builderName,
+    required _i30.BuildPushMessage? buildPushMessage,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #rescheduleBuild,
+          [],
+          {
+            #commitSha: commitSha,
+            #builderName: builderName,
+            #buildPushMessage: buildPushMessage,
+          },
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> rescheduleUsingCheckRunEvent(_i33.CheckRunEvent? checkRunEvent) => (super.noSuchMethod(
+        Invocation.method(
+          #rescheduleUsingCheckRunEvent,
+          [checkRunEvent],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<_i9.Build> getTryBuildById(
+    String? id, {
+    String? fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getTryBuildById,
+          [id],
+          {#fields: fields},
+        ),
+        returnValue: _i17.Future<_i9.Build>.value(_FakeBuild_8(
+          this,
+          Invocation.method(
+            #getTryBuildById,
+            [id],
+            {#fields: fields},
+          ),
+        )),
+      ) as _i17.Future<_i9.Build>);
+  @override
+  _i17.Future<Set<String>> getAvailableBuilderSet({
+    String? project = r'flutter',
+    String? bucket = r'prod',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getAvailableBuilderSet,
+          [],
+          {
+            #project: project,
+            #bucket: bucket,
+          },
+        ),
+        returnValue: _i17.Future<Set<String>>.value(<String>{}),
+      ) as _i17.Future<Set<String>>);
+  @override
+  _i17.Future<void> schedulePostsubmitBuilds({
+    required _i34.Commit? commit,
+    required List<_i35.Tuple<_i32.Target, _i36.Task, int>>? toBeScheduled,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #schedulePostsubmitBuilds,
+          [],
+          {
+            #commit: commit,
+            #toBeScheduled: toBeScheduled,
+          },
+        ),
+        returnValue: _i17.Future<void>.value(),
+        returnValueForMissingStub: _i17.Future<void>.value(),
+      ) as _i17.Future<void>);
+  @override
+  _i17.Future<bool> checkRerunBuilder({
+    required _i34.Commit? commit,
+    required _i32.Target? target,
+    required _i36.Task? task,
+    required _i37.DatastoreService? datastore,
+    Map<String, List<String>>? tags,
+    bool? ignoreChecks = false,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #checkRerunBuilder,
+          [],
+          {
+            #commit: commit,
+            #target: target,
+            #task: task,
+            #datastore: datastore,
+            #tags: tags,
+            #ignoreChecks: ignoreChecks,
+          },
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+}
+
+/// A class which mocks [ProcessManager].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockProcessManager extends _i1.Mock implements _i38.ProcessManager {
+  MockProcessManager() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i17.Future<_i15.Process> start(
+    List<Object>? command, {
+    String? workingDirectory,
+    Map<String, String>? environment,
+    bool? includeParentEnvironment = true,
+    bool? runInShell = false,
+    _i15.ProcessStartMode? mode = _i15.ProcessStartMode.normal,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #start,
+          [command],
+          {
+            #workingDirectory: workingDirectory,
+            #environment: environment,
+            #includeParentEnvironment: includeParentEnvironment,
+            #runInShell: runInShell,
+            #mode: mode,
+          },
+        ),
+        returnValue: _i17.Future<_i15.Process>.value(_FakeProcess_51(
+          this,
+          Invocation.method(
+            #start,
+            [command],
+            {
+              #workingDirectory: workingDirectory,
+              #environment: environment,
+              #includeParentEnvironment: includeParentEnvironment,
+              #runInShell: runInShell,
+              #mode: mode,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i15.Process>);
+  @override
+  _i17.Future<_i15.ProcessResult> run(
+    List<Object>? command, {
+    String? workingDirectory,
+    Map<String, String>? environment,
+    bool? includeParentEnvironment = true,
+    bool? runInShell = false,
+    _i16.Encoding? stdoutEncoding = const _i15.SystemEncoding(),
+    _i16.Encoding? stderrEncoding = const _i15.SystemEncoding(),
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #run,
+          [command],
+          {
+            #workingDirectory: workingDirectory,
+            #environment: environment,
+            #includeParentEnvironment: includeParentEnvironment,
+            #runInShell: runInShell,
+            #stdoutEncoding: stdoutEncoding,
+            #stderrEncoding: stderrEncoding,
+          },
+        ),
+        returnValue: _i17.Future<_i15.ProcessResult>.value(_FakeProcessResult_52(
+          this,
+          Invocation.method(
+            #run,
+            [command],
+            {
+              #workingDirectory: workingDirectory,
+              #environment: environment,
+              #includeParentEnvironment: includeParentEnvironment,
+              #runInShell: runInShell,
+              #stdoutEncoding: stdoutEncoding,
+              #stderrEncoding: stderrEncoding,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i15.ProcessResult>);
+  @override
+  _i15.ProcessResult runSync(
+    List<Object>? command, {
+    String? workingDirectory,
+    Map<String, String>? environment,
+    bool? includeParentEnvironment = true,
+    bool? runInShell = false,
+    _i16.Encoding? stdoutEncoding = const _i15.SystemEncoding(),
+    _i16.Encoding? stderrEncoding = const _i15.SystemEncoding(),
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #runSync,
+          [command],
+          {
+            #workingDirectory: workingDirectory,
+            #environment: environment,
+            #includeParentEnvironment: includeParentEnvironment,
+            #runInShell: runInShell,
+            #stdoutEncoding: stdoutEncoding,
+            #stderrEncoding: stderrEncoding,
+          },
+        ),
+        returnValue: _FakeProcessResult_52(
+          this,
+          Invocation.method(
+            #runSync,
+            [command],
+            {
+              #workingDirectory: workingDirectory,
+              #environment: environment,
+              #includeParentEnvironment: includeParentEnvironment,
+              #runInShell: runInShell,
+              #stdoutEncoding: stdoutEncoding,
+              #stderrEncoding: stderrEncoding,
+            },
+          ),
+        ),
+      ) as _i15.ProcessResult);
+  @override
+  bool canRun(
+    dynamic executable, {
+    String? workingDirectory,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #canRun,
+          [executable],
+          {#workingDirectory: workingDirectory},
+        ),
+        returnValue: false,
+      ) as bool);
+  @override
+  bool killPid(
+    int? pid, [
+    _i15.ProcessSignal? signal = _i15.ProcessSignal.sigterm,
+  ]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #killPid,
+          [
+            pid,
+            signal,
+          ],
+        ),
+        returnValue: false,
+      ) as bool);
+}
+
+/// A class which mocks [PullRequestsService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockPullRequestsService extends _i1.Mock implements _i10.PullRequestsService {
+  MockPullRequestsService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i10.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_12(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i10.GitHub);
+  @override
+  _i17.Stream<_i10.PullRequest> list(
+    _i10.RepositorySlug? slug, {
+    int? pages,
+    String? base,
+    String? direction = r'desc',
+    String? head,
+    String? sort = r'created',
+    String? state = r'open',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #list,
+          [slug],
+          {
+            #pages: pages,
+            #base: base,
+            #direction: direction,
+            #head: head,
+            #sort: sort,
+            #state: state,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.PullRequest>.empty(),
+      ) as _i17.Stream<_i10.PullRequest>);
+  @override
+  _i17.Future<_i10.PullRequest> get(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #get,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #get,
+            [
+              slug,
+              number,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequest>);
+  @override
+  _i17.Future<_i10.PullRequest> create(
+    _i10.RepositorySlug? slug,
+    _i10.CreatePullRequest? request,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #create,
+          [
+            slug,
+            request,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #create,
+            [
+              slug,
+              request,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequest>);
+  @override
+  _i17.Future<_i10.PullRequest> edit(
+    _i10.RepositorySlug? slug,
+    int? number, {
+    String? title,
+    String? body,
+    String? state,
+    String? base,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #edit,
+          [
+            slug,
+            number,
+          ],
+          {
+            #title: title,
+            #body: body,
+            #state: state,
+            #base: base,
+          },
+        ),
+        returnValue: _i17.Future<_i10.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #edit,
+            [
+              slug,
+              number,
+            ],
+            {
+              #title: title,
+              #body: body,
+              #state: state,
+              #base: base,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequest>);
+  @override
+  _i17.Stream<_i10.RepositoryCommit> listCommits(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listCommits,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.RepositoryCommit>.empty(),
+      ) as _i17.Stream<_i10.RepositoryCommit>);
+  @override
+  _i17.Stream<_i10.PullRequestFile> listFiles(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listFiles,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.PullRequestFile>.empty(),
+      ) as _i17.Stream<_i10.PullRequestFile>);
+  @override
+  _i17.Stream<_i10.PullRequestReview> listReviews(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listReviews,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.PullRequestReview>.empty(),
+      ) as _i17.Stream<_i10.PullRequestReview>);
+  @override
+  _i17.Future<bool> isMerged(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #isMerged,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<_i10.PullRequestMerge> merge(
+    _i10.RepositorySlug? slug,
+    int? number, {
+    String? message,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #merge,
+          [
+            slug,
+            number,
+          ],
+          {#message: message},
+        ),
+        returnValue: _i17.Future<_i10.PullRequestMerge>.value(_FakePullRequestMerge_53(
+          this,
+          Invocation.method(
+            #merge,
+            [
+              slug,
+              number,
+            ],
+            {#message: message},
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequestMerge>);
+  @override
+  _i17.Stream<_i10.PullRequestComment> listCommentsByPullRequest(
+    _i10.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listCommentsByPullRequest,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.PullRequestComment>.empty(),
+      ) as _i17.Stream<_i10.PullRequestComment>);
+  @override
+  _i17.Stream<_i10.PullRequestComment> listComments(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listComments,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.PullRequestComment>.empty(),
+      ) as _i17.Stream<_i10.PullRequestComment>);
+  @override
+  _i17.Future<_i10.PullRequestComment> createComment(
+    _i10.RepositorySlug? slug,
+    int? number,
+    _i10.CreatePullRequestComment? comment,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createComment,
+          [
+            slug,
+            number,
+            comment,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.PullRequestComment>.value(_FakePullRequestComment_54(
+          this,
+          Invocation.method(
+            #createComment,
+            [
+              slug,
+              number,
+              comment,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequestComment>);
+  @override
+  _i17.Future<_i10.PullRequestReview> createReview(
+    _i10.RepositorySlug? slug,
+    _i10.CreatePullRequestReview? review,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createReview,
+          [
+            slug,
+            review,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.PullRequestReview>.value(_FakePullRequestReview_55(
+          this,
+          Invocation.method(
+            #createReview,
+            [
+              slug,
+              review,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.PullRequestReview>);
+}
+
+/// A class which mocks [RepositoriesService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockRepositoriesService extends _i1.Mock implements _i10.RepositoriesService {
+  MockRepositoriesService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i10.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_12(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i10.GitHub);
+  @override
+  _i17.Stream<_i10.Repository> listRepositories({
+    String? type = r'owner',
+    String? sort = r'full_name',
+    String? direction = r'asc',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listRepositories,
+          [],
+          {
+            #type: type,
+            #sort: sort,
+            #direction: direction,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Repository>.empty(),
+      ) as _i17.Stream<_i10.Repository>);
+  @override
+  _i17.Stream<_i10.Repository> listUserRepositories(
+    String? user, {
+    String? type = r'owner',
+    String? sort = r'full_name',
+    String? direction = r'asc',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listUserRepositories,
+          [user],
+          {
+            #type: type,
+            #sort: sort,
+            #direction: direction,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Repository>.empty(),
+      ) as _i17.Stream<_i10.Repository>);
+  @override
+  _i17.Stream<_i10.Repository> listOrganizationRepositories(
+    String? org, {
+    String? type = r'all',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listOrganizationRepositories,
+          [org],
+          {#type: type},
+        ),
+        returnValue: _i17.Stream<_i10.Repository>.empty(),
+      ) as _i17.Stream<_i10.Repository>);
+  @override
+  _i17.Stream<_i10.Repository> listPublicRepositories({
+    int? limit = 50,
+    DateTime? since,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listPublicRepositories,
+          [],
+          {
+            #limit: limit,
+            #since: since,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Repository>.empty(),
+      ) as _i17.Stream<_i10.Repository>);
+  @override
+  _i17.Future<_i10.Repository> createRepository(
+    _i10.CreateRepository? repository, {
+    String? org,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createRepository,
+          [repository],
+          {#org: org},
+        ),
+        returnValue: _i17.Future<_i10.Repository>.value(_FakeRepository_56(
+          this,
+          Invocation.method(
+            #createRepository,
+            [repository],
+            {#org: org},
+          ),
+        )),
+      ) as _i17.Future<_i10.Repository>);
+  @override
+  _i17.Future<_i10.LicenseDetails> getLicense(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getLicense,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.LicenseDetails>.value(_FakeLicenseDetails_57(
+          this,
+          Invocation.method(
+            #getLicense,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.LicenseDetails>);
+  @override
+  _i17.Future<_i10.Repository> getRepository(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getRepository,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.Repository>.value(_FakeRepository_56(
+          this,
+          Invocation.method(
+            #getRepository,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.Repository>);
+  @override
+  _i17.Stream<_i10.Repository> getRepositories(List<_i10.RepositorySlug>? slugs) => (super.noSuchMethod(
+        Invocation.method(
+          #getRepositories,
+          [slugs],
+        ),
+        returnValue: _i17.Stream<_i10.Repository>.empty(),
+      ) as _i17.Stream<_i10.Repository>);
+  @override
+  _i17.Future<_i10.Repository> editRepository(
+    _i10.RepositorySlug? slug, {
+    String? name,
+    String? description,
+    String? homepage,
+    bool? private,
+    bool? hasIssues,
+    bool? hasWiki,
+    bool? hasDownloads,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editRepository,
+          [slug],
+          {
+            #name: name,
+            #description: description,
+            #homepage: homepage,
+            #private: private,
+            #hasIssues: hasIssues,
+            #hasWiki: hasWiki,
+            #hasDownloads: hasDownloads,
+          },
+        ),
+        returnValue: _i17.Future<_i10.Repository>.value(_FakeRepository_56(
+          this,
+          Invocation.method(
+            #editRepository,
+            [slug],
+            {
+              #name: name,
+              #description: description,
+              #homepage: homepage,
+              #private: private,
+              #hasIssues: hasIssues,
+              #hasWiki: hasWiki,
+              #hasDownloads: hasDownloads,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.Repository>);
+  @override
+  _i17.Future<bool> deleteRepository(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #deleteRepository,
+          [slug],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.Contributor> listContributors(
+    _i10.RepositorySlug? slug, {
+    bool? anon = false,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listContributors,
+          [slug],
+          {#anon: anon},
+        ),
+        returnValue: _i17.Stream<_i10.Contributor>.empty(),
+      ) as _i17.Stream<_i10.Contributor>);
+  @override
+  _i17.Stream<_i10.Team> listTeams(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listTeams,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Team>.empty(),
+      ) as _i17.Stream<_i10.Team>);
+  @override
+  _i17.Future<_i10.LanguageBreakdown> listLanguages(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listLanguages,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.LanguageBreakdown>.value(_FakeLanguageBreakdown_58(
+          this,
+          Invocation.method(
+            #listLanguages,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.LanguageBreakdown>);
+  @override
+  _i17.Stream<_i10.Tag> listTags(
+    _i10.RepositorySlug? slug, {
+    int? page = 1,
+    int? pages,
+    int? perPage = 30,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listTags,
+          [slug],
+          {
+            #page: page,
+            #pages: pages,
+            #perPage: perPage,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.Tag>.empty(),
+      ) as _i17.Stream<_i10.Tag>);
+  @override
+  _i17.Stream<_i10.Branch> listBranches(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listBranches,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Branch>.empty(),
+      ) as _i17.Stream<_i10.Branch>);
+  @override
+  _i17.Future<_i10.Branch> getBranch(
+    _i10.RepositorySlug? slug,
+    String? branch,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getBranch,
+          [
+            slug,
+            branch,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Branch>.value(_FakeBranch_59(
+          this,
+          Invocation.method(
+            #getBranch,
+            [
+              slug,
+              branch,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Branch>);
+  @override
+  _i17.Stream<_i10.Collaborator> listCollaborators(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCollaborators,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Collaborator>.empty(),
+      ) as _i17.Stream<_i10.Collaborator>);
+  @override
+  _i17.Future<bool> isCollaborator(
+    _i10.RepositorySlug? slug,
+    String? user,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #isCollaborator,
+          [
+            slug,
+            user,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> addCollaborator(
+    _i10.RepositorySlug? slug,
+    String? user,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #addCollaborator,
+          [
+            slug,
+            user,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> removeCollaborator(
+    _i10.RepositorySlug? slug,
+    String? user,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #removeCollaborator,
+          [
+            slug,
+            user,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.CommitComment> listSingleCommitComments(
+    _i10.RepositorySlug? slug,
+    _i10.RepositoryCommit? commit,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listSingleCommitComments,
+          [
+            slug,
+            commit,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.CommitComment>.empty(),
+      ) as _i17.Stream<_i10.CommitComment>);
+  @override
+  _i17.Stream<_i10.CommitComment> listCommitComments(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommitComments,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.CommitComment>.empty(),
+      ) as _i17.Stream<_i10.CommitComment>);
+  @override
+  _i17.Future<_i10.CommitComment> createCommitComment(
+    _i10.RepositorySlug? slug,
+    _i10.RepositoryCommit? commit, {
+    required String? body,
+    String? path,
+    int? position,
+    int? line,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createCommitComment,
+          [
+            slug,
+            commit,
+          ],
+          {
+            #body: body,
+            #path: path,
+            #position: position,
+            #line: line,
+          },
+        ),
+        returnValue: _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60(
+          this,
+          Invocation.method(
+            #createCommitComment,
+            [
+              slug,
+              commit,
+            ],
+            {
+              #body: body,
+              #path: path,
+              #position: position,
+              #line: line,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.CommitComment>);
+  @override
+  _i17.Future<_i10.CommitComment> getCommitComment(
+    _i10.RepositorySlug? slug, {
+    required int? id,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommitComment,
+          [slug],
+          {#id: id},
+        ),
+        returnValue: _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60(
+          this,
+          Invocation.method(
+            #getCommitComment,
+            [slug],
+            {#id: id},
+          ),
+        )),
+      ) as _i17.Future<_i10.CommitComment>);
+  @override
+  _i17.Future<_i10.CommitComment> updateCommitComment(
+    _i10.RepositorySlug? slug, {
+    required int? id,
+    required String? body,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #updateCommitComment,
+          [slug],
+          {
+            #id: id,
+            #body: body,
+          },
+        ),
+        returnValue: _i17.Future<_i10.CommitComment>.value(_FakeCommitComment_60(
+          this,
+          Invocation.method(
+            #updateCommitComment,
+            [slug],
+            {
+              #id: id,
+              #body: body,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.CommitComment>);
+  @override
+  _i17.Future<bool> deleteCommitComment(
+    _i10.RepositorySlug? slug, {
+    required int? id,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteCommitComment,
+          [slug],
+          {#id: id},
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.RepositoryCommit> listCommits(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommits,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.RepositoryCommit>.empty(),
+      ) as _i17.Stream<_i10.RepositoryCommit>);
+  @override
+  _i17.Future<_i10.RepositoryCommit> getCommit(
+    _i10.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommit,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.RepositoryCommit>.value(_FakeRepositoryCommit_61(
+          this,
+          Invocation.method(
+            #getCommit,
+            [
+              slug,
+              sha,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.RepositoryCommit>);
+  @override
+  _i17.Future<String> getCommitDiff(
+    _i10.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommitDiff,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i17.Future<String>.value(''),
+      ) as _i17.Future<String>);
+  @override
+  _i17.Future<_i10.GitHubComparison> compareCommits(
+    _i10.RepositorySlug? slug,
+    String? refBase,
+    String? refHead,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #compareCommits,
+          [
+            slug,
+            refBase,
+            refHead,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.GitHubComparison>.value(_FakeGitHubComparison_62(
+          this,
+          Invocation.method(
+            #compareCommits,
+            [
+              slug,
+              refBase,
+              refHead,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.GitHubComparison>);
+  @override
+  _i17.Future<_i10.GitHubFile> getReadme(
+    _i10.RepositorySlug? slug, {
+    String? ref,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReadme,
+          [slug],
+          {#ref: ref},
+        ),
+        returnValue: _i17.Future<_i10.GitHubFile>.value(_FakeGitHubFile_63(
+          this,
+          Invocation.method(
+            #getReadme,
+            [slug],
+            {#ref: ref},
+          ),
+        )),
+      ) as _i17.Future<_i10.GitHubFile>);
+  @override
+  _i17.Future<_i10.RepositoryContents> getContents(
+    _i10.RepositorySlug? slug,
+    String? path, {
+    String? ref,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getContents,
+          [
+            slug,
+            path,
+          ],
+          {#ref: ref},
+        ),
+        returnValue: _i17.Future<_i10.RepositoryContents>.value(_FakeRepositoryContents_64(
+          this,
+          Invocation.method(
+            #getContents,
+            [
+              slug,
+              path,
+            ],
+            {#ref: ref},
+          ),
+        )),
+      ) as _i17.Future<_i10.RepositoryContents>);
+  @override
+  _i17.Future<_i10.ContentCreation> createFile(
+    _i10.RepositorySlug? slug,
+    _i10.CreateFile? file,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createFile,
+          [
+            slug,
+            file,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65(
+          this,
+          Invocation.method(
+            #createFile,
+            [
+              slug,
+              file,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.ContentCreation>);
+  @override
+  _i17.Future<_i10.ContentCreation> updateFile(
+    _i10.RepositorySlug? slug,
+    String? path,
+    String? message,
+    String? content,
+    String? sha, {
+    String? branch,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #updateFile,
+          [
+            slug,
+            path,
+            message,
+            content,
+            sha,
+          ],
+          {#branch: branch},
+        ),
+        returnValue: _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65(
+          this,
+          Invocation.method(
+            #updateFile,
+            [
+              slug,
+              path,
+              message,
+              content,
+              sha,
+            ],
+            {#branch: branch},
+          ),
+        )),
+      ) as _i17.Future<_i10.ContentCreation>);
+  @override
+  _i17.Future<_i10.ContentCreation> deleteFile(
+    _i10.RepositorySlug? slug,
+    String? path,
+    String? message,
+    String? sha,
+    String? branch,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteFile,
+          [
+            slug,
+            path,
+            message,
+            sha,
+            branch,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.ContentCreation>.value(_FakeContentCreation_65(
+          this,
+          Invocation.method(
+            #deleteFile,
+            [
+              slug,
+              path,
+              message,
+              sha,
+              branch,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.ContentCreation>);
+  @override
+  _i17.Future<String?> getArchiveLink(
+    _i10.RepositorySlug? slug,
+    String? ref, {
+    String? format = r'tarball',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getArchiveLink,
+          [
+            slug,
+            ref,
+          ],
+          {#format: format},
+        ),
+        returnValue: _i17.Future<String?>.value(),
+      ) as _i17.Future<String?>);
+  @override
+  _i17.Stream<_i10.Repository> listForks(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listForks,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Repository>.empty(),
+      ) as _i17.Stream<_i10.Repository>);
+  @override
+  _i17.Future<_i10.Repository> createFork(
+    _i10.RepositorySlug? slug, [
+    _i10.CreateFork? fork,
+  ]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createFork,
+          [
+            slug,
+            fork,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Repository>.value(_FakeRepository_56(
+          this,
+          Invocation.method(
+            #createFork,
+            [
+              slug,
+              fork,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Repository>);
+  @override
+  _i17.Stream<_i10.Hook> listHooks(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listHooks,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Hook>.empty(),
+      ) as _i17.Stream<_i10.Hook>);
+  @override
+  _i17.Future<_i10.Hook> getHook(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Hook>.value(_FakeHook_66(
+          this,
+          Invocation.method(
+            #getHook,
+            [
+              slug,
+              id,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Hook>);
+  @override
+  _i17.Future<_i10.Hook> createHook(
+    _i10.RepositorySlug? slug,
+    _i10.CreateHook? hook,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createHook,
+          [
+            slug,
+            hook,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Hook>.value(_FakeHook_66(
+          this,
+          Invocation.method(
+            #createHook,
+            [
+              slug,
+              hook,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Hook>);
+  @override
+  _i17.Future<_i10.Hook> editHook(
+    _i10.RepositorySlug? slug,
+    _i10.Hook? hookToEdit, {
+    String? configUrl,
+    String? configContentType,
+    String? configSecret,
+    bool? configInsecureSsl,
+    List<String>? events,
+    List<String>? addEvents,
+    List<String>? removeEvents,
+    bool? active,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editHook,
+          [
+            slug,
+            hookToEdit,
+          ],
+          {
+            #configUrl: configUrl,
+            #configContentType: configContentType,
+            #configSecret: configSecret,
+            #configInsecureSsl: configInsecureSsl,
+            #events: events,
+            #addEvents: addEvents,
+            #removeEvents: removeEvents,
+            #active: active,
+          },
+        ),
+        returnValue: _i17.Future<_i10.Hook>.value(_FakeHook_66(
+          this,
+          Invocation.method(
+            #editHook,
+            [
+              slug,
+              hookToEdit,
+            ],
+            {
+              #configUrl: configUrl,
+              #configContentType: configContentType,
+              #configSecret: configSecret,
+              #configInsecureSsl: configInsecureSsl,
+              #events: events,
+              #addEvents: addEvents,
+              #removeEvents: removeEvents,
+              #active: active,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.Hook>);
+  @override
+  _i17.Future<bool> testPushHook(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #testPushHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> pingHook(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #pingHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> deleteHook(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.PublicKey> listDeployKeys(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listDeployKeys,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.PublicKey>.empty(),
+      ) as _i17.Stream<_i10.PublicKey>);
+  @override
+  _i17.Future<_i10.PublicKey> getDeployKey(
+    _i10.RepositorySlug? slug, {
+    required int? id,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getDeployKey,
+          [slug],
+          {#id: id},
+        ),
+        returnValue: _i17.Future<_i10.PublicKey>.value(_FakePublicKey_67(
+          this,
+          Invocation.method(
+            #getDeployKey,
+            [slug],
+            {#id: id},
+          ),
+        )),
+      ) as _i17.Future<_i10.PublicKey>);
+  @override
+  _i17.Future<_i10.PublicKey> createDeployKey(
+    _i10.RepositorySlug? slug,
+    _i10.CreatePublicKey? key,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createDeployKey,
+          [
+            slug,
+            key,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.PublicKey>.value(_FakePublicKey_67(
+          this,
+          Invocation.method(
+            #createDeployKey,
+            [
+              slug,
+              key,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.PublicKey>);
+  @override
+  _i17.Future<bool> deleteDeployKey({
+    required _i10.RepositorySlug? slug,
+    required _i10.PublicKey? key,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteDeployKey,
+          [],
+          {
+            #slug: slug,
+            #key: key,
+          },
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<_i10.RepositoryCommit> merge(
+    _i10.RepositorySlug? slug,
+    _i10.CreateMerge? merge,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #merge,
+          [
+            slug,
+            merge,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.RepositoryCommit>.value(_FakeRepositoryCommit_61(
+          this,
+          Invocation.method(
+            #merge,
+            [
+              slug,
+              merge,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.RepositoryCommit>);
+  @override
+  _i17.Future<_i10.RepositoryPages> getPagesInfo(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getPagesInfo,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.RepositoryPages>.value(_FakeRepositoryPages_68(
+          this,
+          Invocation.method(
+            #getPagesInfo,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.RepositoryPages>);
+  @override
+  _i17.Stream<_i10.PageBuild> listPagesBuilds(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listPagesBuilds,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.PageBuild>.empty(),
+      ) as _i17.Stream<_i10.PageBuild>);
+  @override
+  _i17.Future<_i10.PageBuild> getLatestPagesBuild(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getLatestPagesBuild,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.PageBuild>.value(_FakePageBuild_69(
+          this,
+          Invocation.method(
+            #getLatestPagesBuild,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.PageBuild>);
+  @override
+  _i17.Stream<_i10.Release> listReleases(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listReleases,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.Release>.empty(),
+      ) as _i17.Stream<_i10.Release>);
+  @override
+  _i17.Future<_i10.Release> getLatestRelease(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getLatestRelease,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.Release>.value(_FakeRelease_70(
+          this,
+          Invocation.method(
+            #getLatestRelease,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.Release>);
+  @override
+  _i17.Future<_i10.Release> getReleaseById(
+    _i10.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseById,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Release>.value(_FakeRelease_70(
+          this,
+          Invocation.method(
+            #getReleaseById,
+            [
+              slug,
+              id,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Release>);
+  @override
+  _i17.Future<_i10.Release> getReleaseByTagName(
+    _i10.RepositorySlug? slug,
+    String? tagName,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseByTagName,
+          [
+            slug,
+            tagName,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.Release>.value(_FakeRelease_70(
+          this,
+          Invocation.method(
+            #getReleaseByTagName,
+            [
+              slug,
+              tagName,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.Release>);
+  @override
+  _i17.Future<_i10.Release> createRelease(
+    _i10.RepositorySlug? slug,
+    _i10.CreateRelease? createRelease, {
+    bool? getIfExists = true,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createRelease,
+          [
+            slug,
+            createRelease,
+          ],
+          {#getIfExists: getIfExists},
+        ),
+        returnValue: _i17.Future<_i10.Release>.value(_FakeRelease_70(
+          this,
+          Invocation.method(
+            #createRelease,
+            [
+              slug,
+              createRelease,
+            ],
+            {#getIfExists: getIfExists},
+          ),
+        )),
+      ) as _i17.Future<_i10.Release>);
+  @override
+  _i17.Future<_i10.Release> editRelease(
+    _i10.RepositorySlug? slug,
+    _i10.Release? releaseToEdit, {
+    String? tagName,
+    String? targetCommitish,
+    String? name,
+    String? body,
+    bool? draft,
+    bool? preRelease,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editRelease,
+          [
+            slug,
+            releaseToEdit,
+          ],
+          {
+            #tagName: tagName,
+            #targetCommitish: targetCommitish,
+            #name: name,
+            #body: body,
+            #draft: draft,
+            #preRelease: preRelease,
+          },
+        ),
+        returnValue: _i17.Future<_i10.Release>.value(_FakeRelease_70(
+          this,
+          Invocation.method(
+            #editRelease,
+            [
+              slug,
+              releaseToEdit,
+            ],
+            {
+              #tagName: tagName,
+              #targetCommitish: targetCommitish,
+              #name: name,
+              #body: body,
+              #draft: draft,
+              #preRelease: preRelease,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.Release>);
+  @override
+  _i17.Future<bool> deleteRelease(
+    _i10.RepositorySlug? slug,
+    _i10.Release? release,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteRelease,
+          [
+            slug,
+            release,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.ReleaseAsset> listReleaseAssets(
+    _i10.RepositorySlug? slug,
+    _i10.Release? release,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listReleaseAssets,
+          [
+            slug,
+            release,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.ReleaseAsset>.empty(),
+      ) as _i17.Stream<_i10.ReleaseAsset>);
+  @override
+  _i17.Future<_i10.ReleaseAsset> getReleaseAsset(
+    _i10.RepositorySlug? slug,
+    _i10.Release? release, {
+    required int? assetId,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseAsset,
+          [
+            slug,
+            release,
+          ],
+          {#assetId: assetId},
+        ),
+        returnValue: _i17.Future<_i10.ReleaseAsset>.value(_FakeReleaseAsset_71(
+          this,
+          Invocation.method(
+            #getReleaseAsset,
+            [
+              slug,
+              release,
+            ],
+            {#assetId: assetId},
+          ),
+        )),
+      ) as _i17.Future<_i10.ReleaseAsset>);
+  @override
+  _i17.Future<_i10.ReleaseAsset> editReleaseAsset(
+    _i10.RepositorySlug? slug,
+    _i10.ReleaseAsset? assetToEdit, {
+    String? name,
+    String? label,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editReleaseAsset,
+          [
+            slug,
+            assetToEdit,
+          ],
+          {
+            #name: name,
+            #label: label,
+          },
+        ),
+        returnValue: _i17.Future<_i10.ReleaseAsset>.value(_FakeReleaseAsset_71(
+          this,
+          Invocation.method(
+            #editReleaseAsset,
+            [
+              slug,
+              assetToEdit,
+            ],
+            {
+              #name: name,
+              #label: label,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.ReleaseAsset>);
+  @override
+  _i17.Future<bool> deleteReleaseAsset(
+    _i10.RepositorySlug? slug,
+    _i10.ReleaseAsset? asset,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteReleaseAsset,
+          [
+            slug,
+            asset,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<List<_i10.ReleaseAsset>> uploadReleaseAssets(
+    _i10.Release? release,
+    Iterable<_i10.CreateReleaseAsset>? createReleaseAssets,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #uploadReleaseAssets,
+          [
+            release,
+            createReleaseAssets,
+          ],
+        ),
+        returnValue: _i17.Future<List<_i10.ReleaseAsset>>.value(<_i10.ReleaseAsset>[]),
+      ) as _i17.Future<List<_i10.ReleaseAsset>>);
+  @override
+  _i17.Future<List<_i10.ContributorStatistics>> listContributorStats(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listContributorStats,
+          [slug],
+        ),
+        returnValue: _i17.Future<List<_i10.ContributorStatistics>>.value(<_i10.ContributorStatistics>[]),
+      ) as _i17.Future<List<_i10.ContributorStatistics>>);
+  @override
+  _i17.Stream<_i10.YearCommitCountWeek> listCommitActivity(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommitActivity,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.YearCommitCountWeek>.empty(),
+      ) as _i17.Stream<_i10.YearCommitCountWeek>);
+  @override
+  _i17.Stream<_i10.WeeklyChangesCount> listCodeFrequency(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCodeFrequency,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.WeeklyChangesCount>.empty(),
+      ) as _i17.Stream<_i10.WeeklyChangesCount>);
+  @override
+  _i17.Future<_i10.ContributorParticipation> getParticipation(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getParticipation,
+          [slug],
+        ),
+        returnValue: _i17.Future<_i10.ContributorParticipation>.value(_FakeContributorParticipation_72(
+          this,
+          Invocation.method(
+            #getParticipation,
+            [slug],
+          ),
+        )),
+      ) as _i17.Future<_i10.ContributorParticipation>);
+  @override
+  _i17.Stream<_i10.PunchcardEntry> listPunchcard(_i10.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listPunchcard,
+          [slug],
+        ),
+        returnValue: _i17.Stream<_i10.PunchcardEntry>.empty(),
+      ) as _i17.Stream<_i10.PunchcardEntry>);
+  @override
+  _i17.Stream<_i10.RepositoryStatus> listStatuses(
+    _i10.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listStatuses,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i17.Stream<_i10.RepositoryStatus>.empty(),
+      ) as _i17.Stream<_i10.RepositoryStatus>);
+  @override
+  _i17.Future<_i10.RepositoryStatus> createStatus(
+    _i10.RepositorySlug? slug,
+    String? ref,
+    _i10.CreateStatus? request,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createStatus,
+          [
+            slug,
+            ref,
+            request,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.RepositoryStatus>.value(_FakeRepositoryStatus_73(
+          this,
+          Invocation.method(
+            #createStatus,
+            [
+              slug,
+              ref,
+              request,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.RepositoryStatus>);
+  @override
+  _i17.Future<_i10.CombinedRepositoryStatus> getCombinedStatus(
+    _i10.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCombinedStatus,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i17.Future<_i10.CombinedRepositoryStatus>.value(_FakeCombinedRepositoryStatus_74(
+          this,
+          Invocation.method(
+            #getCombinedStatus,
+            [
+              slug,
+              ref,
+            ],
+          ),
+        )),
+      ) as _i17.Future<_i10.CombinedRepositoryStatus>);
+  @override
+  _i17.Future<_i10.ReleaseNotes> generateReleaseNotes(_i10.CreateReleaseNotes? crn) => (super.noSuchMethod(
+        Invocation.method(
+          #generateReleaseNotes,
+          [crn],
+        ),
+        returnValue: _i17.Future<_i10.ReleaseNotes>.value(_FakeReleaseNotes_75(
+          this,
+          Invocation.method(
+            #generateReleaseNotes,
+            [crn],
+          ),
+        )),
+      ) as _i17.Future<_i10.ReleaseNotes>);
+}
+
+/// A class which mocks [TabledataResource].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockTabledataResource extends _i1.Mock implements _i6.TabledataResource {
+  MockTabledataResource() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i17.Future<_i6.TableDataInsertAllResponse> insertAll(
+    _i6.TableDataInsertAllRequest? request,
+    String? projectId,
+    String? datasetId,
+    String? tableId, {
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #insertAll,
+          [
+            request,
+            projectId,
+            datasetId,
+            tableId,
+          ],
+          {#$fields: $fields},
+        ),
+        returnValue: _i17.Future<_i6.TableDataInsertAllResponse>.value(_FakeTableDataInsertAllResponse_76(
+          this,
+          Invocation.method(
+            #insertAll,
+            [
+              request,
+              projectId,
+              datasetId,
+              tableId,
+            ],
+            {#$fields: $fields},
+          ),
+        )),
+      ) as _i17.Future<_i6.TableDataInsertAllResponse>);
+  @override
+  _i17.Future<_i6.TableDataList> list(
+    String? projectId,
+    String? datasetId,
+    String? tableId, {
+    int? maxResults,
+    String? pageToken,
+    String? selectedFields,
+    String? startIndex,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #list,
+          [
+            projectId,
+            datasetId,
+            tableId,
+          ],
+          {
+            #maxResults: maxResults,
+            #pageToken: pageToken,
+            #selectedFields: selectedFields,
+            #startIndex: startIndex,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i17.Future<_i6.TableDataList>.value(_FakeTableDataList_77(
+          this,
+          Invocation.method(
+            #list,
+            [
+              projectId,
+              datasetId,
+              tableId,
+            ],
+            {
+              #maxResults: maxResults,
+              #pageToken: pageToken,
+              #selectedFields: selectedFields,
+              #startIndex: startIndex,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i6.TableDataList>);
+}
+
+/// A class which mocks [UsersService].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockUsersService extends _i1.Mock implements _i10.UsersService {
+  MockUsersService() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i10.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_12(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i10.GitHub);
+  @override
+  _i17.Future<_i10.User> getUser(String? name) => (super.noSuchMethod(
+        Invocation.method(
+          #getUser,
+          [name],
+        ),
+        returnValue: _i17.Future<_i10.User>.value(_FakeUser_78(
+          this,
+          Invocation.method(
+            #getUser,
+            [name],
+          ),
+        )),
+      ) as _i17.Future<_i10.User>);
+  @override
+  _i17.Future<_i10.CurrentUser> editCurrentUser({
+    String? name,
+    String? email,
+    String? blog,
+    String? company,
+    String? location,
+    bool? hireable,
+    String? bio,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editCurrentUser,
+          [],
+          {
+            #name: name,
+            #email: email,
+            #blog: blog,
+            #company: company,
+            #location: location,
+            #hireable: hireable,
+            #bio: bio,
+          },
+        ),
+        returnValue: _i17.Future<_i10.CurrentUser>.value(_FakeCurrentUser_79(
+          this,
+          Invocation.method(
+            #editCurrentUser,
+            [],
+            {
+              #name: name,
+              #email: email,
+              #blog: blog,
+              #company: company,
+              #location: location,
+              #hireable: hireable,
+              #bio: bio,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i10.CurrentUser>);
+  @override
+  _i17.Stream<_i10.User> getUsers(
+    List<String>? names, {
+    int? pages,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getUsers,
+          [names],
+          {#pages: pages},
+        ),
+        returnValue: _i17.Stream<_i10.User>.empty(),
+      ) as _i17.Stream<_i10.User>);
+  @override
+  _i17.Future<_i10.CurrentUser> getCurrentUser() => (super.noSuchMethod(
+        Invocation.method(
+          #getCurrentUser,
+          [],
+        ),
+        returnValue: _i17.Future<_i10.CurrentUser>.value(_FakeCurrentUser_79(
+          this,
+          Invocation.method(
+            #getCurrentUser,
+            [],
+          ),
+        )),
+      ) as _i17.Future<_i10.CurrentUser>);
+  @override
+  _i17.Future<bool> isUser(String? name) => (super.noSuchMethod(
+        Invocation.method(
+          #isUser,
+          [name],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.User> listUsers({
+    int? pages,
+    int? since,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listUsers,
+          [],
+          {
+            #pages: pages,
+            #since: since,
+          },
+        ),
+        returnValue: _i17.Stream<_i10.User>.empty(),
+      ) as _i17.Stream<_i10.User>);
+  @override
+  _i17.Stream<_i10.UserEmail> listEmails() => (super.noSuchMethod(
+        Invocation.method(
+          #listEmails,
+          [],
+        ),
+        returnValue: _i17.Stream<_i10.UserEmail>.empty(),
+      ) as _i17.Stream<_i10.UserEmail>);
+  @override
+  _i17.Stream<_i10.UserEmail> addEmails(List<String>? emails) => (super.noSuchMethod(
+        Invocation.method(
+          #addEmails,
+          [emails],
+        ),
+        returnValue: _i17.Stream<_i10.UserEmail>.empty(),
+      ) as _i17.Stream<_i10.UserEmail>);
+  @override
+  _i17.Future<bool> deleteEmails(List<String>? emails) => (super.noSuchMethod(
+        Invocation.method(
+          #deleteEmails,
+          [emails],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.User> listUserFollowers(String? user) => (super.noSuchMethod(
+        Invocation.method(
+          #listUserFollowers,
+          [user],
+        ),
+        returnValue: _i17.Stream<_i10.User>.empty(),
+      ) as _i17.Stream<_i10.User>);
+  @override
+  _i17.Future<bool> isFollowingUser(String? user) => (super.noSuchMethod(
+        Invocation.method(
+          #isFollowingUser,
+          [user],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> isUserFollowing(
+    String? user,
+    String? target,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #isUserFollowing,
+          [
+            user,
+            target,
+          ],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> followUser(String? user) => (super.noSuchMethod(
+        Invocation.method(
+          #followUser,
+          [user],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Future<bool> unfollowUser(String? user) => (super.noSuchMethod(
+        Invocation.method(
+          #unfollowUser,
+          [user],
+        ),
+        returnValue: _i17.Future<bool>.value(false),
+      ) as _i17.Future<bool>);
+  @override
+  _i17.Stream<_i10.User> listCurrentUserFollowers() => (super.noSuchMethod(
+        Invocation.method(
+          #listCurrentUserFollowers,
+          [],
+        ),
+        returnValue: _i17.Stream<_i10.User>.empty(),
+      ) as _i17.Stream<_i10.User>);
+  @override
+  _i17.Stream<_i10.User> listCurrentUserFollowing() => (super.noSuchMethod(
+        Invocation.method(
+          #listCurrentUserFollowing,
+          [],
+        ),
+        returnValue: _i17.Stream<_i10.User>.empty(),
+      ) as _i17.Stream<_i10.User>);
+  @override
+  _i17.Stream<_i10.PublicKey> listPublicKeys([String? userLogin]) => (super.noSuchMethod(
+        Invocation.method(
+          #listPublicKeys,
+          [userLogin],
+        ),
+        returnValue: _i17.Stream<_i10.PublicKey>.empty(),
+      ) as _i17.Stream<_i10.PublicKey>);
+  @override
+  _i17.Future<_i10.PublicKey> createPublicKey(_i10.CreatePublicKey? key) => (super.noSuchMethod(
+        Invocation.method(
+          #createPublicKey,
+          [key],
+        ),
+        returnValue: _i17.Future<_i10.PublicKey>.value(_FakePublicKey_67(
+          this,
+          Invocation.method(
+            #createPublicKey,
+            [key],
+          ),
+        )),
+      ) as _i17.Future<_i10.PublicKey>);
+}
+
+/// A class which mocks [Cache].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockCache extends _i1.Mock implements _i20.Cache<_i27.Uint8List> {
+  MockCache() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  _i20.Entry<_i27.Uint8List> operator [](String? key) => (super.noSuchMethod(
+        Invocation.method(
+          #[],
+          [key],
+        ),
+        returnValue: _FakeEntry_80<_i27.Uint8List>(
+          this,
+          Invocation.method(
+            #[],
+            [key],
+          ),
+        ),
+      ) as _i20.Entry<_i27.Uint8List>);
+  @override
+  _i20.Cache<_i27.Uint8List> withPrefix(String? prefix) => (super.noSuchMethod(
+        Invocation.method(
+          #withPrefix,
+          [prefix],
+        ),
+        returnValue: _FakeCache_81<_i27.Uint8List>(
+          this,
+          Invocation.method(
+            #withPrefix,
+            [prefix],
+          ),
+        ),
+      ) as _i20.Cache<_i27.Uint8List>);
+  @override
+  _i20.Cache<S> withCodec<S>(_i16.Codec<S, _i27.Uint8List>? codec) => (super.noSuchMethod(
+        Invocation.method(
+          #withCodec,
+          [codec],
+        ),
+        returnValue: _FakeCache_81<S>(
+          this,
+          Invocation.method(
+            #withCodec,
+            [codec],
+          ),
+        ),
+      ) as _i20.Cache<S>);
+  @override
+  _i20.Cache<_i27.Uint8List> withTTL(Duration? ttl) => (super.noSuchMethod(
+        Invocation.method(
+          #withTTL,
+          [ttl],
+        ),
+        returnValue: _FakeCache_81<_i27.Uint8List>(
+          this,
+          Invocation.method(
+            #withTTL,
+            [ttl],
+          ),
+        ),
+      ) as _i20.Cache<_i27.Uint8List>);
+}
+
+/// A class which mocks [GitHub].
+///
+/// See the documentation for Mockito's code generation for more information.
+class MockGitHub extends _i1.Mock implements _i10.GitHub {
+  MockGitHub() {
+    _i1.throwOnMissingStub(this);
+  }
+
+  @override
+  set auth(_i10.Authentication? _auth) => super.noSuchMethod(
+        Invocation.setter(
+          #auth,
+          _auth,
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  String get endpoint => (super.noSuchMethod(
+        Invocation.getter(#endpoint),
+        returnValue: '',
+      ) as String);
+  @override
+  _i2.Client get client => (super.noSuchMethod(
+        Invocation.getter(#client),
+        returnValue: _FakeClient_0(
+          this,
+          Invocation.getter(#client),
+        ),
+      ) as _i2.Client);
+  @override
+  _i10.ActivityService get activity => (super.noSuchMethod(
+        Invocation.getter(#activity),
+        returnValue: _FakeActivityService_82(
+          this,
+          Invocation.getter(#activity),
+        ),
+      ) as _i10.ActivityService);
+  @override
+  _i10.AuthorizationsService get authorizations => (super.noSuchMethod(
+        Invocation.getter(#authorizations),
+        returnValue: _FakeAuthorizationsService_83(
+          this,
+          Invocation.getter(#authorizations),
+        ),
+      ) as _i10.AuthorizationsService);
+  @override
+  _i10.GistsService get gists => (super.noSuchMethod(
+        Invocation.getter(#gists),
+        returnValue: _FakeGistsService_84(
+          this,
+          Invocation.getter(#gists),
+        ),
+      ) as _i10.GistsService);
+  @override
+  _i10.GitService get git => (super.noSuchMethod(
+        Invocation.getter(#git),
+        returnValue: _FakeGitService_85(
+          this,
+          Invocation.getter(#git),
+        ),
+      ) as _i10.GitService);
+  @override
+  _i10.IssuesService get issues => (super.noSuchMethod(
+        Invocation.getter(#issues),
+        returnValue: _FakeIssuesService_86(
+          this,
+          Invocation.getter(#issues),
+        ),
+      ) as _i10.IssuesService);
+  @override
+  _i10.MiscService get misc => (super.noSuchMethod(
+        Invocation.getter(#misc),
+        returnValue: _FakeMiscService_87(
+          this,
+          Invocation.getter(#misc),
+        ),
+      ) as _i10.MiscService);
+  @override
+  _i10.OrganizationsService get organizations => (super.noSuchMethod(
+        Invocation.getter(#organizations),
+        returnValue: _FakeOrganizationsService_88(
+          this,
+          Invocation.getter(#organizations),
+        ),
+      ) as _i10.OrganizationsService);
+  @override
+  _i10.PullRequestsService get pullRequests => (super.noSuchMethod(
+        Invocation.getter(#pullRequests),
+        returnValue: _FakePullRequestsService_89(
+          this,
+          Invocation.getter(#pullRequests),
+        ),
+      ) as _i10.PullRequestsService);
+  @override
+  _i10.RepositoriesService get repositories => (super.noSuchMethod(
+        Invocation.getter(#repositories),
+        returnValue: _FakeRepositoriesService_90(
+          this,
+          Invocation.getter(#repositories),
+        ),
+      ) as _i10.RepositoriesService);
+  @override
+  _i10.SearchService get search => (super.noSuchMethod(
+        Invocation.getter(#search),
+        returnValue: _FakeSearchService_91(
+          this,
+          Invocation.getter(#search),
+        ),
+      ) as _i10.SearchService);
+  @override
+  _i10.UrlShortenerService get urlShortener => (super.noSuchMethod(
+        Invocation.getter(#urlShortener),
+        returnValue: _FakeUrlShortenerService_92(
+          this,
+          Invocation.getter(#urlShortener),
+        ),
+      ) as _i10.UrlShortenerService);
+  @override
+  _i10.UsersService get users => (super.noSuchMethod(
+        Invocation.getter(#users),
+        returnValue: _FakeUsersService_93(
+          this,
+          Invocation.getter(#users),
+        ),
+      ) as _i10.UsersService);
+  @override
+  _i10.ChecksService get checks => (super.noSuchMethod(
+        Invocation.getter(#checks),
+        returnValue: _FakeChecksService_94(
+          this,
+          Invocation.getter(#checks),
+        ),
+      ) as _i10.ChecksService);
+  @override
+  _i17.Future<T> getJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, String>? params,
+    _i10.JSONConverter<S, T>? convert,
+    String? preview,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getJSON,
+          [path],
+          {
+            #statusCode: statusCode,
+            #fail: fail,
+            #headers: headers,
+            #params: params,
+            #convert: convert,
+            #preview: preview,
+          },
+        ),
+        returnValue: _i17.Future<T>.value(null),
+      ) as _i17.Future<T>);
+  @override
+  _i17.Future<T> postJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i10.JSONConverter<S, T>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #postJSON,
+          [path],
+          {
+            #statusCode: statusCode,
+            #fail: fail,
+            #headers: headers,
+            #params: params,
+            #convert: convert,
+            #body: body,
+            #preview: preview,
+          },
+        ),
+        returnValue: _i39.postJsonShim<S, T>(
+          path,
+          statusCode: statusCode,
+          fail: fail,
+          headers: headers,
+          params: params,
+          convert: convert,
+          body: body,
+          preview: preview,
+        ),
+      ) as _i17.Future<T>);
+  @override
+  _i17.Future<T> putJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i10.JSONConverter<S, T>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #putJSON,
+          [path],
+          {
+            #statusCode: statusCode,
+            #fail: fail,
+            #headers: headers,
+            #params: params,
+            #convert: convert,
+            #body: body,
+            #preview: preview,
+          },
+        ),
+        returnValue: _i17.Future<T>.value(null),
+      ) as _i17.Future<T>);
+  @override
+  _i17.Future<T> patchJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i10.JSONConverter<S, T>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #patchJSON,
+          [path],
+          {
+            #statusCode: statusCode,
+            #fail: fail,
+            #headers: headers,
+            #params: params,
+            #convert: convert,
+            #body: body,
+            #preview: preview,
+          },
+        ),
+        returnValue: _i17.Future<T>.value(null),
+      ) as _i17.Future<T>);
+  @override
+  _i17.Future<T> requestJson<S, T>(
+    String? method,
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i10.JSONConverter<S, T?>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #requestJson,
+          [
+            method,
+            path,
+          ],
+          {
+            #statusCode: statusCode,
+            #fail: fail,
+            #headers: headers,
+            #params: params,
+            #convert: convert,
+            #body: body,
+            #preview: preview,
+          },
+        ),
+        returnValue: _i17.Future<T>.value(null),
+      ) as _i17.Future<T>);
+  @override
+  _i17.Future<_i2.Response> request(
+    String? method,
+    String? path, {
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    dynamic body,
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    String? preview,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #request,
+          [
+            method,
+            path,
+          ],
+          {
+            #headers: headers,
+            #params: params,
+            #body: body,
+            #statusCode: statusCode,
+            #fail: fail,
+            #preview: preview,
+          },
+        ),
+        returnValue: _i17.Future<_i2.Response>.value(_FakeResponse_95(
+          this,
+          Invocation.method(
+            #request,
+            [
+              method,
+              path,
+            ],
+            {
+              #headers: headers,
+              #params: params,
+              #body: body,
+              #statusCode: statusCode,
+              #fail: fail,
+              #preview: preview,
+            },
+          ),
+        )),
+      ) as _i17.Future<_i2.Response>);
+  @override
+  void handleStatusCode(_i2.Response? response) => super.noSuchMethod(
+        Invocation.method(
+          #handleStatusCode,
+          [response],
+        ),
+        returnValueForMissingStub: null,
+      );
+  @override
+  void dispose() => super.noSuchMethod(
+        Invocation.method(
+          #dispose,
+          [],
+        ),
+        returnValueForMissingStub: null,
+      );
+}
diff --git a/auto_submit/pubspec.lock b/auto_submit/pubspec.lock
index b43a22c..4a0d4ec 100644
--- a/auto_submit/pubspec.lock
+++ b/auto_submit/pubspec.lock
@@ -5,694 +5,793 @@
     dependency: transitive
     description:
       name: _discoveryapis_commons
-      url: "https://pub.dartlang.org"
+      sha256: "50d83f715747fd9f41bcdc87eec93fa300c63dd9ca16bb884bbe7864a2a547bd"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.3"
   _fe_analyzer_shared:
     dependency: transitive
     description:
       name: _fe_analyzer_shared
-      url: "https://pub.dartlang.org"
+      sha256: d976d24314f193899a3079b14fe336215a63a3b1e1c3743eabba8f83e049e9a9
+      url: "https://pub.dev"
     source: hosted
-    version: "47.0.0"
+    version: "49.0.0"
   analyzer:
     dependency: transitive
     description:
       name: analyzer
-      url: "https://pub.dartlang.org"
+      sha256: "40ba2c6d2ab41a66476f8f1f099da6be0795c1b47221f5e2c5f8ad6048cdffae"
+      url: "https://pub.dev"
     source: hosted
-    version: "4.7.0"
+    version: "5.1.0"
   appengine:
     dependency: "direct main"
     description:
       name: appengine
-      url: "https://pub.dartlang.org"
+      sha256: "3e2a0fbfa16d9312f5a8bcb3f984851ada01b99d1bcea951a90f7ab957fcbb25"
+      url: "https://pub.dev"
     source: hosted
     version: "0.13.2"
   archive:
     dependency: transitive
     description:
       name: archive
-      url: "https://pub.dartlang.org"
+      sha256: "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb"
+      url: "https://pub.dev"
     source: hosted
-    version: "3.3.1"
+    version: "3.3.2"
   args:
     dependency: transitive
     description:
       name: args
-      url: "https://pub.dartlang.org"
+      sha256: b003c3098049a51720352d219b0bb5f219b60fbfb68e7a4748139a06a5676515
+      url: "https://pub.dev"
     source: hosted
     version: "2.3.1"
   asn1lib:
     dependency: transitive
     description:
       name: asn1lib
-      url: "https://pub.dartlang.org"
+      sha256: "6f331278f2dd6d317539cb875e3ea937a5b8a225afbd7d726846f34bc8b6e75c"
+      url: "https://pub.dev"
     source: hosted
-    version: "1.1.0"
+    version: "1.2.1"
   async:
     dependency: transitive
     description:
       name: async
-      url: "https://pub.dartlang.org"
+      sha256: "271b8899fc99f9df4f4ed419fa14e2fff392c7b2c162fbb87b222e2e963ddc73"
+      url: "https://pub.dev"
     source: hosted
     version: "2.9.0"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
-      url: "https://pub.dartlang.org"
+      sha256: "5bbf32bc9e518d41ec49718e2931cd4527292c9b0c6d2dffcf7fe6b9a8a8cf72"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   build:
     dependency: transitive
     description:
       name: build
-      url: "https://pub.dartlang.org"
+      sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.3.0"
+    version: "2.3.1"
   build_config:
     dependency: transitive
     description:
       name: build_config
-      url: "https://pub.dartlang.org"
+      sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
+      url: "https://pub.dev"
     source: hosted
-    version: "1.1.0"
+    version: "1.1.1"
   build_daemon:
     dependency: transitive
     description:
       name: build_daemon
-      url: "https://pub.dartlang.org"
+      sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.0"
   build_resolvers:
     dependency: transitive
     description:
       name: build_resolvers
-      url: "https://pub.dartlang.org"
+      sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.0.9"
+    version: "2.0.10"
   build_runner:
     dependency: "direct dev"
     description:
       name: build_runner
-      url: "https://pub.dartlang.org"
+      sha256: "6f48c61a9dcd2c3a9e62d3dcdab1ba382790e2f31026288cbabe55d6003c9c23"
+      url: "https://pub.dev"
     source: hosted
     version: "2.3.2"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
-      url: "https://pub.dartlang.org"
+      sha256: "597a55d780766b10e02595b57b933a597cfbfa08c1bb0f5edfe826d34af1d818"
+      url: "https://pub.dev"
     source: hosted
-    version: "7.2.3"
+    version: "7.2.6"
   built_collection:
     dependency: transitive
     description:
       name: built_collection
-      url: "https://pub.dartlang.org"
+      sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
+      url: "https://pub.dev"
     source: hosted
     version: "5.1.1"
   built_value:
     dependency: transitive
     description:
       name: built_value
-      url: "https://pub.dartlang.org"
+      sha256: d7a9cd57c215bdf8d502772447aa6b52a8ab3f956d25d5fdea6ef1df2d2dad60
+      url: "https://pub.dev"
     source: hosted
     version: "8.4.1"
   checked_yaml:
     dependency: transitive
     description:
       name: checked_yaml
-      url: "https://pub.dartlang.org"
+      sha256: dd007e4fb8270916820a0d66e24f619266b60773cddd082c6439341645af2659
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   code_builder:
     dependency: transitive
     description:
       name: code_builder
-      url: "https://pub.dartlang.org"
+      sha256: "02ce3596b459c666530f045ad6f96209474e8fee6e4855940a3cee65fb872ec5"
+      url: "https://pub.dev"
     source: hosted
     version: "4.3.0"
   collection:
     dependency: transitive
     description:
       name: collection
-      url: "https://pub.dartlang.org"
+      sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
+      url: "https://pub.dev"
     source: hosted
-    version: "1.16.0"
+    version: "1.17.0"
   convert:
     dependency: transitive
     description:
       name: convert
-      url: "https://pub.dartlang.org"
+      sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
+      url: "https://pub.dev"
     source: hosted
-    version: "3.0.2"
+    version: "3.1.1"
   corsac_jwt:
     dependency: "direct main"
     description:
       name: corsac_jwt
-      url: "https://pub.dartlang.org"
+      sha256: f86d1a1ad7d4db5727ae5d68dfd4437cbcf62daabe920190fcd5425457f5f377
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.0-nullsafety.1"
   coverage:
     dependency: transitive
     description:
       name: coverage
-      url: "https://pub.dartlang.org"
+      sha256: d2494157c32b303f47dedee955b1479f2979c4ff66934eb7c0def44fd9e0267a
+      url: "https://pub.dev"
     source: hosted
-    version: "1.5.0"
+    version: "1.6.1"
   crypto:
     dependency: "direct main"
     description:
       name: crypto
-      url: "https://pub.dartlang.org"
+      sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.2"
   dart_style:
     dependency: transitive
     description:
       name: dart_style
-      url: "https://pub.dartlang.org"
+      sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.2.3"
+    version: "2.2.4"
   file:
     dependency: transitive
     description:
       name: file
-      url: "https://pub.dartlang.org"
+      sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+      url: "https://pub.dev"
     source: hosted
     version: "6.1.4"
   fixnum:
     dependency: transitive
     description:
       name: fixnum
-      url: "https://pub.dartlang.org"
+      sha256: "04be3e934c52e082558cc9ee21f42f5c1cd7a1262f4c63cd0357c08d5bba81ec"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.1"
   flutter_lints:
     dependency: "direct dev"
     description:
       name: flutter_lints
-      url: "https://pub.dartlang.org"
+      sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   frontend_server_client:
     dependency: transitive
     description:
       name: frontend_server_client
-      url: "https://pub.dartlang.org"
+      sha256: "82715f8041a85a534a7bf64400b2ee0bb3d594ccf695d97c0bb017259657ff5d"
+      url: "https://pub.dev"
     source: hosted
-    version: "3.0.0"
+    version: "3.1.0"
   gcloud:
     dependency: transitive
     description:
       name: gcloud
-      url: "https://pub.dartlang.org"
+      sha256: a8ba019d4be7d2a4347eeff5baeee7dacb4d6b4f9b27dc747d3b51831ba1a54d
+      url: "https://pub.dev"
     source: hosted
     version: "0.8.6"
   github:
     dependency: "direct main"
     description:
       name: github
-      url: "https://pub.dartlang.org"
+      sha256: "51b66773ac2c4276c4ecc2657a9997a5cb91da33adb20b6107b2ba76b3a829ba"
+      url: "https://pub.dev"
     source: hosted
     version: "9.4.0"
   glob:
     dependency: transitive
     description:
       name: glob
-      url: "https://pub.dartlang.org"
+      sha256: c51b4fdfee4d281f49b8c957f1add91b815473597f76bcf07377987f66a55729
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   googleapis:
     dependency: "direct main"
     description:
       name: googleapis
-      url: "https://pub.dartlang.org"
+      sha256: dfea9984f0785ed445ba78e2aa8c55dadd86d6a60ea9e0ffbadad51edb5e7e36
+      url: "https://pub.dev"
     source: hosted
     version: "9.2.0"
   googleapis_auth:
     dependency: "direct main"
     description:
       name: googleapis_auth
-      url: "https://pub.dartlang.org"
+      sha256: "127b1bbd32170ab8312f503bd57f1d654d8e4039ddfbc63c027d3f7ade0eff74"
+      url: "https://pub.dev"
     source: hosted
     version: "1.3.1"
   gql:
     dependency: "direct main"
     description:
       name: gql
-      url: "https://pub.dartlang.org"
+      sha256: "11fa39353e8a69ec9d3c32bd133054593129c99564be18461c1b3ce212966373"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.13.1"
+    version: "0.14.1-alpha+1661890990239"
   gql_dedupe_link:
     dependency: transitive
     description:
       name: gql_dedupe_link
-      url: "https://pub.dartlang.org"
+      sha256: "024aa836258fdc67a25ae4547c3bafbea10c4948f925c6d6d6fd77c8e8dcbfb1"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.0.2"
+    version: "2.0.3"
   gql_error_link:
     dependency: transitive
     description:
       name: gql_error_link
-      url: "https://pub.dartlang.org"
+      sha256: a80b1f5f858798bc3ede38910e4c262d99755bffccb55d146c364bfeb8fa8350
+      url: "https://pub.dev"
     source: hosted
-    version: "0.2.2"
+    version: "0.2.3"
   gql_exec:
     dependency: transitive
     description:
       name: gql_exec
-      url: "https://pub.dartlang.org"
+      sha256: "983b702593eba382a5c518d30678b86798bf20fbf1b03affb8b10a418439160e"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.4.0"
+    version: "0.4.1"
   gql_http_link:
     dependency: transitive
     description:
       name: gql_http_link
-      url: "https://pub.dartlang.org"
+      sha256: "101232d7fd5a3524974c05d26bb3c247a3d35c5b4a8806a361accf841a8e942e"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.4.2"
+    version: "0.4.4+1"
   gql_link:
     dependency: transitive
     description:
       name: gql_link
-      url: "https://pub.dartlang.org"
+      sha256: "50c36e7462530361859e6a34bb84885b3091a1906846494295c5ea947019d854"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.4.2"
+    version: "0.5.1-alpha+1660256327632"
   gql_transform_link:
     dependency: transitive
     description:
       name: gql_transform_link
-      url: "https://pub.dartlang.org"
+      sha256: b532c777b5d1d7147d4ae5cc27fcd57bfcddb47a09e102c7b4a2e98fcc162737
+      url: "https://pub.dev"
     source: hosted
-    version: "0.2.2"
+    version: "0.2.3-alpha+1660256327655"
   graphql:
     dependency: "direct main"
     description:
       name: graphql
-      url: "https://pub.dartlang.org"
+      sha256: f4a91622de5f77e8df785e48286de57fed2efd8e8898d035409de07e530efc0d
+      url: "https://pub.dev"
     source: hosted
-    version: "5.1.1"
+    version: "5.1.2-beta.5"
   graphs:
     dependency: transitive
     description:
       name: graphs
-      url: "https://pub.dartlang.org"
+      sha256: ae0b3d956ff324c6f8671f08dcb2dbd71c99cdbf2aa3ca63a14190c47aa6679c
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   grpc:
     dependency: transitive
     description:
       name: grpc
-      url: "https://pub.dartlang.org"
+      sha256: "3e8e04c6277059b66d67951143842097e52bbf3f2c6fca2e67d3607b48d5c3ab"
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.2"
   hive:
     dependency: transitive
     description:
       name: hive
-      url: "https://pub.dartlang.org"
+      sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
+      url: "https://pub.dev"
     source: hosted
     version: "2.2.3"
   http:
     dependency: "direct main"
     description:
       name: http
-      url: "https://pub.dartlang.org"
+      sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
+      url: "https://pub.dev"
     source: hosted
     version: "0.13.5"
   http2:
     dependency: transitive
     description:
       name: http2
-      url: "https://pub.dartlang.org"
+      sha256: "58805ebc6513eed3b98ee0a455a8357e61d187bf2e0fdc1e53120770f78de258"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.0.0"
+    version: "2.0.1"
   http_methods:
     dependency: transitive
     description:
       name: http_methods
-      url: "https://pub.dartlang.org"
+      sha256: c192bb6fb4ae99d06053f67a2c1c65350a29bc778a39d9a12b96bd2ec820e9dc
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.0"
   http_multi_server:
     dependency: transitive
     description:
       name: http_multi_server
-      url: "https://pub.dartlang.org"
+      sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
+      url: "https://pub.dev"
     source: hosted
     version: "3.2.1"
   http_parser:
     dependency: transitive
     description:
       name: http_parser
-      url: "https://pub.dartlang.org"
+      sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+      url: "https://pub.dev"
     source: hosted
-    version: "4.0.1"
+    version: "4.0.2"
   io:
     dependency: transitive
     description:
       name: io
-      url: "https://pub.dartlang.org"
+      sha256: "0d4c73c3653ab85bf696d51a9657604c900a370549196a91f33e4c39af760852"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.3"
   js:
     dependency: transitive
     description:
       name: js
-      url: "https://pub.dartlang.org"
+      sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.6.4"
+    version: "0.6.5"
   json_annotation:
     dependency: "direct main"
     description:
       name: json_annotation
-      url: "https://pub.dartlang.org"
+      sha256: "3520fa844009431b5d4491a5a778603520cdc399ab3406332dcc50f93547258c"
+      url: "https://pub.dev"
     source: hosted
     version: "4.7.0"
   json_serializable:
     dependency: "direct dev"
     description:
       name: json_serializable
-      url: "https://pub.dartlang.org"
+      sha256: "87ce738d360e9f97861a06a7ed99bad56c60cdb76adc37b870c2667001c2bfb0"
+      url: "https://pub.dev"
     source: hosted
     version: "6.5.3"
   lints:
     dependency: transitive
     description:
       name: lints
-      url: "https://pub.dartlang.org"
+      sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.0.0"
+    version: "2.0.1"
   logging:
     dependency: "direct main"
     description:
       name: logging
-      url: "https://pub.dartlang.org"
+      sha256: c0bbfe94d46aedf9b8b3e695cf3bd48c8e14b35e3b2c639e0aa7755d589ba946
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.0"
   matcher:
     dependency: transitive
     description:
       name: matcher
-      url: "https://pub.dartlang.org"
+      sha256: "80c2989398773fa06e2457e9ff08580f24e9858b28462a722241cb53e5613478"
+      url: "https://pub.dev"
     source: hosted
     version: "0.12.12"
   meta:
     dependency: "direct main"
     description:
       name: meta
-      url: "https://pub.dartlang.org"
+      sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
+      url: "https://pub.dev"
     source: hosted
     version: "1.8.0"
   mime:
     dependency: transitive
     description:
       name: mime
-      url: "https://pub.dartlang.org"
+      sha256: dab22e92b41aa1255ea90ddc4bc2feaf35544fd0728e209638cad041a6e3928a
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.2"
   mockito:
     dependency: "direct dev"
     description:
       name: mockito
-      url: "https://pub.dartlang.org"
+      sha256: "2a8a17b82b1bde04d514e75d90d634a0ac23f6cb4991f6098009dd56836aeafe"
+      url: "https://pub.dev"
     source: hosted
     version: "5.3.2"
   neat_cache:
     dependency: "direct main"
     description:
       name: neat_cache
-      url: "https://pub.dartlang.org"
+      sha256: "98f528e6787988b85dc1384cfe9ed0b472a7277a1c7ea5a40cbed51e22f71163"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.2"
   node_preamble:
     dependency: transitive
     description:
       name: node_preamble
-      url: "https://pub.dartlang.org"
+      sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   normalize:
     dependency: transitive
     description:
       name: normalize
-      url: "https://pub.dartlang.org"
+      sha256: baf8caf2d8b745af5737cca6c24f7fe3cf3158897fdbcde9a909b9c8d3e2e5af
+      url: "https://pub.dev"
     source: hosted
-    version: "0.6.0+1"
+    version: "0.7.2"
   package_config:
     dependency: transitive
     description:
       name: package_config
-      url: "https://pub.dartlang.org"
+      sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   path:
     dependency: transitive
     description:
       name: path
-      url: "https://pub.dartlang.org"
+      sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
+      url: "https://pub.dev"
     source: hosted
     version: "1.8.2"
   pointycastle:
     dependency: transitive
     description:
       name: pointycastle
-      url: "https://pub.dartlang.org"
+      sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
+      url: "https://pub.dev"
     source: hosted
-    version: "3.6.1"
+    version: "3.6.2"
   pool:
     dependency: transitive
     description:
       name: pool
-      url: "https://pub.dartlang.org"
+      sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
+      url: "https://pub.dev"
     source: hosted
     version: "1.5.1"
   protobuf:
     dependency: transitive
     description:
       name: protobuf
-      url: "https://pub.dartlang.org"
+      sha256: "01dd9bd0fa02548bf2ceee13545d4a0ec6046459d847b6b061d8a27237108a08"
+      url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
   pub_semver:
     dependency: transitive
     description:
       name: pub_semver
-      url: "https://pub.dartlang.org"
+      sha256: b959af0a045c3484c4a8f4997731f5bfe4cac60d732fd8ce35b351f2d6a459fe
+      url: "https://pub.dev"
     source: hosted
-    version: "2.1.1"
+    version: "2.1.2"
   pubspec_parse:
     dependency: transitive
     description:
       name: pubspec_parse
-      url: "https://pub.dartlang.org"
+      sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.1"
   retry:
     dependency: "direct main"
     description:
       name: retry
-      url: "https://pub.dartlang.org"
+      sha256: "45dfeebaf095b606fdb9dbfb4c114cc204449bc274783b452658365e03afdbab"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.0"
   rsa_pkcs:
     dependency: transitive
     description:
       name: rsa_pkcs
-      url: "https://pub.dartlang.org"
+      sha256: "17a52b0c010319f0d4c7bcc635eb89e2efeaec44975b3fb45f850b350a2b0513"
+      url: "https://pub.dev"
     source: hosted
     version: "2.0.1"
   rxdart:
     dependency: transitive
     description:
       name: rxdart
-      url: "https://pub.dartlang.org"
+      sha256: "5d22055fd443806c03ef24a02000637cf51eae49c2a0168d38a43fc166b0209c"
+      url: "https://pub.dev"
     source: hosted
     version: "0.27.5"
   shelf:
     dependency: "direct main"
     description:
       name: shelf
-      url: "https://pub.dartlang.org"
+      sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
+      url: "https://pub.dev"
     source: hosted
     version: "1.4.0"
   shelf_packages_handler:
     dependency: transitive
     description:
       name: shelf_packages_handler
-      url: "https://pub.dartlang.org"
+      sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.1"
   shelf_router:
     dependency: "direct main"
     description:
       name: shelf_router
-      url: "https://pub.dartlang.org"
+      sha256: "0b0bfb835e8b2bb43c5341ee689f0d2851e9cea377a4f2db4ec06a1a99beace4"
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.3"
   shelf_static:
     dependency: transitive
     description:
       name: shelf_static
-      url: "https://pub.dartlang.org"
+      sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.1"
   shelf_web_socket:
     dependency: transitive
     description:
       name: shelf_web_socket
-      url: "https://pub.dartlang.org"
+      sha256: "6db16374bc3497d21aa0eebe674d3db9fdf82082aac0f04dc7b44e4af5b08afc"
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.2"
   source_gen:
     dependency: transitive
     description:
       name: source_gen
-      url: "https://pub.dartlang.org"
+      sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
+      url: "https://pub.dev"
     source: hosted
-    version: "1.2.2"
+    version: "1.2.6"
   source_helper:
     dependency: transitive
     description:
       name: source_helper
-      url: "https://pub.dartlang.org"
+      sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
+      url: "https://pub.dev"
     source: hosted
-    version: "1.3.2"
+    version: "1.3.3"
   source_map_stack_trace:
     dependency: transitive
     description:
       name: source_map_stack_trace
-      url: "https://pub.dartlang.org"
+      sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.1.1"
   source_maps:
     dependency: transitive
     description:
       name: source_maps
-      url: "https://pub.dartlang.org"
+      sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427"
+      url: "https://pub.dev"
     source: hosted
-    version: "0.10.10"
+    version: "0.10.11"
   source_span:
     dependency: transitive
     description:
       name: source_span
-      url: "https://pub.dartlang.org"
+      sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
+      url: "https://pub.dev"
     source: hosted
     version: "1.9.1"
   stack_trace:
     dependency: transitive
     description:
       name: stack_trace
-      url: "https://pub.dartlang.org"
+      sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
+      url: "https://pub.dev"
     source: hosted
-    version: "1.10.0"
+    version: "1.11.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
-      url: "https://pub.dartlang.org"
+      sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
+      url: "https://pub.dev"
     source: hosted
-    version: "2.1.0"
+    version: "2.1.1"
   stream_transform:
     dependency: transitive
     description:
       name: stream_transform
-      url: "https://pub.dartlang.org"
+      sha256: f1d172e22a5432c042b5adfa9aff621372e4292231d9d73ad00f486ad01c2395
+      url: "https://pub.dev"
     source: hosted
-    version: "2.0.0"
+    version: "2.0.1"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
-      url: "https://pub.dartlang.org"
+      sha256: "862015c5db1f3f3c4ea3b94dc2490363a84262994b88902315ed74be1155612f"
+      url: "https://pub.dev"
     source: hosted
     version: "1.1.1"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
-      url: "https://pub.dartlang.org"
+      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+      url: "https://pub.dev"
     source: hosted
     version: "1.2.1"
   test:
     dependency: "direct dev"
     description:
       name: test
-      url: "https://pub.dartlang.org"
+      sha256: "9ffb8dbda445ba2922522423e7c7288967de89129205ce2dadf856abfd2b72ae"
+      url: "https://pub.dev"
     source: hosted
     version: "1.21.6"
   test_api:
     dependency: transitive
     description:
       name: test_api
-      url: "https://pub.dartlang.org"
+      sha256: ceeddf59d613e862e77f4b506cfc2945ac9637ce0b4c00f4f4c1ac639f3e9731
+      url: "https://pub.dev"
     source: hosted
     version: "0.4.14"
   test_core:
     dependency: transitive
     description:
       name: test_core
-      url: "https://pub.dartlang.org"
+      sha256: "2b38b8ecfa37f8d375b4aa2a106a86ade536b577411530c2ea68c83abb1f004b"
+      url: "https://pub.dev"
     source: hosted
     version: "0.4.18"
   timing:
     dependency: transitive
     description:
       name: timing
-      url: "https://pub.dartlang.org"
+      sha256: c386d07d7f5efc613479a7c4d9d64b03710b03cfaa7e8ad5f2bfb295a1f0dfad
+      url: "https://pub.dev"
     source: hosted
     version: "1.0.0"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
-      url: "https://pub.dartlang.org"
+      sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
+      url: "https://pub.dev"
     source: hosted
     version: "1.3.1"
   uuid:
     dependency: transitive
     description:
       name: uuid
-      url: "https://pub.dartlang.org"
+      sha256: "2469694ad079893e3b434a627970c33f2fa5adc46dfe03c9617546969a9a8afc"
+      url: "https://pub.dev"
     source: hosted
     version: "3.0.6"
   vm_service:
     dependency: transitive
     description:
       name: vm_service
-      url: "https://pub.dartlang.org"
+      sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7
+      url: "https://pub.dev"
     source: hosted
-    version: "9.3.0"
+    version: "9.4.0"
   watcher:
     dependency: transitive
     description:
       name: watcher
-      url: "https://pub.dartlang.org"
+      sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
+      url: "https://pub.dev"
     source: hosted
-    version: "1.0.1"
+    version: "1.0.2"
   web_socket_channel:
     dependency: transitive
     description:
       name: web_socket_channel
-      url: "https://pub.dartlang.org"
+      sha256: "3a969ddcc204a3e34e863d204b29c0752716f78b6f9cc8235083208d268a4ccd"
+      url: "https://pub.dev"
     source: hosted
     version: "2.2.0"
   webkit_inspection_protocol:
     dependency: transitive
     description:
       name: webkit_inspection_protocol
-      url: "https://pub.dartlang.org"
+      sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
+      url: "https://pub.dev"
     source: hosted
-    version: "1.1.0"
+    version: "1.2.0"
   yaml:
     dependency: transitive
     description:
       name: yaml
-      url: "https://pub.dartlang.org"
+      sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
+      url: "https://pub.dev"
     source: hosted
     version: "3.1.1"
 sdks:
-  dart: ">=2.18.0 <3.0.0"
+  dart: ">=2.18.0 <4.0.0"
diff --git a/auto_submit/pubspec.yaml b/auto_submit/pubspec.yaml
index e12123a..c949b01 100644
--- a/auto_submit/pubspec.yaml
+++ b/auto_submit/pubspec.yaml
@@ -17,7 +17,7 @@
   googleapis: ^9.2.0
   googleapis_auth: ^1.3.1
   graphql: ^5.1.1
-  gql: ^0.13.1
+  gql: ^0.14.0
   http: ^0.13.5
   json_annotation: ^4.7.0
   meta: ^1.8.0
@@ -31,7 +31,7 @@
 dev_dependencies:
   build_runner: ^2.3.2
   json_serializable: ^6.5.3
-  flutter_lints: ^2.0.0
+  flutter_lints: ^2.0.1
   mockito: ^5.3.2
   test: ^1.21.6