yuki-no-plugin-release-tracking
Version:
Release tracking plugin for yuki-no - Tracks release status for commits and manages issue labels/comments automatically
20 lines (19 loc) • 1.1 kB
JavaScript
import { getReleaseTrackingLabels } from './getReleaseTrackingLabels';
import { setIssueLabels } from '@gumball12/yuki-no/github/setIssueLabels';
import { log, unique } from '@gumball12/yuki-no/utils';
export const updateIssueLabelsByRelease = async (github, issue, releaseInfo) => {
const releaseTrackingLabels = getReleaseTrackingLabels(github);
const isReleased = releaseInfo.release !== undefined;
const nextLabels = isReleased
? issue.labels.filter(label => !releaseTrackingLabels.includes(label))
: unique([...issue.labels, ...releaseTrackingLabels]);
log('I', `updateIssueLabelsByRelease :: Attempting to update #${issue.number} labels (${nextLabels.join(', ')})`);
const isLabelChanged = JSON.stringify(issue.labels) !== JSON.stringify(nextLabels.sort());
if (isLabelChanged) {
await setIssueLabels(github, issue.number, nextLabels);
log('S', 'updateIssueLabelsByRelease :: Labels changed successfully');
}
else {
log('S', 'updateIssueLabelsByRelease :: No change needed (identical labels already exist)');
}
};