Skip to content

Commit 4001130

Browse files
Merge pull request #11 from kevinbackhouse/use-path-utils
Use seclab_taskflow_agent.path_utils
2 parents cd74dd6 + c45e064 commit 4001130

File tree

9 files changed

+79
-74
lines changed

9 files changed

+79
-74
lines changed

src/seclab_taskflows/mcp_servers/codeql_python/mcp_server.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,7 @@
33

44

55
import logging
6-
logging.basicConfig(
7-
level=logging.DEBUG,
8-
format='%(asctime)s - %(levelname)s - %(message)s',
9-
filename='logs/mcp_codeql_python.log',
10-
filemode='a'
11-
)
126
from seclab_taskflow_agent.mcp_servers.codeql.client import run_query, _debug_log
13-
# from seclab_taskflow_agent.path_utils import mcp_data_dir
147

158
from pydantic import Field
169
#from mcp.server.fastmcp import FastMCP, Context
@@ -23,14 +16,20 @@
2316
from sqlalchemy.orm import Session
2417
import subprocess
2518
import importlib.resources
19+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2620

2721
from .codeql_sqlite_models import Base, Source
2822
from ..utils import process_repo
2923

30-
MEMORY = Path(os.getenv('DATA_DIR', default='/app/data'))
31-
CODEQL_DBS_BASE_PATH = Path(os.getenv('CODEQL_DBS_BASE_PATH', default='/app/data'))
32-
# MEMORY = mcp_data_dir('seclab-taskflows', 'codeql', 'DATA_DIR')
33-
# CODEQL_DBS_BASE_PATH = mcp_data_dir('seclab-taskflows', 'codeql', 'CODEQL_DBS_BASE_PATH')
24+
logging.basicConfig(
25+
level=logging.DEBUG,
26+
format='%(asctime)s - %(levelname)s - %(message)s',
27+
filename=log_file_name('mcp_codeql_python.log'),
28+
filemode='a'
29+
)
30+
31+
MEMORY = mcp_data_dir('seclab-taskflows', 'codeql', 'DATA_DIR')
32+
CODEQL_DBS_BASE_PATH = mcp_data_dir('seclab-taskflows', 'codeql', 'CODEQL_DBS_BASE_PATH')
3433

3534
mcp = FastMCP("CodeQL-Python")
3635

src/seclab_taskflows/mcp_servers/gh_actions.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_gh_actions.log',
9-
filemode='a'
10-
)
11-
125
from fastmcp import FastMCP
136
from pydantic import Field
147
import httpx
@@ -19,7 +12,14 @@
1912
from sqlalchemy import create_engine
2013
from sqlalchemy.orm import Session
2114
from pathlib import Path
15+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2216

17+
logging.basicConfig(
18+
level=logging.DEBUG,
19+
format='%(asctime)s - %(levelname)s - %(message)s',
20+
filename=log_file_name('mcp_gh_actions.log'),
21+
filemode='a'
22+
)
2323

2424
class Base(DeclarativeBase):
2525
pass
@@ -49,7 +49,7 @@ def __repr__(self):
4949
if not GITHUB_PERSONAL_ACCESS_TOKEN:
5050
GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv('COPILOT_TOKEN')
5151

52-
ACTIONS_DB_DIR = Path(os.getenv('ACTIONS_DB_DIR', default='/app/my_data'))
52+
ACTIONS_DB_DIR = mcp_data_dir('seclab-taskflows', 'gh_actions', 'ACTIONS_DB_DIR')
5353

5454
engine = create_engine(f'sqlite:///{os.path.abspath(ACTIONS_DB_DIR)}/actions.db', echo=False)
5555
Base.metadata.create_all(engine, tables = [WorkflowUses.__table__])

src/seclab_taskflows/mcp_servers/gh_code_scanning.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_gh_code_scanning.log',
9-
filemode='a'
10-
)
115
from fastmcp import FastMCP
126
from pydantic import Field
137
import httpx
@@ -20,18 +14,25 @@
2014
import zipfile
2115
from sqlalchemy import create_engine
2216
from sqlalchemy.orm import Session
17+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2318

2419
from .alert_results_models import AlertResults, AlertFlowGraph, Base
2520

