Files
embed-markdown/index.js
Yusuf Ali 6388210d2d
All checks were successful
Dependabot Auto-Merge / dependabot (pull_request) Has been skipped
Dependabot Auto-Merge / devopsbot (pull_request) Has been skipped
Dependabot Auto-Merge / rennovatebot (pull_request) Has been skipped
Unit Tests / unittest (pull_request) Successful in 50s
COMMIT LINT / commitlint (pull_request) Successful in 2m7s
ci: add in markdown embedder
2026-01-10 02:35:14 +00:00

83 lines
2.0 KiB
JavaScript

const { execSync } = require("child_process");
const fs = require("fs");
const core = require("@actions/core");
const github = require("@actions/github");
const apiUrl =
core.getInput("api_url") || "http://agents-api.servc-agents:3000";
const apiToken = core.getInput("api_token");
const route = core.getInput("route") || "agent-lake";
const method = core.getInput("method") || "embeddings_insert";
const debug = (core.getInput("debug") || "false").toLowerCase() === "true";
const repoFull = process.env.GITHUB_REPOSITORY;
const [owner, repo] = repoFull.split("/");
const segment_id = ["docs", owner, repo].join(".");
const serverUrl = (
process.env.GITHUB_SERVER_URL ||
github.context.serverUrl ||
"https://git.yusufali.ca"
).replace(/\/$/, "");
const markdownFiles = execSync("git ls-files '*.md'", {
encoding: "utf8",
})
.trim()
.split("\n")
.filter(Boolean);
const headers = {
"Content-Type": "application/json",
};
if (apiToken) {
headers.Apitoken = apiToken;
}
for (const file of markdownFiles) {
const content = fs.readFileSync(file, "utf8");
const requestPayload = {
type: "input",
route,
argumentId: "plain",
force: true,
instanceId: null,
inputs: {
method,
inputs: {
segment_id,
document_id: file,
embed_text: content,
store_text: content,
},
},
};
if (debug) {
core.info(`API URL: ${apiUrl}`);
core.info(`Route: ${route}`);
core.info(`Server URL: ${serverUrl}`);
core.info(`Using auth: ${Boolean(apiToken)}`);
core.info(`Request payload: ${JSON.stringify(requestPayload)}`);
}
fetch(apiUrl, {
method: "POST",
headers,
body: JSON.stringify(requestPayload),
})
.then((response) => {
if (!response.ok) {
core.setFailed(
`Agent API request failed (${response.status}): ${responseText}`,
);
} else {
core.info(`Agent response: ${response.text}`);
}
})
.catch((error) => core.setFailed(`Error sending task to agent: ${error}`));
}