Adding a cron job to update closed revert pull request review issues. (#2146)

diff --git a/auto_submit/analysis_options.yaml b/auto_submit/analysis_options.yaml
index 974a850..8801fbf 100644
--- a/auto_submit/analysis_options.yaml
+++ b/auto_submit/analysis_options.yaml
@@ -8,4 +8,5 @@
   rules:
     constant_identifier_names: false # we have all capitalized enums in check_for_waiting_pull_requests_test.dart
     require_trailing_commas: true
-    unawaited_futures: true
\ No newline at end of file
+    unawaited_futures: true
+    prefer_final_fields: true
\ No newline at end of file
diff --git a/auto_submit/bin/server.dart b/auto_submit/bin/server.dart
index f5e83af..ec5a031 100644
--- a/auto_submit/bin/server.dart
+++ b/auto_submit/bin/server.dart
@@ -10,6 +10,7 @@
 import 'package:auto_submit/requests/check_pull_request.dart';
 import 'package:auto_submit/requests/github_webhook.dart';
 import 'package:auto_submit/requests/readiness_check.dart';
+import 'package:auto_submit/requests/update_revert_issues.dart';
 import 'package:auto_submit/service/config.dart';
 import 'package:auto_submit/service/secrets.dart';
 import 'package:neat_cache/neat_cache.dart';
@@ -48,6 +49,13 @@
         ReadinessCheck(
           config: config,
         ).run,
+      )
+      ..get(
+        '/update-revert-issues',
+        UpdateRevertIssues(
+          config: config,
+          cronAuthProvider: authProvider,
+        ).run,
       );
     await serveHandler(router);
   });
diff --git a/auto_submit/lib/model/big_query_revert_request_record.dart b/auto_submit/lib/model/big_query_revert_request_record.dart
index c9573ca..92e91ae 100644
--- a/auto_submit/lib/model/big_query_revert_request_record.dart
+++ b/auto_submit/lib/model/big_query_revert_request_record.dart
@@ -28,6 +28,7 @@
     this.reviewIssueNumber,
     this.reviewIssueCreatedTimestamp,
     this.reviewIssueLandedTimestamp,
+    this.reviewIssueClosedBy,
   });
 
   final String? originalPrAuthor;
@@ -39,6 +40,7 @@
   final int? reviewIssueNumber;
   final DateTime? reviewIssueCreatedTimestamp;
   final DateTime? reviewIssueLandedTimestamp;
+  final String? reviewIssueClosedBy;
 
   @override
   String toString() => jsonEncode(toJson());
diff --git a/auto_submit/lib/model/big_query_revert_request_record.g.dart b/auto_submit/lib/model/big_query_revert_request_record.g.dart
index b05750e..e0d3a94 100644
--- a/auto_submit/lib/model/big_query_revert_request_record.g.dart
+++ b/auto_submit/lib/model/big_query_revert_request_record.g.dart
@@ -33,6 +33,7 @@
       reviewIssueLandedTimestamp: json['review_issue_landed_timestamp'] == null
           ? null
           : DateTime.parse(json['review_issue_landed_timestamp'] as String),
+      reviewIssueClosedBy: json['review_issue_closed_by'] as String?,
     );
 
 Map<String, dynamic> _$RevertRequestRecordToJson(RevertRequestRecord instance) => <String, dynamic>{
@@ -52,4 +53,5 @@
       'review_issue_number': instance.reviewIssueNumber,
       'review_issue_created_timestamp': instance.reviewIssueCreatedTimestamp?.toIso8601String(),
       'review_issue_landed_timestamp': instance.reviewIssueLandedTimestamp?.toIso8601String(),
+      'review_issue_closed_by': instance.reviewIssueClosedBy,
     };
diff --git a/auto_submit/lib/requests/update_revert_issues.dart b/auto_submit/lib/requests/update_revert_issues.dart
new file mode 100644
index 0000000..b311392
--- /dev/null
+++ b/auto_submit/lib/requests/update_revert_issues.dart
@@ -0,0 +1,82 @@
+// Copyright 2022 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:auto_submit/exception/bigquery_exception.dart';
+import 'package:auto_submit/model/big_query_revert_request_record.dart';
+import 'package:auto_submit/service/bigquery.dart';
+import 'package:auto_submit/service/config.dart';
+import 'package:auto_submit/service/github_service.dart';
+import 'package:github/github.dart';
+import 'package:shelf/shelf.dart';
+
+import '../service/log.dart';
+import '../server/authenticated_request_handler.dart';
+
+class UpdateRevertIssues extends AuthenticatedRequestHandler {
+  const UpdateRevertIssues({
+    required super.config,
+    required super.cronAuthProvider,
+  });
+
+  @override
+  Future<Response> get() async {
+    final BigqueryService bigqueryService = await config.createBigQueryService();
+
+    log.info('Updating closed revert request review issues in the database.');
+    final List<RevertRequestRecord> revertRequestRecords =
+        await bigqueryService.selectOpenReviewRequestIssueRecordsList(projectId: Config.flutterGcpProjectId);
+
+    if (revertRequestRecords.isEmpty) {
+      return Response.ok('No open revert reviews to update.');
+    }
+
+    final GithubService githubService =
+        await config.createGithubService(RepositorySlug(Config.flutter, Config.flutter));
+
+    for (RevertRequestRecord revertRequestRecord in revertRequestRecords) {
+      await updateIssue(
+        revertRequestRecord: revertRequestRecord,
+        bigqueryService: bigqueryService,
+        githubService: githubService,
+      );
+    }
+
+    return Response.ok('Finished processing revert review updates.');
+  }
+
+  /// Update the review issue associated with the revert request if it has been
+  /// closed.
+  Future<bool> updateIssue({
+    required RevertRequestRecord revertRequestRecord,
+    required BigqueryService bigqueryService,
+    required GithubService githubService,
+  }) async {
+    bool updated = false;
+    log.info('Processing review issue# ${revertRequestRecord.reviewIssueNumber}.');
+    try {
+      // Get the revert review issue.
+      Issue issue = await githubService.getIssue(
+        slug: RepositorySlug(Config.flutter, Config.flutter),
+        issueNumber: revertRequestRecord.reviewIssueNumber!,
+      );
+
+      if (issue.isClosed) {
+        log.info('Updating review issue# ${issue.number} in database.');
+        await bigqueryService.updateReviewRequestIssue(
+          projectId: Config.flutterGcpProjectId,
+          reviewIssueLandedTimestamp: issue.closedAt!,
+          reviewIssueNumber: revertRequestRecord.reviewIssueNumber!,
+          reviewIssueClosedBy: issue.closedBy!.login!,
+        );
+        log.info('Review issue# ${issue.number} updated successfully.');
+        updated = true;
+      }
+    } on BigQueryException catch (exception) {
+      log.severe(
+        'An error occured while validating and updating review issue# ${revertRequestRecord.reviewIssueNumber}. Exception: ${exception.cause}',
+      );
+    }
+    return updated;
+  }
+}
diff --git a/auto_submit/lib/service/bigquery.dart b/auto_submit/lib/service/bigquery.dart
index df5d418..795caaa 100644
--- a/auto_submit/lib/service/bigquery.dart
+++ b/auto_submit/lib/service/bigquery.dart
@@ -28,11 +28,32 @@
        review_issue_assignee,
        review_issue_number,
        review_issue_created_timestamp,
-       review_issue_landed_timestamp
+       review_issue_landed_timestamp,
+       review_issue_closed_by
 FROM `flutter-dashboard.revert.revert_requests`
 WHERE reverting_pr_number=@REVERTING_PR_NUMBER AND repository=@REPOSITORY
 ''';
 
+/// Query to select all of the open revert review issues for update. Note that
+/// the review_issue_landed_timestamp is 0 for open issues. 0 is the default
+/// value instead of null since it is safer to process.
+const String selectRevertRequestReviewIssuesDml = r'''
+SELECT review_issue_assignee,
+       review_issue_number,
+       review_issue_created_timestamp,
+       review_issue_landed_timestamp,
+       review_issue_closed_by
+FROM `flutter-dashboard.revert.revert_requests`
+WHERE review_issue_landed_timestamp=0
+''';
+
+const String updateRevertRequestRecordReviewDml = '''
+UPDATE `flutter-dashboard.revert.revert_requests`
+SET review_issue_landed_timestamp=@REVIEW_ISSUE_LANDED_TIMESTAMP,
+    review_issue_closed_by=@REVIEW_ISSUE_CLOSED_BY
+WHERE review_issue_number=@REVIEW_ISSUE_NUMBER
+''';
+
 const String insertRevertRequestDml = r'''
 INSERT INTO `flutter-dashboard.revert.revert_requests` (
   organization,
@@ -50,7 +71,8 @@
   review_issue_assignee,
   review_issue_number,
   review_issue_created_timestamp,
-  review_issue_landed_timestamp
+  review_issue_landed_timestamp,
+  review_issue_closed_by
 ) VALUES (
   @ORGANIZATION,
   @REPOSITORY,
@@ -67,7 +89,8 @@
   @REVIEW_ISSUE_ASSIGNEE,
   @REVIEW_ISSUE_NUMBER,
   @REVIEW_ISSUE_CREATED_TIMESTAMP,
-  @REVIEW_ISSUE_LANDED_TIMESTAMP
+  @REVIEW_ISSUE_LANDED_TIMESTAMP,
+  @REVIEW_ISSUE_CLOSED_BY
 )
 ''';
 
@@ -215,6 +238,10 @@
               ? revertRequestRecord.reviewIssueLandedTimestamp!.millisecondsSinceEpoch
               : 0,
         ),
+        _createStringQueryParameter(
+          'REVIEW_ISSUE_CLOSED_BY',
+          '',
+        ),
       ],
       useLegacySql: false,
     );
@@ -301,9 +328,94 @@
       reviewIssueLandedTimestamp: (tableRow.f![15].v != null)
           ? DateTime.fromMillisecondsSinceEpoch(int.parse(tableRow.f![15].v as String))
           : null,
+      reviewIssueClosedBy: tableRow.f![16].v as String,
     );
   }
 
+  /// Query to select the open review issues for update.
+  ///
+  /// Issues are open if the review_issue_landed_timestamp is equal to 0.
+  Future<List<RevertRequestRecord>> selectOpenReviewRequestIssueRecordsList({
+    required String projectId,
+  }) async {
+    final JobsResource jobsResource = await defaultJobs();
+
+    final QueryRequest queryRequest = QueryRequest(
+      query: selectRevertRequestReviewIssuesDml,
+      useLegacySql: false,
+    );
+
+    final QueryResponse queryResponse = await jobsResource.query(queryRequest, projectId);
+    if (!queryResponse.jobComplete!) {
+      throw BigQueryException(
+        'Get open review request issues records did not complete.',
+      );
+    }
+
+    final List<TableRow>? tableRows = queryResponse.rows;
+    if (tableRows == null || tableRows.isEmpty) {
+      return <RevertRequestRecord>[];
+    }
+
+    List<RevertRequestRecord> openReviewRequestIssues = [];
+    for (TableRow tableRow in tableRows) {
+      openReviewRequestIssues.add(
+        RevertRequestRecord(
+          reviewIssueAssignee: tableRow.f![0].v as String,
+          reviewIssueNumber: int.parse(tableRow.f![1].v as String),
+          reviewIssueCreatedTimestamp: DateTime.fromMillisecondsSinceEpoch(int.parse(tableRow.f![2].v as String)),
+          reviewIssueLandedTimestamp: DateTime.fromMillisecondsSinceEpoch(int.parse(tableRow.f![3].v as String)),
+          reviewIssueClosedBy: tableRow.f![4].v as String,
+        ),
+      );
+    }
+
+    return openReviewRequestIssues;
+  }
+
+  /// Query the database to update a revert review issue with the timestamp the
+  /// issue was closed at and the person who closed the issue.
+  Future<void> updateReviewRequestIssue({
+    required String projectId,
+    required DateTime reviewIssueLandedTimestamp,
+    required int reviewIssueNumber,
+    required String reviewIssueClosedBy,
+  }) async {
+    final JobsResource jobsResource = await defaultJobs();
+
+    final QueryRequest queryRequest = QueryRequest(
+      query: updateRevertRequestRecordReviewDml,
+      queryParameters: <QueryParameter>[
+        _createIntegerQueryParameter(
+          'REVIEW_ISSUE_LANDED_TIMESTAMP',
+          reviewIssueLandedTimestamp.millisecondsSinceEpoch,
+        ),
+        _createIntegerQueryParameter(
+          'REVIEW_ISSUE_NUMBER',
+          reviewIssueNumber,
+        ),
+        _createStringQueryParameter(
+          'REVIEW_ISSUE_CLOSED_BY',
+          reviewIssueClosedBy,
+        ),
+      ],
+      useLegacySql: false,
+    );
+
+    final QueryResponse queryResponse = await jobsResource.query(queryRequest, projectId);
+    if (!queryResponse.jobComplete!) {
+      throw BigQueryException(
+        'Update of review issue $reviewIssueNumber did not complete.',
+      );
+    }
+
+    if (queryResponse.numDmlAffectedRows != null && int.parse(queryResponse.numDmlAffectedRows!) != 1) {
+      throw BigQueryException(
+        'There was an error updating revert request record review issue landed timestamp with review issue number $reviewIssueNumber.',
+      );
+    }
+  }
+
   Future<void> deleteRevertRequestRecord({
     required String projectId,
     required int prNumber,
diff --git a/auto_submit/lib/service/config.dart b/auto_submit/lib/service/config.dart
index 9837db9..40ae784 100644
--- a/auto_submit/lib/service/config.dart
+++ b/auto_submit/lib/service/config.dart
@@ -40,6 +40,9 @@
   static const int backoffAttempts = 3;
   static const int maxDelaySeconds = 1;
 
+  static const String flutter = 'flutter';
+  static const String flutterGcpProjectId = 'flutter-dashboard';
+
   final CacheProvider cacheProvider;
   final HttpProvider httpProvider;
   final SecretManager secretManager;
diff --git a/auto_submit/lib/service/github_service.dart b/auto_submit/lib/service/github_service.dart
index fb0bd73..6cec27b 100644
--- a/auto_submit/lib/service/github_service.dart
+++ b/auto_submit/lib/service/github_service.dart
@@ -67,6 +67,13 @@
     return await github.issues.create(slug, issueRequest);
   }
 
+  Future<Issue> getIssue({
+    required RepositorySlug slug,
+    required int issueNumber,
+  }) async {
+    return await github.issues.get(slug, issueNumber);
+  }
+
   /// Fetches the specified pull request.
   Future<PullRequest> getPullRequest(RepositorySlug slug, int pullRequestNumber) async {
     return await github.pullRequests.get(slug, pullRequestNumber);
diff --git a/auto_submit/lib/service/validation_service.dart b/auto_submit/lib/service/validation_service.dart
index e7a59d0..7270062 100644
--- a/auto_submit/lib/service/validation_service.dart
+++ b/auto_submit/lib/service/validation_service.dart
@@ -259,7 +259,7 @@
 
           final github.Issue issue = await gitHubService.createIssue(
             // Created issues are created and tracked within flutter/flutter.
-            slug: github.RepositorySlug('flutter', 'flutter'),
+            slug: github.RepositorySlug(Config.flutter, Config.flutter),
             title: revertReviewTemplate.title!,
             body: revertReviewTemplate.body!,
             labels: <String>['P1'],
@@ -410,7 +410,7 @@
     try {
       BigqueryService bigqueryService = await config.createBigQueryService();
       await bigqueryService.insertPullRequestRecord(
-        projectId: 'flutter-dashboard',
+        projectId: Config.flutterGcpProjectId,
         pullRequestRecord: pullRequestRecord,
       );
       log.info('Record inserted for pull request pr# ${pullRequest.number} successfully.');
@@ -455,7 +455,7 @@
     try {
       BigqueryService bigqueryService = await config.createBigQueryService();
       await bigqueryService.insertRevertRequestRecord(
-        projectId: 'flutter-dashboard',
+        projectId: Config.flutterGcpProjectId,
         revertRequestRecord: revertRequestRecord,
       );
       log.info('Record inserted for revert tracking request for pr# ${revertPullRequest.number} successfully.');
diff --git a/auto_submit/test/requests/check_pull_request_test.dart b/auto_submit/test/requests/check_pull_request_test.dart
index b66c5de..af518e6 100644
--- a/auto_submit/test/requests/check_pull_request_test.dart
+++ b/auto_submit/test/requests/check_pull_request_test.dart
@@ -109,7 +109,7 @@
 
       when(jobsResource.query(captureAny, any)).thenAnswer((Invocation invocation) {
         return Future<QueryResponse>.value(
-          QueryResponse.fromJson(jsonDecode(insertDeleteSuccessResponse) as Map<dynamic, dynamic>),
+          QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessResponse) as Map<dynamic, dynamic>),
         );
       });
     });
diff --git a/auto_submit/test/requests/update_revert_issues_test.dart b/auto_submit/test/requests/update_revert_issues_test.dart
new file mode 100644
index 0000000..baf0196
--- /dev/null
+++ b/auto_submit/test/requests/update_revert_issues_test.dart
@@ -0,0 +1,172 @@
+// Copyright 2022 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:convert';
+
+import 'package:auto_submit/exception/bigquery_exception.dart';
+import 'package:auto_submit/model/big_query_revert_request_record.dart';
+import 'package:auto_submit/requests/update_revert_issues.dart';
+import 'package:github/github.dart';
+import 'package:googleapis/bigquery/v2.dart';
+import 'package:mockito/mockito.dart';
+import 'package:shelf/shelf.dart';
+import 'package:test/test.dart';
+
+import '../src/request_handling/fake_authentication.dart';
+import '../src/service/fake_bigquery_service.dart';
+import '../src/service/fake_config.dart';
+import '../src/service/fake_github_service.dart';
+import '../utilities/mocks.mocks.dart';
+
+const String expectedProjectId = 'flutter-dashboard';
+
+const String emptyRowsResponse = '''
+{
+  "jobComplete": true,
+  "numDmlAffectedRows": "0",
+  "rows": []
+}
+''';
+
+const String updateSuccessResponse = '''
+{
+  "jobComplete": true,
+  "numDmlAffectedRows": "1"
+}
+''';
+
+void main() {
+  late FakeGithubService fakeGithubService;
+  late FakeBigqueryService fakeBigqueryService;
+  late FakeConfig fakeConfig;
+  late FakeCronAuthProvider fakeCronAuthProvider;
+  late MockJobsResource jobsResource;
+  late UpdateRevertIssues updateRevertReviews;
+
+  setUp(() {
+    fakeGithubService = FakeGithubService();
+    jobsResource = MockJobsResource();
+    fakeBigqueryService = FakeBigqueryService(jobsResource);
+    fakeCronAuthProvider = FakeCronAuthProvider();
+    fakeConfig = FakeConfig(
+      githubService: fakeGithubService,
+      bigqueryService: fakeBigqueryService,
+    );
+    updateRevertReviews = UpdateRevertIssues(
+      config: fakeConfig,
+      cronAuthProvider: fakeCronAuthProvider,
+    );
+  });
+
+  group('Update issue tests.', () {
+    test('Open issue is not updated.', () async {
+      User user = User(login: 'ricardoamador');
+      Issue issue = Issue(
+        user: user,
+        state: 'open',
+      );
+
+      fakeGithubService.githubIssueMock = issue;
+
+      RevertRequestRecord revertRequestRecord = RevertRequestRecord(
+        reviewIssueAssignee: 'keyonghan',
+        reviewIssueCreatedTimestamp: DateTime.now(),
+        reviewIssueNumber: 1234,
+      );
+
+      when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+        return Future<QueryResponse>.value(
+          QueryResponse.fromJson(jsonDecode(updateSuccessResponse) as Map<dynamic, dynamic>),
+        );
+      });
+
+      bool result = await updateRevertReviews.updateIssue(
+        revertRequestRecord: revertRequestRecord,
+        bigqueryService: fakeBigqueryService,
+        githubService: fakeGithubService,
+      );
+
+      expect(result, isFalse);
+    });
+
+    test('Closed issue is updated.', () async {
+      User user = User(login: 'ricardoamador');
+      Issue issue = Issue(
+        user: user,
+        state: 'closed',
+        closedAt: DateTime.now(),
+        number: 1234,
+        closedBy: user,
+      );
+
+      fakeGithubService.githubIssueMock = issue;
+
+      RevertRequestRecord revertRequestRecord = RevertRequestRecord(
+        reviewIssueAssignee: 'keyonghan',
+        reviewIssueCreatedTimestamp: DateTime.now(),
+        reviewIssueNumber: 1234,
+      );
+
+      when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+        return Future<QueryResponse>.value(
+          QueryResponse.fromJson(jsonDecode(updateSuccessResponse) as Map<dynamic, dynamic>),
+        );
+      });
+
+      bool result = await updateRevertReviews.updateIssue(
+        revertRequestRecord: revertRequestRecord,
+        bigqueryService: fakeBigqueryService,
+        githubService: fakeGithubService,
+      );
+
+      expect(result, isTrue);
+    });
+
+    test('Closed issue is not updated on exception.', () async {
+      User user = User(login: 'ricardoamador');
+      Issue issue = Issue(
+        user: user,
+        state: 'closed',
+        closedAt: DateTime.now(),
+        number: 1234,
+        closedBy: user,
+      );
+
+      fakeGithubService.githubIssueMock = issue;
+
+      RevertRequestRecord revertRequestRecord = RevertRequestRecord(
+        reviewIssueAssignee: 'keyonghan',
+        reviewIssueCreatedTimestamp: DateTime.now(),
+        reviewIssueNumber: 1234,
+      );
+
+      when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+        throw BigQueryException('Update of review issue 1234 did not complete.');
+      });
+
+      bool result = await updateRevertReviews.updateIssue(
+        revertRequestRecord: revertRequestRecord,
+        bigqueryService: fakeBigqueryService,
+        githubService: fakeGithubService,
+      );
+
+      expect(result, isFalse);
+    });
+  });
+
+  group('Update closed revert review requests.', () {
+    test('No reviews to update is successful.', () async {
+      when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+        return Future<QueryResponse>.value(
+          QueryResponse.fromJson(jsonDecode(emptyRowsResponse) as Map<dynamic, dynamic>),
+        );
+      });
+
+      Response response = await updateRevertReviews.get();
+      expect(response.statusCode, 200);
+      String body = await response.readAsString(Encoding.getByName("UTF-8"));
+      expect(body, equals('No open revert reviews to update.'));
+    });
+  });
+}
diff --git a/auto_submit/test/service/bigquery_test.dart b/auto_submit/test/service/bigquery_test.dart
index 60b3045..cda9ba3 100644
--- a/auto_submit/test/service/bigquery_test.dart
+++ b/auto_submit/test/service/bigquery_test.dart
@@ -35,7 +35,8 @@
         { "v": "ricardoamador" },
         { "v": "11304" },
         { "v": "1640979000000" },
-        { "v": null }
+        { "v": "0" },
+        { "v": "" }
       ]
     }
   ]
@@ -67,14 +68,14 @@
 }
 ''';
 
