From c0c8c585c1bd6adc8c8f8db68d3bdce45659ec60 Mon Sep 17 00:00:00 2001 From: Robin Shen Date: Mon, 29 Sep 2025 19:54:36 +0800 Subject: [PATCH] fix: Unable to publish helm package (OD-2570) --- .../data/migration/VersionedYamlDoc.java | 18 ++++++++++++++++++ .../snakeyaml/constructor/BaseConstructor.java | 14 -------------- .../server/plugin/pack/gem/GemPackService.java | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/server-core/src/main/java/io/onedev/server/data/migration/VersionedYamlDoc.java b/server-core/src/main/java/io/onedev/server/data/migration/VersionedYamlDoc.java index 0dffe1b409..eb6d19da75 100644 --- a/server-core/src/main/java/io/onedev/server/data/migration/VersionedYamlDoc.java +++ b/server-core/src/main/java/io/onedev/server/data/migration/VersionedYamlDoc.java @@ -136,6 +136,24 @@ public class VersionedYamlDoc extends MappingNode { return constructDocument(node); } + protected Object constructObject(Node node) { + if (node instanceof MappingNode) { + MappingNode mappingNode = (MappingNode) node; + for (var it = mappingNode.getValue().iterator(); it.hasNext();) { + var tuple = it.next(); + if (tuple.getKeyNode() instanceof ScalarNode) { + ScalarNode keyNode = (ScalarNode) tuple.getKeyNode(); + if ("type".equals(keyNode.getValue())) { + String implementationName = ((ScalarNode) tuple.getValueNode()).getValue(); + mappingNode.setTag(new Tag("!" + implementationName)); + it.remove(); + } + } + } + } + return super.constructObject(node); + } + @Override protected String constructScalar(ScalarNode node) { String value = super.constructScalar(node); diff --git a/server-core/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java b/server-core/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java index 21fb42819f..484255ef82 100644 --- a/server-core/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java +++ b/server-core/src/main/java/org/yaml/snakeyaml/constructor/BaseConstructor.java @@ -242,20 +242,6 @@ public abstract class BaseConstructor { * @return Java instance */ protected Object constructObject(Node node) { - if (node instanceof MappingNode) { - MappingNode mappingNode = (MappingNode) node; - for (var it = mappingNode.getValue().iterator(); it.hasNext();) { - var tuple = it.next(); - if (tuple.getKeyNode() instanceof ScalarNode) { - ScalarNode keyNode = (ScalarNode) tuple.getKeyNode(); - if ("type".equals(keyNode.getValue())) { - String implementationName = ((ScalarNode) tuple.getValueNode()).getValue(); - mappingNode.setTag(new Tag("!" + implementationName)); - it.remove(); - } - } - } - } if (constructedObjects.containsKey(node)) { return constructedObjects.get(node); } diff --git a/server-plugin/server-plugin-pack-gem/src/main/java/io/onedev/server/plugin/pack/gem/GemPackService.java b/server-plugin/server-plugin-pack-gem/src/main/java/io/onedev/server/plugin/pack/gem/GemPackService.java index 9ee0f76135..ace0d27754 100644 --- a/server-plugin/server-plugin-pack-gem/src/main/java/io/onedev/server/plugin/pack/gem/GemPackService.java +++ b/server-plugin/server-plugin-pack-gem/src/main/java/io/onedev/server/plugin/pack/gem/GemPackService.java @@ -113,7 +113,7 @@ public class GemPackService implements PackService { sessionManager.run(() -> { checkProject(projectId, true); }); - var tempFile = FileUtils.createTempFile("upload", "nuget"); + var tempFile = FileUtils.createTempFile("upload", "gem"); try { try (var os = new BufferedOutputStream(new FileOutputStream(tempFile), BUFFER_SIZE)) { IOUtils.copy(request.getInputStream(), os);