1015 B49 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[web]
22cacerts = ${tlsDir}/ca.crt
23
24[auth]
25grove.prefix = ${hub}
26grove.cert = ${tlsDir}/client.crt
27grove.key = ${tlsDir}/client.key
28grove.cacerts = ${tlsDir}/ca.crt
29
30grove-mononoke.prefix = mononoke://grove.host
31grove-mononoke.cert = ${tlsDir}/client.crt
32grove-mononoke.key = ${tlsDir}/client.key
33grove-mononoke.cacerts = ${tlsDir}/ca.crt
34
35[edenapi]
36url = ${hub.replace(/\/$/, "")}:8443/edenapi/
37
38[clone]
39use-commit-graph = true
40
41[remotenames]
42selectivepulldefault = ${repo.default_branch}
43
44[push]
45edenapi = true
46to = ${repo.default_branch}
47`;
48}
49