981 B46 lines
Blame
1import { join } from "node:path";
2import { homedir } from "node:os";
3
4interface RepoConfig {
5 name: string;
6 owner_name: string;
7 default_branch: string;
8}
9
10export function buildSlConfig(repo: RepoConfig, hub: string): string {
11 const tlsDir = join(homedir(), ".grove", "tls");
12 return `[paths]
13default = mononoke://${hub.replace(/^https?:\/\//, "").replace(/\/$/, "")}:8443/${repo.name}
14
15[remotefilelog]
16reponame = ${repo.name}
17
18[grove]
19owner = ${repo.owner_name}
20
21[auth]
22grove.prefix = ${hub}
23grove.cert = ${tlsDir}/client.crt
24grove.key = ${tlsDir}/client.key
25grove.cacerts = ${tlsDir}/ca.crt
26
27grove-mononoke.prefix = mononoke://grove.host
28grove-mononoke.cert = ${tlsDir}/client.crt
29grove-mononoke.key = ${tlsDir}/client.key
30grove-mononoke.cacerts = ${tlsDir}/ca.crt
31
32[edenapi]
33url = ${hub.replace(/\/$/, "")}:8443/edenapi/
34
35[clone]
36use-commit-graph = true
37
38[remotenames]
39selectivepulldefault = ${repo.default_branch}
40
41[push]
42edenapi = true
43to = ${repo.default_branch}
44`;
45}
46