Compare commits

..

12 Commits

Author SHA1 Message Date
aakash
cf67a848f4 Fix exclude pattern: use proper regex format for lychee 2025-11-13 12:10:28 -08:00
aakash
31ee48e3c8 Update exclude pattern and accept 503 status codes as fallback 2025-11-13 12:06:52 -08:00
aakash
3b23330bde Use pattern-based exclude for star-history API 2025-11-13 12:06:36 -08:00
aakash
1ad9f75e96 Fix lychee exclude argument: use --exclude instead of --exclude-url 2025-11-13 12:02:11 -08:00
aakash
15d15f8881 Exclude star-history API URL directly in lychee args 2025-11-13 11:42:19 -08:00
aakash
d70e8fe40c Revert --accept 503 flag, rely on .lycheeignore instead 2025-11-13 11:42:03 -08:00
aakash
e8c4ccde53 Configure lychee to accept 503 status codes for intermittently unavailable services 2025-11-13 11:28:01 -08:00
aakash
d27970538a Fix .lycheeignore: ensure exactly one trailing newline 2025-11-13 11:26:54 -08:00
aakash
dab299043d Fix .lycheeignore formatting and sync uv.lock from main 2025-11-13 11:26:47 -08:00
aakash
620da9dc27 Fix .lycheeignore formatting (add trailing newline) 2025-11-13 11:24:29 -08:00
aakash
27d5a49f94 Add .lycheeignore to exclude intermittently unavailable star-history API 2025-11-13 11:22:41 -08:00
aakash
043e32d959 Fix security vulnerability: Replace eval() with ast.literal_eval() in slack_mcp_reader.py
Fixes #163: Replace unsafe eval() calls with ast.literal_eval() to prevent code injection attacks. ast.literal_eval() safely evaluates only Python literals, preventing arbitrary code execution.
2025-11-13 11:18:07 -08:00
3 changed files with 10 additions and 5 deletions

View File

@@ -14,6 +14,6 @@ jobs:
- uses: actions/checkout@v4
- uses: lycheeverse/lychee-action@v2
with:
args: --no-progress --insecure --user-agent 'curl/7.68.0' README.md docs/ apps/ examples/ benchmarks/
args: --no-progress --insecure --user-agent 'curl/7.68.0' --exclude '.*api\.star-history\.com.*' --accept 200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308,503 README.md docs/ apps/ examples/ benchmarks/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

4
.lycheeignore Normal file
View File

@@ -0,0 +1,4 @@
# Exclude star-history API from link checking
# This service is intermittently unavailable (503 errors)
# but the link still works when the service is up
.*api\.star-history\.com.*

View File

@@ -7,6 +7,7 @@ for indexing in LEANN. It supports various Slack MCP server implementations and
flexible message processing options.
"""
import ast
import asyncio
import json
import logging
@@ -146,16 +147,16 @@ class SlackMCPReader:
match = re.search(r"'error':\s*(\{[^}]+\})", str(e))
if match:
try:
error_dict = eval(match.group(1))
except (ValueError, SyntaxError, NameError):
error_dict = ast.literal_eval(match.group(1))
except (ValueError, SyntaxError):
pass
else:
# Try alternative format
match = re.search(r"Failed to fetch messages:\s*(\{[^}]+\})", str(e))
if match:
try:
error_dict = eval(match.group(1))
except (ValueError, SyntaxError, NameError):
error_dict = ast.literal_eval(match.group(1))
except (ValueError, SyntaxError):
pass
if self._is_cache_sync_error(error_dict):