Shared GitHub Actions toolkit utilities for context detection, typed input parsing, structured logging, and workflow outputs.
pnpm add @kcws/actkits
@kcws/actkits/context
@kcws/actkits/input
process.env and @actions/core inputszBoolean, zNumber, zJsonString, and zYamlFile@kcws/actkits/logging
@actions/coreprintf style formatting and grouped logs@kcws/actkits/output
setOutput and setOutputs helpersimport { parseInput, z, zBoolean, zNumber } from "@kcws/actkits/input";
const schema = z.object({
dryRun: zBoolean().default(false),
retries: zNumber().int().min(0).default(0),
token: z.string().min(1),
});
const input = parseInput(schema);
// input is strongly typed from the schema
import { getContext, isPullRequestEvent, getRunUrl } from "@kcws/actkits/context";
const context = getContext();
if (isPullRequestEvent(context)) {
const runUrl = getRunUrl(context);
console.log("Running on pull request", runUrl);
}
import { createLogger } from "@kcws/actkits/logging";
const logger = createLogger("release", "publish");
logger.info("Starting publish for %s", "my-package");
logger.notice("Version %s is ready", "1.2.3");
import { setOutput, setOutputs } from "@kcws/actkits/output";
setOutput("version", "1.2.3");
setOutputs({
published: true,
artifactCount: 2,
metadata: { channel: "stable" },
});