merge-steward 0.32.2 → 0.32.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/reconciler.js +3 -0
- package/dist/service-queue.d.ts +2 -1
- package/dist/service-queue.js +24 -1
- package/dist/service.d.ts +1 -1
- package/dist/service.js +2 -2
- package/dist/webhook-handler.js +1 -1
- package/package.json +1 -1
package/dist/reconciler.js
CHANGED
|
@@ -126,6 +126,9 @@ async function verifyMergedEntriesPostPush(ctx) {
|
|
|
126
126
|
postMergeCheckedAt: now,
|
|
127
127
|
}, "post-merge verification");
|
|
128
128
|
}
|
|
129
|
+
const post = ctx.store.getEntry(entry.id);
|
|
130
|
+
if (post)
|
|
131
|
+
await syncQueueStateLabels(ctx, post);
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
// phase implementations live in dedicated modules now
|
package/dist/service-queue.d.ts
CHANGED
|
@@ -35,7 +35,8 @@ export declare class MergeStewardQueueCommands {
|
|
|
35
35
|
tryAdmit(prNumber: number, branch: string, headSha: string): Promise<boolean>;
|
|
36
36
|
dequeueByPR(prNumber: number): void;
|
|
37
37
|
updateHeadByPR(prNumber: number, headSha: string): void;
|
|
38
|
-
acknowledgeExternalMerge(prNumber: number): void
|
|
38
|
+
acknowledgeExternalMerge(prNumber: number): Promise<void>;
|
|
39
|
+
private clearQueueStateLabels;
|
|
39
40
|
private invalidateDownstreamOf;
|
|
40
41
|
private findAffectedEntriesAfterPriorityChange;
|
|
41
42
|
private requeueAffectedEntries;
|
package/dist/service-queue.js
CHANGED
|
@@ -250,7 +250,7 @@ export class MergeStewardQueueCommands {
|
|
|
250
250
|
this.logger.info({ prNumber, entryId: entry.id, headSha }, "PR head updated via webhook");
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
|
-
acknowledgeExternalMerge(prNumber) {
|
|
253
|
+
async acknowledgeExternalMerge(prNumber) {
|
|
254
254
|
const entry = this.store.getEntryByPR(this.config.repoId, prNumber);
|
|
255
255
|
if (entry) {
|
|
256
256
|
this.store.transition(entry.id, "merged", {
|
|
@@ -260,9 +260,32 @@ export class MergeStewardQueueCommands {
|
|
|
260
260
|
postMergeCheckedAt: new Date().toISOString(),
|
|
261
261
|
});
|
|
262
262
|
this.invalidateDownstreamOf(entry);
|
|
263
|
+
await this.clearQueueStateLabels(prNumber);
|
|
263
264
|
this.logger.info({ prNumber, entryId: entry.id }, "External merge acknowledged");
|
|
264
265
|
}
|
|
265
266
|
}
|
|
267
|
+
async clearQueueStateLabels(prNumber) {
|
|
268
|
+
const managed = [this.config.queueTestingLabel, this.config.queueMergingLabel].filter(Boolean);
|
|
269
|
+
if (managed.length === 0)
|
|
270
|
+
return;
|
|
271
|
+
let current;
|
|
272
|
+
try {
|
|
273
|
+
current = await this.github.listLabels(prNumber);
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
this.logger.debug({ prNumber, err: error }, "Could not read queue state labels after external merge");
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
const remove = managed.filter((label) => current.includes(label));
|
|
280
|
+
if (remove.length === 0)
|
|
281
|
+
return;
|
|
282
|
+
try {
|
|
283
|
+
await this.github.setLabels(prNumber, { remove });
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
this.logger.warn({ prNumber, labels: remove, err: error }, "Could not clear queue state labels after external merge");
|
|
287
|
+
}
|
|
288
|
+
}
|
|
266
289
|
invalidateDownstreamOf(removedEntry) {
|
|
267
290
|
const allActive = this.store.listActive(this.config.repoId);
|
|
268
291
|
const targets = selectDownstream(allActive, removedEntry.id);
|
package/dist/service.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export declare class MergeStewardService {
|
|
|
39
39
|
dequeueByPR(prNumber: number): void;
|
|
40
40
|
updateHeadByPR(prNumber: number, headSha: string): void;
|
|
41
41
|
updatePriorityByPR(prNumber: number, priority: number): boolean;
|
|
42
|
-
acknowledgeExternalMerge(prNumber: number): void
|
|
42
|
+
acknowledgeExternalMerge(prNumber: number): Promise<void>;
|
|
43
43
|
getStatus(): QueueEntry[];
|
|
44
44
|
getIncident(incidentId: string): IncidentRecord | undefined;
|
|
45
45
|
listIncidents(entryId: string): IncidentRecord[];
|
package/dist/service.js
CHANGED
|
@@ -76,8 +76,8 @@ export class MergeStewardService {
|
|
|
76
76
|
updatePriorityByPR(prNumber, priority) {
|
|
77
77
|
return this.queueCommands.updatePriorityByPR(prNumber, priority);
|
|
78
78
|
}
|
|
79
|
-
acknowledgeExternalMerge(prNumber) {
|
|
80
|
-
this.queueCommands.acknowledgeExternalMerge(prNumber);
|
|
79
|
+
async acknowledgeExternalMerge(prNumber) {
|
|
80
|
+
await this.queueCommands.acknowledgeExternalMerge(prNumber);
|
|
81
81
|
}
|
|
82
82
|
getStatus() {
|
|
83
83
|
return this.watchQueries.getStatus();
|
package/dist/webhook-handler.js
CHANGED
|
@@ -128,7 +128,7 @@ export async function processWebhookEvent(event, service, config, logger) {
|
|
|
128
128
|
break;
|
|
129
129
|
}
|
|
130
130
|
case "pr_merged": {
|
|
131
|
-
service.acknowledgeExternalMerge(event.prNumber);
|
|
131
|
+
await service.acknowledgeExternalMerge(event.prNumber);
|
|
132
132
|
break;
|
|
133
133
|
}
|
|
134
134
|
case "pr_closed": {
|