21+
logging.basicConfig(
22+
level=logging.DEBUG,
23+
format='%(asctime)s - %(levelname)s - %(message)s',
24+
filename=log_file_name('mcp_gh_code_scanning.log'),
25+
filemode='a'
26+
)
27+
2628
mcp = FastMCP("GitHubCodeScanning")
2729

2830
GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv('GITHUB_PERSONAL_ACCESS_TOKEN', default='')
2931
if not GITHUB_PERSONAL_ACCESS_TOKEN:
3032
GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv('COPILOT_TOKEN')
3133

32-
CODEQL_DBS_BASE_PATH = Path(os.getenv('CODEQL_DBS_BASE_PATH', default='/app/my_data'))
33-
34-
ALERT_RESULTS_DIR = Path(os.getenv('ALERT_RESULTS_DIR', default='/app/my_data'))
34+
CODEQL_DBS_BASE_PATH = mcp_data_dir('seclab-taskflows', 'codeql', 'CODEQL_DBS_BASE_PATH')
35+
ALERT_RESULTS_DIR = mcp_data_dir('seclab-taskflows', 'gh_code_scanning', 'ALERT_RESULTS_DIR')
3536

3637
def parse_alert(alert: dict) -> dict:
3738
"""Parse the alert dictionary to extract relevant information."""

src/seclab_taskflows/mcp_servers/gh_file_viewer.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_gh_file_viewer.log',
9-
filemode='a'
10-
)
11-
125
from fastmcp import FastMCP
136
from pydantic import Field
147
import httpx
@@ -22,6 +15,14 @@
2215
import aiofiles
2316
import zipfile
2417
import tempfile
18+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
19+
20+
logging.basicConfig(
21+
level=logging.DEBUG,
22+
format='%(asctime)s - %(levelname)s - %(message)s',
23+
filename=log_file_name('mcp_gh_file_viewer.log'),
24+
filemode='a'
25+
)
2526

2627
class Base(DeclarativeBase):
2728
pass
@@ -46,7 +47,7 @@ def __repr__(self):
4647
if not GITHUB_PERSONAL_ACCESS_TOKEN:
4748
GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv('COPILOT_TOKEN')
4849

49-
SEARCH_RESULT_DIR = Path(os.getenv('SEARCH_RESULTS_DIR', default='/app/my_data'))
50+
SEARCH_RESULT_DIR = mcp_data_dir('seclab-taskflows', 'gh_file_viewer', 'SEARCH_RESULTS_DIR')
5051

5152
engine = create_engine(f'sqlite:///{os.path.abspath(SEARCH_RESULT_DIR)}/search_result.db', echo=False)
5253
Base.metadata.create_all(engine, tables = [SearchResults.__table__])

src/seclab_taskflows/mcp_servers/ghsa.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import logging
2-
logging.basicConfig(
3-
level=logging.DEBUG,
4-
format='%(asctime)s - %(levelname)s - %(message)s',
5-
filename='logs/mcp_ghsa.log',
6-
filemode='a'
7-
)
82

93
from fastmcp import FastMCP
104
from pydantic import Field
115
import re
126
import json
137
from urllib.parse import urlparse, parse_qs
148
from .gh_code_scanning import call_api
9+
from seclab_taskflow_agent.path_utils import log_file_name
10+
11+
logging.basicConfig(
12+
level=logging.DEBUG,
13+
format='%(asctime)s - %(levelname)s - %(message)s',
14+
filename=log_file_name('mcp_ghsa.log'),
15+
filemode='a'
16+
)
1517

1618
mcp = FastMCP("GitHubRepoAdvisories")
1719

src/seclab_taskflows/mcp_servers/local_file_viewer.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_local_file_viewer.log',
9-
filemode='a'
10-
)
11-
125
from fastmcp import FastMCP
136
from pydantic import Field
147
import httpx
@@ -18,11 +11,18 @@
1811
import aiofiles
1912
import zipfile
2013
import tempfile
14+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2115

16+
logging.basicConfig(
17+
level=logging.DEBUG,
18+
format='%(asctime)s - %(levelname)s - %(message)s',
19+
filename=log_file_name('mcp_local_file_viewer.log'),
20+
filemode='a'
21+
)
2222

2323
mcp = FastMCP("LocalFileViewer")
2424

25-
LOCAL_GH_DIR = Path(os.getenv('LOCAL_GH_DIR', default='/app/my_data'))
25+
LOCAL_GH_DIR = mcp_data_dir('seclab-taskflows', 'local_file_viewer', 'LOCAL_GH_DIR')
2626