-const String insertDeleteSuccessResponse = '''
+const String insertDeleteUpdateSuccessResponse = '''
 {
   "jobComplete": true,
   "numDmlAffectedRows": "1"
 }
 ''';
 
-const String insertDeleteSuccessTooManyRows = '''
+const String insertDeleteUpdateSuccessTooManyRows = '''
 {
   "jobComplete": true,
   "numDmlAffectedRows": "2"
@@ -157,6 +158,31 @@
 }
 ''';
 
+const String selectReviewRequestRecordsResponse = '''
+{
+  "jobComplete": true,
+  "numDmlAffectedRows": "2",
+  "rows": [
+    { "f": [
+        { "v": "Keyonghan" },
+        { "v": "2048" },
+        { "v": "234567890" },
+        { "v": "0" },
+        { "v": "" }
+      ]
+    },
+    { "f": [
+        { "v": "caseyhillers" },
+        { "v": "2049" },
+        { "v": "234567890" },
+        { "v": "0" },
+        { "v": "" }
+      ]
+    }
+  ]
+}
+''';
+
 const String expectedProjectId = 'flutter-dashboard';
 
 void main() {
@@ -171,7 +197,7 @@
   test('Insert pull request record is successful.', () async {
     when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
       return Future<QueryResponse>.value(
-        QueryResponse.fromJson(jsonDecode(insertDeleteSuccessResponse) as Map<dynamic, dynamic>),
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessResponse) as Map<dynamic, dynamic>),
       );
     });
 
@@ -400,7 +426,7 @@
   test('Delete pull request record handles success but wrong number of affected rows.', () async {
     when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
       return Future<QueryResponse>.value(
-        QueryResponse.fromJson(jsonDecode(insertDeleteSuccessTooManyRows) as Map<dynamic, dynamic>),
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessTooManyRows) as Map<dynamic, dynamic>),
       );
     });
 
@@ -424,7 +450,7 @@
   test('Insert revert request record is successful.', () async {
     when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
       return Future<QueryResponse>.value(
-        QueryResponse.fromJson(jsonDecode(insertDeleteSuccessResponse) as Map<dynamic, dynamic>),
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessResponse) as Map<dynamic, dynamic>),
       );
     });
 
@@ -522,14 +548,11 @@
     expect(revertRequestRecord.originalPrCommit, equals('ce345dc'));
     expect(revertRequestRecord.originalPrCreatedTimestamp, equals(DateTime.fromMillisecondsSinceEpoch(234567890)));
     expect(revertRequestRecord.originalPrLandedTimestamp, equals(DateTime.fromMillisecondsSinceEpoch(234567999)));
-    // { "v": "ricardoamador" },
-    //     { "v": "11304" },
-    //     { "v": "1640979000000" },
-    //     { "v": null },
     expect(revertRequestRecord.reviewIssueAssignee, equals('ricardoamador'));
     expect(revertRequestRecord.reviewIssueNumber, equals(11304));
     expect(revertRequestRecord.reviewIssueCreatedTimestamp, equals(DateTime.fromMillisecondsSinceEpoch(1640979000000)));
-    expect(revertRequestRecord.reviewIssueLandedTimestamp, isNull);
+    expect(revertRequestRecord.reviewIssueLandedTimestamp, equals(DateTime.fromMillisecondsSinceEpoch(0)));
+    expect(revertRequestRecord.reviewIssueClosedBy, equals(''));
   });
 
   test('Select revert request is unsuccessful with job did not complete error.', () async {
@@ -652,7 +675,7 @@
   test('Delete revert request record handles success but wrong number of affected rows.', () async {
     when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
       return Future<QueryResponse>.value(
-        QueryResponse.fromJson(jsonDecode(insertDeleteSuccessTooManyRows) as Map<dynamic, dynamic>),
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessTooManyRows) as Map<dynamic, dynamic>),
       );
     });
 
@@ -672,4 +695,153 @@
     }
     expect(hasError, isTrue);
   });
+
+  test('Select revert request review issues is successful with rows returned.', () async {
+    when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+      return Future<QueryResponse>.value(
+        QueryResponse.fromJson(jsonDecode(selectReviewRequestRecordsResponse) as Map<dynamic, dynamic>),
+      );
+    });
+
+    List<RevertRequestRecord> revertRequestRecordReviewsList = await service.selectOpenReviewRequestIssueRecordsList(
+      projectId: expectedProjectId,
+    );
+
+    RevertRequestRecord keyongRecord = RevertRequestRecord(
+      reviewIssueAssignee: 'Keyonghan',
+      reviewIssueNumber: 2048,
+      reviewIssueCreatedTimestamp: DateTime.fromMillisecondsSinceEpoch(234567890),
+      reviewIssueLandedTimestamp: DateTime.fromMillisecondsSinceEpoch(0),
+      reviewIssueClosedBy: '',
+    );
+
+    RevertRequestRecord caseyRecord = RevertRequestRecord(
+      reviewIssueAssignee: 'caseyhillers',
+      reviewIssueNumber: 2049,
+      reviewIssueCreatedTimestamp: DateTime.fromMillisecondsSinceEpoch(234567890),
+      reviewIssueLandedTimestamp: DateTime.fromMillisecondsSinceEpoch(0),
+      reviewIssueClosedBy: '',
+    );
+
+    expect(revertRequestRecordReviewsList.length, 2);
+    for (RevertRequestRecord revertRequestRecord in revertRequestRecordReviewsList) {
+      if (revertRequestRecord.reviewIssueAssignee == keyongRecord.reviewIssueAssignee) {
+        expect(revertRequestRecord.reviewIssueAssignee, keyongRecord.reviewIssueAssignee);
+        expect(revertRequestRecord.reviewIssueNumber, keyongRecord.reviewIssueNumber);
+        expect(revertRequestRecord.reviewIssueCreatedTimestamp, keyongRecord.reviewIssueCreatedTimestamp);
+        expect(revertRequestRecord.reviewIssueLandedTimestamp, keyongRecord.reviewIssueLandedTimestamp);
+        expect(revertRequestRecord.reviewIssueClosedBy, keyongRecord.reviewIssueClosedBy);
+      } else if (revertRequestRecord.reviewIssueAssignee == caseyRecord.reviewIssueAssignee) {
+        expect(revertRequestRecord.reviewIssueAssignee, caseyRecord.reviewIssueAssignee);
+        expect(revertRequestRecord.reviewIssueNumber, caseyRecord.reviewIssueNumber);
+        expect(revertRequestRecord.reviewIssueCreatedTimestamp, caseyRecord.reviewIssueCreatedTimestamp);
+        expect(revertRequestRecord.reviewIssueLandedTimestamp, caseyRecord.reviewIssueLandedTimestamp);
+        expect(revertRequestRecord.reviewIssueClosedBy, caseyRecord.reviewIssueClosedBy);
+      }
+    }
+  });
+
+  test('Select revert request review issues is successful with zero rows returned.', () async {
+    when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+      return Future<QueryResponse>.value(
+        QueryResponse.fromJson(jsonDecode(successResponseNoRowsAffected) as Map<dynamic, dynamic>),
+      );
+    });
+
+    List<RevertRequestRecord> revertRequestRecordReviewsList = await service.selectOpenReviewRequestIssueRecordsList(
+      projectId: expectedProjectId,
+    );
+
+    assert(revertRequestRecordReviewsList.isEmpty);
+  });
+
+  test('Select revert request review issues is not successful with job did not complete.', () async {
+    when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+      return Future<QueryResponse>.value(
+        QueryResponse.fromJson(jsonDecode(errorResponse) as Map<dynamic, dynamic>),
+      );
+    });
+
+    bool hasError = false;
+    try {
+      await service.selectOpenReviewRequestIssueRecordsList(
+        projectId: expectedProjectId,
+      );
+    } on BigQueryException catch (exception) {
+      hasError = true;
+      expect(exception.cause, 'Get open review request issues records did not complete.');
+    }
+    expect(hasError, isTrue);
+  });
+
+  test('Update record is successful.', () async {
+    when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+      return Future<QueryResponse>.value(
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessResponse) as Map<dynamic, dynamic>),
+      );
+    });
+
+    bool hasError = false;
+    try {
+      await service.updateReviewRequestIssue(
+        projectId: expectedProjectId,
+        reviewIssueLandedTimestamp: DateTime.now(),
+        reviewIssueNumber: 2048,
+        reviewIssueClosedBy: 'ricardoamador',
+      );
+    } on BigQueryException {
+      hasError = true;
+    }
+
+    expect(hasError, isFalse);
+  });
+
+  test('Update revert request review record is successful but wrong number of rows is updated.', () async {
+    when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+      return Future<QueryResponse>.value(
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessTooManyRows) as Map<dynamic, dynamic>),
+      );
+    });
+
+    bool hasError = false;
+    try {
+      await service.updateReviewRequestIssue(
+        projectId: expectedProjectId,
+        reviewIssueLandedTimestamp: DateTime.now(),
+        reviewIssueNumber: 2048,
+        reviewIssueClosedBy: 'ricardoamador',
+      );
+    } on BigQueryException catch (exception) {
+      hasError = true;
+      expect(
+        exception.cause,
+        'There was an error updating revert request record review issue landed timestamp with review issue number 2048.',
+      );
+    }
+
+    expect(hasError, isTrue);
+  });
+
+  test('Update revert request review record does not complete successfully.', () async {
+    when(jobsResource.query(captureAny, expectedProjectId)).thenAnswer((Invocation invocation) {
+      return Future<QueryResponse>.value(
+        QueryResponse.fromJson(jsonDecode(errorResponse) as Map<dynamic, dynamic>),
+      );
+    });
+
+    bool hasError = false;
+    try {
+      await service.updateReviewRequestIssue(
+        projectId: expectedProjectId,
+        reviewIssueLandedTimestamp: DateTime.now(),
+        reviewIssueNumber: 2048,
+        reviewIssueClosedBy: 'ricardoamador',
+      );
+    } on BigQueryException catch (exception) {
+      hasError = true;
+      expect(exception.cause, 'Update of review issue 2048 did not complete.');
+    }
+
+    expect(hasError, isTrue);
+  });
 }
