Skip to content

Commit 84eaa4a

Browse files
committed
Remove label from merged PRs after backport
1 parent 91a998f commit 84eaa4a

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

action-runner/dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

action-runner/src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export async function onMessage(ws: WebSocket, msg: any) {
103103
} else if (json.type == 'save-cache') {
104104
const ch = await cache.saveCache(json.paths, json.key).catch(_ => undefined)
105105
if (ch == undefined) {
106-
console.log(`Cache could not be saved`)
106+
console.error(`Cache could not be saved`)
107107
ws.send(JSON.stringify({id: -1}))
108108
} else {
109109
console.log(`Saved cache from ` + json.paths + ` as ` + json.key)

src/main/java/net/neoforged/automation/webhook/label/BackportHandler.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
import java.util.Set;
1515

1616
public record BackportHandler(String version) implements LabelHandler {
17-
private static final Set<Integer> RUNNING_PRS = Collections.synchronizedSet(new HashSet<>());
17+
private record PRRun(int number, String backportBranch) {}
18+
private static final Set<PRRun> RUNNING_PRS = Collections.synchronizedSet(new HashSet<>());
1819

1920
@Override
2021
public void onLabelAdded(GitHub gitHub, GHUser actor, GHIssue issue, GHLabel label) throws Exception {
@@ -23,7 +24,7 @@ public void onLabelAdded(GitHub gitHub, GHUser actor, GHIssue issue, GHLabel lab
2324
if (version().equals(pr.getBase().getRef())) {
2425
pr.removeLabel(label.getName());
2526
} else {
26-
RUNNING_PRS.add(pr.getNumber());
27+
RUNNING_PRS.add(new PRRun(pr.getNumber(), version()));
2728
run(gitHub, pr, actor, label);
2829
}
2930
} else {
@@ -34,7 +35,7 @@ public void onLabelAdded(GitHub gitHub, GHUser actor, GHIssue issue, GHLabel lab
3435
@Override
3536
public void onSynchronized(GitHub gitHub, GHUser actor, GHPullRequest pullRequest, GHLabel label) throws Exception {
3637
Main.scheduleUntil(() -> {
37-
if (RUNNING_PRS.add(pullRequest.getNumber())) {
38+
if (RUNNING_PRS.add(new PRRun(pullRequest.getNumber(), version()))) {
3839
run(gitHub, pullRequest, actor, label);
3940
return true;
4041
}
@@ -48,7 +49,7 @@ private void run(GitHub gitHub, GHPullRequest pr, GHUser source, GHLabel label)
4849
gitHub, pr,
4950
Configuration.get(), version,
5051
(runner, err) -> {
51-
RUNNING_PRS.remove(pr.getNumber());
52+
RUNNING_PRS.remove(new PRRun(pr.getNumber(), version()));
5253

5354
try {
5455
var message = new StringBuilder();
@@ -65,11 +66,16 @@ private void run(GitHub gitHub, GHPullRequest pr, GHUser source, GHLabel label)
6566
}
6667
},
6768
createdPr -> {
68-
RUNNING_PRS.remove(pr.getNumber());
69+
RUNNING_PRS.remove(new PRRun(pr.getNumber(), version()));
6970

7071
if (createdPr != null) {
7172
pr.comment("Created backport PR: #" + createdPr.getNumber());
7273
}
74+
75+
// If the PR is merged then it's not going to have further updates so we can remove the label
76+
if (pr.isMerged()) {
77+
pr.removeLabel(label.getName());
78+
}
7379
},
7480
Set.of(label.getName())
7581
);

0 commit comments

Comments
 (0)