Files
load-secrets-action/src/index.ts
2026-02-20 09:29:15 -05:00

46 lines
1.4 KiB
TypeScript

import dotenv from "dotenv";
import * as core from "@actions/core";
import { loadSecrets, unsetPrevious, validateAuth } from "./utils";
import { envFilePath } from "./constants";
const loadSecretsAction = async () => {
try {
// Get action inputs
const shouldUnsetPrevious = core.getBooleanInput("unset-previous");
const shouldExportEnv = core.getBooleanInput("export-env");
// Unset all secrets managed by 1Password if `unset-previous` is set.
if (shouldUnsetPrevious) {
unsetPrevious();
}
// Validate that a proper authentication configuration is set for the CLI
validateAuth();
// Set environment variables from OP_ENV_FILE
const file = process.env[envFilePath];
if (file) {
core.info(`Loading environment variables from file: ${file}`);
dotenv.config({ path: file });
}
// Load secrets
await loadSecrets(shouldExportEnv);
} catch (error) {
let message = "Unknown Error";
if (error instanceof Error) {
message = error.message;
if (message === "Unknown Error" && error.cause instanceof Error) {
message = error.cause.message;
}
} else if (error && typeof error === "object" && "message" in error && typeof (error as { message: unknown }).message === "string") {
message = (error as { message: string }).message;
} else if (error !== null && error !== undefined) {
message = typeof error === "string" ? error : JSON.stringify(error);
}
core.setFailed(message);
}
};
void loadSecretsAction();