diff --git a/auto_submit/test/service/validation_service_test.dart b/auto_submit/test/service/validation_service_test.dart
index 2ed3fbd..3e9acfb 100644
--- a/auto_submit/test/service/validation_service_test.dart
+++ b/auto_submit/test/service/validation_service_test.dart
@@ -51,7 +51,7 @@
 
     when(jobsResource.query(captureAny, any)).thenAnswer((Invocation invocation) {
       return Future<QueryResponse>.value(
-        QueryResponse.fromJson(jsonDecode(insertDeleteSuccessResponse) as Map<dynamic, dynamic>),
+        QueryResponse.fromJson(jsonDecode(insertDeleteUpdateSuccessResponse) as Map<dynamic, dynamic>),
       );
     });
   });
diff --git a/auto_submit/test/src/service/fake_config.dart b/auto_submit/test/src/service/fake_config.dart
index b2a698e..e627674 100644
--- a/auto_submit/test/src/service/fake_config.dart
+++ b/auto_submit/test/src/service/fake_config.dart
@@ -24,6 +24,7 @@
     this.overrideTreeStatusLabelValue,
     this.webhookKey,
     this.kPubsubPullNumberValue,
+    this.bigqueryService,
   }) : super(
           cacheProvider: Cache.inMemoryCacheProvider(4),
           secretManager: LocalSecretManager(),
diff --git a/auto_submit/test/src/service/fake_github_service.dart b/auto_submit/test/src/service/fake_github_service.dart
index ae5eccc..0a15c0a 100644
--- a/auto_submit/test/src/service/fake_github_service.dart
+++ b/auto_submit/test/src/service/fake_github_service.dart
@@ -228,4 +228,9 @@
     return revertFileNames.toSet().containsAll(currentFileNames) &&
         currentFileNames.toSet().containsAll(revertFileNames);
   }
+
+  @override
+  Future<Issue> getIssue({required RepositorySlug slug, required int issueNumber}) async {
+    return githubIssueMock!;
+  }
 }
diff --git a/auto_submit/test/utilities/mocks.mocks.dart b/auto_submit/test/utilities/mocks.mocks.dart
index 9be1dbe..9397c0e 100644
--- a/auto_submit/test/utilities/mocks.mocks.dart
+++ b/auto_submit/test/utilities/mocks.mocks.dart
@@ -1,4 +1,4 @@
-// Mocks generated by Mockito 5.3.0 from annotations
+// Mocks generated by Mockito 5.3.1 from annotations
 // in auto_submit/test/utilities/mocks.dart.
 // Do not manually edit this file.
 
@@ -28,187 +28,463 @@
 // 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);
