20 lines
626 B
JavaScript
20 lines
626 B
JavaScript
import lodash from 'lodash'
|
|
const {isString, remove, omit, mapValues, template} = lodash
|
|
import micromatch from 'micromatch';
|
|
import {getBranches} from '../git.js';
|
|
|
|
export default async (repositoryUrl, {cwd}, branches) => {
|
|
const gitBranches = await getBranches(repositoryUrl, {cwd});
|
|
|
|
return branches.reduce(
|
|
(branches, branch) => [
|
|
...branches,
|
|
...remove(gitBranches, (name) => micromatch(gitBranches, branch.name).includes(name)).map((name) => ({
|
|
name,
|
|
...mapValues(omit(branch, 'name'), (value) => (isString(value) ? template(value)({name}) : value)),
|
|
})),
|
|
],
|
|
[]
|
|
);
|
|
};
|