#feature: add project&cronjob management

This commit is contained in:
2026-01-16 12:14:43 +08:00
parent bbe68839e3
commit 381d5e6e49
19 changed files with 2157 additions and 84 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Services;
use App\Models\Project;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\File;
@@ -22,6 +23,24 @@ class CodeContextService
*/
public function getRepoPath(string $appName): ?string
{
// 优先从 Project 模型查找
$project = Project::findByAppName($appName);
if ($project) {
$env = $project->log_env ?? 'production';
try {
$envContent = $this->envService->getEnvContent($project->slug, $env);
$repoPath = $this->parseEnvValue($envContent, 'LOG_ANALYSIS_CODE_REPO_PATH');
if ($repoPath && is_dir($repoPath)) {
return $repoPath;
}
} catch (\Exception $e) {
// 忽略错误,继续尝试旧配置
}
}
// 回退到旧的配置方式(兼容迁移前的情况)
$appEnvMap = $this->configService->get('log_analysis.app_env_map', []);
if (!isset($appEnvMap[$appName])) {
@@ -29,15 +48,15 @@ class CodeContextService
}
$mapping = $appEnvMap[$appName];
$project = $mapping['project'] ?? null;
$projectSlug = $mapping['project'] ?? null;
$env = $mapping['env'] ?? null;
if (!$project || !$env) {
if (!$projectSlug || !$env) {
return null;
}
try {
$envContent = $this->envService->getEnvContent($project, $env);
$envContent = $this->envService->getEnvContent($projectSlug, $env);
$repoPath = $this->parseEnvValue($envContent, 'LOG_ANALYSIS_CODE_REPO_PATH');
if ($repoPath && is_dir($repoPath)) {