diff --git a/src/main/java/org/hibernate/infra/replicate/jira/service/jira/HandlerProjectContext.java b/src/main/java/org/hibernate/infra/replicate/jira/service/jira/HandlerProjectContext.java index 9fb346a..44fb9b0 100644 --- a/src/main/java/org/hibernate/infra/replicate/jira/service/jira/HandlerProjectContext.java +++ b/src/main/java/org/hibernate/infra/replicate/jira/service/jira/HandlerProjectContext.java @@ -260,7 +260,7 @@ public JiraVersion fixVersion(JiraVersion version, boolean force) { try { if (force) { return destFixVersions.compute(version.name, (name, current) -> upsert(project, projectGroupContext, - destinationJiraClient, version, List.of())); + destinationJiraClient, version, destinationJiraClient().versions(project.projectKey()))); } else { return destFixVersions.computeIfAbsent(version.name, name -> upsert(project, projectGroupContext, destinationJiraClient, version, List.of())); diff --git a/src/main/java/org/hibernate/infra/replicate/jira/service/jira/JiraService.java b/src/main/java/org/hibernate/infra/replicate/jira/service/jira/JiraService.java index bd586cf..a092601 100644 --- a/src/main/java/org/hibernate/infra/replicate/jira/service/jira/JiraService.java +++ b/src/main/java/org/hibernate/infra/replicate/jira/service/jira/JiraService.java @@ -268,6 +268,19 @@ public void registerManagementRoutes(@Observes ManagementInterface mi) { context.submitTask(context::refreshFixVersions); rc.end(); }); + mi.router().get("/sync/fix-versions/:project/:versionId").blockingHandler(rc -> { + String project = rc.pathParam("project"); + String versionId = rc.pathParam("versionId"); + + HandlerProjectContext context = contextPerProject.get(project); + + if (context == null) { + throw new IllegalArgumentException("Unknown project '%s'".formatted(project)); + } + + context.fixVersion(context.sourceJiraClient().version(Long.parseLong(versionId)), true); + rc.end(); + }); } /**