refactor action to use INPUTS_JSON object

This commit is contained in:
David Blass
2025-10-13 16:57:02 -04:00
parent cd20491d22
commit a93c34e61b
10 changed files with 56 additions and 26599 deletions
+9 -35
View File
@@ -2,49 +2,26 @@
/**
* Entry point for GitHub Action
* This file is bundled to entry.cjs and called directly by GitHub Actions
*/
import * as core from "@actions/core";
import { type ExecutionInputs, type MainParams, main } from "./main.ts";
import { type } from "arktype";
import { main, Inputs } from "./main.ts";
import packageJson from "./package.json" with { type: "json" };
import { setupGitHubInstallationToken } from "./utils/github.ts";
async function run(): Promise<void> {
try {
console.log(`🐸 Running pullfrog/action@${packageJson.version}...`);
const prompt = core.getInput("prompt", { required: true });
const anthropic_api_key = core.getInput("anthropic_api_key");
if (!prompt) {
throw new Error("prompt is required");
const inputsJson = process.env.INPUTS_JSON;
if (!inputsJson) {
throw new Error("INPUTS_JSON environment variable not found");
}
const inputs: ExecutionInputs = {
prompt,
anthropic_api_key,
};
const parsed = type("string.json.parse").assert(inputsJson);
const inputs = Inputs.assert(parsed);
const githubToken = core.getInput("github_token") || process.env.GITHUB_TOKEN;
if (githubToken) {
inputs.github_token = githubToken;
}
const githubInstallationToken =
core.getInput("github_installation_token") || process.env.GITHUB_INSTALLATION_TOKEN;
if (githubInstallationToken) {
inputs.github_installation_token = githubInstallationToken;
} else {
await setupGitHubInstallationToken();
}
const params: MainParams = {
inputs,
env: {},
cwd: process.cwd(),
};
const result = await main(params);
const result = await main(inputs);
if (!result.success) {
throw new Error(result.error || "Agent execution failed");
@@ -55,7 +32,4 @@ async function run(): Promise<void> {
}
}
run().catch((error) => {
console.error("Action failed:", error);
process.exit(1);
});
await run();