UNPKG

@yuki-no/plugin-release-tracking

Version:

Release tracking plugin for yuki-no - Tracks release status for commits and manages issue labels/comments automatically

24 lines (23 loc) 1.18 kB
import { getReleaseTrackingLabels } from './getReleaseTrackingLabels'; import { unique } from '@yuki-no/plugin-sdk/utils/common'; import { log } from '@yuki-no/plugin-sdk/utils/log'; 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 github.api.issues.setLabels({ ...github.ownerAndRepo, issue_number: issue.number, labels: nextLabels, }); log('S', 'updateIssueLabelsByRelease :: Labels changed successfully'); } else { log('S', 'updateIssueLabelsByRelease :: No change needed (identical labels already exist)'); } };