MCPcopy
hub / github.com/openclaw/clawsweeper / syncMergeRiskLabels

Function syncMergeRiskLabels

src/clawsweeper.ts:10892–10924  ·  view source on GitHub ↗
(options: {
  number: number;
  labels: readonly string[];
  mergeRiskLabels: readonly MergeRiskLabelName[];
  dryRun: boolean;
})

Source from the content-addressed store, hash-verified

10890}
10891
10892function syncMergeRiskLabels(options: {
10893 number: number;
10894 labels: readonly string[];
10895 mergeRiskLabels: readonly MergeRiskLabelName[];
10896 dryRun: boolean;
10897}): { labels: string[]; changed: boolean } {
10898 const nextLabels = nextMergeRiskLabels(options.labels, options.mergeRiskLabels);
10899 const currentLabelKeys = new Set(options.labels.map((label) => label.toLowerCase()));
10900 const nextLabelKeys = new Set(nextLabels.map((label) => label.toLowerCase()));
10901 const labelsToAdd = nextLabels.filter(
10902 (label): label is MergeRiskLabelName =>
10903 MERGE_RISK_LABEL_NAMES.has(label) && !currentLabelKeys.has(label.toLowerCase()),
10904 );
10905 const labelsToRemove = options.labels.filter(
10906 (label) => MERGE_RISK_LABEL_NAMES.has(label) && !nextLabelKeys.has(label.toLowerCase()),
10907 );
10908 const changed = labelsToAdd.length > 0 || labelsToRemove.length > 0;
10909 if (!changed) return { labels: nextLabels, changed };
10910 if (options.dryRun) return { labels: nextLabels, changed };
10911 for (const label of labelsToRemove) {
10912 ghWithRetry(["issue", "edit", String(options.number), "--remove-label", label]);
10913 }
10914 const syncedLabels = options.labels.filter((label) => !labelsToRemove.includes(label));
10915 let added = false;
10916 for (const label of labelsToAdd) {
10917 ensureMergeRiskLabel(label);
10918 if (tryAddOptionalLabel({ number: options.number, label, currentLabels: syncedLabels })) {
10919 syncedLabels.push(label);
10920 added = true;
10921 }
10922 }
10923 return { labels: syncedLabels, changed: labelsToRemove.length > 0 || added };
10924}
10925
10926function syncIssueAdvisoryLabels(options: {
10927 number: number;

Callers 1

applyDecisionsCommandFunction · 0.85

Calls 5

nextMergeRiskLabelsFunction · 0.85
ghWithRetryFunction · 0.85
ensureMergeRiskLabelFunction · 0.85
tryAddOptionalLabelFunction · 0.85
hasMethod · 0.80

Tested by

no test coverage detected