mirror of
https://github.com/better-auth/better-auth.git
synced 2026-05-22 14:21:55 -05:00
37 lines
976 B
TypeScript
37 lines
976 B
TypeScript
/**
|
|
* Shared GitHub CLI and CI output helpers.
|
|
*
|
|
* Used by: auto-changeset.ts, release-notes.ts
|
|
*/
|
|
|
|
import { execFileSync } from "node:child_process";
|
|
import { randomBytes } from "node:crypto";
|
|
import { appendFileSync } from "node:fs";
|
|
|
|
export const REPO = process.env.GITHUB_REPOSITORY ?? "better-auth/better-auth";
|
|
|
|
export function gh(args: string[]): string {
|
|
return execFileSync("gh", args, {
|
|
encoding: "utf-8",
|
|
env: {
|
|
...process.env,
|
|
GH_TOKEN: process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN,
|
|
},
|
|
}).trim();
|
|
}
|
|
|
|
export function ghJSON<T>(args: string[]): T {
|
|
return JSON.parse(gh(args)) as T;
|
|
}
|
|
|
|
export function setOutput(key: string, value: string): void {
|
|
const outputFile = process.env.GITHUB_OUTPUT;
|
|
if (outputFile) {
|
|
const delim = `GHEOF_${randomBytes(8).toString("hex")}`;
|
|
appendFileSync(outputFile, `${key}<<${delim}\n${value}\n${delim}\n`);
|
|
}
|
|
console.log(
|
|
` ${key}: ${value.length > 100 ? `${value.slice(0, 100)}...` : value}`,
|
|
);
|
|
}
|