repomix
Version:
A tool to pack repository contents to single file for AI consumption
28 lines (27 loc) • 935 B
JavaScript
import { RepomixError } from '../../shared/errorHandle.js';
import { logger } from '../../shared/logger.js';
import { execLsRemote, validateGitUrl } from './gitCommand.js';
export const getRemoteRefs = async (url, deps = {
execLsRemote,
}) => {
validateGitUrl(url);
try {
const stdout = await deps.execLsRemote(url);
const refs = stdout
.split('\n')
.filter(Boolean)
.map((line) => {
const parts = line.split('\t');
if (parts.length < 2)
return '';
return parts[1].replace(/^refs\/(heads|tags)\//, '');
})
.filter(Boolean);
logger.trace(`Found ${refs.length} refs in repository: ${url}`);
return refs;
}
catch (error) {
logger.trace('Failed to get remote refs:', error.message);
throw new RepomixError(`Failed to get remote refs: ${error.message}`);
}
};