History

[codex] Migrate server source control Effect services (#3186)

Julius Marminge committed 4 months ago

Commit d9e95391 parent 7118e4342 files · +1336 −1338Browse files

Showing the changes to apps/server/src/sourceControl/GitLabSourceControlProvider.ts (1 of 42 files). Show all

Unified · Split

apps/server/src/sourceControl/GitLabSourceControlProvider.ts+26−23
@@ -5,7 +5,16 @@ import { SourceControlProviderError, type ChangeRequest } from "@t3tools/contrac · 4 unmodified lines
55
66 import * as GitLabCli from "./GitLabCli.ts";
77 import * as SourceControlProvider from "./SourceControlProvider.ts";
8−import * as SourceControlProviderDiscovery from "./SourceControlProviderDiscovery.ts";
8+import {
9+ combinedAuthOutput,
10+ firstSafeAuthLine,
11+ matchFirst,
12+ parseCliHost,
13+ providerAuth,
14+ type SourceControlAuthProbeInput,
15+ type SourceControlCliDiscoverySpec,
16+ type SourceControlUnknownRemoteRefinementInput,
17+} from "./SourceControlProviderDiscovery.ts";
918 import { findAuthenticatedGitLabHost, parseGitLabAuthStatusHosts } from "./gitLabAuthStatus.ts";
1019
1120 function providerError(
@@ -42,48 +51,42 @@ function toChangeRequest(summary: GitLabCli.GitLabMergeRequestSummary): ChangeRe · 30 unmodified lines
4251 };
4352 }
4453
45−function parseGitLabAuth(input: SourceControlProviderDiscovery.SourceControlAuthProbeInput) {
46− const output = SourceControlProviderDiscovery.combinedAuthOutput(input);
54+function parseGitLabAuth(input: SourceControlAuthProbeInput) {
55+ const output = combinedAuthOutput(input);
4756 const authenticatedHost = findAuthenticatedGitLabHost(parseGitLabAuthStatusHosts(output));
4857 const account =
4958 authenticatedHost?.account ??
50− SourceControlProviderDiscovery.matchFirst(output, [
59+ matchFirst(output, [
5160 /Logged in to .* as\s+([^\s(]+)/iu,
5261 /Logged in to .* account\s+([^\s(]+)/iu,
5362 /account:\s*([^\s(]+)/iu,
5463 ]);
55− const host = authenticatedHost?.host ?? SourceControlProviderDiscovery.parseCliHost(output);
64+ const host = authenticatedHost?.host ?? parseCliHost(output);
5665
5766 if (account) {
58− return SourceControlProviderDiscovery.providerAuth({ status: "authenticated", account, host });
67+ return providerAuth({ status: "authenticated", account, host });
5968 }
6069
6170 if (input.exitCode !== 0) {
62− return SourceControlProviderDiscovery.providerAuth({
71+ return providerAuth({
6372 status: "unauthenticated",
6473 host,
65− detail:
66− SourceControlProviderDiscovery.firstSafeAuthLine(output) ??
67− "Run `glab auth login` to authenticate GitLab CLI.",
74+ detail: firstSafeAuthLine(output) ?? "Run `glab auth login` to authenticate GitLab CLI.",
6875 });
6976 }
7077
71− return SourceControlProviderDiscovery.providerAuth({
78+ return providerAuth({
7279 status: "unknown",
7380 host,
74− detail:
75− SourceControlProviderDiscovery.firstSafeAuthLine(output) ??
76− "GitLab CLI auth status could not be parsed.",
81+ detail: firstSafeAuthLine(output) ?? "GitLab CLI auth status could not be parsed.",
7782 });
7883 }
7984
80−function refineUnknownGitLabRemote(
81− input: SourceControlProviderDiscovery.SourceControlUnknownRemoteRefinementInput,
82−) {
85+function refineUnknownGitLabRemote(input: SourceControlUnknownRemoteRefinementInput) {
8386 const host = input.context.provider.name.toLowerCase();
84− const authenticated = parseGitLabAuthStatusHosts(
85− SourceControlProviderDiscovery.combinedAuthOutput(input.auth),
86− ).some((entry) => entry.account !== null && entry.host === host);
87+ const authenticated = parseGitLabAuthStatusHosts(combinedAuthOutput(input.auth)).some(
88+ (entry) => entry.account !== null && entry.host === host,
89+ );
8790
8891 if (!authenticated) {
8992 return null;
@@ -107,9 +110,9 @@ export const discovery = { · 17 unmodified lines
107110 refineUnknownRemote: refineUnknownGitLabRemote,
108111 installHint:
109112 "Install the GitLab command-line tool (`glab`) from https://gitlab.com/gitlab-org/cli or your package manager (for example `brew install glab`).",
110−} satisfies SourceControlProviderDiscovery.SourceControlCliDiscoverySpec;
113+} satisfies SourceControlCliDiscoverySpec;
111114
112−export const make = Effect.fn("makeGitLabSourceControlProvider")(function* () {
115+export const make = Effect.gen(function* () {
113116 const gitlab = yield* GitLabCli.GitLabCli;
114117
115118 return SourceControlProvider.SourceControlProvider.of({
@@ -167,4 +170,4 @@ export const make = Effect.fn("makeGitLabSourceControlProvider")(function* () { · 51 unmodified lines
167170 });
168171 });
169172
170−export const layer = Layer.effect(SourceControlProvider.SourceControlProvider, make());
173+export const layer = Layer.effect(SourceControlProvider.SourceControlProvider, make);