+  _FakeClient_0(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeJobCancelResponse_1 extends _i1.SmartFake implements _i3.JobCancelResponse {
-  _FakeJobCancelResponse_1(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeJobCancelResponse_1(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeJob_2 extends _i1.SmartFake implements _i3.Job {
-  _FakeJob_2(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeJob_2(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeGetQueryResultsResponse_3 extends _i1.SmartFake implements _i3.GetQueryResultsResponse {
-  _FakeGetQueryResultsResponse_3(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeGetQueryResultsResponse_3(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeJobList_4 extends _i1.SmartFake implements _i3.JobList {
-  _FakeJobList_4(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeJobList_4(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeQueryResponse_5 extends _i1.SmartFake implements _i3.QueryResponse {
-  _FakeQueryResponse_5(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeQueryResponse_5(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeConfig_6 extends _i1.SmartFake implements _i4.Config {
-  _FakeConfig_6(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeConfig_6(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeActivityService_7 extends _i1.SmartFake implements _i5.ActivityService {
-  _FakeActivityService_7(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeActivityService_7(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeAuthorizationsService_8 extends _i1.SmartFake implements _i5.AuthorizationsService {
-  _FakeAuthorizationsService_8(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeAuthorizationsService_8(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeGistsService_9 extends _i1.SmartFake implements _i5.GistsService {
-  _FakeGistsService_9(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeGistsService_9(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeGitService_10 extends _i1.SmartFake implements _i5.GitService {
-  _FakeGitService_10(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeGitService_10(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeIssuesService_11 extends _i1.SmartFake implements _i5.IssuesService {
-  _FakeIssuesService_11(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeIssuesService_11(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeMiscService_12 extends _i1.SmartFake implements _i5.MiscService {
-  _FakeMiscService_12(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeMiscService_12(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeOrganizationsService_13 extends _i1.SmartFake implements _i5.OrganizationsService {
-  _FakeOrganizationsService_13(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeOrganizationsService_13(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePullRequestsService_14 extends _i1.SmartFake implements _i5.PullRequestsService {
-  _FakePullRequestsService_14(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePullRequestsService_14(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRepositoriesService_15 extends _i1.SmartFake implements _i5.RepositoriesService {
-  _FakeRepositoriesService_15(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRepositoriesService_15(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeSearchService_16 extends _i1.SmartFake implements _i5.SearchService {
-  _FakeSearchService_16(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeSearchService_16(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeUrlShortenerService_17 extends _i1.SmartFake implements _i5.UrlShortenerService {
-  _FakeUrlShortenerService_17(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeUrlShortenerService_17(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeUsersService_18 extends _i1.SmartFake implements _i5.UsersService {
-  _FakeUsersService_18(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeUsersService_18(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeChecksService_19 extends _i1.SmartFake implements _i5.ChecksService {
-  _FakeChecksService_19(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeChecksService_19(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeResponse_20 extends _i1.SmartFake implements _i2.Response {
-  _FakeResponse_20(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeResponse_20(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeGitHub_21 extends _i1.SmartFake implements _i5.GitHub {
-  _FakeGitHub_21(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeGitHub_21(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePullRequest_22 extends _i1.SmartFake implements _i5.PullRequest {
-  _FakePullRequest_22(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePullRequest_22(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePullRequestMerge_23 extends _i1.SmartFake implements _i5.PullRequestMerge {
-  _FakePullRequestMerge_23(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePullRequestMerge_23(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePullRequestComment_24 extends _i1.SmartFake implements _i5.PullRequestComment {
-  _FakePullRequestComment_24(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePullRequestComment_24(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePullRequestReview_25 extends _i1.SmartFake implements _i5.PullRequestReview {
-  _FakePullRequestReview_25(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePullRequestReview_25(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRepository_26 extends _i1.SmartFake implements _i5.Repository {
-  _FakeRepository_26(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRepository_26(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeLicenseDetails_27 extends _i1.SmartFake implements _i5.LicenseDetails {
-  _FakeLicenseDetails_27(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeLicenseDetails_27(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeLanguageBreakdown_28 extends _i1.SmartFake implements _i5.LanguageBreakdown {
-  _FakeLanguageBreakdown_28(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeLanguageBreakdown_28(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeBranch_29 extends _i1.SmartFake implements _i5.Branch {
-  _FakeBranch_29(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeBranch_29(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeCommitComment_30 extends _i1.SmartFake implements _i5.CommitComment {
-  _FakeCommitComment_30(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeCommitComment_30(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRepositoryCommit_31 extends _i1.SmartFake implements _i5.RepositoryCommit {
-  _FakeRepositoryCommit_31(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRepositoryCommit_31(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeGitHubComparison_32 extends _i1.SmartFake implements _i5.GitHubComparison {
-  _FakeGitHubComparison_32(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeGitHubComparison_32(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeGitHubFile_33 extends _i1.SmartFake implements _i5.GitHubFile {
-  _FakeGitHubFile_33(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeGitHubFile_33(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRepositoryContents_34 extends _i1.SmartFake implements _i5.RepositoryContents {
-  _FakeRepositoryContents_34(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRepositoryContents_34(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeContentCreation_35 extends _i1.SmartFake implements _i5.ContentCreation {
-  _FakeContentCreation_35(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeContentCreation_35(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeHook_36 extends _i1.SmartFake implements _i5.Hook {
-  _FakeHook_36(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeHook_36(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePublicKey_37 extends _i1.SmartFake implements _i5.PublicKey {
-  _FakePublicKey_37(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePublicKey_37(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRepositoryPages_38 extends _i1.SmartFake implements _i5.RepositoryPages {
-  _FakeRepositoryPages_38(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRepositoryPages_38(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakePageBuild_39 extends _i1.SmartFake implements _i5.PageBuild {
-  _FakePageBuild_39(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakePageBuild_39(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRelease_40 extends _i1.SmartFake implements _i5.Release {
-  _FakeRelease_40(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRelease_40(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeReleaseAsset_41 extends _i1.SmartFake implements _i5.ReleaseAsset {
-  _FakeReleaseAsset_41(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeReleaseAsset_41(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeContributorParticipation_42 extends _i1.SmartFake implements _i5.ContributorParticipation {
-  _FakeContributorParticipation_42(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeContributorParticipation_42(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeRepositoryStatus_43 extends _i1.SmartFake implements _i5.RepositoryStatus {
-  _FakeRepositoryStatus_43(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeRepositoryStatus_43(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeCombinedRepositoryStatus_44 extends _i1.SmartFake implements _i5.CombinedRepositoryStatus {
-  _FakeCombinedRepositoryStatus_44(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeCombinedRepositoryStatus_44(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 class _FakeReleaseNotes_45 extends _i1.SmartFake implements _i5.ReleaseNotes {
-  _FakeReleaseNotes_45(Object parent, Invocation parentInvocation) : super(parent, parentInvocation);
+  _FakeReleaseNotes_45(
+    Object parent,
+    Invocation parentInvocation,
+  ) : super(
+          parent,
+          parentInvocation,
+        );
 }
 
 /// A class which mocks [AccessClientProvider].
@@ -222,10 +498,21 @@
   @override
   _i7.Future<_i2.Client> createAccessClient(
           {List<String>? scopes = const [r'https://www.googleapis.com/auth/cloud-platform']}) =>
-      (super.noSuchMethod(Invocation.method(#createAccessClient, [], {#scopes: scopes}),
-              returnValue: _i7.Future<_i2.Client>.value(
-                  _FakeClient_0(this, Invocation.method(#createAccessClient, [], {#scopes: scopes}))))
-          as _i7.Future<_i2.Client>);
+      (super.noSuchMethod(
+        Invocation.method(
+          #createAccessClient,
+          [],
+          {#scopes: scopes},
+        ),
+        returnValue: _i7.Future<_i2.Client>.value(_FakeClient_0(
+          this,
+          Invocation.method(
+            #createAccessClient,
+            [],
+            {#scopes: scopes},
+          ),
+        )),
+      ) as _i7.Future<_i2.Client>);
 }
 
 /// A class which mocks [JobsResource].
@@ -237,86 +524,196 @@
   }
 
   @override
-  _i7.Future<_i3.JobCancelResponse> cancel(String? projectId, String? jobId, {String? location, String? $fields}) =>
-      (super.noSuchMethod(Invocation.method(#cancel, [projectId, jobId], {#location: location, #$fields: $fields}),
-              returnValue: _i7.Future<_i3.JobCancelResponse>.value(_FakeJobCancelResponse_1(
-                  this, Invocation.method(#cancel, [projectId, jobId], {#location: location, #$fields: $fields}))))
-          as _i7.Future<_i3.JobCancelResponse>);
-  @override
-  _i7.Future<void> delete(String? projectId, String? jobId, {String? location, String? $fields}) =>
-      (super.noSuchMethod(Invocation.method(#delete, [projectId, jobId], {#location: location, #$fields: $fields}),
-          returnValue: _i7.Future<void>.value(),
-          returnValueForMissingStub: _i7.Future<void>.value()) as _i7.Future<void>);
-  @override
-  _i7.Future<_i3.Job> get(String? projectId, String? jobId, {String? location, String? $fields}) => (super.noSuchMethod(
-          Invocation.method(#get, [projectId, jobId], {#location: location, #$fields: $fields}),
-          returnValue: _i7.Future<_i3.Job>.value(
-              _FakeJob_2(this, Invocation.method(#get, [projectId, jobId], {#location: location, #$fields: $fields}))))
-      as _i7.Future<_i3.Job>);
-  @override
-  _i7.Future<_i3.GetQueryResultsResponse> getQueryResults(String? projectId, String? jobId,
-          {String? location,
-          int? maxResults,
-          String? pageToken,
-          String? startIndex,
-          int? timeoutMs,
-          String? $fields}) =>
+  _i7.Future<_i3.JobCancelResponse> cancel(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    String? $fields,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#getQueryResults, [
+        Invocation.method(
+          #cancel,
+          [
             projectId,
-            jobId
-          ], {
+            jobId,
+          ],
+          {
+            #location: location,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i7.Future<_i3.JobCancelResponse>.value(_FakeJobCancelResponse_1(
+          this,
+          Invocation.method(
+            #cancel,
+            [
+              projectId,
+              jobId,
+            ],
+            {
+              #location: location,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i3.JobCancelResponse>);
+  @override
+  _i7.Future<void> delete(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #delete,
+          [
+            projectId,
+            jobId,
+          ],
+          {
+            #location: location,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i7.Future<void>.value(),
+        returnValueForMissingStub: _i7.Future<void>.value(),
+      ) as _i7.Future<void>);
+  @override
+  _i7.Future<_i3.Job> get(
+    String? projectId,
+    String? jobId, {
+    String? location,
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #get,
+          [
+            projectId,
+            jobId,
+          ],
+          {
+            #location: location,
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i7.Future<_i3.Job>.value(_FakeJob_2(
+          this,
+          Invocation.method(
+            #get,
+            [
+              projectId,
+              jobId,
+            ],
+            {
+              #location: location,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i3.Job>);
+  @override
+  _i7.Future<_i3.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: _i7.Future<_i3.GetQueryResultsResponse>.value(_FakeGetQueryResultsResponse_3(
-              this,
-              Invocation.method(#getQueryResults, [
-                projectId,
-                jobId
-              ], {
-                #location: location,
-                #maxResults: maxResults,
-                #pageToken: pageToken,
-                #startIndex: startIndex,
-                #timeoutMs: timeoutMs,
-                #$fields: $fields
-              })))) as _i7.Future<_i3.GetQueryResultsResponse>);
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i7.Future<_i3.GetQueryResultsResponse>.value(_FakeGetQueryResultsResponse_3(
+          this,
+          Invocation.method(
+            #getQueryResults,
+            [
+              projectId,
+              jobId,
+            ],
+            {
+              #location: location,
+              #maxResults: maxResults,
+              #pageToken: pageToken,
+              #startIndex: startIndex,
+              #timeoutMs: timeoutMs,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i3.GetQueryResultsResponse>);
   @override
-  _i7.Future<_i3.Job> insert(_i3.Job? request, String? projectId,
-          {String? $fields,
-          _i8.UploadOptions? uploadOptions = _i8.UploadOptions.defaultOptions,
-          _i8.Media? uploadMedia}) =>
-      (super.noSuchMethod(Invocation.method(#insert, [request, projectId], {#$fields: $fields, #uploadOptions: uploadOptions, #uploadMedia: uploadMedia}),
-          returnValue: _i7.Future<_i3.Job>.value(_FakeJob_2(
-              this,
-              Invocation.method(#insert, [
-                request,
-                projectId
-              ], {
-                #$fields: $fields,
-                #uploadOptions: uploadOptions,
-                #uploadMedia: uploadMedia
-              })))) as _i7.Future<_i3.Job>);
-  @override
-  _i7.Future<_i3.JobList> list(String? projectId,
-          {bool? allUsers,
-          String? maxCreationTime,
-          int? maxResults,
-          String? minCreationTime,
-          String? pageToken,
-          String? parentJobId,
-          String? projection,
-          List<String>? stateFilter,
-          String? $fields}) =>
+  _i7.Future<_i3.Job> insert(
+    _i3.Job? request,
+    String? projectId, {
+    String? $fields,
+    _i8.UploadOptions? uploadOptions = _i8.UploadOptions.defaultOptions,
+    _i8.Media? uploadMedia,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#list, [
-            projectId
-          ], {
+        Invocation.method(
+          #insert,
+          [
+            request,
+            projectId,
+          ],
+          {
+            #$fields: $fields,
+            #uploadOptions: uploadOptions,
+            #uploadMedia: uploadMedia,
+          },
+        ),
+        returnValue: _i7.Future<_i3.Job>.value(_FakeJob_2(
+          this,
+          Invocation.method(
+            #insert,
+            [
+              request,
+              projectId,
+            ],
+            {
+              #$fields: $fields,
+              #uploadOptions: uploadOptions,
+              #uploadMedia: uploadMedia,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i3.Job>);
+  @override
+  _i7.Future<_i3.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,
@@ -325,29 +722,55 @@
             #parentJobId: parentJobId,
             #projection: projection,
             #stateFilter: stateFilter,
-            #$fields: $fields
-          }),
-          returnValue: _i7.Future<_i3.JobList>.value(_FakeJobList_4(
-              this,
-              Invocation.method(#list, [
-                projectId
-              ], {
-                #allUsers: allUsers,
-                #maxCreationTime: maxCreationTime,
-                #maxResults: maxResults,
-                #minCreationTime: minCreationTime,
-                #pageToken: pageToken,
-                #parentJobId: parentJobId,
-                #projection: projection,
-                #stateFilter: stateFilter,
-                #$fields: $fields
-              })))) as _i7.Future<_i3.JobList>);
+            #$fields: $fields,
+          },
+        ),
+        returnValue: _i7.Future<_i3.JobList>.value(_FakeJobList_4(
+          this,
+          Invocation.method(
+            #list,
+            [projectId],
+            {
+              #allUsers: allUsers,
+              #maxCreationTime: maxCreationTime,
+              #maxResults: maxResults,
+              #minCreationTime: minCreationTime,
+              #pageToken: pageToken,
+              #parentJobId: parentJobId,
+              #projection: projection,
+              #stateFilter: stateFilter,
+              #$fields: $fields,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i3.JobList>);
   @override
-  _i7.Future<_i3.QueryResponse> query(_i3.QueryRequest? request, String? projectId, {String? $fields}) =>
-      (super.noSuchMethod(Invocation.method(#query, [request, projectId], {#$fields: $fields}),
-              returnValue: _i7.Future<_i3.QueryResponse>.value(
-                  _FakeQueryResponse_5(this, Invocation.method(#query, [request, projectId], {#$fields: $fields}))))
-          as _i7.Future<_i3.QueryResponse>);
+  _i7.Future<_i3.QueryResponse> query(
+    _i3.QueryRequest? request,
+    String? projectId, {
+    String? $fields,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #query,
+          [
+            request,
+            projectId,
+          ],
+          {#$fields: $fields},
+        ),
+        returnValue: _i7.Future<_i3.QueryResponse>.value(_FakeQueryResponse_5(
+          this,
+          Invocation.method(
+            #query,
+            [
+              request,
+              projectId,
+            ],
+            {#$fields: $fields},
+          ),
+        )),
+      ) as _i7.Future<_i3.QueryResponse>);
 }
 
 /// A class which mocks [ApproverService].
@@ -359,19 +782,38 @@
   }
 
   @override
-  _i4.Config get config =>
-      (super.noSuchMethod(Invocation.getter(#config), returnValue: _FakeConfig_6(this, Invocation.getter(#config)))
-          as _i4.Config);
+  _i4.Config get config => (super.noSuchMethod(
+        Invocation.getter(#config),
+        returnValue: _FakeConfig_6(
+          this,
+          Invocation.getter(#config),
+        ),
+      ) as _i4.Config);
   @override
-  _i7.Future<void> autoApproval(_i5.PullRequest? pullRequest) =>
-      (super.noSuchMethod(Invocation.method(#autoApproval, [pullRequest]),
-          returnValue: _i7.Future<void>.value(),
-          returnValueForMissingStub: _i7.Future<void>.value()) as _i7.Future<void>);
+  _i7.Future<void> autoApproval(_i5.PullRequest? pullRequest) => (super.noSuchMethod(
+        Invocation.method(
+          #autoApproval,
+          [pullRequest],
+        ),
+        returnValue: _i7.Future<void>.value(),
+        returnValueForMissingStub: _i7.Future<void>.value(),
+      ) as _i7.Future<void>);
   @override
-  _i7.Future<void> revertApproval(_i10.QueryResult? queryResult, _i5.PullRequest? pullRequest) =>
-      (super.noSuchMethod(Invocation.method(#revertApproval, [queryResult, pullRequest]),
-          returnValue: _i7.Future<void>.value(),
-          returnValueForMissingStub: _i7.Future<void>.value()) as _i7.Future<void>);
+  _i7.Future<void> revertApproval(
+    _i10.QueryResult? queryResult,
+    _i5.PullRequest? pullRequest,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #revertApproval,
+          [
+            queryResult,
+            pullRequest,
+          ],
+        ),
+        returnValue: _i7.Future<void>.value(),
+        returnValueForMissingStub: _i7.Future<void>.value(),
+      ) as _i7.Future<void>);
 }
 
 /// A class which mocks [GitHub].
@@ -383,194 +825,329 @@
   }
 
   @override
-  set auth(_i5.Authentication? _auth) =>
-      super.noSuchMethod(Invocation.setter(#auth, _auth), returnValueForMissingStub: null);
+  set auth(_i5.Authentication? _auth) => super.noSuchMethod(
+        Invocation.setter(
+          #auth,
+          _auth,
+        ),
+        returnValueForMissingStub: null,
+      );
   @override
-  String get endpoint => (super.noSuchMethod(Invocation.getter(#endpoint), returnValue: '') as String);
+  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);
+  _i2.Client get client => (super.noSuchMethod(
+        Invocation.getter(#client),
+        returnValue: _FakeClient_0(
+          this,
+          Invocation.getter(#client),
+        ),
+      ) as _i2.Client);
   @override
-  _i5.ActivityService get activity => (super.noSuchMethod(Invocation.getter(#activity),
-      returnValue: _FakeActivityService_7(this, Invocation.getter(#activity))) as _i5.ActivityService);
+  _i5.ActivityService get activity => (super.noSuchMethod(
+        Invocation.getter(#activity),
+        returnValue: _FakeActivityService_7(
+          this,
+          Invocation.getter(#activity),
+        ),
+      ) as _i5.ActivityService);
   @override
-  _i5.AuthorizationsService get authorizations => (super.noSuchMethod(Invocation.getter(#authorizations),
-          returnValue: _FakeAuthorizationsService_8(this, Invocation.getter(#authorizations)))
-      as _i5.AuthorizationsService);
+  _i5.AuthorizationsService get authorizations => (super.noSuchMethod(
+        Invocation.getter(#authorizations),
+        returnValue: _FakeAuthorizationsService_8(
+          this,
+          Invocation.getter(#authorizations),
+        ),
+      ) as _i5.AuthorizationsService);
   @override
-  _i5.GistsService get gists =>
-      (super.noSuchMethod(Invocation.getter(#gists), returnValue: _FakeGistsService_9(this, Invocation.getter(#gists)))
-          as _i5.GistsService);
+  _i5.GistsService get gists => (super.noSuchMethod(
+        Invocation.getter(#gists),
+        returnValue: _FakeGistsService_9(
+          this,
+          Invocation.getter(#gists),
+        ),
+      ) as _i5.GistsService);
   @override
-  _i5.GitService get git =>
-      (super.noSuchMethod(Invocation.getter(#git), returnValue: _FakeGitService_10(this, Invocation.getter(#git)))
-          as _i5.GitService);
+  _i5.GitService get git => (super.noSuchMethod(
+        Invocation.getter(#git),
+        returnValue: _FakeGitService_10(
+          this,
+          Invocation.getter(#git),
+        ),
+      ) as _i5.GitService);
   @override
-  _i5.IssuesService get issues => (super.noSuchMethod(Invocation.getter(#issues),
-      returnValue: _FakeIssuesService_11(this, Invocation.getter(#issues))) as _i5.IssuesService);
+  _i5.IssuesService get issues => (super.noSuchMethod(
+        Invocation.getter(#issues),
+        returnValue: _FakeIssuesService_11(
+          this,
+          Invocation.getter(#issues),
+        ),
+      ) as _i5.IssuesService);
   @override
-  _i5.MiscService get misc =>
-      (super.noSuchMethod(Invocation.getter(#misc), returnValue: _FakeMiscService_12(this, Invocation.getter(#misc)))
-          as _i5.MiscService);
+  _i5.MiscService get misc => (super.noSuchMethod(
+        Invocation.getter(#misc),
+        returnValue: _FakeMiscService_12(
+          this,
+          Invocation.getter(#misc),
+        ),
+      ) as _i5.MiscService);
   @override
-  _i5.OrganizationsService get organizations => (super.noSuchMethod(Invocation.getter(#organizations),
-      returnValue: _FakeOrganizationsService_13(this, Invocation.getter(#organizations))) as _i5.OrganizationsService);
+  _i5.OrganizationsService get organizations => (super.noSuchMethod(
+        Invocation.getter(#organizations),
+        returnValue: _FakeOrganizationsService_13(
+          this,
+          Invocation.getter(#organizations),
+        ),
+      ) as _i5.OrganizationsService);
   @override
-  _i5.PullRequestsService get pullRequests => (super.noSuchMethod(Invocation.getter(#pullRequests),
-      returnValue: _FakePullRequestsService_14(this, Invocation.getter(#pullRequests))) as _i5.PullRequestsService);
+  _i5.PullRequestsService get pullRequests => (super.noSuchMethod(
+        Invocation.getter(#pullRequests),
+        returnValue: _FakePullRequestsService_14(
+          this,
+          Invocation.getter(#pullRequests),
+        ),
+      ) as _i5.PullRequestsService);
   @override
-  _i5.RepositoriesService get repositories => (super.noSuchMethod(Invocation.getter(#repositories),
-      returnValue: _FakeRepositoriesService_15(this, Invocation.getter(#repositories))) as _i5.RepositoriesService);
+  _i5.RepositoriesService get repositories => (super.noSuchMethod(
+        Invocation.getter(#repositories),
+        returnValue: _FakeRepositoriesService_15(
+          this,
+          Invocation.getter(#repositories),
+        ),
+      ) as _i5.RepositoriesService);
   @override
-  _i5.SearchService get search => (super.noSuchMethod(Invocation.getter(#search),
-      returnValue: _FakeSearchService_16(this, Invocation.getter(#search))) as _i5.SearchService);
+  _i5.SearchService get search => (super.noSuchMethod(
+        Invocation.getter(#search),
+        returnValue: _FakeSearchService_16(
+          this,
+          Invocation.getter(#search),
+        ),
+      ) as _i5.SearchService);
   @override
-  _i5.UrlShortenerService get urlShortener => (super.noSuchMethod(Invocation.getter(#urlShortener),
-      returnValue: _FakeUrlShortenerService_17(this, Invocation.getter(#urlShortener))) as _i5.UrlShortenerService);
+  _i5.UrlShortenerService get urlShortener => (super.noSuchMethod(
+        Invocation.getter(#urlShortener),
+        returnValue: _FakeUrlShortenerService_17(
+          this,
+          Invocation.getter(#urlShortener),
+        ),
+      ) as _i5.UrlShortenerService);
   @override
-  _i5.UsersService get users =>
-      (super.noSuchMethod(Invocation.getter(#users), returnValue: _FakeUsersService_18(this, Invocation.getter(#users)))
-          as _i5.UsersService);
+  _i5.UsersService get users => (super.noSuchMethod(
+        Invocation.getter(#users),
+        returnValue: _FakeUsersService_18(
+          this,
+          Invocation.getter(#users),
+        ),
+      ) as _i5.UsersService);
   @override
-  _i5.ChecksService get checks => (super.noSuchMethod(Invocation.getter(#checks),
-      returnValue: _FakeChecksService_19(this, Invocation.getter(#checks))) as _i5.ChecksService);
+  _i5.ChecksService get checks => (super.noSuchMethod(
+        Invocation.getter(#checks),
+        returnValue: _FakeChecksService_19(
+          this,
+          Invocation.getter(#checks),
+        ),
+      ) as _i5.ChecksService);
   @override
-  _i7.Future<T> getJSON<S, T>(String? path,
-          {int? statusCode,
-          void Function(_i2.Response)? fail,
-          Map<String, String>? headers,
-          Map<String, String>? params,
-          _i5.JSONConverter<S, T>? convert,
-          String? preview}) =>
+  _i7.Future<T> getJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, String>? params,
+    _i5.JSONConverter<S, T>? convert,
+    String? preview,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#getJSON, [
-            path
-          ], {
+        Invocation.method(
+          #getJSON,
+          [path],
+          {
             #statusCode: statusCode,
             #fail: fail,
             #headers: headers,
             #params: params,
             #convert: convert,
-            #preview: preview
-          }),
-          returnValue: _i7.Future<T>.value(null)) as _i7.Future<T>);
+            #preview: preview,
+          },
+        ),
+        returnValue: _i7.Future<T>.value(null),
+      ) as _i7.Future<T>);
   @override
-  _i7.Future<T> postJSON<S, T>(String? path,
-          {int? statusCode,
-          void Function(_i2.Response)? fail,
-          Map<String, String>? headers,
-          Map<String, dynamic>? params,
-          _i5.JSONConverter<S, T>? convert,
-          dynamic body,
-          String? preview}) =>
+  _i7.Future<T> postJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i5.JSONConverter<S, T>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#postJSON, [
-            path
-          ], {
+        Invocation.method(
+          #postJSON,
+          [path],
+          {
             #statusCode: statusCode,
             #fail: fail,
             #headers: headers,
             #params: params,
             #convert: convert,
             #body: body,
-            #preview: preview
-          }),
-          returnValue: _i7.Future<T>.value(null)) as _i7.Future<T>);
+            #preview: preview,
+          },
+        ),
+        returnValue: _i7.Future<T>.value(null),
+      ) as _i7.Future<T>);
   @override
-  _i7.Future<T> putJSON<S, T>(String? path,
-          {int? statusCode,
-          void Function(_i2.Response)? fail,
-          Map<String, String>? headers,
-          Map<String, dynamic>? params,
-          _i5.JSONConverter<S, T>? convert,
-          dynamic body,
-          String? preview}) =>
+  _i7.Future<T> putJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i5.JSONConverter<S, T>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#putJSON, [
-            path
-          ], {
+        Invocation.method(
+          #putJSON,
+          [path],
+          {
             #statusCode: statusCode,
             #fail: fail,
             #headers: headers,
             #params: params,
             #convert: convert,
             #body: body,
-            #preview: preview
-          }),
-          returnValue: _i7.Future<T>.value(null)) as _i7.Future<T>);
+            #preview: preview,
+          },
+        ),
+        returnValue: _i7.Future<T>.value(null),
+      ) as _i7.Future<T>);
   @override
-  _i7.Future<T> patchJSON<S, T>(String? path,
-          {int? statusCode,
-          void Function(_i2.Response)? fail,
-          Map<String, String>? headers,
-          Map<String, dynamic>? params,
-          _i5.JSONConverter<S, T>? convert,
-          dynamic body,
-          String? preview}) =>
+  _i7.Future<T> patchJSON<S, T>(
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i5.JSONConverter<S, T>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#patchJSON, [
-            path
-          ], {
+        Invocation.method(
+          #patchJSON,
+          [path],
+          {
             #statusCode: statusCode,
             #fail: fail,
             #headers: headers,
             #params: params,
             #convert: convert,
             #body: body,
-            #preview: preview
-          }),
-          returnValue: _i7.Future<T>.value(null)) as _i7.Future<T>);
+            #preview: preview,
+          },
+        ),
+        returnValue: _i7.Future<T>.value(null),
+      ) as _i7.Future<T>);
   @override
-  _i7.Future<T> requestJson<S, T>(String? method, String? path,
-          {int? statusCode,
-          void Function(_i2.Response)? fail,
-          Map<String, String>? headers,
-          Map<String, dynamic>? params,
-          _i5.JSONConverter<S, T?>? convert,
-          dynamic body,
-          String? preview}) =>
+  _i7.Future<T> requestJson<S, T>(
+    String? method,
+    String? path, {
+    int? statusCode,
+    void Function(_i2.Response)? fail,
+    Map<String, String>? headers,
+    Map<String, dynamic>? params,
+    _i5.JSONConverter<S, T?>? convert,
+    dynamic body,
+    String? preview,
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#requestJson, [
+        Invocation.method(
+          #requestJson,
+          [
             method,
-            path
-          ], {
+            path,
+          ],
+          {
             #statusCode: statusCode,
             #fail: fail,
             #headers: headers,
             #params: params,
             #convert: convert,
             #body: body,
-            #preview: preview
-          }),
-          returnValue: _i7.Future<T>.value(null)) as _i7.Future<T>);
+            #preview: preview,
+          },
+        ),
+        returnValue: _i7.Future<T>.value(null),
+      ) as _i7.Future<T>);
   @override
-  _i7.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: _i7.Future<_i2.Response>.value(_FakeResponse_20(
-              this,
-              Invocation.method(#request, [
-                method,
-                path
-              ], {
-                #headers: headers,
-                #params: params,
-                #body: body,
-                #statusCode: statusCode,
-                #fail: fail,
-                #preview: preview
-              })))) as _i7.Future<_i2.Response>);
+  _i7.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: _i7.Future<_i2.Response>.value(_FakeResponse_20(
+          this,
+          Invocation.method(
+            #request,
+            [
+              method,
+              path,
+            ],
+            {
+              #headers: headers,
+              #params: params,
+              #body: body,
+              #statusCode: statusCode,
+              #fail: fail,
+              #preview: preview,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i2.Response>);
   @override
-  void handleStatusCode(_i2.Response? response) =>
-      super.noSuchMethod(Invocation.method(#handleStatusCode, [response]), returnValueForMissingStub: null);
+  void handleStatusCode(_i2.Response? response) => super.noSuchMethod(
+        Invocation.method(
+          #handleStatusCode,
+          [response],
+        ),
+        returnValueForMissingStub: null,
+      );
   @override
-  void dispose() => super.noSuchMethod(Invocation.method(#dispose, []), returnValueForMissingStub: null);
+  void dispose() => super.noSuchMethod(
+        Invocation.method(
+          #dispose,
+          [],
+        ),
+        returnValueForMissingStub: null,
+      );
 }
 
 /// A class which mocks [PullRequestsService].
@@ -582,84 +1159,287 @@
   }
 
   @override
-  _i5.GitHub get github =>
-      (super.noSuchMethod(Invocation.getter(#github), returnValue: _FakeGitHub_21(this, Invocation.getter(#github)))
-          as _i5.GitHub);
+  _i5.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_21(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i5.GitHub);
   @override
-  _i7.Stream<_i5.PullRequest> list(_i5.RepositorySlug? slug,
-          {int? pages,
-          String? base,
-          String? direction = r'desc',
-          String? head,
-          String? sort = r'created',
-          String? state = r'open'}) =>
+  _i7.Stream<_i5.PullRequest> list(
+    _i5.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: _i7.Stream<_i5.PullRequest>.empty()) as _i7.Stream<_i5.PullRequest>);
+        Invocation.method(
+          #list,
+          [slug],
+          {
+            #pages: pages,
+            #base: base,
+            #direction: direction,
+            #head: head,
+            #sort: sort,
+            #state: state,
+          },
+        ),
+        returnValue: _i7.Stream<_i5.PullRequest>.empty(),
+      ) as _i7.Stream<_i5.PullRequest>);
   @override
-  _i7.Future<_i5.PullRequest> get(_i5.RepositorySlug? slug, int? number) =>
-      (super.noSuchMethod(Invocation.method(#get, [slug, number]),
-              returnValue:
-                  _i7.Future<_i5.PullRequest>.value(_FakePullRequest_22(this, Invocation.method(#get, [slug, number]))))
-          as _i7.Future<_i5.PullRequest>);
-  @override
-  _i7.Future<_i5.PullRequest> create(_i5.RepositorySlug? slug, _i5.CreatePullRequest? request) => (super.noSuchMethod(
-          Invocation.method(#create, [slug, request]),
-          returnValue:
-              _i7.Future<_i5.PullRequest>.value(_FakePullRequest_22(this, Invocation.method(#create, [slug, request]))))
-      as _i7.Future<_i5.PullRequest>);
-  @override
-  _i7.Future<_i5.PullRequest> edit(_i5.RepositorySlug? slug, int? number,
-          {String? title, String? body, String? state, String? base}) =>
+  _i7.Future<_i5.PullRequest> get(
+    _i5.RepositorySlug? slug,
+    int? number,
+  ) =>
       (super.noSuchMethod(
-              Invocation.method(#edit, [slug, number], {#title: title, #body: body, #state: state, #base: base}),
-              returnValue: _i7.Future<_i5.PullRequest>.value(_FakePullRequest_22(this,
-                  Invocation.method(#edit, [slug, number], {#title: title, #body: body, #state: state, #base: base}))))
-          as _i7.Future<_i5.PullRequest>);
+        Invocation.method(
+          #get,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #get,
+            [
+              slug,
+              number,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.PullRequest>);
   @override
-  _i7.Stream<_i5.RepositoryCommit> listCommits(_i5.RepositorySlug? slug, int? number) =>
-      (super.noSuchMethod(Invocation.method(#listCommits, [slug, number]),
-          returnValue: _i7.Stream<_i5.RepositoryCommit>.empty()) as _i7.Stream<_i5.RepositoryCommit>);
+  _i7.Future<_i5.PullRequest> create(
+    _i5.RepositorySlug? slug,
+    _i5.CreatePullRequest? request,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #create,
+          [
+            slug,
+            request,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #create,
+            [
+              slug,
+              request,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.PullRequest>);
   @override
-  _i7.Stream<_i5.PullRequestFile> listFiles(_i5.RepositorySlug? slug, int? number) =>
-      (super.noSuchMethod(Invocation.method(#listFiles, [slug, number]),
-          returnValue: _i7.Stream<_i5.PullRequestFile>.empty()) as _i7.Stream<_i5.PullRequestFile>);
+  _i7.Future<_i5.PullRequest> edit(
+    _i5.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: _i7.Future<_i5.PullRequest>.value(_FakePullRequest_22(
+          this,
+          Invocation.method(
+            #edit,
+            [
+              slug,
+              number,
+            ],
+            {
+              #title: title,
+              #body: body,
+              #state: state,
+              #base: base,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.PullRequest>);
   @override
-  _i7.Stream<_i5.PullRequestReview> listReviews(_i5.RepositorySlug? slug, int? number) =>
-      (super.noSuchMethod(Invocation.method(#listReviews, [slug, number]),
-          returnValue: _i7.Stream<_i5.PullRequestReview>.empty()) as _i7.Stream<_i5.PullRequestReview>);
+  _i7.Stream<_i5.RepositoryCommit> listCommits(
+    _i5.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listCommits,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.RepositoryCommit>.empty(),
+      ) as _i7.Stream<_i5.RepositoryCommit>);
   @override
-  _i7.Future<bool> isMerged(_i5.RepositorySlug? slug, int? number) =>
-      (super.noSuchMethod(Invocation.method(#isMerged, [slug, number]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Stream<_i5.PullRequestFile> listFiles(
+    _i5.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listFiles,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.PullRequestFile>.empty(),
+      ) as _i7.Stream<_i5.PullRequestFile>);
   @override
-  _i7.Future<_i5.PullRequestMerge> merge(_i5.RepositorySlug? slug, int? number, {String? message}) =>
-      (super.noSuchMethod(Invocation.method(#merge, [slug, number], {#message: message}),
-              returnValue: _i7.Future<_i5.PullRequestMerge>.value(
-                  _FakePullRequestMerge_23(this, Invocation.method(#merge, [slug, number], {#message: message}))))
-          as _i7.Future<_i5.PullRequestMerge>);
+  _i7.Stream<_i5.PullRequestReview> listReviews(
+    _i5.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listReviews,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.PullRequestReview>.empty(),
+      ) as _i7.Stream<_i5.PullRequestReview>);
   @override
-  _i7.Stream<_i5.PullRequestComment> listCommentsByPullRequest(_i5.RepositorySlug? slug, int? number) =>
-      (super.noSuchMethod(Invocation.method(#listCommentsByPullRequest, [slug, number]),
-          returnValue: _i7.Stream<_i5.PullRequestComment>.empty()) as _i7.Stream<_i5.PullRequestComment>);
+  _i7.Future<bool> isMerged(
+    _i5.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #isMerged,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Stream<_i5.PullRequestComment> listComments(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listComments, [slug]),
-          returnValue: _i7.Stream<_i5.PullRequestComment>.empty()) as _i7.Stream<_i5.PullRequestComment>);
+  _i7.Future<_i5.PullRequestMerge> merge(
+    _i5.RepositorySlug? slug,
+    int? number, {
+    String? message,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #merge,
+          [
+            slug,
+            number,
+          ],
+          {#message: message},
+        ),
+        returnValue: _i7.Future<_i5.PullRequestMerge>.value(_FakePullRequestMerge_23(
+          this,
+          Invocation.method(
+            #merge,
+            [
+              slug,
+              number,
+            ],
+            {#message: message},
+          ),
+        )),
+      ) as _i7.Future<_i5.PullRequestMerge>);
+  @override
+  _i7.Stream<_i5.PullRequestComment> listCommentsByPullRequest(
+    _i5.RepositorySlug? slug,
+    int? number,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listCommentsByPullRequest,
+          [
+            slug,
+            number,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.PullRequestComment>.empty(),
+      ) as _i7.Stream<_i5.PullRequestComment>);
+  @override
+  _i7.Stream<_i5.PullRequestComment> listComments(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listComments,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.PullRequestComment>.empty(),
+      ) as _i7.Stream<_i5.PullRequestComment>);
   @override
   _i7.Future<_i5.PullRequestComment> createComment(
-          _i5.RepositorySlug? slug, int? number, _i5.CreatePullRequestComment? comment) =>
-      (super.noSuchMethod(Invocation.method(#createComment, [slug, number, comment]),
-              returnValue: _i7.Future<_i5.PullRequestComment>.value(
-                  _FakePullRequestComment_24(this, Invocation.method(#createComment, [slug, number, comment]))))
-          as _i7.Future<_i5.PullRequestComment>);
+    _i5.RepositorySlug? slug,
+    int? number,
+    _i5.CreatePullRequestComment? comment,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createComment,
+          [
+            slug,
+            number,
+            comment,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.PullRequestComment>.value(_FakePullRequestComment_24(
+          this,
+          Invocation.method(
+            #createComment,
+            [
+              slug,
+              number,
+              comment,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.PullRequestComment>);
   @override
-  _i7.Future<_i5.PullRequestReview> createReview(_i5.RepositorySlug? slug, _i5.CreatePullRequestReview? review) =>
-      (super.noSuchMethod(Invocation.method(#createReview, [slug, review]),
-              returnValue: _i7.Future<_i5.PullRequestReview>.value(
-                  _FakePullRequestReview_25(this, Invocation.method(#createReview, [slug, review]))))
-          as _i7.Future<_i5.PullRequestReview>);
+  _i7.Future<_i5.PullRequestReview> createReview(
+    _i5.RepositorySlug? slug,
+    _i5.CreatePullRequestReview? review,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createReview,
+          [
+            slug,
+            review,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.PullRequestReview>.value(_FakePullRequestReview_25(
+          this,
+          Invocation.method(
+            #createReview,
+            [
+              slug,
+              review,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.PullRequestReview>);
 }
 
 /// A class which mocks [RepositoriesService].
@@ -671,258 +1451,787 @@
   }
 
   @override
-  _i5.GitHub get github =>
-      (super.noSuchMethod(Invocation.getter(#github), returnValue: _FakeGitHub_21(this, Invocation.getter(#github)))
-          as _i5.GitHub);
+  _i5.GitHub get github => (super.noSuchMethod(
+        Invocation.getter(#github),
+        returnValue: _FakeGitHub_21(
+          this,
+          Invocation.getter(#github),
+        ),
+      ) as _i5.GitHub);
   @override
-  _i7.Stream<_i5.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: _i7.Stream<_i5.Repository>.empty()) as _i7.Stream<_i5.Repository>);
-  @override
-  _i7.Stream<_i5.Repository> listUserRepositories(String? user,
-          {String? type = r'owner', String? sort = r'full_name', String? direction = r'asc'}) =>
+  _i7.Stream<_i5.Repository> listRepositories({
+    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: _i7.Stream<_i5.Repository>.empty()) as _i7.Stream<_i5.Repository>);
+        Invocation.method(
+          #listRepositories,
+          [],
+          {
+            #type: type,
+            #sort: sort,
+            #direction: direction,
+          },
+        ),
+        returnValue: _i7.Stream<_i5.Repository>.empty(),
+      ) as _i7.Stream<_i5.Repository>);
   @override
-  _i7.Stream<_i5.Repository> listOrganizationRepositories(String? org, {String? type = r'all'}) =>
-      (super.noSuchMethod(Invocation.method(#listOrganizationRepositories, [org], {#type: type}),
-          returnValue: _i7.Stream<_i5.Repository>.empty()) as _i7.Stream<_i5.Repository>);
-  @override
-  _i7.Stream<_i5.Repository> listPublicRepositories({int? limit = 50, DateTime? since}) =>
-      (super.noSuchMethod(Invocation.method(#listPublicRepositories, [], {#limit: limit, #since: since}),
-          returnValue: _i7.Stream<_i5.Repository>.empty()) as _i7.Stream<_i5.Repository>);
-  @override
-  _i7.Future<_i5.Repository> createRepository(_i5.CreateRepository? repository, {String? org}) =>
-      (super.noSuchMethod(Invocation.method(#createRepository, [repository], {#org: org}),
-              returnValue: _i7.Future<_i5.Repository>.value(
-                  _FakeRepository_26(this, Invocation.method(#createRepository, [repository], {#org: org}))))
-          as _i7.Future<_i5.Repository>);
-  @override
-  _i7.Future<_i5.LicenseDetails> getLicense(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#getLicense, [slug]),
-          returnValue: _i7.Future<_i5.LicenseDetails>.value(
-              _FakeLicenseDetails_27(this, Invocation.method(#getLicense, [slug])))) as _i7.Future<_i5.LicenseDetails>);
-  @override
-  _i7.Future<_i5.Repository> getRepository(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#getRepository, [slug]),
-              returnValue:
-                  _i7.Future<_i5.Repository>.value(_FakeRepository_26(this, Invocation.method(#getRepository, [slug]))))
-          as _i7.Future<_i5.Repository>);
-  @override
-  _i7.Stream<_i5.Repository> getRepositories(List<_i5.RepositorySlug>? slugs) =>
-      (super.noSuchMethod(Invocation.method(#getRepositories, [slugs]), returnValue: _i7.Stream<_i5.Repository>.empty())
-          as _i7.Stream<_i5.Repository>);
-  @override
-  _i7.Future<_i5.Repository> editRepository(_i5.RepositorySlug? slug,
-          {String? name,
-          String? description,
-          String? homepage,
-          bool? private,
-          bool? hasIssues,
-          bool? hasWiki,
-          bool? hasDownloads}) =>
+  _i7.Stream<_i5.Repository> listUserRepositories(
+    String? user, {
+    String? type = r'owner',
+    String? sort = r'full_name',
+    String? direction = r'asc',
+  }) =>
       (super.noSuchMethod(
-          Invocation.method(#editRepository, [
-            slug
-          ], {
+        Invocation.method(
+          #listUserRepositories,
+          [user],
+          {
+            #type: type,
+            #sort: sort,
+            #direction: direction,
+          },
+        ),
+        returnValue: _i7.Stream<_i5.Repository>.empty(),
+      ) as _i7.Stream<_i5.Repository>);
+  @override
+  _i7.Stream<_i5.Repository> listOrganizationRepositories(
+    String? org, {
+    String? type = r'all',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listOrganizationRepositories,
+          [org],
+          {#type: type},
+        ),
+        returnValue: _i7.Stream<_i5.Repository>.empty(),
+      ) as _i7.Stream<_i5.Repository>);
+  @override
+  _i7.Stream<_i5.Repository> listPublicRepositories({
+    int? limit = 50,
+    DateTime? since,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listPublicRepositories,
+          [],
+          {
+            #limit: limit,
+            #since: since,
+          },
+        ),
+        returnValue: _i7.Stream<_i5.Repository>.empty(),
+      ) as _i7.Stream<_i5.Repository>);
+  @override
+  _i7.Future<_i5.Repository> createRepository(
+    _i5.CreateRepository? repository, {
+    String? org,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createRepository,
+          [repository],
+          {#org: org},
+        ),
+        returnValue: _i7.Future<_i5.Repository>.value(_FakeRepository_26(
+          this,
+          Invocation.method(
+            #createRepository,
+            [repository],
+            {#org: org},
+          ),
+        )),
+      ) as _i7.Future<_i5.Repository>);
+  @override
+  _i7.Future<_i5.LicenseDetails> getLicense(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getLicense,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.LicenseDetails>.value(_FakeLicenseDetails_27(
+          this,
+          Invocation.method(
+            #getLicense,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.LicenseDetails>);
+  @override
+  _i7.Future<_i5.Repository> getRepository(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getRepository,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.Repository>.value(_FakeRepository_26(
+          this,
+          Invocation.method(
+            #getRepository,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.Repository>);
+  @override
+  _i7.Stream<_i5.Repository> getRepositories(List<_i5.RepositorySlug>? slugs) => (super.noSuchMethod(
+        Invocation.method(
+          #getRepositories,
+          [slugs],
+        ),
+        returnValue: _i7.Stream<_i5.Repository>.empty(),
+      ) as _i7.Stream<_i5.Repository>);
+  @override
+  _i7.Future<_i5.Repository> editRepository(
+    _i5.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: _i7.Future<_i5.Repository>.value(_FakeRepository_26(
-              this,
-              Invocation.method(#editRepository, [
-                slug
-              ], {
-                #name: name,
-                #description: description,
-                #homepage: homepage,
-                #private: private,
-                #hasIssues: hasIssues,
-                #hasWiki: hasWiki,
-                #hasDownloads: hasDownloads
-              })))) as _i7.Future<_i5.Repository>);
+            #hasDownloads: hasDownloads,
+          },
+        ),
+        returnValue: _i7.Future<_i5.Repository>.value(_FakeRepository_26(
+          this,
+          Invocation.method(
+            #editRepository,
+            [slug],
+            {
+              #name: name,
+              #description: description,
+              #homepage: homepage,
+              #private: private,
+              #hasIssues: hasIssues,
+              #hasWiki: hasWiki,
+              #hasDownloads: hasDownloads,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.Repository>);
   @override
-  _i7.Future<bool> deleteRepository(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#deleteRepository, [slug]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Future<bool> deleteRepository(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #deleteRepository,
+          [slug],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Stream<_i5.Contributor> listContributors(_i5.RepositorySlug? slug, {bool? anon = false}) =>
-      (super.noSuchMethod(Invocation.method(#listContributors, [slug], {#anon: anon}),
-          returnValue: _i7.Stream<_i5.Contributor>.empty()) as _i7.Stream<_i5.Contributor>);
+  _i7.Stream<_i5.Contributor> listContributors(
+    _i5.RepositorySlug? slug, {
+    bool? anon = false,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listContributors,
+          [slug],
+          {#anon: anon},
+        ),
+        returnValue: _i7.Stream<_i5.Contributor>.empty(),
+      ) as _i7.Stream<_i5.Contributor>);
   @override
-  _i7.Stream<_i5.Team> listTeams(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listTeams, [slug]), returnValue: _i7.Stream<_i5.Team>.empty())
-          as _i7.Stream<_i5.Team>);
+  _i7.Stream<_i5.Team> listTeams(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listTeams,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.Team>.empty(),
+      ) as _i7.Stream<_i5.Team>);
   @override
-  _i7.Future<_i5.LanguageBreakdown> listLanguages(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listLanguages, [slug]),
-              returnValue: _i7.Future<_i5.LanguageBreakdown>.value(
-                  _FakeLanguageBreakdown_28(this, Invocation.method(#listLanguages, [slug]))))
-          as _i7.Future<_i5.LanguageBreakdown>);
+  _i7.Future<_i5.LanguageBreakdown> listLanguages(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listLanguages,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.LanguageBreakdown>.value(_FakeLanguageBreakdown_28(
+          this,
+          Invocation.method(
+            #listLanguages,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.LanguageBreakdown>);
   @override
-  _i7.Stream<_i5.Tag> listTags(_i5.RepositorySlug? slug, {int? page = 1, int? pages, int? perPage = 30}) =>
-      (super.noSuchMethod(Invocation.method(#listTags, [slug], {#page: page, #pages: pages, #perPage: perPage}),
-          returnValue: _i7.Stream<_i5.Tag>.empty()) as _i7.Stream<_i5.Tag>);
+  _i7.Stream<_i5.Tag> listTags(
+    _i5.RepositorySlug? slug, {
+    int? page = 1,
+    int? pages,
+    int? perPage = 30,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listTags,
+          [slug],
+          {
+            #page: page,
+            #pages: pages,
+            #perPage: perPage,
+          },
+        ),
+        returnValue: _i7.Stream<_i5.Tag>.empty(),
+      ) as _i7.Stream<_i5.Tag>);
   @override
-  _i7.Stream<_i5.Branch> listBranches(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listBranches, [slug]), returnValue: _i7.Stream<_i5.Branch>.empty())
-          as _i7.Stream<_i5.Branch>);
+  _i7.Stream<_i5.Branch> listBranches(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listBranches,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.Branch>.empty(),
+      ) as _i7.Stream<_i5.Branch>);
   @override
-  _i7.Future<_i5.Branch> getBranch(_i5.RepositorySlug? slug, String? branch) =>
-      (super.noSuchMethod(Invocation.method(#getBranch, [slug, branch]),
-              returnValue:
-                  _i7.Future<_i5.Branch>.value(_FakeBranch_29(this, Invocation.method(#getBranch, [slug, branch]))))
-          as _i7.Future<_i5.Branch>);
+  _i7.Future<_i5.Branch> getBranch(
+    _i5.RepositorySlug? slug,
+    String? branch,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getBranch,
+          [
+            slug,
+            branch,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.Branch>.value(_FakeBranch_29(
+          this,
+          Invocation.method(
+            #getBranch,
+            [
+              slug,
+              branch,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.Branch>);
   @override
-  _i7.Stream<_i5.Collaborator> listCollaborators(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listCollaborators, [slug]),
-          returnValue: _i7.Stream<_i5.Collaborator>.empty()) as _i7.Stream<_i5.Collaborator>);
+  _i7.Stream<_i5.Collaborator> listCollaborators(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCollaborators,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.Collaborator>.empty(),
+      ) as _i7.Stream<_i5.Collaborator>);
   @override
-  _i7.Future<bool> isCollaborator(_i5.RepositorySlug? slug, String? user) =>
-      (super.noSuchMethod(Invocation.method(#isCollaborator, [slug, user]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Future<bool> isCollaborator(
+    _i5.RepositorySlug? slug,
+    String? user,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #isCollaborator,
+          [
+            slug,
+            user,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Future<bool> addCollaborator(_i5.RepositorySlug? slug, String? user) =>
-      (super.noSuchMethod(Invocation.method(#addCollaborator, [slug, user]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Future<bool> addCollaborator(
+    _i5.RepositorySlug? slug,
+    String? user,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #addCollaborator,
+          [
+            slug,
+            user,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Future<bool> removeCollaborator(_i5.RepositorySlug? slug, String? user) =>
-      (super.noSuchMethod(Invocation.method(#removeCollaborator, [slug, user]),
-          returnValue: _i7.Future<bool>.value(false)) as _i7.Future<bool>);
+  _i7.Future<bool> removeCollaborator(
+    _i5.RepositorySlug? slug,
+    String? user,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #removeCollaborator,
+          [
+            slug,
+            user,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Stream<_i5.CommitComment> listSingleCommitComments(_i5.RepositorySlug? slug, _i5.RepositoryCommit? commit) =>
-      (super.noSuchMethod(Invocation.method(#listSingleCommitComments, [slug, commit]),
-          returnValue: _i7.Stream<_i5.CommitComment>.empty()) as _i7.Stream<_i5.CommitComment>);
+  _i7.Stream<_i5.CommitComment> listSingleCommitComments(
+    _i5.RepositorySlug? slug,
+    _i5.RepositoryCommit? commit,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listSingleCommitComments,
+          [
+            slug,
+            commit,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.CommitComment>.empty(),
+      ) as _i7.Stream<_i5.CommitComment>);
   @override
-  _i7.Stream<_i5.CommitComment> listCommitComments(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listCommitComments, [slug]),
-          returnValue: _i7.Stream<_i5.CommitComment>.empty()) as _i7.Stream<_i5.CommitComment>);
+  _i7.Stream<_i5.CommitComment> listCommitComments(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommitComments,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.CommitComment>.empty(),
+      ) as _i7.Stream<_i5.CommitComment>);
   @override
-  _i7.Future<_i5.CommitComment> createCommitComment(_i5.RepositorySlug? slug, _i5.RepositoryCommit? commit,
-          {String? body, String? path, int? position, int? line}) =>
-      (super
-          .noSuchMethod(Invocation.method(#createCommitComment, [slug, commit], {#body: body, #path: path, #position: position, #line: line}),
-              returnValue: _i7.Future<_i5.CommitComment>.value(_FakeCommitComment_30(
-                  this,
-                  Invocation.method(#createCommitComment, [slug, commit],
-                      {#body: body, #path: path, #position: position, #line: line})))) as _i7.Future<_i5.CommitComment>);
+  _i7.Future<_i5.CommitComment> createCommitComment(
+    _i5.RepositorySlug? slug,
+    _i5.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: _i7.Future<_i5.CommitComment>.value(_FakeCommitComment_30(
+          this,
+          Invocation.method(
+            #createCommitComment,
+            [
+              slug,
+              commit,
+            ],
+            {
+              #body: body,
+              #path: path,
+              #position: position,
+              #line: line,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.CommitComment>);
   @override
-  _i7.Future<_i5.CommitComment> getCommitComment(_i5.RepositorySlug? slug, {int? id}) =>
-      (super.noSuchMethod(Invocation.method(#getCommitComment, [slug], {#id: id}),
-              returnValue: _i7.Future<_i5.CommitComment>.value(
-                  _FakeCommitComment_30(this, Invocation.method(#getCommitComment, [slug], {#id: id}))))
-          as _i7.Future<_i5.CommitComment>);
+  _i7.Future<_i5.CommitComment> getCommitComment(
+    _i5.RepositorySlug? slug, {
+    required int? id,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommitComment,
+          [slug],
+          {#id: id},
+        ),
+        returnValue: _i7.Future<_i5.CommitComment>.value(_FakeCommitComment_30(
+          this,
+          Invocation.method(
+            #getCommitComment,
+            [slug],
+            {#id: id},
+          ),
+        )),
+      ) as _i7.Future<_i5.CommitComment>);
   @override
-  _i7.Future<_i5.CommitComment> updateCommitComment(_i5.RepositorySlug? slug, {int? id, String? body}) =>
-      (super.noSuchMethod(Invocation.method(#updateCommitComment, [slug], {#id: id, #body: body}),
-              returnValue: _i7.Future<_i5.CommitComment>.value(
-                  _FakeCommitComment_30(this, Invocation.method(#updateCommitComment, [slug], {#id: id, #body: body}))))
-          as _i7.Future<_i5.CommitComment>);
+  _i7.Future<_i5.CommitComment> updateCommitComment(
+    _i5.RepositorySlug? slug, {
+    required int? id,
+    required String? body,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #updateCommitComment,
+          [slug],
+          {
+            #id: id,
+            #body: body,
+          },
+        ),
+        returnValue: _i7.Future<_i5.CommitComment>.value(_FakeCommitComment_30(
+          this,
+          Invocation.method(
+            #updateCommitComment,
+            [slug],
+            {
+              #id: id,
+              #body: body,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.CommitComment>);
   @override
-  _i7.Future<bool> deleteCommitComment(_i5.RepositorySlug? slug, {int? id}) =>
-      (super.noSuchMethod(Invocation.method(#deleteCommitComment, [slug], {#id: id}),
-          returnValue: _i7.Future<bool>.value(false)) as _i7.Future<bool>);
+  _i7.Future<bool> deleteCommitComment(
+    _i5.RepositorySlug? slug, {
+    required int? id,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteCommitComment,
+          [slug],
+          {#id: id},
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Stream<_i5.RepositoryCommit> listCommits(_i5.RepositorySlug? slug) => (super
-          .noSuchMethod(Invocation.method(#listCommits, [slug]), returnValue: _i7.Stream<_i5.RepositoryCommit>.empty())
-      as _i7.Stream<_i5.RepositoryCommit>);
+  _i7.Stream<_i5.RepositoryCommit> listCommits(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommits,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.RepositoryCommit>.empty(),
+      ) as _i7.Stream<_i5.RepositoryCommit>);
   @override
-  _i7.Future<_i5.RepositoryCommit> getCommit(_i5.RepositorySlug? slug, String? sha) =>
-      (super.noSuchMethod(Invocation.method(#getCommit, [slug, sha]),
-              returnValue: _i7.Future<_i5.RepositoryCommit>.value(
-                  _FakeRepositoryCommit_31(this, Invocation.method(#getCommit, [slug, sha]))))
-          as _i7.Future<_i5.RepositoryCommit>);
+  _i7.Future<_i5.RepositoryCommit> getCommit(
+    _i5.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommit,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.RepositoryCommit>.value(_FakeRepositoryCommit_31(
+          this,
+          Invocation.method(
+            #getCommit,
+            [
+              slug,
+              sha,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.RepositoryCommit>);
   @override
-  _i7.Future<String> getCommitDiff(_i5.RepositorySlug? slug, String? sha) =>
-      (super.noSuchMethod(Invocation.method(#getCommitDiff, [slug, sha]), returnValue: _i7.Future<String>.value(''))
-          as _i7.Future<String>);
+  _i7.Future<String> getCommitDiff(
+    _i5.RepositorySlug? slug,
+    String? sha,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCommitDiff,
+          [
+            slug,
+            sha,
+          ],
+        ),
+        returnValue: _i7.Future<String>.value(''),
+      ) as _i7.Future<String>);
   @override
-  _i7.Future<_i5.GitHubComparison> compareCommits(_i5.RepositorySlug? slug, String? refBase, String? refHead) =>
-      (super.noSuchMethod(Invocation.method(#compareCommits, [slug, refBase, refHead]),
-              returnValue: _i7.Future<_i5.GitHubComparison>.value(
-                  _FakeGitHubComparison_32(this, Invocation.method(#compareCommits, [slug, refBase, refHead]))))
-          as _i7.Future<_i5.GitHubComparison>);
+  _i7.Future<_i5.GitHubComparison> compareCommits(
+    _i5.RepositorySlug? slug,
+    String? refBase,
+    String? refHead,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #compareCommits,
+          [
+            slug,
+            refBase,
+            refHead,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.GitHubComparison>.value(_FakeGitHubComparison_32(
+          this,
+          Invocation.method(
+            #compareCommits,
+            [
+              slug,
+              refBase,
+              refHead,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.GitHubComparison>);
   @override
-  _i7.Future<_i5.GitHubFile> getReadme(_i5.RepositorySlug? slug, {String? ref}) => (super.noSuchMethod(
-      Invocation.method(#getReadme, [slug], {#ref: ref}),
-      returnValue: _i7.Future<_i5.GitHubFile>.value(
-          _FakeGitHubFile_33(this, Invocation.method(#getReadme, [slug], {#ref: ref})))) as _i7.Future<_i5.GitHubFile>);
+  _i7.Future<_i5.GitHubFile> getReadme(
+    _i5.RepositorySlug? slug, {
+    String? ref,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReadme,
+          [slug],
+          {#ref: ref},
+        ),
+        returnValue: _i7.Future<_i5.GitHubFile>.value(_FakeGitHubFile_33(
+          this,
+          Invocation.method(
+            #getReadme,
+            [slug],
+            {#ref: ref},
+          ),
+        )),
+      ) as _i7.Future<_i5.GitHubFile>);
   @override
-  _i7.Future<_i5.RepositoryContents> getContents(_i5.RepositorySlug? slug, String? path, {String? ref}) =>
-      (super.noSuchMethod(Invocation.method(#getContents, [slug, path], {#ref: ref}),
-              returnValue: _i7.Future<_i5.RepositoryContents>.value(
-                  _FakeRepositoryContents_34(this, Invocation.method(#getContents, [slug, path], {#ref: ref}))))
-          as _i7.Future<_i5.RepositoryContents>);
+  _i7.Future<_i5.RepositoryContents> getContents(
+    _i5.RepositorySlug? slug,
+    String? path, {
+    String? ref,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getContents,
+          [
+            slug,
+            path,
+          ],
+          {#ref: ref},
+        ),
+        returnValue: _i7.Future<_i5.RepositoryContents>.value(_FakeRepositoryContents_34(
+          this,
+          Invocation.method(
+            #getContents,
+            [
+              slug,
+              path,
+            ],
+            {#ref: ref},
+          ),
+        )),
+      ) as _i7.Future<_i5.RepositoryContents>);
   @override
-  _i7.Future<_i5.ContentCreation> createFile(_i5.RepositorySlug? slug, _i5.CreateFile? file) =>
-      (super.noSuchMethod(Invocation.method(#createFile, [slug, file]),
-              returnValue: _i7.Future<_i5.ContentCreation>.value(
-                  _FakeContentCreation_35(this, Invocation.method(#createFile, [slug, file]))))
-          as _i7.Future<_i5.ContentCreation>);
+  _i7.Future<_i5.ContentCreation> createFile(
+    _i5.RepositorySlug? slug,
+    _i5.CreateFile? file,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createFile,
+          [
+            slug,
+            file,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.ContentCreation>.value(_FakeContentCreation_35(
+          this,
+          Invocation.method(
+            #createFile,
+            [
+              slug,
+              file,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.ContentCreation>);
   @override
   _i7.Future<_i5.ContentCreation> updateFile(
-          _i5.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: _i7.Future<_i5.ContentCreation>.value(_FakeContentCreation_35(
-                  this, Invocation.method(#updateFile, [slug, path, message, content, sha], {#branch: branch}))))
-          as _i7.Future<_i5.ContentCreation>);
+    _i5.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: _i7.Future<_i5.ContentCreation>.value(_FakeContentCreation_35(
+          this,
+          Invocation.method(
+            #updateFile,
+            [
+              slug,
+              path,
+              message,
+              content,
+              sha,
+            ],
+            {#branch: branch},
+          ),
+        )),
+      ) as _i7.Future<_i5.ContentCreation>);
   @override
   _i7.Future<_i5.ContentCreation> deleteFile(
-          _i5.RepositorySlug? slug, String? path, String? message, String? sha, String? branch) =>
-      (super.noSuchMethod(Invocation.method(#deleteFile, [slug, path, message, sha, branch]),
-              returnValue: _i7.Future<_i5.ContentCreation>.value(
-                  _FakeContentCreation_35(this, Invocation.method(#deleteFile, [slug, path, message, sha, branch]))))
-          as _i7.Future<_i5.ContentCreation>);
-  @override
-  _i7.Future<String?> getArchiveLink(_i5.RepositorySlug? slug, String? ref, {String? format = r'tarball'}) =>
-      (super.noSuchMethod(Invocation.method(#getArchiveLink, [slug, ref], {#format: format}),
-          returnValue: _i7.Future<String?>.value()) as _i7.Future<String?>);
-  @override
-  _i7.Stream<_i5.Repository> listForks(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listForks, [slug]), returnValue: _i7.Stream<_i5.Repository>.empty())
-          as _i7.Stream<_i5.Repository>);
-  @override
-  _i7.Future<_i5.Repository> createFork(_i5.RepositorySlug? slug, [_i5.CreateFork? fork]) => (super.noSuchMethod(
-          Invocation.method(#createFork, [slug, fork]),
-          returnValue:
-              _i7.Future<_i5.Repository>.value(_FakeRepository_26(this, Invocation.method(#createFork, [slug, fork]))))
-      as _i7.Future<_i5.Repository>);
-  @override
-  _i7.Stream<_i5.Hook> listHooks(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listHooks, [slug]), returnValue: _i7.Stream<_i5.Hook>.empty())
-          as _i7.Stream<_i5.Hook>);
-  @override
-  _i7.Future<_i5.Hook> getHook(_i5.RepositorySlug? slug, int? id) =>
-      (super.noSuchMethod(Invocation.method(#getHook, [slug, id]),
-              returnValue: _i7.Future<_i5.Hook>.value(_FakeHook_36(this, Invocation.method(#getHook, [slug, id]))))
-          as _i7.Future<_i5.Hook>);
-  @override
-  _i7.Future<_i5.Hook> createHook(_i5.RepositorySlug? slug, _i5.CreateHook? hook) =>
-      (super.noSuchMethod(Invocation.method(#createHook, [slug, hook]),
-              returnValue: _i7.Future<_i5.Hook>.value(_FakeHook_36(this, Invocation.method(#createHook, [slug, hook]))))
-          as _i7.Future<_i5.Hook>);
-  @override
-  _i7.Future<_i5.Hook> editHook(_i5.RepositorySlug? slug, _i5.Hook? hookToEdit,
-          {String? configUrl,
-          String? configContentType,
-          String? configSecret,
-          bool? configInsecureSsl,
-          List<String>? events,
-          List<String>? addEvents,
-          List<String>? removeEvents,
-          bool? active}) =>
+    _i5.RepositorySlug? slug,
+    String? path,
+    String? message,
+    String? sha,
+    String? branch,
+  ) =>
       (super.noSuchMethod(
-          Invocation.method(#editHook, [
+        Invocation.method(
+          #deleteFile,
+          [
             slug,
-            hookToEdit
-          ], {
+            path,
+            message,
+            sha,
+            branch,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.ContentCreation>.value(_FakeContentCreation_35(
+          this,
+          Invocation.method(
+            #deleteFile,
+            [
+              slug,
+              path,
+              message,
+              sha,
+              branch,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.ContentCreation>);
+  @override
+  _i7.Future<String?> getArchiveLink(
+    _i5.RepositorySlug? slug,
+    String? ref, {
+    String? format = r'tarball',
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getArchiveLink,
+          [
+            slug,
+            ref,
+          ],
+          {#format: format},
+        ),
+        returnValue: _i7.Future<String?>.value(),
+      ) as _i7.Future<String?>);
+  @override
+  _i7.Stream<_i5.Repository> listForks(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listForks,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.Repository>.empty(),
+      ) as _i7.Stream<_i5.Repository>);
+  @override
+  _i7.Future<_i5.Repository> createFork(
+    _i5.RepositorySlug? slug, [
+    _i5.CreateFork? fork,
+  ]) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createFork,
+          [
+            slug,
+            fork,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.Repository>.value(_FakeRepository_26(
+          this,
+          Invocation.method(
+            #createFork,
+            [
+              slug,
+              fork,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.Repository>);
+  @override
+  _i7.Stream<_i5.Hook> listHooks(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listHooks,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.Hook>.empty(),
+      ) as _i7.Stream<_i5.Hook>);
+  @override
+  _i7.Future<_i5.Hook> getHook(
+    _i5.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.Hook>.value(_FakeHook_36(
+          this,
+          Invocation.method(
+            #getHook,
+            [
+              slug,
+              id,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.Hook>);
+  @override
+  _i7.Future<_i5.Hook> createHook(
+    _i5.RepositorySlug? slug,
+    _i5.CreateHook? hook,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createHook,
+          [
+            slug,
+            hook,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.Hook>.value(_FakeHook_36(
+          this,
+          Invocation.method(
+            #createHook,
+            [
+              slug,
+              hook,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.Hook>);
+  @override
+  _i7.Future<_i5.Hook> editHook(
+    _i5.RepositorySlug? slug,
+    _i5.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,
@@ -930,195 +2239,593 @@
             #events: events,
             #addEvents: addEvents,
             #removeEvents: removeEvents,
-            #active: active
-          }),
-          returnValue: _i7.Future<_i5.Hook>.value(_FakeHook_36(
-              this,
-              Invocation.method(#editHook, [
-                slug,
-                hookToEdit
-              ], {
-                #configUrl: configUrl,
-                #configContentType: configContentType,
-                #configSecret: configSecret,
-                #configInsecureSsl: configInsecureSsl,
-                #events: events,
-                #addEvents: addEvents,
-                #removeEvents: removeEvents,
-                #active: active
-              })))) as _i7.Future<_i5.Hook>);
+            #active: active,
+          },
+        ),
+        returnValue: _i7.Future<_i5.Hook>.value(_FakeHook_36(
+          this,
+          Invocation.method(
+            #editHook,
+            [
+              slug,
+              hookToEdit,
+            ],
+            {
+              #configUrl: configUrl,
+              #configContentType: configContentType,
+              #configSecret: configSecret,
+              #configInsecureSsl: configInsecureSsl,
+              #events: events,
+              #addEvents: addEvents,
+              #removeEvents: removeEvents,
+              #active: active,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.Hook>);
   @override
-  _i7.Future<bool> testPushHook(_i5.RepositorySlug? slug, int? id) =>
-      (super.noSuchMethod(Invocation.method(#testPushHook, [slug, id]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Future<bool> testPushHook(
+    _i5.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #testPushHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Future<bool> pingHook(_i5.RepositorySlug? slug, int? id) =>
-      (super.noSuchMethod(Invocation.method(#pingHook, [slug, id]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Future<bool> pingHook(
+    _i5.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #pingHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Future<bool> deleteHook(_i5.RepositorySlug? slug, int? id) =>
-      (super.noSuchMethod(Invocation.method(#deleteHook, [slug, id]), returnValue: _i7.Future<bool>.value(false))
-          as _i7.Future<bool>);
+  _i7.Future<bool> deleteHook(
+    _i5.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteHook,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Stream<_i5.PublicKey> listDeployKeys(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listDeployKeys, [slug]), returnValue: _i7.Stream<_i5.PublicKey>.empty())
-          as _i7.Stream<_i5.PublicKey>);
+  _i7.Stream<_i5.PublicKey> listDeployKeys(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listDeployKeys,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.PublicKey>.empty(),
+      ) as _i7.Stream<_i5.PublicKey>);
   @override
-  _i7.Future<_i5.PublicKey> getDeployKey(_i5.RepositorySlug? slug, {int? id}) => (super.noSuchMethod(
-      Invocation.method(#getDeployKey, [slug], {#id: id}),
-      returnValue: _i7.Future<_i5.PublicKey>.value(
-          _FakePublicKey_37(this, Invocation.method(#getDeployKey, [slug], {#id: id})))) as _i7.Future<_i5.PublicKey>);
+  _i7.Future<_i5.PublicKey> getDeployKey(
+    _i5.RepositorySlug? slug, {
+    required int? id,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getDeployKey,
+          [slug],
+          {#id: id},
+        ),
+        returnValue: _i7.Future<_i5.PublicKey>.value(_FakePublicKey_37(
+          this,
+          Invocation.method(
+            #getDeployKey,
+            [slug],
+            {#id: id},
+          ),
+        )),
+      ) as _i7.Future<_i5.PublicKey>);
   @override
-  _i7.Future<_i5.PublicKey> createDeployKey(_i5.RepositorySlug? slug, _i5.CreatePublicKey? key) =>
-      (super.noSuchMethod(Invocation.method(#createDeployKey, [slug, key]),
-          returnValue: _i7.Future<_i5.PublicKey>.value(
-              _FakePublicKey_37(this, Invocation.method(#createDeployKey, [slug, key])))) as _i7.Future<_i5.PublicKey>);
+  _i7.Future<_i5.PublicKey> createDeployKey(
+    _i5.RepositorySlug? slug,
+    _i5.CreatePublicKey? key,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createDeployKey,
+          [
+            slug,
+            key,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.PublicKey>.value(_FakePublicKey_37(
+          this,
+          Invocation.method(
+            #createDeployKey,
+            [
+              slug,
+              key,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.PublicKey>);
   @override
-  _i7.Future<bool> deleteDeployKey({_i5.RepositorySlug? slug, _i5.PublicKey? key}) =>
-      (super.noSuchMethod(Invocation.method(#deleteDeployKey, [], {#slug: slug, #key: key}),
-          returnValue: _i7.Future<bool>.value(false)) as _i7.Future<bool>);
+  _i7.Future<bool> deleteDeployKey({
+    required _i5.RepositorySlug? slug,
+    required _i5.PublicKey? key,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteDeployKey,
+          [],
+          {
+            #slug: slug,
+            #key: key,
+          },
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Future<_i5.RepositoryCommit> merge(_i5.RepositorySlug? slug, _i5.CreateMerge? merge) =>
-      (super.noSuchMethod(Invocation.method(#merge, [slug, merge]),
-              returnValue: _i7.Future<_i5.RepositoryCommit>.value(
-                  _FakeRepositoryCommit_31(this, Invocation.method(#merge, [slug, merge]))))
-          as _i7.Future<_i5.RepositoryCommit>);
+  _i7.Future<_i5.RepositoryCommit> merge(
+    _i5.RepositorySlug? slug,
+    _i5.CreateMerge? merge,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #merge,
+          [
+            slug,
+            merge,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.RepositoryCommit>.value(_FakeRepositoryCommit_31(
+          this,
+          Invocation.method(
+            #merge,
+            [
+              slug,
+              merge,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.RepositoryCommit>);
   @override
   _i7.Future<_i5.RepositoryPages> getPagesInfo(_i5.RepositorySlug? slug) => (super.noSuchMethod(
-      Invocation.method(#getPagesInfo, [slug]),
-      returnValue: _i7.Future<_i5.RepositoryPages>.value(
-          _FakeRepositoryPages_38(this, Invocation.method(#getPagesInfo, [slug])))) as _i7.Future<_i5.RepositoryPages>);
+        Invocation.method(
+          #getPagesInfo,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.RepositoryPages>.value(_FakeRepositoryPages_38(
+          this,
+          Invocation.method(
+            #getPagesInfo,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.RepositoryPages>);
   @override
-  _i7.Stream<_i5.PageBuild> listPagesBuilds(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listPagesBuilds, [slug]), returnValue: _i7.Stream<_i5.PageBuild>.empty())
-          as _i7.Stream<_i5.PageBuild>);
+  _i7.Stream<_i5.PageBuild> listPagesBuilds(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listPagesBuilds,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.PageBuild>.empty(),
+      ) as _i7.Stream<_i5.PageBuild>);
   @override
   _i7.Future<_i5.PageBuild> getLatestPagesBuild(_i5.RepositorySlug? slug) => (super.noSuchMethod(
-          Invocation.method(#getLatestPagesBuild, [slug]),
-          returnValue:
-              _i7.Future<_i5.PageBuild>.value(_FakePageBuild_39(this, Invocation.method(#getLatestPagesBuild, [slug]))))
-      as _i7.Future<_i5.PageBuild>);
+        Invocation.method(
+          #getLatestPagesBuild,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.PageBuild>.value(_FakePageBuild_39(
+          this,
+          Invocation.method(
+            #getLatestPagesBuild,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.PageBuild>);
   @override
-  _i7.Stream<_i5.Release> listReleases(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listReleases, [slug]), returnValue: _i7.Stream<_i5.Release>.empty())
-          as _i7.Stream<_i5.Release>);
+  _i7.Stream<_i5.Release> listReleases(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listReleases,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.Release>.empty(),
+      ) as _i7.Stream<_i5.Release>);
   @override
-  _i7.Future<_i5.Release> getLatestRelease(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#getLatestRelease, [slug]),
-              returnValue:
-                  _i7.Future<_i5.Release>.value(_FakeRelease_40(this, Invocation.method(#getLatestRelease, [slug]))))
-          as _i7.Future<_i5.Release>);
+  _i7.Future<_i5.Release> getLatestRelease(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getLatestRelease,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.Release>.value(_FakeRelease_40(
+          this,
+          Invocation.method(
+            #getLatestRelease,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.Release>);
   @override
-  _i7.Future<_i5.Release> getReleaseById(_i5.RepositorySlug? slug, int? id) =>
-      (super.noSuchMethod(Invocation.method(#getReleaseById, [slug, id]),
-              returnValue:
-                  _i7.Future<_i5.Release>.value(_FakeRelease_40(this, Invocation.method(#getReleaseById, [slug, id]))))
-          as _i7.Future<_i5.Release>);
+  _i7.Future<_i5.Release> getReleaseById(
+    _i5.RepositorySlug? slug,
+    int? id,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseById,
+          [
+            slug,
+            id,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.Release>.value(_FakeRelease_40(
+          this,
+          Invocation.method(
+            #getReleaseById,
+            [
+              slug,
+              id,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.Release>);
   @override
-  _i7.Future<_i5.Release> getReleaseByTagName(_i5.RepositorySlug? slug, String? tagName) => (super.noSuchMethod(
-      Invocation.method(#getReleaseByTagName, [slug, tagName]),
-      returnValue: _i7.Future<_i5.Release>.value(
-          _FakeRelease_40(this, Invocation.method(#getReleaseByTagName, [slug, tagName])))) as _i7.Future<_i5.Release>);
+  _i7.Future<_i5.Release> getReleaseByTagName(
+    _i5.RepositorySlug? slug,
+    String? tagName,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseByTagName,
+          [
+            slug,
+            tagName,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.Release>.value(_FakeRelease_40(
+          this,
+          Invocation.method(
+            #getReleaseByTagName,
+            [
+              slug,
+              tagName,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.Release>);
   @override
-  _i7.Future<_i5.Release> createRelease(_i5.RepositorySlug? slug, _i5.CreateRelease? createRelease,
-          {bool? getIfExists = true}) =>
-      (super.noSuchMethod(Invocation.method(#createRelease, [slug, createRelease], {#getIfExists: getIfExists}),
-              returnValue: _i7.Future<_i5.Release>.value(_FakeRelease_40(
-                  this, Invocation.method(#createRelease, [slug, createRelease], {#getIfExists: getIfExists}))))
-          as _i7.Future<_i5.Release>);
+  _i7.Future<_i5.Release> createRelease(
+    _i5.RepositorySlug? slug,
+    _i5.CreateRelease? createRelease, {
+    bool? getIfExists = true,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createRelease,
+          [
+            slug,
+            createRelease,
+          ],
+          {#getIfExists: getIfExists},
+        ),
+        returnValue: _i7.Future<_i5.Release>.value(_FakeRelease_40(
+          this,
+          Invocation.method(
+            #createRelease,
+            [
+              slug,
+              createRelease,
+            ],
+            {#getIfExists: getIfExists},
+          ),
+        )),
+      ) as _i7.Future<_i5.Release>);
   @override
-  _i7.Future<_i5.Release> editRelease(_i5.RepositorySlug? slug, _i5.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: _i7.Future<_i5.Release>.value(_FakeRelease_40(
-              this,
-              Invocation.method(#editRelease, [
-                slug,
-                releaseToEdit
-              ], {
-                #tagName: tagName,
-                #targetCommitish: targetCommitish,
-                #name: name,
-                #body: body,
-                #draft: draft,
-                #preRelease: preRelease
-              })))) as _i7.Future<_i5.Release>);
+  _i7.Future<_i5.Release> editRelease(
+    _i5.RepositorySlug? slug,
+    _i5.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: _i7.Future<_i5.Release>.value(_FakeRelease_40(
+          this,
+          Invocation.method(
+            #editRelease,
+            [
+              slug,
+              releaseToEdit,
+            ],
+            {
+              #tagName: tagName,
+              #targetCommitish: targetCommitish,
+              #name: name,
+              #body: body,
+              #draft: draft,
+              #preRelease: preRelease,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.Release>);
   @override
-  _i7.Future<bool> deleteRelease(_i5.RepositorySlug? slug, _i5.Release? release) => (super
-          .noSuchMethod(Invocation.method(#deleteRelease, [slug, release]), returnValue: _i7.Future<bool>.value(false))
-      as _i7.Future<bool>);
+  _i7.Future<bool> deleteRelease(
+    _i5.RepositorySlug? slug,
+    _i5.Release? release,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteRelease,
+          [
+            slug,
+            release,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
-  _i7.Stream<_i5.ReleaseAsset> listReleaseAssets(_i5.RepositorySlug? slug, _i5.Release? release) =>
-      (super.noSuchMethod(Invocation.method(#listReleaseAssets, [slug, release]),
-          returnValue: _i7.Stream<_i5.ReleaseAsset>.empty()) as _i7.Stream<_i5.ReleaseAsset>);
+  _i7.Stream<_i5.ReleaseAsset> listReleaseAssets(
+    _i5.RepositorySlug? slug,
+    _i5.Release? release,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listReleaseAssets,
+          [
+            slug,
+            release,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.ReleaseAsset>.empty(),
+      ) as _i7.Stream<_i5.ReleaseAsset>);
   @override
-  _i7.Future<_i5.ReleaseAsset> getReleaseAsset(_i5.RepositorySlug? slug, _i5.Release? release, {int? assetId}) =>
-      (super.noSuchMethod(Invocation.method(#getReleaseAsset, [slug, release], {#assetId: assetId}),
-              returnValue: _i7.Future<_i5.ReleaseAsset>.value(_FakeReleaseAsset_41(
-                  this, Invocation.method(#getReleaseAsset, [slug, release], {#assetId: assetId}))))
-          as _i7.Future<_i5.ReleaseAsset>);
+  _i7.Future<_i5.ReleaseAsset> getReleaseAsset(
+    _i5.RepositorySlug? slug,
+    _i5.Release? release, {
+    required int? assetId,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getReleaseAsset,
+          [
+            slug,
+            release,
+          ],
+          {#assetId: assetId},
+        ),
+        returnValue: _i7.Future<_i5.ReleaseAsset>.value(_FakeReleaseAsset_41(
+          this,
+          Invocation.method(
+            #getReleaseAsset,
+            [
+              slug,
+              release,
+            ],
+            {#assetId: assetId},
+          ),
+        )),
+      ) as _i7.Future<_i5.ReleaseAsset>);
   @override
-  _i7.Future<_i5.ReleaseAsset> editReleaseAsset(_i5.RepositorySlug? slug, _i5.ReleaseAsset? assetToEdit,
-          {String? name, String? label}) =>
-      (super.noSuchMethod(Invocation.method(#editReleaseAsset, [slug, assetToEdit], {#name: name, #label: label}),
-              returnValue: _i7.Future<_i5.ReleaseAsset>.value(_FakeReleaseAsset_41(
-                  this, Invocation.method(#editReleaseAsset, [slug, assetToEdit], {#name: name, #label: label}))))
-          as _i7.Future<_i5.ReleaseAsset>);
+  _i7.Future<_i5.ReleaseAsset> editReleaseAsset(
+    _i5.RepositorySlug? slug,
+    _i5.ReleaseAsset? assetToEdit, {
+    String? name,
+    String? label,
+  }) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #editReleaseAsset,
+          [
+            slug,
+            assetToEdit,
+          ],
+          {
+            #name: name,
+            #label: label,
+          },
+        ),
+        returnValue: _i7.Future<_i5.ReleaseAsset>.value(_FakeReleaseAsset_41(
+          this,
+          Invocation.method(
+            #editReleaseAsset,
+            [
+              slug,
+              assetToEdit,
+            ],
+            {
+              #name: name,
+              #label: label,
+            },
+          ),
+        )),
+      ) as _i7.Future<_i5.ReleaseAsset>);
   @override
-  _i7.Future<bool> deleteReleaseAsset(_i5.RepositorySlug? slug, _i5.ReleaseAsset? asset) =>
-      (super.noSuchMethod(Invocation.method(#deleteReleaseAsset, [slug, asset]),
-          returnValue: _i7.Future<bool>.value(false)) as _i7.Future<bool>);
+  _i7.Future<bool> deleteReleaseAsset(
+    _i5.RepositorySlug? slug,
+    _i5.ReleaseAsset? asset,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #deleteReleaseAsset,
+          [
+            slug,
+            asset,
+          ],
+        ),
+        returnValue: _i7.Future<bool>.value(false),
+      ) as _i7.Future<bool>);
   @override
   _i7.Future<List<_i5.ReleaseAsset>> uploadReleaseAssets(
-          _i5.Release? release, Iterable<_i5.CreateReleaseAsset>? createReleaseAssets) =>
-      (super.noSuchMethod(Invocation.method(#uploadReleaseAssets, [release, createReleaseAssets]),
-              returnValue: _i7.Future<List<_i5.ReleaseAsset>>.value(<_i5.ReleaseAsset>[]))
-          as _i7.Future<List<_i5.ReleaseAsset>>);
+    _i5.Release? release,
+    Iterable<_i5.CreateReleaseAsset>? createReleaseAssets,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #uploadReleaseAssets,
+          [
+            release,
+            createReleaseAssets,
+          ],
+        ),
+        returnValue: _i7.Future<List<_i5.ReleaseAsset>>.value(<_i5.ReleaseAsset>[]),
+      ) as _i7.Future<List<_i5.ReleaseAsset>>);
   @override
-  _i7.Future<List<_i5.ContributorStatistics>> listContributorStats(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listContributorStats, [slug]),
-              returnValue: _i7.Future<List<_i5.ContributorStatistics>>.value(<_i5.ContributorStatistics>[]))
-          as _i7.Future<List<_i5.ContributorStatistics>>);
+  _i7.Future<List<_i5.ContributorStatistics>> listContributorStats(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listContributorStats,
+          [slug],
+        ),
+        returnValue: _i7.Future<List<_i5.ContributorStatistics>>.value(<_i5.ContributorStatistics>[]),
+      ) as _i7.Future<List<_i5.ContributorStatistics>>);
   @override
-  _i7.Stream<_i5.YearCommitCountWeek> listCommitActivity(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listCommitActivity, [slug]),
-          returnValue: _i7.Stream<_i5.YearCommitCountWeek>.empty()) as _i7.Stream<_i5.YearCommitCountWeek>);
+  _i7.Stream<_i5.YearCommitCountWeek> listCommitActivity(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCommitActivity,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.YearCommitCountWeek>.empty(),
+      ) as _i7.Stream<_i5.YearCommitCountWeek>);
   @override
-  _i7.Stream<_i5.WeeklyChangesCount> listCodeFrequency(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#listCodeFrequency, [slug]),
-          returnValue: _i7.Stream<_i5.WeeklyChangesCount>.empty()) as _i7.Stream<_i5.WeeklyChangesCount>);
+  _i7.Stream<_i5.WeeklyChangesCount> listCodeFrequency(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listCodeFrequency,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.WeeklyChangesCount>.empty(),
+      ) as _i7.Stream<_i5.WeeklyChangesCount>);
   @override
-  _i7.Future<_i5.ContributorParticipation> getParticipation(_i5.RepositorySlug? slug) =>
-      (super.noSuchMethod(Invocation.method(#getParticipation, [slug]),
-              returnValue: _i7.Future<_i5.ContributorParticipation>.value(
-                  _FakeContributorParticipation_42(this, Invocation.method(#getParticipation, [slug]))))
-          as _i7.Future<_i5.ContributorParticipation>);
+  _i7.Future<_i5.ContributorParticipation> getParticipation(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #getParticipation,
+          [slug],
+        ),
+        returnValue: _i7.Future<_i5.ContributorParticipation>.value(_FakeContributorParticipation_42(
+          this,
+          Invocation.method(
+            #getParticipation,
+            [slug],
+          ),
+        )),
+      ) as _i7.Future<_i5.ContributorParticipation>);
   @override
-  _i7.Stream<_i5.PunchcardEntry> listPunchcard(_i5.RepositorySlug? slug) => (super
-          .noSuchMethod(Invocation.method(#listPunchcard, [slug]), returnValue: _i7.Stream<_i5.PunchcardEntry>.empty())
-      as _i7.Stream<_i5.PunchcardEntry>);
+  _i7.Stream<_i5.PunchcardEntry> listPunchcard(_i5.RepositorySlug? slug) => (super.noSuchMethod(
+        Invocation.method(
+          #listPunchcard,
+          [slug],
+        ),
+        returnValue: _i7.Stream<_i5.PunchcardEntry>.empty(),
+      ) as _i7.Stream<_i5.PunchcardEntry>);
   @override
-  _i7.Stream<_i5.RepositoryStatus> listStatuses(_i5.RepositorySlug? slug, String? ref) =>
-      (super.noSuchMethod(Invocation.method(#listStatuses, [slug, ref]),
-          returnValue: _i7.Stream<_i5.RepositoryStatus>.empty()) as _i7.Stream<_i5.RepositoryStatus>);
+  _i7.Stream<_i5.RepositoryStatus> listStatuses(
+    _i5.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #listStatuses,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i7.Stream<_i5.RepositoryStatus>.empty(),
+      ) as _i7.Stream<_i5.RepositoryStatus>);
   @override
-  _i7.Future<_i5.RepositoryStatus> createStatus(_i5.RepositorySlug? slug, String? ref, _i5.CreateStatus? request) =>
-      (super.noSuchMethod(Invocation.method(#createStatus, [slug, ref, request]),
-              returnValue: _i7.Future<_i5.RepositoryStatus>.value(
-                  _FakeRepositoryStatus_43(this, Invocation.method(#createStatus, [slug, ref, request]))))
-          as _i7.Future<_i5.RepositoryStatus>);
+  _i7.Future<_i5.RepositoryStatus> createStatus(
+    _i5.RepositorySlug? slug,
+    String? ref,
+    _i5.CreateStatus? request,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #createStatus,
+          [
+            slug,
+            ref,
+            request,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.RepositoryStatus>.value(_FakeRepositoryStatus_43(
+          this,
+          Invocation.method(
+            #createStatus,
+            [
+              slug,
+              ref,
+              request,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.RepositoryStatus>);
   @override
-  _i7.Future<_i5.CombinedRepositoryStatus> getCombinedStatus(_i5.RepositorySlug? slug, String? ref) =>
-      (super.noSuchMethod(Invocation.method(#getCombinedStatus, [slug, ref]),
-              returnValue: _i7.Future<_i5.CombinedRepositoryStatus>.value(
-                  _FakeCombinedRepositoryStatus_44(this, Invocation.method(#getCombinedStatus, [slug, ref]))))
-          as _i7.Future<_i5.CombinedRepositoryStatus>);
+  _i7.Future<_i5.CombinedRepositoryStatus> getCombinedStatus(
+    _i5.RepositorySlug? slug,
+    String? ref,
+  ) =>
+      (super.noSuchMethod(
+        Invocation.method(
+          #getCombinedStatus,
+          [
+            slug,
+            ref,
+          ],
+        ),
+        returnValue: _i7.Future<_i5.CombinedRepositoryStatus>.value(_FakeCombinedRepositoryStatus_44(
+          this,
+          Invocation.method(
+            #getCombinedStatus,
+            [
+              slug,
+              ref,
+            ],
+          ),
+        )),
+      ) as _i7.Future<_i5.CombinedRepositoryStatus>);
   @override
-  _i7.Future<_i5.ReleaseNotes> generateReleaseNotes(_i5.CreateReleaseNotes? crn) =>
-      (super.noSuchMethod(Invocation.method(#generateReleaseNotes, [crn]),
-              returnValue: _i7.Future<_i5.ReleaseNotes>.value(
-                  _FakeReleaseNotes_45(this, Invocation.method(#generateReleaseNotes, [crn]))))
-          as _i7.Future<_i5.ReleaseNotes>);
+  _i7.Future<_i5.ReleaseNotes> generateReleaseNotes(_i5.CreateReleaseNotes? crn) => (super.noSuchMethod(
+        Invocation.method(
+          #generateReleaseNotes,
+          [crn],
+        ),
+        returnValue: _i7.Future<_i5.ReleaseNotes>.value(_FakeReleaseNotes_45(
+          this,
+          Invocation.method(
+            #generateReleaseNotes,
+            [crn],
+          ),
+        )),
+      ) as _i7.Future<_i5.ReleaseNotes>);
 }
 
 /// A class which mocks [GitHubComparison].
@@ -1130,8 +2837,13 @@
   }
 
   @override
-  Map<String, dynamic> toJson() =>
-      (super.noSuchMethod(Invocation.method(#toJson, []), returnValue: <String, dynamic>{}) as Map<String, dynamic>);
+  Map<String, dynamic> toJson() => (super.noSuchMethod(
+        Invocation.method(
+          #toJson,
+          [],
+        ),
+        returnValue: <String, dynamic>{},
+      ) as Map<String, dynamic>);
 }
 
 /// A class which mocks [Response].
@@ -1143,18 +2855,33 @@
   }
 
   @override
-  _i11.Uint8List get bodyBytes =>
-      (super.noSuchMethod(Invocation.getter(#bodyBytes), returnValue: _i11.Uint8List(0)) as _i11.Uint8List);
+  _i11.Uint8List get bodyBytes => (super.noSuchMethod(
+        Invocation.getter(#bodyBytes),
+        returnValue: _i11.Uint8List(0),
+      ) as _i11.Uint8List);
   @override
-  String get body => (super.noSuchMethod(Invocation.getter(#body), returnValue: '') as String);
+  String get body => (super.noSuchMethod(
+        Invocation.getter(#body),
+        returnValue: '',
+      ) as String);
   @override
-  int get statusCode => (super.noSuchMethod(Invocation.getter(#statusCode), returnValue: 0) as int);
+  int get statusCode => (super.noSuchMethod(
+        Invocation.getter(#statusCode),
+        returnValue: 0,
+      ) as int);
   @override
-  Map<String, String> get headers =>
-      (super.noSuchMethod(Invocation.getter(#headers), returnValue: <String, String>{}) as Map<String, String>);
+  Map<String, String> get headers => (super.noSuchMethod(
+        Invocation.getter(#headers),
+        returnValue: <String, String>{},
+      ) as Map<String, String>);
   @override
-  bool get isRedirect => (super.noSuchMethod(Invocation.getter(#isRedirect), returnValue: false) as bool);
+  bool get isRedirect => (super.noSuchMethod(
+        Invocation.getter(#isRedirect),
+        returnValue: false,
+      ) as bool);
   @override
-  bool get persistentConnection =>
-      (super.noSuchMethod(Invocation.getter(#persistentConnection), returnValue: false) as bool);
+  bool get persistentConnection => (super.noSuchMethod(
+        Invocation.getter(#persistentConnection),
+        returnValue: false,
+      ) as bool);
 }
diff --git a/cron.yaml b/cron.yaml
index 7abf68b..265938f 100644
--- a/cron.yaml
+++ b/cron.yaml
@@ -47,3 +47,8 @@
   url: /check-pull-request
   target: auto-submit
   schedule: every 1 minutes
+
+- description: check revert review issues for closed issues to update in our database
+  url: 'api/update-revert-issues'
+  target: auto-submit
+  schedule: every 24 hours
diff --git a/dashboard/pubspec.lock b/dashboard/pubspec.lock
index b3ed568..51ccd36 100644
--- a/dashboard/pubspec.lock
+++ b/dashboard/pubspec.lock
@@ -323,7 +323,7 @@
       name: material_color_utilities
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.1.5"
+    version: "0.2.0"
   meta:
     dependency: transitive
     description:
@@ -447,7 +447,7 @@
       name: source_span
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "1.9.0"
+    version: "1.9.1"
   stack_trace:
     dependency: transitive
     description:
@@ -489,7 +489,7 @@
       name: test_api
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "0.4.12"
+    version: "0.4.14"
   timing:
     dependency: transitive
     description:
@@ -566,7 +566,7 @@
       name: vector_math
       url: "https://pub.dartlang.org"
     source: hosted
-    version: "2.1.2"
+    version: "2.1.3"
   watcher:
     dependency: transitive
     description:
@@ -589,5 +589,5 @@
     source: hosted
     version: "3.1.1"
 sdks:
-  dart: ">=2.17.0 <3.0.0"
+  dart: ">=2.18.0 <3.0.0"
   flutter: ">=2.10.0"