delqhi's picture
Bootstrap SIN-GitHub-Issues runtime
a4dc18c verified
Raw
History Blame Contribute Delete
1.27 kB
import { runCommand } from './command.js';
export async function repoStatus(repoPath: string) {
const branch = await runCommand('git', ['branch', '--show-current'], repoPath);
const status = await runCommand('git', ['status', '--short'], repoPath);
return {
repoPath,
branch: branch.stdout,
clean: status.stdout.length === 0,
status: status.stdout,
};
}
export async function startBranch(repoPath: string, branchName: string, baseRef = 'main') {
await runCommand('git', ['fetch', 'origin', baseRef], repoPath);
await runCommand('git', ['switch', '-C', branchName, `origin/${baseRef}`], repoPath);
return repoStatus(repoPath);
}
export async function commitAll(repoPath: string, message: string) {
await runCommand('git', ['add', '-A'], repoPath);
await runCommand('git', ['commit', '-m', message], repoPath);
const head = await runCommand('git', ['rev-parse', 'HEAD'], repoPath);
return { repoPath, commit: head.stdout };
}
export async function pushBranch(repoPath: string, remote = 'origin', branchName?: string) {
const branch = branchName || (await runCommand('git', ['branch', '--show-current'], repoPath)).stdout;
await runCommand('git', ['push', '-u', remote, branch], repoPath);
return { repoPath, remote, branch };
}