mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-22 16:02:24 +00:00
59 lines
1.4 KiB
TypeScript
59 lines
1.4 KiB
TypeScript
import { log } from "../../deps.ts";
|
|
import { execSync } from "node:child_process";
|
|
import { WM_FORK_PREFIX } from "../core/constants.ts";
|
|
|
|
export function getCurrentGitBranch(): string | null {
|
|
try {
|
|
const result = execSync("git rev-parse --abbrev-ref HEAD", {
|
|
encoding: "utf8",
|
|
stdio: "pipe"
|
|
});
|
|
const branch = result.trim();
|
|
return branch || null;
|
|
} catch (error) {
|
|
log.debug(`Failed to get Git branch: ${error}`);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function getOriginalBranchForWorkspaceForks(branchName: string | null): string | null {
|
|
if (!branchName || !branchName.startsWith(WM_FORK_PREFIX)) {
|
|
return null
|
|
}
|
|
|
|
const start = branchName.indexOf("/") + 1;
|
|
const end = branchName.lastIndexOf("/");
|
|
|
|
if (start < 0 || end < 0 || end - start <= 0) {
|
|
return null
|
|
}
|
|
|
|
return branchName.slice(start, end)
|
|
}
|
|
|
|
export function getWorkspaceIdForWorkspaceForkFromBranchName(branchName: string): string | null {
|
|
if (!branchName.startsWith(WM_FORK_PREFIX)) {
|
|
return null
|
|
}
|
|
|
|
const start = branchName.lastIndexOf("/") + 1;
|
|
|
|
if (start < 0) {
|
|
return null
|
|
}
|
|
|
|
return `${WM_FORK_PREFIX}-${branchName.slice(start)}`
|
|
}
|
|
export function isGitRepository(): boolean {
|
|
try {
|
|
execSync("git rev-parse --git-dir", {
|
|
encoding: "utf8",
|
|
stdio: "pipe"
|
|
});
|
|
return true;
|
|
} catch (error) {
|
|
log.debug(`Failed to check Git repository: ${error}`);
|
|
return false;
|
|
}
|
|
}
|