diff --git a/server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/portal/SkillPublishController.java b/server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/portal/SkillPublishController.java index 3abdf5e8..a061afc1 100644 --- a/server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/portal/SkillPublishController.java +++ b/server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/portal/SkillPublishController.java @@ -59,12 +59,22 @@ public class SkillPublishController extends BaseApiController { SkillVisibility skillVisibility = SkillVisibility.valueOf(visibility.toUpperCase()); List entries; + List extractionWarnings; try { - entries = skillPackageArchiveExtractor.extract(file); + SkillPackageArchiveExtractor.ExtractionResult extractionResult = + skillPackageArchiveExtractor.extractWithWarnings(file); + entries = extractionResult.entries(); + extractionWarnings = extractionResult.warnings(); } catch (IllegalArgumentException e) { throw new DomainBadRequestException("error.skill.publish.package.invalid", e.getMessage()); } + if (!confirmWarnings && !extractionWarnings.isEmpty()) { + throw new DomainBadRequestException( + "error.skill.publish.precheck.confirmRequired", + String.join("\n", extractionWarnings)); + } + SkillPublishService.PublishResult publishResult = skillPublishService.publishFromEntries( namespace, entries,