Files
Ressources-relationnel/app/Services/GiteaIssueService.php
T
Azmog 1c26abfbc6
CI - Intégration continue / quality-and-tests (push) Successful in 3m13s
CD - Déploiement continu / deploy (push) Successful in 3m2s
Revert "feat: ajout du provisionnement des comptes Gitea pour les utilisateurs lors de la soumission de suggestions"
This reverts commit 85572bd258.
2026-07-07 23:59:47 +02:00

54 lines
1.5 KiB
PHP

<?php
namespace App\Services;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class GiteaIssueService
{
/**
* Crée un ticket (issue) dans le dépôt Gitea configuré.
*
* @return bool true si le ticket a bien été créé, false sinon.
*/
public function createIssue(string $title, string $body): bool
{
$url = rtrim((string) config('services.gitea.url'), '/');
$repo = trim((string) config('services.gitea.repo'), '/');
$token = (string) config('services.gitea.token');
if ($url === '' || $repo === '' || $token === '') {
Log::warning('Gitea non configuré (URL / token / dépôt manquant) : ticket non créé.');
return false;
}
try {
// Gitea attend l'en-tête "Authorization: token <TOKEN>".
$response = Http::withToken($token, 'token')
->acceptJson()
->timeout(10)
->post("{$url}/api/v1/repos/{$repo}/issues", [
'title' => $title,
'body' => $body,
]);
} catch (\Throwable $e) {
Log::error('Appel API Gitea impossible : '.$e->getMessage());
return false;
}
if ($response->failed()) {
Log::error('Création du ticket Gitea échouée', [
'status' => $response->status(),
'body' => $response->body(),
]);
return false;
}
return true;
}
}