diff --git a/web/src/main/java/com/dite/znpt/web/build/DeployController.java b/web/src/main/java/com/dite/znpt/web/build/DeployController.java index 83de059..193e3bb 100644 --- a/web/src/main/java/com/dite/znpt/web/build/DeployController.java +++ b/web/src/main/java/com/dite/znpt/web/build/DeployController.java @@ -1,6 +1,8 @@ package com.dite.znpt.web.build; import cn.hutool.core.util.StrUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -12,6 +14,7 @@ import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Path; +@Api(tags = "webhook自动部署") @RestController public class DeployController { @@ -24,6 +27,7 @@ public class DeployController { private Process deploymentProcess; private final GiteeSignatureVerifier signatureVerifier = new GiteeSignatureVerifier(); + @ApiOperation(value = "自动部署", httpMethod = "POST") @PostMapping("/gitee-webhook") public ResponseEntity handleWebhook( @RequestHeader(value = "X-Gitee-Token", required = false) String receivedSignature, @@ -31,7 +35,7 @@ public class DeployController { @RequestBody String payload) { // 0. 基本验证 - if (StrUtil.isAllNotBlank(receivedSignature, timestamp)) { + if (!StrUtil.isAllNotBlank(receivedSignature, timestamp)) { return ResponseEntity.status(403).body("签名验证失败"); } @@ -47,6 +51,7 @@ public class DeployController { return ResponseEntity.ok("部署流程已启动"); } + @ApiOperation(value = "查询自动部署状态", httpMethod = "GET") @GetMapping("/deployment-status") public ResponseEntity getDeploymentStatus() { try { @@ -62,6 +67,7 @@ public class DeployController { } } + @ApiOperation(value = "查询自动部署日志", httpMethod = "GET") @GetMapping("/deployment-log") public ResponseEntity getDeploymentLog( @RequestParam(defaultValue = "20") int lines) { diff --git a/web/src/main/java/com/dite/znpt/web/build/GiteeSignatureVerifier.java b/web/src/main/java/com/dite/znpt/web/build/GiteeSignatureVerifier.java index 9501444..c828975 100644 --- a/web/src/main/java/com/dite/znpt/web/build/GiteeSignatureVerifier.java +++ b/web/src/main/java/com/dite/znpt/web/build/GiteeSignatureVerifier.java @@ -1,13 +1,13 @@ package com.dite.znpt.web.build; +import cn.hutool.core.codec.Base64Encoder; +import cn.hutool.core.net.URLEncodeUtil; import lombok.extern.slf4j.Slf4j; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; -import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.time.Instant; -import java.util.Base64; @Slf4j public class GiteeSignatureVerifier { @@ -59,10 +59,10 @@ public class GiteeSignatureVerifier { byte[] rawSignature = hmac.doFinal(data.getBytes(StandardCharsets.UTF_8)); // Step 2: Base64 encode - String base64Sig = Base64.getEncoder().encodeToString(rawSignature); + String base64Sig = Base64Encoder.encode(rawSignature); // Step 3: URL encode - return URLEncoder.encode(base64Sig, StandardCharsets.UTF_8.toString()); + return URLEncodeUtil.encode(base64Sig); } catch (Exception e) { throw new RuntimeException("签名计算失败", e); } diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml index 04c6399..3890aab 100644 --- a/web/src/main/resources/application-dev.yml +++ b/web/src/main/resources/application-dev.yml @@ -140,4 +140,4 @@ upload: # 部署配置 deploy: secret: cRc5888KAo4TxRS4y5iv35GM - app-dir: /home/dtyx/znpt-backend + build-dir: /home/dtyx/znpt-backend