blob: 82d51a6cb28f0d1f095b634262b5b90531116717 [file] [log] [blame]
// 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:async';
import 'package:appengine/appengine.dart';
import 'package:auto_submit/helpers.dart';
import 'package:auto_submit/request_handling/authentication.dart';
import 'package:auto_submit/requests/check_pull_request.dart';
import 'package:auto_submit/requests/check_revert_request.dart';
import 'package:auto_submit/requests/github_webhook.dart';
import 'package:auto_submit/requests/readiness_check.dart';
import 'package:auto_submit/service/config.dart';
import 'package:cocoon_server/google_auth_provider.dart';
import 'package:cocoon_server/secret_manager.dart';
import 'package:neat_cache/neat_cache.dart';
import 'package:shelf_router/shelf_router.dart';
/// Number of entries allowed in [Cache].
const int kCacheSize = 1024;
Future<void> main() async {
await withAppEngineServices(() async {
useLoggingPackageAdaptor();
final cache = Cache.inMemoryCacheProvider(kCacheSize);
final config = Config(
cacheProvider: cache,
secretManager: await SecretManager.create(
const GoogleAuthProvider(),
projectId: Config.flutterGcpProjectId,
),
);
const authProvider = CronAuthProvider();
final router =
Router()
..post('/webhook', GithubWebhook(config: config).post)
..get(
'/check-pull-request',
CheckPullRequest(
config: config,
cronAuthProvider: authProvider,
).run,
)
..get(
'/check-revert-requests',
CheckRevertRequest(
config: config,
cronAuthProvider: authProvider,
).run,
)
..get('/readiness_check', ReadinessCheck(config: config).run);
await serveHandler(router.call);
});
}