From a43037d2f97abab060cae5b1716275de21c044d9 Mon Sep 17 00:00:00 2001 From: Corentin Huet Date: Mon, 30 Mar 2026 11:58:06 +0200 Subject: [PATCH] fix: :bug: handle 404 when gitlab project is not found --- app/Console/Commands/UpdateGitlabDatas.php | 47 +++++++++++++++++----- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/app/Console/Commands/UpdateGitlabDatas.php b/app/Console/Commands/UpdateGitlabDatas.php index 27da89a..5ee6e22 100644 --- a/app/Console/Commands/UpdateGitlabDatas.php +++ b/app/Console/Commands/UpdateGitlabDatas.php @@ -2,16 +2,17 @@ namespace App\Console\Commands; -use Carbon\Carbon; -use App\Models\Ticket; +use App\Enums\Tickets\TicketStatusEnum; use App\Models\GitlabIssues; use App\Models\GitlabLabels; -use App\Models\GitlabProjects; -use Illuminate\Console\Command; use App\Models\GitlabMilestones; -use Illuminate\Support\Facades\Cache; -use App\Enums\Tickets\TicketStatusEnum; +use App\Models\GitlabProjects; +use App\Models\Ticket; +use Carbon\Carbon; use GrahamCampbell\GitLab\Facades\GitLab; +use Illuminate\Console\Command; +use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Log; class UpdateGitlabDatas extends Command { @@ -226,10 +227,36 @@ class UpdateGitlabDatas extends Command $page = 1; do { - $milestones = GitLab::milestones()->all($projectId, [ - 'per_page' => 100, - 'page' => $page - ]); + $milestones = []; + + try { + $milestones = GitLab::milestones()->all($projectId, [ + 'per_page' => 100, + 'page' => $page + ]); + } catch (\Exception $e) { + if ($e->getCode() === 404) { + if ($project->delete()) { + Log::warning(sprintf( + "Project not found (%s), it has been deleted.", + $projectId + )); + } else { + Log::warning(sprintf( + "Project not found (%s).", + $projectId + )); + } + } else { + Log::error(sprintf( + 'API Error for project %s, Message: %d', + $projectId, + $e->getMessage() + )); + report($e); + } + } + $allMilestones = array_merge($allMilestones, $milestones); $page++; } while (!empty($milestones));