• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mborne / git-manager / 30773488959

03 Aug 2026 12:01AM UTC coverage: 88.138% (+37.5%) from 50.646%
30773488959

push

github

web-flow
Merge pull request #49 from mborne/gitleak

Gitleak and refactoring

511 of 565 new or added lines in 27 files covered. (90.44%)

691 of 784 relevant lines covered (88.14%)

8.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Controller/Api/ProjectController.php
1
<?php
2

3
namespace MBO\GitManager\Controller\Api;
4

5
use MBO\GitManager\Export\CsvExporter;
6
use MBO\GitManager\Repository\ProjectRepository;
7
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
8
use Symfony\Component\HttpFoundation\Response;
9
use Symfony\Component\Routing\Annotation\Route;
10
use Symfony\Component\Uid\Uuid;
11

12
final class ProjectController extends AbstractController
13
{
14
    #[Route('/api/projects', name: 'api_project_list')]
15
    public function list(
16
        ProjectRepository $repository,
17
    ): Response {
18
        $projects = $repository->findAll();
×
19

20
        return $this->json($projects);
×
21
    }
22

23
    #[Route('/api/projects.csv', name: 'api_project_list_csv', priority: 10)]
24
    public function listCsv(ProjectRepository $repository, CsvExporter $exporter): Response
25
    {
NEW
26
        $content = $exporter->exportProjects($repository->findAll());
×
27

28
        $response = new Response($content);
×
29
        $response->headers->set('Content-Type', 'text/csv; charset=UTF-8');
×
30
        $response->headers->set('Content-Disposition', 'attachment; filename="projects.csv"');
×
31

32
        return $response;
×
33
    }
34

35
    #[Route('/api/projects/{id}', name: 'api_project_get')]
36
    public function get(
37
        ProjectRepository $repository,
38
        Uuid $id,
39
    ): Response {
40
        $project = $repository->find($id);
×
41
        if (is_null($project)) {
×
42
            return $this->json([
×
43
                'message' => 'Not found',
×
44
            ], 404);
×
45
        }
46

47
        return $this->json($project);
×
48
    }
49
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc