1import { SourceControlProviderKind } from "@t3tools/contracts";
2/**
3 * The GitLab driver: repository operations, discovery, and merge requests through `glab`.
4 *
5 * @module source-control-gitlab/server/driver
6 */
7import { defineSourceControlDriver } from "@t3tools/source-control-core/server/driver";
8import * as Effect from "effect/Effect";
9
10import * as GitLabPullRequestProvider from "./GitLabPullRequestProvider.ts";
11import * as GitLabSourceControlProvider from "./GitLabSourceControlProvider.ts";
12
13export const driver = defineSourceControlDriver({
14 kind: SourceControlProviderKind.make("gitlab"),
15 make: Effect.all({
16 sourceControl: GitLabSourceControlProvider.make,
17 discovery: Effect.succeed(GitLabSourceControlProvider.discovery),
18 pullRequests: GitLabPullRequestProvider.make,
19 }),
20});