1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
namespace App\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Shivas\VersioningBundle\Service\VersionManager;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class BugReportController extends AbstractController
{
/**
* @Route("/bugreport", name="bugreport")
* @IsGranted("ROLE_USER")
*/
public function bugreport(Request $request, VersionManager $manager)
{
$urltype = 'https://gitlab.com/Kohinos/kohinos/-/issues/new?issue[title]=%%title%%&issue[description]=%%description%%';
$newline = '%0A';
$referer = $request->headers->get('referer');
$version = $manager->getVersion();
$title = '[V' . $version . '] ';
$description =
'[URL] ' . $referer . $newline . $newline .
'[Kohinos v ' . $version . ']' . $newline .
'[USER] ' . $this->getUser()->getName() . ' [' . $this->getUser()->getId() . ']' . $newline .
'[ROLES] ' . implode(array_map(function ($o) {
return $o->getName();
}, $this->getUser()->getGroups()->toArray())) . $newline . $newline .
'* Résumé' . $newline .
'(Résumé concis du bug)' . $newline . $newline .
'* Étapes pour reproduire' . $newline .
'(Comment reproduire le bug)' . $newline . $newline .
'* Comportement courant' . $newline .
'(ce qu\'il se passe et que vous trouver anormal)' . $newline . $newline .
'* Comportement attendu' . $newline .
'(ce qui devrait se passer selon vous ou qui se passait avant la régression)' . $newline . $newline .
'* Environnement' . $newline .
'( Version / environnement / instance, ...) ' . $newline . $newline .
'* Préciser le Compte / Rôle pour se connecter' . $newline .
'(fournir les comptes si besoin)' . $newline . $newline .
'* Logs et/ou captures d\'écran pertinent' . $newline
;
$url = str_replace(['%%title%%', '%%description%%'], [$title, $description], $urltype);
return $this->redirect($url);
}
}