1import { SourceControlProviderKind } from "@t3tools/contracts";
2/**
3 * The GitCafe driver: repository operations and discovery through `cafe` and git, and pull
4 * requests through GitCafe's REST API on git.cafe and staging.git.cafe.
5 *
6 * @module source-control-gitcafe/server/driver
7 */
8import { defineSourceControlDriver } from "@t3tools/source-control-core/server/driver";
9import * as Effect from "effect/Effect";
10
11import * as GitCafePullRequestProvider from "./GitCafePullRequestProvider.ts";
12import * as GitCafeSourceControlProvider from "./GitCafeSourceControlProvider.ts";
13
14export const driver = defineSourceControlDriver({
15 kind: SourceControlProviderKind.make("gitcafe"),
16 make: Effect.all({
17 sourceControl: GitCafeSourceControlProvider.make,
18 discovery: GitCafeSourceControlProvider.makeDiscovery,
19 pullRequests: GitCafePullRequestProvider.make,
20 }),
21});