@donmahallem/label-pr
Version:
Helpers for working with github issue labels
36 lines (33 loc) • 1.16 kB
JavaScript
import { getPullRequestLabels, calculateLabelDiff, syncLabels } from '@donmahallem/label-gh';
/**
* Package @donmahallem/label-pr
* Source https://donmahallem.github.io/js-libs/
*/
const syncPRLabels = async (octokit, opts, packageLabel, prefix = 'pkg') => {
const expectedLabels = packageLabel.map((baseLabel) => {
return `${prefix}:${baseLabel}`;
});
const prLabels = await getPullRequestLabels(octokit, opts);
const prLabelNames = prLabels
.map((lab) => {
return lab.name;
})
.filter((label) => {
// tslint:disable-next-line:triple-equals
return label != undefined;
});
const diff = calculateLabelDiff(expectedLabels, prLabelNames);
const finalLabels = [];
finalLabels.push(...diff.add);
finalLabels.push(...diff.unchanged);
finalLabels.push(...diff.remove.filter((label) => {
return !label.startsWith(`${prefix}:`);
}));
return syncLabels(octokit, {
issue_number: opts.pull_number,
owner: opts.owner,
repo: opts.repo,
}, finalLabels, true);
};
export { syncPRLabels };
//# sourceMappingURL=sync-pr-labels.mjs.map