@intentic/providers 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/auth/authentik-api.d.ts +23 -0
- package/dist/auth/authentik-api.d.ts.map +1 -0
- package/dist/auth/authentik-api.js +67 -0
- package/dist/auth/authentik-api.js.map +1 -0
- package/dist/auth/authentik-client.d.ts +4 -0
- package/dist/auth/authentik-client.d.ts.map +1 -0
- package/dist/auth/authentik-client.js +50 -0
- package/dist/auth/authentik-client.js.map +1 -0
- package/dist/auth/authentik.d.ts +4 -0
- package/dist/auth/authentik.d.ts.map +1 -0
- package/dist/auth/authentik.js +132 -0
- package/dist/auth/authentik.js.map +1 -0
- package/dist/backup/backup-restore.d.ts +15 -0
- package/dist/backup/backup-restore.d.ts.map +1 -0
- package/dist/backup/backup-restore.js +51 -0
- package/dist/backup/backup-restore.js.map +1 -0
- package/dist/backup/backup.d.ts +6 -0
- package/dist/backup/backup.d.ts.map +1 -0
- package/dist/backup/backup.js +154 -0
- package/dist/backup/backup.js.map +1 -0
- package/dist/backup/migrate-host.d.ts +6 -0
- package/dist/backup/migrate-host.d.ts.map +1 -0
- package/dist/backup/migrate-host.js +46 -0
- package/dist/backup/migrate-host.js.map +1 -0
- package/dist/core/backing-ssh.d.ts +9 -0
- package/dist/core/backing-ssh.d.ts.map +1 -0
- package/dist/core/backing-ssh.js +67 -0
- package/dist/core/backing-ssh.js.map +1 -0
- package/dist/core/ci-yaml.d.ts +3 -0
- package/dist/core/ci-yaml.d.ts.map +1 -0
- package/dist/core/ci-yaml.js +15 -0
- package/dist/core/ci-yaml.js.map +1 -0
- package/dist/core/guarded-update.d.ts +14 -0
- package/dist/core/guarded-update.d.ts.map +1 -0
- package/dist/core/guarded-update.js +25 -0
- package/dist/core/guarded-update.js.map +1 -0
- package/dist/core/inputs.d.ts +27 -0
- package/dist/core/inputs.d.ts.map +1 -0
- package/dist/core/inputs.js +36 -0
- package/dist/core/inputs.js.map +1 -0
- package/dist/core/ssh-probe.d.ts +5 -0
- package/dist/core/ssh-probe.d.ts.map +1 -0
- package/dist/core/ssh-probe.js +22 -0
- package/dist/core/ssh-probe.js.map +1 -0
- package/dist/core/ssh.d.ts +31 -0
- package/dist/core/ssh.d.ts.map +1 -0
- package/dist/core/ssh.js +186 -0
- package/dist/core/ssh.js.map +1 -0
- package/dist/data/garage-bucket.d.ts +4 -0
- package/dist/data/garage-bucket.d.ts.map +1 -0
- package/dist/data/garage-bucket.js +92 -0
- package/dist/data/garage-bucket.js.map +1 -0
- package/dist/data/garage.d.ts +4 -0
- package/dist/data/garage.d.ts.map +1 -0
- package/dist/data/garage.js +124 -0
- package/dist/data/garage.js.map +1 -0
- package/dist/data/postgres-database.d.ts +4 -0
- package/dist/data/postgres-database.d.ts.map +1 -0
- package/dist/data/postgres-database.js +88 -0
- package/dist/data/postgres-database.js.map +1 -0
- package/dist/data/postgres.d.ts +4 -0
- package/dist/data/postgres.d.ts.map +1 -0
- package/dist/data/postgres.js +106 -0
- package/dist/data/postgres.js.map +1 -0
- package/dist/data/valkey-namespace.d.ts +4 -0
- package/dist/data/valkey-namespace.d.ts.map +1 -0
- package/dist/data/valkey-namespace.js +78 -0
- package/dist/data/valkey-namespace.js.map +1 -0
- package/dist/data/valkey.d.ts +4 -0
- package/dist/data/valkey.d.ts.map +1 -0
- package/dist/data/valkey.js +105 -0
- package/dist/data/valkey.js.map +1 -0
- package/dist/forgejo/ci.d.ts +4 -0
- package/dist/forgejo/ci.d.ts.map +1 -0
- package/dist/forgejo/ci.js +138 -0
- package/dist/forgejo/ci.js.map +1 -0
- package/dist/forgejo/forgejo-api.d.ts +209 -0
- package/dist/forgejo/forgejo-api.d.ts.map +1 -0
- package/dist/forgejo/forgejo-api.fake.d.ts +3 -0
- package/dist/forgejo/forgejo-api.fake.d.ts.map +1 -0
- package/dist/forgejo/forgejo-api.fake.js +31 -0
- package/dist/forgejo/forgejo-api.fake.js.map +1 -0
- package/dist/forgejo/forgejo-api.js +181 -0
- package/dist/forgejo/forgejo-api.js.map +1 -0
- package/dist/forgejo/forgejo-notify.d.ts +4 -0
- package/dist/forgejo/forgejo-notify.d.ts.map +1 -0
- package/dist/forgejo/forgejo-notify.js +103 -0
- package/dist/forgejo/forgejo-notify.js.map +1 -0
- package/dist/forgejo/forgejo-org.d.ts +4 -0
- package/dist/forgejo/forgejo-org.d.ts.map +1 -0
- package/dist/forgejo/forgejo-org.js +43 -0
- package/dist/forgejo/forgejo-org.js.map +1 -0
- package/dist/forgejo/forgejo-runner.d.ts +4 -0
- package/dist/forgejo/forgejo-runner.d.ts.map +1 -0
- package/dist/forgejo/forgejo-runner.js +111 -0
- package/dist/forgejo/forgejo-runner.js.map +1 -0
- package/dist/forgejo/forgejo-team.d.ts +4 -0
- package/dist/forgejo/forgejo-team.d.ts.map +1 -0
- package/dist/forgejo/forgejo-team.js +68 -0
- package/dist/forgejo/forgejo-team.js.map +1 -0
- package/dist/forgejo/forgejo-user.d.ts +4 -0
- package/dist/forgejo/forgejo-user.d.ts.map +1 -0
- package/dist/forgejo/forgejo-user.js +50 -0
- package/dist/forgejo/forgejo-user.js.map +1 -0
- package/dist/forgejo/forgejo.d.ts +4 -0
- package/dist/forgejo/forgejo.d.ts.map +1 -0
- package/dist/forgejo/forgejo.js +169 -0
- package/dist/forgejo/forgejo.js.map +1 -0
- package/dist/forgejo/repo.d.ts +4 -0
- package/dist/forgejo/repo.d.ts.map +1 -0
- package/dist/forgejo/repo.js +80 -0
- package/dist/forgejo/repo.js.map +1 -0
- package/dist/github/gh-ci.d.ts +4 -0
- package/dist/github/gh-ci.d.ts.map +1 -0
- package/dist/github/gh-ci.js +140 -0
- package/dist/github/gh-ci.js.map +1 -0
- package/dist/github/gh-deployment.d.ts +4 -0
- package/dist/github/gh-deployment.d.ts.map +1 -0
- package/dist/github/gh-deployment.js +92 -0
- package/dist/github/gh-deployment.js.map +1 -0
- package/dist/github/gh-repo.d.ts +4 -0
- package/dist/github/gh-repo.d.ts.map +1 -0
- package/dist/github/gh-repo.js +52 -0
- package/dist/github/gh-repo.js.map +1 -0
- package/dist/github/github-api.d.ts +70 -0
- package/dist/github/github-api.d.ts.map +1 -0
- package/dist/github/github-api.js +120 -0
- package/dist/github/github-api.js.map +1 -0
- package/dist/github/github.d.ts +4 -0
- package/dist/github/github.d.ts.map +1 -0
- package/dist/github/github.js +34 -0
- package/dist/github/github.js.map +1 -0
- package/dist/gitlab/gitlab-api.d.ts +77 -0
- package/dist/gitlab/gitlab-api.d.ts.map +1 -0
- package/dist/gitlab/gitlab-api.js +124 -0
- package/dist/gitlab/gitlab-api.js.map +1 -0
- package/dist/gitlab/gitlab.d.ts +4 -0
- package/dist/gitlab/gitlab.d.ts.map +1 -0
- package/dist/gitlab/gitlab.js +34 -0
- package/dist/gitlab/gitlab.js.map +1 -0
- package/dist/gitlab/gl-ci.d.ts +4 -0
- package/dist/gitlab/gl-ci.d.ts.map +1 -0
- package/dist/gitlab/gl-ci.js +130 -0
- package/dist/gitlab/gl-ci.js.map +1 -0
- package/dist/gitlab/gl-deployment.d.ts +4 -0
- package/dist/gitlab/gl-deployment.d.ts.map +1 -0
- package/dist/gitlab/gl-deployment.js +93 -0
- package/dist/gitlab/gl-deployment.js.map +1 -0
- package/dist/gitlab/gl-repo.d.ts +4 -0
- package/dist/gitlab/gl-repo.d.ts.map +1 -0
- package/dist/gitlab/gl-repo.js +61 -0
- package/dist/gitlab/gl-repo.js.map +1 -0
- package/dist/host/host.d.ts +4 -0
- package/dist/host/host.d.ts.map +1 -0
- package/dist/host/host.js +48 -0
- package/dist/host/host.js.map +1 -0
- package/dist/host/workspace.d.ts +4 -0
- package/dist/host/workspace.d.ts.map +1 -0
- package/dist/host/workspace.js +152 -0
- package/dist/host/workspace.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/discord-api.d.ts +31 -0
- package/dist/integrations/discord-api.d.ts.map +1 -0
- package/dist/integrations/discord-api.js +85 -0
- package/dist/integrations/discord-api.js.map +1 -0
- package/dist/integrations/discord.d.ts +4 -0
- package/dist/integrations/discord.d.ts.map +1 -0
- package/dist/integrations/discord.js +133 -0
- package/dist/integrations/discord.js.map +1 -0
- package/dist/integrations/stripe-api.d.ts +8 -0
- package/dist/integrations/stripe-api.d.ts.map +1 -0
- package/dist/integrations/stripe-api.js +16 -0
- package/dist/integrations/stripe-api.js.map +1 -0
- package/dist/integrations/stripe.d.ts +4 -0
- package/dist/integrations/stripe.d.ts.map +1 -0
- package/dist/integrations/stripe.js +28 -0
- package/dist/integrations/stripe.js.map +1 -0
- package/dist/komodo/deployment.d.ts +4 -0
- package/dist/komodo/deployment.d.ts.map +1 -0
- package/dist/komodo/deployment.js +103 -0
- package/dist/komodo/deployment.js.map +1 -0
- package/dist/komodo/komodo-api.d.ts +150 -0
- package/dist/komodo/komodo-api.d.ts.map +1 -0
- package/dist/komodo/komodo-api.js +104 -0
- package/dist/komodo/komodo-api.js.map +1 -0
- package/dist/komodo/komodo-notify.d.ts +4 -0
- package/dist/komodo/komodo-notify.d.ts.map +1 -0
- package/dist/komodo/komodo-notify.js +88 -0
- package/dist/komodo/komodo-notify.js.map +1 -0
- package/dist/komodo/komodo-periphery.d.ts +4 -0
- package/dist/komodo/komodo-periphery.d.ts.map +1 -0
- package/dist/komodo/komodo-periphery.js +92 -0
- package/dist/komodo/komodo-periphery.js.map +1 -0
- package/dist/komodo/komodo-server.d.ts +4 -0
- package/dist/komodo/komodo-server.d.ts.map +1 -0
- package/dist/komodo/komodo-server.js +54 -0
- package/dist/komodo/komodo-server.js.map +1 -0
- package/dist/komodo/komodo-user.d.ts +4 -0
- package/dist/komodo/komodo-user.d.ts.map +1 -0
- package/dist/komodo/komodo-user.js +66 -0
- package/dist/komodo/komodo-user.js.map +1 -0
- package/dist/komodo/komodo.d.ts +4 -0
- package/dist/komodo/komodo.d.ts.map +1 -0
- package/dist/komodo/komodo.js +222 -0
- package/dist/komodo/komodo.js.map +1 -0
- package/dist/network/cf-route.d.ts +5 -0
- package/dist/network/cf-route.d.ts.map +1 -0
- package/dist/network/cf-route.js +74 -0
- package/dist/network/cf-route.js.map +1 -0
- package/dist/network/cloudflare-api.d.ts +85 -0
- package/dist/network/cloudflare-api.d.ts.map +1 -0
- package/dist/network/cloudflare-api.js +110 -0
- package/dist/network/cloudflare-api.js.map +1 -0
- package/dist/network/cloudflare.d.ts +4 -0
- package/dist/network/cloudflare.d.ts.map +1 -0
- package/dist/network/cloudflare.js +29 -0
- package/dist/network/cloudflare.js.map +1 -0
- package/dist/network/tunnel.d.ts +5 -0
- package/dist/network/tunnel.d.ts.map +1 -0
- package/dist/network/tunnel.js +127 -0
- package/dist/network/tunnel.js.map +1 -0
- package/dist/observability/signoz.d.ts +4 -0
- package/dist/observability/signoz.d.ts.map +1 -0
- package/dist/observability/signoz.js +391 -0
- package/dist/observability/signoz.js.map +1 -0
- package/dist/providers.d.ts +25 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +110 -0
- package/dist/providers.js.map +1 -0
- package/dist/services/compose-service.d.ts +34 -0
- package/dist/services/compose-service.d.ts.map +1 -0
- package/dist/services/compose-service.js +150 -0
- package/dist/services/compose-service.js.map +1 -0
- package/dist/services/infisical.d.ts +4 -0
- package/dist/services/infisical.d.ts.map +1 -0
- package/dist/services/infisical.js +72 -0
- package/dist/services/infisical.js.map +1 -0
- package/dist/services/invoiceninja.d.ts +4 -0
- package/dist/services/invoiceninja.d.ts.map +1 -0
- package/dist/services/invoiceninja.js +116 -0
- package/dist/services/invoiceninja.js.map +1 -0
- package/dist/services/openproject.d.ts +4 -0
- package/dist/services/openproject.d.ts.map +1 -0
- package/dist/services/openproject.js +45 -0
- package/dist/services/openproject.js.map +1 -0
- package/dist/services/outline.d.ts +4 -0
- package/dist/services/outline.d.ts.map +1 -0
- package/dist/services/outline.js +121 -0
- package/dist/services/outline.js.map +1 -0
- package/dist/services/paperless.d.ts +4 -0
- package/dist/services/paperless.d.ts.map +1 -0
- package/dist/services/paperless.js +48 -0
- package/dist/services/paperless.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { composeDown, composeUp, containerImage, restampBacking, stateDir, waitReady } from "../core/backing-ssh.js";
|
|
3
|
+
import { parseInputs, sshSchema, sshTarget } from "../core/inputs.js";
|
|
4
|
+
import { sshExecutor } from "../core/ssh.js";
|
|
5
|
+
const KIND = "valkey";
|
|
6
|
+
const READY_TIMEOUT_MS = 60_000;
|
|
7
|
+
const valkeySchema = sshSchema.extend({
|
|
8
|
+
internalIp: z.string(),
|
|
9
|
+
publishPort: z.number(),
|
|
10
|
+
adminPassword: z.string(),
|
|
11
|
+
image: z.string(),
|
|
12
|
+
});
|
|
13
|
+
const parse = (inputs) => parseInputs(valkeySchema, inputs, KIND);
|
|
14
|
+
const outputsFor = (parsed) => ({
|
|
15
|
+
internalHost: parsed.internalIp,
|
|
16
|
+
port: String(parsed.publishPort),
|
|
17
|
+
});
|
|
18
|
+
const composeYaml = (id, parsed) => [
|
|
19
|
+
"services:",
|
|
20
|
+
" valkey:",
|
|
21
|
+
` image: ${parsed.image}`,
|
|
22
|
+
" restart: unless-stopped",
|
|
23
|
+
" command: [ valkey-server, /etc/valkey/valkey.conf ]",
|
|
24
|
+
" volumes:",
|
|
25
|
+
" - data:/data",
|
|
26
|
+
" - ./valkey.conf:/etc/valkey/valkey.conf:ro",
|
|
27
|
+
` ports: [ "${parsed.publishPort}:6379" ]`,
|
|
28
|
+
` labels: [ "intentic.id=${id}" ]`,
|
|
29
|
+
"volumes: { data: {} }",
|
|
30
|
+
"",
|
|
31
|
+
].join("\n");
|
|
32
|
+
const valkeyConf = (parsed) => [`requirepass ${parsed.adminPassword}`, "appendonly yes", ""].join("\n");
|
|
33
|
+
const ensureFiles = async (session, id, parsed) => {
|
|
34
|
+
const dir = stateDir(KIND, id);
|
|
35
|
+
await session.exec(`mkdir -p ${dir}`);
|
|
36
|
+
await session.exec(`cat > ${dir}/compose.yaml <<'COMPOSE_EOF'\n${composeYaml(id, parsed)}COMPOSE_EOF`);
|
|
37
|
+
await session.exec(`cat > ${dir}/valkey.conf <<'CONF_EOF'\n${valkeyConf(parsed)}CONF_EOF`);
|
|
38
|
+
await session.exec(`chmod 600 ${dir}/valkey.conf`);
|
|
39
|
+
};
|
|
40
|
+
const readyProbe = (id, parsed) => `cid=$(docker ps -q --filter "label=intentic.id=${id}"); [ -n "$cid" ] && docker exec "$cid" valkey-cli -a '${parsed.adminPassword}' ping | grep -q PONG`;
|
|
41
|
+
export const createValkeyProvider = (executor = sshExecutor) => ({
|
|
42
|
+
read: async (inputs, ctx) => {
|
|
43
|
+
const parsed = parse(inputs);
|
|
44
|
+
let session;
|
|
45
|
+
try {
|
|
46
|
+
session = await executor.connect(sshTarget(parsed));
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
ctx.log(`valkey "${ctx.id}": host not reachable over SSH, treating as not-yet-created: ${String(error)}`);
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const probe = await session.exec(readyProbe(ctx.id, parsed));
|
|
54
|
+
if (probe.code !== 0) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return { outputs: outputsFor(parsed), detail: { image: await containerImage(session, ctx.id) } };
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
await session.dispose();
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
diff: (inputs, observed) => {
|
|
64
|
+
const parsed = parse(inputs);
|
|
65
|
+
const image = (observed.detail?.["image"] ?? "");
|
|
66
|
+
return image === parsed.image
|
|
67
|
+
? { action: "noop" }
|
|
68
|
+
: { action: "update", reason: `valkey image differs (running ${image}, want ${parsed.image})` };
|
|
69
|
+
},
|
|
70
|
+
apply: async (inputs, _observed, ctx) => {
|
|
71
|
+
const parsed = parse(inputs);
|
|
72
|
+
const session = await executor.connect(sshTarget(parsed));
|
|
73
|
+
try {
|
|
74
|
+
await ensureFiles(session, ctx.id, parsed);
|
|
75
|
+
await composeUp(session, KIND, ctx.id);
|
|
76
|
+
await waitReady(session, KIND, ctx.id, readyProbe(ctx.id, parsed), READY_TIMEOUT_MS);
|
|
77
|
+
return outputsFor(parsed);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
await session.dispose();
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
delete: async (inputs, ctx) => {
|
|
84
|
+
const parsed = parse(inputs);
|
|
85
|
+
const session = await executor.connect(sshTarget(parsed));
|
|
86
|
+
try {
|
|
87
|
+
await composeDown(session, KIND, ctx.id);
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
await session.dispose();
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
restamp: async (oldId, inputs, ctx) => {
|
|
94
|
+
const target = sshTarget(parseInputs(sshSchema, inputs, KIND));
|
|
95
|
+
const image = typeof inputs["image"] === "string" ? inputs["image"] : "busybox";
|
|
96
|
+
const session = await executor.connect(target);
|
|
97
|
+
try {
|
|
98
|
+
await restampBacking(session, KIND, oldId, ctx.id, image);
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
await session.dispose();
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=valkey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valkey.js","sourceRoot":"","sources":["../../src/data/valkey.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/forgejo/ci.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,kBAAkB,CAAC;AAIjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAgFnD,eAAO,MAAM,gBAAgB,GAAI,MAAK,UAAuB,KAAG,QAoF9D,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { normalize, starterDockerfile } from "../core/ci-yaml.js";
|
|
3
|
+
import { parseInputs } from "../core/inputs.js";
|
|
4
|
+
import { forgejoApi } from "./forgejo-api.js";
|
|
5
|
+
const ciSchema = z.object({
|
|
6
|
+
forgejoUrl: z.string(),
|
|
7
|
+
adminUser: z.string(),
|
|
8
|
+
adminPassword: z.string(),
|
|
9
|
+
komodoPassword: z.string(),
|
|
10
|
+
owner: z.string(),
|
|
11
|
+
repoName: z.string(),
|
|
12
|
+
branch: z.string(),
|
|
13
|
+
registry: z.string(),
|
|
14
|
+
tag: z.string(),
|
|
15
|
+
packagesToken: z.string(),
|
|
16
|
+
komodoUrl: z.string(),
|
|
17
|
+
deployment: z.string(),
|
|
18
|
+
});
|
|
19
|
+
const parse = (inputs) => parseInputs(ciSchema, inputs, "ci");
|
|
20
|
+
const SECRET_REGISTRY = "REGISTRY_TOKEN";
|
|
21
|
+
const SECRET_KOMODO = "KOMODO_PASSWORD";
|
|
22
|
+
const workflowPath = (tag) => `.forgejo/workflows/build-${tag}.yaml`;
|
|
23
|
+
const DOCKERFILE_PATH = "Dockerfile";
|
|
24
|
+
const workflowYaml = (parsed) => {
|
|
25
|
+
const base = `${parsed.registry}/${parsed.owner}/${parsed.repoName}`;
|
|
26
|
+
return [
|
|
27
|
+
"# Generated by intentic: build the image, push it to the Forgejo registry, notify Komodo to redeploy.",
|
|
28
|
+
"on:",
|
|
29
|
+
" push:",
|
|
30
|
+
` branches: [ "${parsed.branch}" ]`,
|
|
31
|
+
"jobs:",
|
|
32
|
+
" build:",
|
|
33
|
+
" runs-on: docker",
|
|
34
|
+
" steps:",
|
|
35
|
+
" - uses: https://github.com/actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1",
|
|
36
|
+
" - uses: https://github.com/docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0",
|
|
37
|
+
" with:",
|
|
38
|
+
` registry: ${parsed.registry}`,
|
|
39
|
+
` username: ${parsed.adminUser}`,
|
|
40
|
+
` password: \${{ secrets.${SECRET_REGISTRY} }}`,
|
|
41
|
+
" - uses: https://github.com/docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2",
|
|
42
|
+
" with:",
|
|
43
|
+
" context: .",
|
|
44
|
+
" push: true",
|
|
45
|
+
" tags: |",
|
|
46
|
+
` ${base}:${parsed.tag}`,
|
|
47
|
+
` ${base}:\${{ github.sha }}`,
|
|
48
|
+
" - name: notify komodo to redeploy",
|
|
49
|
+
" run: |",
|
|
50
|
+
` KOMODO_PASSWORD='\${{ secrets.${SECRET_KOMODO} }}'`,
|
|
51
|
+
` JWT=$(curl -sf ${parsed.komodoUrl}/auth/login/LoginLocalUser -H 'Content-Type: application/json' \\`,
|
|
52
|
+
` -d '{"username":"${parsed.adminUser}","password":"'"$KOMODO_PASSWORD"'"}' | sed -n 's/.*"jwt":"\\([^"]*\\)".*/\\1/p')`,
|
|
53
|
+
` curl -sf ${parsed.komodoUrl}/execute -H "Authorization: $JWT" -H 'Content-Type: application/json' \\`,
|
|
54
|
+
` -d '{"type":"Deploy","params":{"deployment":"${parsed.deployment}"}}'`,
|
|
55
|
+
"",
|
|
56
|
+
].join("\n");
|
|
57
|
+
};
|
|
58
|
+
export const createCiProvider = (api = forgejoApi) => ({
|
|
59
|
+
read: async (inputs, ctx) => {
|
|
60
|
+
if (typeof inputs["forgejoUrl"] !== "string" || typeof inputs["komodoUrl"] !== "string") {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
const parsed = parse(inputs);
|
|
64
|
+
try {
|
|
65
|
+
const workflow = await api.readFile({
|
|
66
|
+
baseUrl: parsed.forgejoUrl,
|
|
67
|
+
user: parsed.adminUser,
|
|
68
|
+
password: parsed.adminPassword,
|
|
69
|
+
owner: parsed.owner,
|
|
70
|
+
name: parsed.repoName,
|
|
71
|
+
branch: parsed.branch,
|
|
72
|
+
path: workflowPath(parsed.tag),
|
|
73
|
+
});
|
|
74
|
+
if (workflow === undefined) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return { outputs: {}, detail: { workflow } };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
ctx.log(`ci "${ctx.id}": forgejo not reachable yet, treating as not-yet-created: ${String(error)}`);
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
diff: (inputs, observed) => {
|
|
85
|
+
const workflow = observed.detail?.["workflow"];
|
|
86
|
+
if (typeof workflow !== "string" || normalize(workflow) !== normalize(workflowYaml(parse(inputs)))) {
|
|
87
|
+
return { action: "update", reason: "ci workflow differs from desired" };
|
|
88
|
+
}
|
|
89
|
+
return { action: "noop" };
|
|
90
|
+
},
|
|
91
|
+
apply: async (inputs) => {
|
|
92
|
+
const parsed = parse(inputs);
|
|
93
|
+
const repo = {
|
|
94
|
+
baseUrl: parsed.forgejoUrl,
|
|
95
|
+
user: parsed.adminUser,
|
|
96
|
+
password: parsed.adminPassword,
|
|
97
|
+
owner: parsed.owner,
|
|
98
|
+
name: parsed.repoName,
|
|
99
|
+
};
|
|
100
|
+
await api.setRepoSecret({ ...repo, secretName: SECRET_REGISTRY, data: parsed.packagesToken });
|
|
101
|
+
await api.setRepoSecret({ ...repo, secretName: SECRET_KOMODO, data: parsed.komodoPassword });
|
|
102
|
+
const dockerfile = await api.readFile({ ...repo, branch: parsed.branch, path: DOCKERFILE_PATH });
|
|
103
|
+
if (dockerfile === undefined) {
|
|
104
|
+
await api.commitFile({
|
|
105
|
+
...repo,
|
|
106
|
+
branch: parsed.branch,
|
|
107
|
+
path: DOCKERFILE_PATH,
|
|
108
|
+
content: starterDockerfile(),
|
|
109
|
+
message: "intentic: starter Dockerfile",
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
await api.commitFile({
|
|
113
|
+
...repo,
|
|
114
|
+
branch: parsed.branch,
|
|
115
|
+
path: workflowPath(parsed.tag),
|
|
116
|
+
content: workflowYaml(parsed),
|
|
117
|
+
message: "intentic: ci workflow",
|
|
118
|
+
});
|
|
119
|
+
return {};
|
|
120
|
+
},
|
|
121
|
+
delete: async (inputs) => {
|
|
122
|
+
if (typeof inputs["forgejoUrl"] !== "string") {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const parsed = parse(inputs);
|
|
126
|
+
const repo = {
|
|
127
|
+
baseUrl: parsed.forgejoUrl,
|
|
128
|
+
user: parsed.adminUser,
|
|
129
|
+
password: parsed.adminPassword,
|
|
130
|
+
owner: parsed.owner,
|
|
131
|
+
name: parsed.repoName,
|
|
132
|
+
};
|
|
133
|
+
await api.deleteFile({ ...repo, branch: parsed.branch, path: workflowPath(parsed.tag), message: "intentic: remove ci workflow" });
|
|
134
|
+
await api.deleteRepoSecret({ ...repo, secretName: SECRET_REGISTRY });
|
|
135
|
+
await api.deleteRepoSecret({ ...repo, secretName: SECRET_KOMODO });
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=ci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/forgejo/ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export interface ForgejoRepo {
|
|
3
|
+
readonly cloneUrl: string;
|
|
4
|
+
readonly sshUrl: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ForgejoTeam {
|
|
7
|
+
readonly id: number;
|
|
8
|
+
readonly permission: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const forgejoHookSchema: z.ZodObject<{
|
|
11
|
+
id: z.ZodNumber;
|
|
12
|
+
type: z.ZodString;
|
|
13
|
+
config: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
14
|
+
events: z.ZodArray<z.ZodString>;
|
|
15
|
+
active: z.ZodBoolean;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export type ForgejoHook = z.infer<typeof forgejoHookSchema>;
|
|
18
|
+
export interface ForgejoApi {
|
|
19
|
+
readonly findRepo: (args: {
|
|
20
|
+
readonly baseUrl: string;
|
|
21
|
+
readonly user: string;
|
|
22
|
+
readonly password: string;
|
|
23
|
+
readonly owner: string;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
}) => Promise<ForgejoRepo | undefined>;
|
|
26
|
+
readonly createRepo: (args: {
|
|
27
|
+
readonly baseUrl: string;
|
|
28
|
+
readonly user: string;
|
|
29
|
+
readonly password: string;
|
|
30
|
+
readonly owner: string;
|
|
31
|
+
readonly ownerIsOrg: boolean;
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly private: boolean;
|
|
34
|
+
readonly autoInit: boolean;
|
|
35
|
+
}) => Promise<ForgejoRepo>;
|
|
36
|
+
readonly findUser: (args: {
|
|
37
|
+
readonly baseUrl: string;
|
|
38
|
+
readonly user: string;
|
|
39
|
+
readonly password: string;
|
|
40
|
+
readonly username: string;
|
|
41
|
+
}) => Promise<boolean>;
|
|
42
|
+
readonly createUser: (args: {
|
|
43
|
+
readonly baseUrl: string;
|
|
44
|
+
readonly user: string;
|
|
45
|
+
readonly password: string;
|
|
46
|
+
readonly username: string;
|
|
47
|
+
readonly email: string;
|
|
48
|
+
readonly accountPassword: string;
|
|
49
|
+
}) => Promise<void>;
|
|
50
|
+
readonly findOrg: (args: {
|
|
51
|
+
readonly baseUrl: string;
|
|
52
|
+
readonly user: string;
|
|
53
|
+
readonly password: string;
|
|
54
|
+
readonly org: string;
|
|
55
|
+
}) => Promise<boolean>;
|
|
56
|
+
readonly createOrg: (args: {
|
|
57
|
+
readonly baseUrl: string;
|
|
58
|
+
readonly user: string;
|
|
59
|
+
readonly password: string;
|
|
60
|
+
readonly org: string;
|
|
61
|
+
}) => Promise<void>;
|
|
62
|
+
readonly findTeam: (args: {
|
|
63
|
+
readonly baseUrl: string;
|
|
64
|
+
readonly user: string;
|
|
65
|
+
readonly password: string;
|
|
66
|
+
readonly org: string;
|
|
67
|
+
readonly name: string;
|
|
68
|
+
}) => Promise<ForgejoTeam | undefined>;
|
|
69
|
+
readonly createTeam: (args: {
|
|
70
|
+
readonly baseUrl: string;
|
|
71
|
+
readonly user: string;
|
|
72
|
+
readonly password: string;
|
|
73
|
+
readonly org: string;
|
|
74
|
+
readonly name: string;
|
|
75
|
+
readonly permission: string;
|
|
76
|
+
}) => Promise<ForgejoTeam>;
|
|
77
|
+
readonly addTeamMember: (args: {
|
|
78
|
+
readonly baseUrl: string;
|
|
79
|
+
readonly user: string;
|
|
80
|
+
readonly password: string;
|
|
81
|
+
readonly teamId: number;
|
|
82
|
+
readonly username: string;
|
|
83
|
+
}) => Promise<void>;
|
|
84
|
+
readonly addTeamRepo: (args: {
|
|
85
|
+
readonly baseUrl: string;
|
|
86
|
+
readonly user: string;
|
|
87
|
+
readonly password: string;
|
|
88
|
+
readonly teamId: number;
|
|
89
|
+
readonly org: string;
|
|
90
|
+
readonly name: string;
|
|
91
|
+
}) => Promise<void>;
|
|
92
|
+
readonly listHooks: (args: {
|
|
93
|
+
readonly baseUrl: string;
|
|
94
|
+
readonly user: string;
|
|
95
|
+
readonly password: string;
|
|
96
|
+
readonly owner: string;
|
|
97
|
+
readonly name: string;
|
|
98
|
+
}) => Promise<readonly ForgejoHook[]>;
|
|
99
|
+
readonly createHook: (args: {
|
|
100
|
+
readonly baseUrl: string;
|
|
101
|
+
readonly user: string;
|
|
102
|
+
readonly password: string;
|
|
103
|
+
readonly owner: string;
|
|
104
|
+
readonly name: string;
|
|
105
|
+
readonly type: string;
|
|
106
|
+
readonly config: Readonly<Record<string, string>>;
|
|
107
|
+
readonly events: readonly string[];
|
|
108
|
+
}) => Promise<void>;
|
|
109
|
+
readonly updateHook: (args: {
|
|
110
|
+
readonly baseUrl: string;
|
|
111
|
+
readonly user: string;
|
|
112
|
+
readonly password: string;
|
|
113
|
+
readonly owner: string;
|
|
114
|
+
readonly name: string;
|
|
115
|
+
readonly id: number;
|
|
116
|
+
readonly config: Readonly<Record<string, string>>;
|
|
117
|
+
readonly events: readonly string[];
|
|
118
|
+
}) => Promise<void>;
|
|
119
|
+
readonly latestCommit: (args: {
|
|
120
|
+
readonly baseUrl: string;
|
|
121
|
+
readonly user: string;
|
|
122
|
+
readonly password: string;
|
|
123
|
+
readonly owner: string;
|
|
124
|
+
readonly name: string;
|
|
125
|
+
readonly branch: string;
|
|
126
|
+
}) => Promise<string | undefined>;
|
|
127
|
+
readonly readFile: (args: {
|
|
128
|
+
readonly baseUrl: string;
|
|
129
|
+
readonly user: string;
|
|
130
|
+
readonly password: string;
|
|
131
|
+
readonly owner: string;
|
|
132
|
+
readonly name: string;
|
|
133
|
+
readonly branch: string;
|
|
134
|
+
readonly path: string;
|
|
135
|
+
}) => Promise<string | undefined>;
|
|
136
|
+
readonly commitFile: (args: {
|
|
137
|
+
readonly baseUrl: string;
|
|
138
|
+
readonly user: string;
|
|
139
|
+
readonly password: string;
|
|
140
|
+
readonly owner: string;
|
|
141
|
+
readonly name: string;
|
|
142
|
+
readonly branch: string;
|
|
143
|
+
readonly path: string;
|
|
144
|
+
readonly content: string;
|
|
145
|
+
readonly message: string;
|
|
146
|
+
}) => Promise<void>;
|
|
147
|
+
readonly setRepoSecret: (args: {
|
|
148
|
+
readonly baseUrl: string;
|
|
149
|
+
readonly user: string;
|
|
150
|
+
readonly password: string;
|
|
151
|
+
readonly owner: string;
|
|
152
|
+
readonly name: string;
|
|
153
|
+
readonly secretName: string;
|
|
154
|
+
readonly data: string;
|
|
155
|
+
}) => Promise<void>;
|
|
156
|
+
readonly deleteRepo: (args: {
|
|
157
|
+
readonly baseUrl: string;
|
|
158
|
+
readonly user: string;
|
|
159
|
+
readonly password: string;
|
|
160
|
+
readonly owner: string;
|
|
161
|
+
readonly name: string;
|
|
162
|
+
}) => Promise<void>;
|
|
163
|
+
readonly deleteFile: (args: {
|
|
164
|
+
readonly baseUrl: string;
|
|
165
|
+
readonly user: string;
|
|
166
|
+
readonly password: string;
|
|
167
|
+
readonly owner: string;
|
|
168
|
+
readonly name: string;
|
|
169
|
+
readonly branch: string;
|
|
170
|
+
readonly path: string;
|
|
171
|
+
readonly message: string;
|
|
172
|
+
}) => Promise<void>;
|
|
173
|
+
readonly deleteRepoSecret: (args: {
|
|
174
|
+
readonly baseUrl: string;
|
|
175
|
+
readonly user: string;
|
|
176
|
+
readonly password: string;
|
|
177
|
+
readonly owner: string;
|
|
178
|
+
readonly name: string;
|
|
179
|
+
readonly secretName: string;
|
|
180
|
+
}) => Promise<void>;
|
|
181
|
+
readonly deleteHook: (args: {
|
|
182
|
+
readonly baseUrl: string;
|
|
183
|
+
readonly user: string;
|
|
184
|
+
readonly password: string;
|
|
185
|
+
readonly owner: string;
|
|
186
|
+
readonly name: string;
|
|
187
|
+
readonly id: number;
|
|
188
|
+
}) => Promise<void>;
|
|
189
|
+
readonly deleteUser: (args: {
|
|
190
|
+
readonly baseUrl: string;
|
|
191
|
+
readonly user: string;
|
|
192
|
+
readonly password: string;
|
|
193
|
+
readonly username: string;
|
|
194
|
+
}) => Promise<void>;
|
|
195
|
+
readonly deleteOrg: (args: {
|
|
196
|
+
readonly baseUrl: string;
|
|
197
|
+
readonly user: string;
|
|
198
|
+
readonly password: string;
|
|
199
|
+
readonly org: string;
|
|
200
|
+
}) => Promise<void>;
|
|
201
|
+
readonly deleteTeam: (args: {
|
|
202
|
+
readonly baseUrl: string;
|
|
203
|
+
readonly user: string;
|
|
204
|
+
readonly password: string;
|
|
205
|
+
readonly teamId: number;
|
|
206
|
+
}) => Promise<void>;
|
|
207
|
+
}
|
|
208
|
+
export declare const forgejoApi: ForgejoApi;
|
|
209
|
+
//# sourceMappingURL=forgejo-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forgejo-api.d.ts","sourceRoot":"","sources":["../../src/forgejo/forgejo-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forgejo-api.fake.d.ts","sourceRoot":"","sources":["../../src/forgejo/forgejo-api.fake.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,eAAO,MAAM,cAAc,GAAI,YAAW,OAAO,CAAC,UAAU,CAAM,KAAG,UA0BnE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const notUsed = async () => {
|
|
2
|
+
throw new Error("forgejo-api method not stubbed in this fake");
|
|
3
|
+
};
|
|
4
|
+
export const fakeForgejoApi = (overrides = {}) => ({
|
|
5
|
+
findRepo: notUsed,
|
|
6
|
+
createRepo: notUsed,
|
|
7
|
+
findUser: notUsed,
|
|
8
|
+
createUser: notUsed,
|
|
9
|
+
findOrg: notUsed,
|
|
10
|
+
createOrg: notUsed,
|
|
11
|
+
findTeam: notUsed,
|
|
12
|
+
createTeam: notUsed,
|
|
13
|
+
addTeamMember: notUsed,
|
|
14
|
+
addTeamRepo: notUsed,
|
|
15
|
+
listHooks: notUsed,
|
|
16
|
+
createHook: notUsed,
|
|
17
|
+
updateHook: notUsed,
|
|
18
|
+
latestCommit: notUsed,
|
|
19
|
+
readFile: notUsed,
|
|
20
|
+
commitFile: notUsed,
|
|
21
|
+
setRepoSecret: notUsed,
|
|
22
|
+
deleteRepo: notUsed,
|
|
23
|
+
deleteFile: notUsed,
|
|
24
|
+
deleteRepoSecret: notUsed,
|
|
25
|
+
deleteHook: notUsed,
|
|
26
|
+
deleteUser: notUsed,
|
|
27
|
+
deleteOrg: notUsed,
|
|
28
|
+
deleteTeam: notUsed,
|
|
29
|
+
...overrides,
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=forgejo-api.fake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forgejo-api.fake.js","sourceRoot":"","sources":["../../src/forgejo/forgejo-api.fake.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,KAAK,IAAoB,EAAE;IACvC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACnE,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,YAAiC,EAAE,EAAc,EAAE,CAAC,CAAC;IAChF,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,OAAO;IACtB,WAAW,EAAE,OAAO;IACpB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,OAAO;IACnB,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,OAAO;IACnB,GAAG,SAAS;CACf,CAAC,CAAC"}
|