From 1abc31e4315d8c262cf68b9a7aef8a65c3fdba3a Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Mon, 25 Aug 2025 10:52:37 +0800 Subject: [PATCH 1/8] fix: import IOException --- .../cloud/ai/document/TextDocumentParser.java | 28 ++++++++------ .../ai/document/TextDocumentParserTests.java | 38 +++++++++---------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java index 7a0759a9d6..d8e12ece00 100644 --- a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java +++ b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java @@ -18,6 +18,7 @@ import org.springframework.ai.document.Document; import org.springframework.util.Assert; +import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -42,17 +43,20 @@ public TextDocumentParser(Charset charset) { } @Override - public List parse(InputStream inputStream) { - try { - String text = new String(inputStream.readAllBytes(), charset); - if (text.isBlank()) { - throw new Exception(); - } - return Collections.singletonList(new Document(text)); - } - catch (Exception e) { - throw new RuntimeException(e); - } - } + public List parse(InputStream inputStream) { + try { + // 读取入口流所有文本,且使用指定的字符集解码 + String text = new String(inputStream.readAllBytes(), this.charset); + // 如果文本全部为空白,则报告非法参数异常 + if (text.isBlank()) { + throw new IllegalArgumentException("text must not be blank"); + } + return Collections.singletonList(new Document(text)); + } + catch (IOException e) { + // 将任何 IO 异常转换为 RuntimeException 以便传播 + throw new RuntimeException(e); + } + } } diff --git a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java index 37f3ccbb7f..b1e022407c 100644 --- a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java +++ b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java @@ -60,27 +60,23 @@ void testParseWithCustomCharset() { assertThat(documents.get(0).getText()).isEqualTo(text); } - @Test - void testParseEmptyText() { - // Test parsing empty text should throw exception - String text = ""; - TextDocumentParser parser = new TextDocumentParser(); - - RuntimeException exception = assertThrows(RuntimeException.class, () -> parser.parse(toInputStream(text))); - - assertThat(exception).hasRootCauseInstanceOf(Exception.class); - } - - @Test - void testParseBlankText() { - // Test parsing blank text (only whitespace) should throw exception - String text = " \n\t "; - TextDocumentParser parser = new TextDocumentParser(); - - RuntimeException exception = assertThrows(RuntimeException.class, () -> parser.parse(toInputStream(text))); - - assertThat(exception).hasRootCauseInstanceOf(Exception.class); - } + @Test + void testParseEmptyText() { + // 空字符串应当触发 IllegalArgumentException + String text = ""; + TextDocumentParser parser = new TextDocumentParser(); + + assertThrows(IllegalArgumentException.class, () -> parser.parse(toInputStream(text))); + } + + @Test + void testParseBlankText() { + // 含有空格或插入字符的空白字符串同样应抛出 IllegalArgumentException + String text = " \n\t "; + TextDocumentParser parser = new TextDocumentParser(); + + assertThrows(IllegalArgumentException.class, () -> parser.parse(toInputStream(text))); + } @Test void testConstructorWithNullCharset() { From 2a425ad2ce6021f9191a04680987974287279153 Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Mon, 25 Aug 2025 10:14:51 +0000 Subject: [PATCH 2/8] style: apply Spring JavaFormat (core) & validate studio-server on JDK17 --- .../cloud/ai/document/TextDocumentParser.java | 30 ++++++++-------- .../ai/document/TextDocumentParserTests.java | 34 +++++++++---------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java index d8e12ece00..ddfe67e6b2 100644 --- a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java +++ b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java @@ -43,20 +43,20 @@ public TextDocumentParser(Charset charset) { } @Override - public List parse(InputStream inputStream) { - try { - // 读取入口流所有文本,且使用指定的字符集解码 - String text = new String(inputStream.readAllBytes(), this.charset); - // 如果文本全部为空白,则报告非法参数异常 - if (text.isBlank()) { - throw new IllegalArgumentException("text must not be blank"); - } - return Collections.singletonList(new Document(text)); - } - catch (IOException e) { - // 将任何 IO 异常转换为 RuntimeException 以便传播 - throw new RuntimeException(e); - } - } + public List parse(InputStream inputStream) { + try { + // 读取入口流所有文本,且使用指定的字符集解码 + String text = new String(inputStream.readAllBytes(), this.charset); + // 如果文本全部为空白,则报告非法参数异常 + if (text.isBlank()) { + throw new IllegalArgumentException("text must not be blank"); + } + return Collections.singletonList(new Document(text)); + } + catch (IOException e) { + // 将任何 IO 异常转换为 RuntimeException 以便传播 + throw new RuntimeException(e); + } + } } diff --git a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java index b1e022407c..bb4612a9e2 100644 --- a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java +++ b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java @@ -60,23 +60,23 @@ void testParseWithCustomCharset() { assertThat(documents.get(0).getText()).isEqualTo(text); } - @Test - void testParseEmptyText() { - // 空字符串应当触发 IllegalArgumentException - String text = ""; - TextDocumentParser parser = new TextDocumentParser(); - - assertThrows(IllegalArgumentException.class, () -> parser.parse(toInputStream(text))); - } - - @Test - void testParseBlankText() { - // 含有空格或插入字符的空白字符串同样应抛出 IllegalArgumentException - String text = " \n\t "; - TextDocumentParser parser = new TextDocumentParser(); - - assertThrows(IllegalArgumentException.class, () -> parser.parse(toInputStream(text))); - } + @Test + void testParseEmptyText() { + // 空字符串应当触发 IllegalArgumentException + String text = ""; + TextDocumentParser parser = new TextDocumentParser(); + + assertThrows(IllegalArgumentException.class, () -> parser.parse(toInputStream(text))); + } + + @Test + void testParseBlankText() { + // 含有空格或插入字符的空白字符串同样应抛出 IllegalArgumentException + String text = " \n\t "; + TextDocumentParser parser = new TextDocumentParser(); + + assertThrows(IllegalArgumentException.class, () -> parser.parse(toInputStream(text))); + } @Test void testConstructorWithNullCharset() { From e9a3ca37e3d5ce473b8d67fbb129db5687cdebc5 Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Sat, 30 Aug 2025 18:33:23 +0800 Subject: [PATCH 3/8] Update comments to English in TextDocumentParser --- .../com/alibaba/cloud/ai/document/TextDocumentParser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java index ddfe67e6b2..f6f1576ab0 100644 --- a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java +++ b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java @@ -45,16 +45,16 @@ public TextDocumentParser(Charset charset) { @Override public List parse(InputStream inputStream) { try { - // 读取入口流所有文本,且使用指定的字符集解码 + // Read all text from the input stream and decode it using the specified character set. String text = new String(inputStream.readAllBytes(), this.charset); - // 如果文本全部为空白,则报告非法参数异常 + // If the text is completely empty, report an illegal argument exception. if (text.isBlank()) { throw new IllegalArgumentException("text must not be blank"); } return Collections.singletonList(new Document(text)); } catch (IOException e) { - // 将任何 IO 异常转换为 RuntimeException 以便传播 + // Convert any IO exception into a RuntimeException for propagation. throw new RuntimeException(e); } } From 76fc264e06de901ec7a1e64694a085d318d97fe4 Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Sat, 30 Aug 2025 18:34:18 +0800 Subject: [PATCH 4/8] Update comments to English in test cases --- .../alibaba/cloud/ai/document/TextDocumentParserTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java index bb4612a9e2..716944d983 100644 --- a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java +++ b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java @@ -62,7 +62,7 @@ void testParseWithCustomCharset() { @Test void testParseEmptyText() { - // 空字符串应当触发 IllegalArgumentException + // An empty string should trigger an IllegalArgumentException. String text = ""; TextDocumentParser parser = new TextDocumentParser(); @@ -71,7 +71,7 @@ void testParseEmptyText() { @Test void testParseBlankText() { - // 含有空格或插入字符的空白字符串同样应抛出 IllegalArgumentException + // A blank string containing spaces or inserted characters should also throw an IllegalArgumentException. String text = " \n\t "; TextDocumentParser parser = new TextDocumentParser(); From fe0f414de60d2875b9e22c75ee84d794fa0cdf2a Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Sat, 30 Aug 2025 11:42:29 +0000 Subject: [PATCH 5/8] style(core): apply spring-javaformat to TextDocumentParser(+tests) --- .../com/alibaba/cloud/ai/document/TextDocumentParser.java | 5 +++-- .../alibaba/cloud/ai/document/TextDocumentParserTests.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java index f6f1576ab0..b9ee47ed45 100644 --- a/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java +++ b/spring-ai-alibaba-core/src/main/java/com/alibaba/cloud/ai/document/TextDocumentParser.java @@ -45,9 +45,10 @@ public TextDocumentParser(Charset charset) { @Override public List parse(InputStream inputStream) { try { - // Read all text from the input stream and decode it using the specified character set. + // Read all text from the input stream and decode it using the specified + // character set. String text = new String(inputStream.readAllBytes(), this.charset); - // If the text is completely empty, report an illegal argument exception. + // If the text is completely empty, report an illegal argument exception. if (text.isBlank()) { throw new IllegalArgumentException("text must not be blank"); } diff --git a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java index 716944d983..6fbd0f6172 100644 --- a/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java +++ b/spring-ai-alibaba-core/src/test/java/com/alibaba/cloud/ai/document/TextDocumentParserTests.java @@ -71,7 +71,8 @@ void testParseEmptyText() { @Test void testParseBlankText() { - // A blank string containing spaces or inserted characters should also throw an IllegalArgumentException. + // A blank string containing spaces or inserted characters should also throw an + // IllegalArgumentException. String text = " \n\t "; TextDocumentParser parser = new TextDocumentParser(); From 6ec4bfba0eb542a27fc536687b79e1ac21efbb4b Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Fri, 12 Sep 2025 00:32:01 +0800 Subject: [PATCH 6/8] refactor: improve date parsing error handling --- .../studio/core/utils/common/DateUtils.java | 27 ++++++++++--------- .../core/utils/common/DateUtilsTests.java | 27 +++++++++++++++++++ 2 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java diff --git a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java index dff9c22c95..4b4ef48a9b 100644 --- a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java +++ b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java @@ -25,6 +25,9 @@ import java.util.Date; import java.util.Locale; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Utility class for date and time operations. * @@ -32,6 +35,8 @@ */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { + private static final Logger logger = LoggerFactory.getLogger(DateUtils.class); + // Date format patterns public static final String DATE_JFP_STR = "yyyyMM"; @@ -206,18 +211,16 @@ public static Date parseDate(Object str) { /** * Parse date string in EEE MMM dd HH:mm:ss zzz yyyy format */ - public static Date parseDateString(String time) { - SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); - Date d = new Date(); - try { - d = sdf.parse(time); - } - catch (ParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return d; - } + public static Date parseDateString(String time) { + SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); + try { + return sdf.parse(time); + } + catch (ParseException e) { + logger.warn("Failed to parse date string: {}", time, e); + return null; + } + } /** * Calculate days between now and given date diff --git a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java new file mode 100644 index 0000000000..a371d65e63 --- /dev/null +++ b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java @@ -0,0 +1,27 @@ +package com.alibaba.cloud.ai.studio.core.utils.common; + +import org.junit.jupiter.api.Test; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link DateUtils}. + */ +class DateUtilsTests { + + @Test + void parseDateStringReturnsDateWhenFormatMatches() throws Exception { + String time = "Wed Sep 11 12:00:00 GMT 2024"; + Date expected = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(time); + assertThat(DateUtils.parseDateString(time)).isEqualTo(expected); + } + + @Test + void parseDateStringReturnsNullOnParseFailure() { + assertThat(DateUtils.parseDateString("invalid-date")).isNull(); + } +} From be50dc14a299d900159c80cf5d85965c57797d61 Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Sat, 13 Sep 2025 15:22:39 +0000 Subject: [PATCH 7/8] test(studio): add Apache-2.0 license header & apply spring-javaformat --- .../studio/core/utils/common/DateUtils.java | 22 +++++------ .../core/utils/common/DateUtilsTests.java | 39 +++++++++++++------ tools/bin/gitleaks | 1 + 3 files changed, 40 insertions(+), 22 deletions(-) create mode 160000 tools/bin/gitleaks diff --git a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java index 4b4ef48a9b..cd2943e39d 100644 --- a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java +++ b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/main/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtils.java @@ -35,7 +35,7 @@ */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { - private static final Logger logger = LoggerFactory.getLogger(DateUtils.class); + private static final Logger logger = LoggerFactory.getLogger(DateUtils.class); // Date format patterns public static final String DATE_JFP_STR = "yyyyMM"; @@ -211,16 +211,16 @@ public static Date parseDate(Object str) { /** * Parse date string in EEE MMM dd HH:mm:ss zzz yyyy format */ - public static Date parseDateString(String time) { - SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); - try { - return sdf.parse(time); - } - catch (ParseException e) { - logger.warn("Failed to parse date string: {}", time, e); - return null; - } - } + public static Date parseDateString(String time) { + SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); + try { + return sdf.parse(time); + } + catch (ParseException e) { + logger.warn("Failed to parse date string: {}", time, e); + return null; + } + } /** * Calculate days between now and given date diff --git a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java index a371d65e63..163ee81c5a 100644 --- a/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java +++ b/spring-ai-alibaba-studio/spring-ai-alibaba-studio-server/spring-ai-alibaba-studio-server-core/src/test/java/com/alibaba/cloud/ai/studio/core/utils/common/DateUtilsTests.java @@ -1,3 +1,19 @@ +/* + * Copyright 2025 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.alibaba.cloud.ai.studio.core.utils.common; import org.junit.jupiter.api.Test; @@ -13,15 +29,16 @@ */ class DateUtilsTests { - @Test - void parseDateStringReturnsDateWhenFormatMatches() throws Exception { - String time = "Wed Sep 11 12:00:00 GMT 2024"; - Date expected = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(time); - assertThat(DateUtils.parseDateString(time)).isEqualTo(expected); - } - - @Test - void parseDateStringReturnsNullOnParseFailure() { - assertThat(DateUtils.parseDateString("invalid-date")).isNull(); - } + @Test + void parseDateStringReturnsDateWhenFormatMatches() throws Exception { + String time = "Wed Sep 11 12:00:00 GMT 2024"; + Date expected = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(time); + assertThat(DateUtils.parseDateString(time)).isEqualTo(expected); + } + + @Test + void parseDateStringReturnsNullOnParseFailure() { + assertThat(DateUtils.parseDateString("invalid-date")).isNull(); + } + } diff --git a/tools/bin/gitleaks b/tools/bin/gitleaks new file mode 160000 index 0000000000..a82bc53d89 --- /dev/null +++ b/tools/bin/gitleaks @@ -0,0 +1 @@ +Subproject commit a82bc53d895f457897448637779383f607582c7c From f81711edd427b1b4b11d885ccd3b74dff55f408d Mon Sep 17 00:00:00 2001 From: Wanderlnk <125452745+6mmLIU@users.noreply.github.com> Date: Mon, 15 Sep 2025 04:00:55 +0000 Subject: [PATCH 8/8] Remove gitleaks binary and ignore it --- tools/bin/gitleaks | 1 - 1 file changed, 1 deletion(-) delete mode 160000 tools/bin/gitleaks diff --git a/tools/bin/gitleaks b/tools/bin/gitleaks deleted file mode 160000 index a82bc53d89..0000000000 --- a/tools/bin/gitleaks +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a82bc53d895f457897448637779383f607582c7c