1import { SourceControlProviderKind } from "@t3tools/contracts";
2/**
3 * The GitHub driver: repository operations and discovery through `gh` and git, and pull requests
4 * through the GitHub REST and GraphQL APIs.
5 *
6 * @module source-control-github/server/driver
7 */
8import { defineSourceControlDriver } from "@t3tools/source-control-core/server/driver";
9import * as Effect from "effect/Effect";
10
11import * as GitHubPullRequestProvider from "./GitHubPullRequestProvider.ts";
12import * as GitHubSourceControlProvider from "./GitHubSourceControlProvider.ts";
13
14export const driver = defineSourceControlDriver({
15 kind: SourceControlProviderKind.make("github"),
16 make: Effect.all({
17 sourceControl: GitHubSourceControlProvider.make,
18 discovery: GitHubSourceControlProvider.makeDiscovery,
19 pullRequests: GitHubPullRequestProvider.make,
20 }),
21});