2727
def is_subdirectory(directory, potential_subdirectory):
2828
directory_path = Path(directory)

src/seclab_taskflows/mcp_servers/local_gh_resources.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_local_gh_resources.log',
9-
filemode='a'
10-
)
11-
125
from fastmcp import FastMCP
136
from pydantic import Field
147
import httpx
@@ -18,15 +11,22 @@
1811
import aiofiles
1912
import zipfile
2013
import tempfile
14+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2115

16+
logging.basicConfig(
17+
level=logging.DEBUG,
18+
format='%(asctime)s - %(levelname)s - %(message)s',
19+
filename=log_file_name('mcp_local_gh_resources.log'),
20+
filemode='a'
21+
)
2222

2323
mcp = FastMCP("LocalGHResources")
2424

2525
GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv('GITHUB_PERSONAL_ACCESS_TOKEN')
2626
if not GITHUB_PERSONAL_ACCESS_TOKEN:
2727
GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv('COPILOT_TOKEN')
2828

29-
LOCAL_GH_DIR = Path(os.getenv('LOCAL_GH_DIR', default='/app/my_data'))
29+
LOCAL_GH_DIR = mcp_data_dir('seclab-taskflows', 'local_gh_resources', 'LOCAL_GH_DIR')
3030

3131
def is_subdirectory(directory, potential_subdirectory):
3232
directory_path = Path(directory)

src/seclab_taskflows/mcp_servers/repo_context.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_repo_context.log',
9-
filemode='a'
10-
)
11-
125
from fastmcp import FastMCP
136
from pydantic import Field
147
import httpx
@@ -19,11 +12,19 @@
1912
from sqlalchemy import create_engine
2013
from sqlalchemy.orm import Session
2114
from pathlib import Path
15+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2216

2317
from .repo_context_models import Application, EntryPoint, UserAction, WebEntryPoint, ApplicationIssue, AuditResult, Base
2418
from .utils import process_repo
2519

26-
MEMORY = Path(os.getenv('REPO_CONTEXT_DIR', default='/app/my_data'))
20+
logging.basicConfig(
21+
level=logging.DEBUG,
22+
format='%(asctime)s - %(levelname)s - %(message)s',
23+
filename=log_file_name('mcp_repo_context.log'),
24+
filemode='a'
25+
)
26+
27+
MEMORY = mcp_data_dir('seclab-taskflows', 'repo_context', 'REPO_CONTEXT_DIR')
2728

2829
def app_to_dict(result):
2930
return {

src/seclab_taskflows/mcp_servers/report_alert_state.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
# SPDX-License-Identifier: MIT
33

44
import logging
5-
logging.basicConfig(
6-
level=logging.DEBUG,
7-
format='%(asctime)s - %(levelname)s - %(message)s',
8-
filename='logs/mcp_report_alert_state.log',
9-
filemode='a'
10-
)
11-
125
from fastmcp import FastMCP
136
import json
147
from pathlib import Path
@@ -17,9 +10,17 @@
1710
from sqlalchemy import create_engine
1811
from sqlalchemy.orm import Session
1912
from pydantic import Field
13+
from seclab_taskflow_agent.path_utils import mcp_data_dir, log_file_name
2014

2115
from .alert_results_models import AlertResults, AlertFlowGraph, Base
2216

17+
logging.basicConfig(
18+
level=logging.DEBUG,
19+
format='%(asctime)s - %(levelname)s - %(message)s',
20+
filename=log_file_name('mcp_report_alert_state.log'),
21+
filemode='a'
22+
)
23+
2324
def result_to_dict(result):
2425
return {
2526
"canonical_id": result.canonical_id,
@@ -57,7 +58,7 @@ def remove_line_numbers(location: str) -> str:
5758
return ':'.join(parts[:-4])
5859

5960

60-
MEMORY = Path(os.getenv('ALERT_RESULTS_DIR', default='/app/my_data'))
61+
MEMORY = mcp_data_dir('seclab-taskflows', 'report_alert_state', 'ALERT_RESULTS_DIR')
6162

6263
class ReportAlertStateBackend:
6364
def __init__(self, memcache_state_dir: str):

0 commit comments

Comments
 (0)