UNPKG

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
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)'); } };