#feature: add Jenkins deploy monitor & log clean task

This commit is contained in:
2026-01-19 11:46:38 +08:00
parent 381d5e6e49
commit da3b05b7c0
22 changed files with 968 additions and 80 deletions

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\JenkinsDeployment;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class JenkinsDeploymentController extends Controller
{
public function index(Request $request): JsonResponse
{
$query = JenkinsDeployment::with('project:id,slug,name')
->orderByDesc('created_at');
if ($request->filled('project_id')) {
$query->where('project_id', $request->input('project_id'));
}
if ($request->filled('job_name')) {
$query->where('job_name', $request->input('job_name'));
}
if ($request->filled('status')) {
$query->where('status', $request->input('status'));
}
$perPage = min((int) $request->input('per_page', 20), 100);
$deployments = $query->paginate($perPage);
return response()->json($deployments);
}
public function show(int $id): JsonResponse
{
$deployment = JenkinsDeployment::with('project:id,slug,name')->findOrFail($id);
return response()->json($deployment);
}
}

View File

@@ -82,6 +82,8 @@ class ProjectController extends Controller
'log_app_names' => ['nullable', 'array'],
'log_app_names.*' => ['string', 'max:100'],
'log_env' => ['nullable', 'string', 'max:50'],
'jenkins_job_name' => ['nullable', 'string', 'max:255'],
'jenkins_notify_enabled' => ['nullable', 'boolean'],
]);
$project = $this->projectService->create($data);
@@ -126,6 +128,8 @@ class ProjectController extends Controller
'log_app_names' => ['nullable', 'array'],
'log_app_names.*' => ['string', 'max:100'],
'log_env' => ['nullable', 'string', 'max:50'],
'jenkins_job_name' => ['nullable', 'string', 'max:255'],
'jenkins_notify_enabled' => ['nullable', 'boolean'],
]);
$project = $this->projectService->update($project, $data);