From 5dcb2adf3067ef090614eec3088a44c017513b66 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Sun, 8 Mar 2026 14:23:14 +0100 Subject: [PATCH 1/3] Gestion des barem --- .../parametre/BaremRfuNonBatiController.java | 37 +++++- .../rfu/parametre/BaremRfuNonBati.java | 2 +- .../parametre/BaremRfuNonBatiServiceImpl.java | 47 ++++--- .../rfu/parametre/BaremRfuNonBatiService.java | 12 +- .../crudweb/BaremRfuNonBatiPayloadWeb.java | 6 +- .../parametre/BaremRfuNonBatiRepository.java | 125 ++++++++++++++++++ .../service/EntityFromPayLoadService.java | 30 +++++ 7 files changed, 226 insertions(+), 33 deletions(-) diff --git a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java index 2f864b1..1f8b3e7 100644 --- a/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java +++ b/src/main/java/io/gmss/fiscad/controllers/rfu/parametre/BaremRfuNonBatiController.java @@ -4,6 +4,7 @@ import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService; import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; @@ -34,11 +35,11 @@ public class BaremRfuNonBatiController { @PostMapping("/create") - public ResponseEntity createBaremRfuNonBati(@RequestBody @Valid @Validated BaremRfuNonBati baremRfuNonBati) { + public ResponseEntity createBaremRfuNonBati(@RequestBody @Valid @Validated BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) { try { - baremRfuNonBati = baremRfuNonBatiService.createBaremRfuNonBati(baremRfuNonBati); + baremRfuNonBatiPayloadWeb = baremRfuNonBatiService.createBaremRfuNonBati(baremRfuNonBatiPayloadWeb); return new ResponseEntity<>( - new ApiResponse<>(true, baremRfuNonBati, "BaremRfuNonBati créé avec succès."), + new ApiResponse<>(true, baremRfuNonBatiPayloadWeb, "BaremRfuNonBati créé avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -58,10 +59,10 @@ public class BaremRfuNonBatiController { } @PutMapping("/update/{id}") - public ResponseEntity updateBaremRfuNonBati(@PathVariable Long id, @RequestBody BaremRfuNonBati baremRfuNonBati) { + public ResponseEntity updateBaremRfuNonBati(@PathVariable Long id, @RequestBody BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) { try { return new ResponseEntity<>( - new ApiResponse<>(true, baremRfuNonBatiService.updateBaremRfuNonBati(id, baremRfuNonBati), "BaremRfuNonBati mis à jour avec succès."), + new ApiResponse<>(true, baremRfuNonBatiService.updateBaremRfuNonBati(id, baremRfuNonBatiPayloadWeb), "BaremRfuNonBati mis à jour avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { @@ -156,7 +157,31 @@ public class BaremRfuNonBatiController { public ResponseEntity getBaremRfuNonBatiById(@PathVariable Long id) { try { return new ResponseEntity<>( - new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiById(id), "BaremRfuNonBati trouvée avec succès."), + new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiById(id).orElse(null), "BaremRfuNonBati trouvée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + + @GetMapping("/by-commune-id/by-zone-id/{communeId}/{zoneId}") + public ResponseEntity getBaremRfuNonBatiByCommineAndZoneId(@PathVariable Long communeId, Long zoneId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, baremRfuNonBatiService.getBaremRfuNonBatiByCommuneAndZoneId(communeId,zoneId).orElse(null), "BaremRfuNonBati trouvée avec succès."), HttpStatus.OK ); } catch (HttpClientErrorException.MethodNotAllowed e) { diff --git a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java index 723d921..6679f84 100644 --- a/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java +++ b/src/main/java/io/gmss/fiscad/entities/rfu/parametre/BaremRfuNonBati.java @@ -23,7 +23,7 @@ public class BaremRfuNonBati extends BaseEntity implements Serializable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Long valeurAdministrative; - private float taux; + private Float taux; @ManyToOne private Commune commune; @ManyToOne diff --git a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java index af5ab6d..61498b2 100644 --- a/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java +++ b/src/main/java/io/gmss/fiscad/implementations/rfu/parametre/BaremRfuNonBatiServiceImpl.java @@ -4,38 +4,42 @@ import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.interfaces.rfu.parametre.BaremRfuNonBatiService; +import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb; import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; +import lombok.AllArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; - +@AllArgsConstructor @Service public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService { private final BaremRfuNonBatiRepository baremRfuNonBatiRepository; - - public BaremRfuNonBatiServiceImpl(BaremRfuNonBatiRepository baremRfuNonBatiRepository) { - this.baremRfuNonBatiRepository = baremRfuNonBatiRepository; - } + private final EntityFromPayLoadService entityFromPayLoadService; @Override - public BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException { - if (baremRfuNonBati.getId() != null) { + public BaremRfuNonBatiPayloadWeb createBaremRfuNonBati(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws BadRequestException { + if (baremRfuNonBatiPayloadWeb.getId() != null) { throw new BadRequestException("Impossible de créer une nouvelle campgne ayant un id non null."); } - return baremRfuNonBatiRepository.save(baremRfuNonBati); + BaremRfuNonBati baremRfuNonBati= entityFromPayLoadService.getBaremRfuNonBatiFromPayLoadWeb(baremRfuNonBatiPayloadWeb); + baremRfuNonBati=baremRfuNonBatiRepository.save(baremRfuNonBati); + return baremRfuNonBatiRepository.findByIdToDto(baremRfuNonBati.getId()).orElse(null); } @Override - public BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException { - if (baremRfuNonBati.getId() == null) { + public BaremRfuNonBatiPayloadWeb updateBaremRfuNonBati(Long id, BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws NotFoundException { + if (baremRfuNonBatiPayloadWeb.getId() == null) { throw new BadRequestException("Impossible de mettre à jour une nouvelle baremRfuNonBati ayant un id null."); } - if (!baremRfuNonBatiRepository.existsById(baremRfuNonBati.getId())) { + if (!baremRfuNonBatiRepository.existsById(baremRfuNonBatiPayloadWeb.getId())) { throw new NotFoundException("Impossible de trouver la baremRfuNonBati spécifiée dans notre base de données."); } - return baremRfuNonBatiRepository.save(baremRfuNonBati); + BaremRfuNonBati baremRfuNonBati= entityFromPayLoadService.getBaremRfuNonBatiFromPayLoadWeb(baremRfuNonBatiPayloadWeb); + baremRfuNonBati=baremRfuNonBatiRepository.save(baremRfuNonBati); + return baremRfuNonBatiRepository.findByIdToDto(baremRfuNonBati.getId()).orElse(null); } @Override @@ -48,20 +52,27 @@ public class BaremRfuNonBatiServiceImpl implements BaremRfuNonBatiService { } } @Override - public Page getBaremRfuNonBatiList(Pageable pageable) { - return baremRfuNonBatiRepository.findAll(pageable); + public Page getBaremRfuNonBatiList(Pageable pageable) { + return baremRfuNonBatiRepository.findAllPayloadToDtoPaged(pageable); } @Override - public List getBaremRfuNonBatiList() { - return baremRfuNonBatiRepository.findAll(); + public List getBaremRfuNonBatiList() { + return baremRfuNonBatiRepository.findAllPayloadToDto(); } @Override - public Optional getBaremRfuNonBatiById(Long id) { - return baremRfuNonBatiRepository.findById(id); + public Optional getBaremRfuNonBatiById(Long id) { + return baremRfuNonBatiRepository.findByIdToDto(id); } + + + @Override + public Optional getBaremRfuNonBatiByCommuneAndZoneId(Long communeId,Long zoneId) { + return baremRfuNonBatiRepository.findByCommuneAndZoneToDto(communeId,zoneId); + } + } diff --git a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java index a9a7ec8..6712aac 100644 --- a/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java +++ b/src/main/java/io/gmss/fiscad/interfaces/rfu/parametre/BaremRfuNonBatiService.java @@ -3,6 +3,7 @@ package io.gmss.fiscad.interfaces.rfu.parametre; import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -11,17 +12,18 @@ import java.util.Optional; public interface BaremRfuNonBatiService { - BaremRfuNonBati createBaremRfuNonBati(BaremRfuNonBati baremRfuNonBati) throws BadRequestException; + BaremRfuNonBatiPayloadWeb createBaremRfuNonBati(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws BadRequestException; - BaremRfuNonBati updateBaremRfuNonBati(Long id, BaremRfuNonBati baremRfuNonBati) throws NotFoundException; + BaremRfuNonBatiPayloadWeb updateBaremRfuNonBati(Long id, BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb) throws NotFoundException; void deleteBaremRfuNonBati(Long id) throws NotFoundException; - Page getBaremRfuNonBatiList(Pageable pageable); + Page getBaremRfuNonBatiList(Pageable pageable); - List getBaremRfuNonBatiList(); + List getBaremRfuNonBatiList(); - Optional getBaremRfuNonBatiById(Long id); + Optional getBaremRfuNonBatiById(Long id); + Optional getBaremRfuNonBatiByCommuneAndZoneId(Long communeId,Long zoneId); } diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BaremRfuNonBatiPayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BaremRfuNonBatiPayloadWeb.java index a8c6104..6932d4c 100644 --- a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BaremRfuNonBatiPayloadWeb.java +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/BaremRfuNonBatiPayloadWeb.java @@ -15,18 +15,18 @@ public class BaremRfuNonBatiPayloadWeb { private Long communeId; private String communeCode; private String communeNom; - private Long zoneRfu; + private Long zoneRfuId; private String zoneRfuCode; private String zoneRfuNom; - public BaremRfuNonBatiPayloadWeb(Long id, Long valeurAdministrative, float taux, Long communeId, String communeCode, String communeNom, Long zoneRfu, String zoneRfuCode, String zoneRfuNom) { + public BaremRfuNonBatiPayloadWeb(Long id, Long valeurAdministrative, float taux, Long communeId, String communeCode, String communeNom, Long zoneRfuId, String zoneRfuCode, String zoneRfuNom) { this.id = id; this.valeurAdministrative = valeurAdministrative; this.taux = taux; this.communeId = communeId; this.communeCode = communeCode; this.communeNom = communeNom; - this.zoneRfu = zoneRfu; + this.zoneRfuId = zoneRfuId; this.zoneRfuCode = zoneRfuCode; this.zoneRfuNom = zoneRfuNom; } diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/BaremRfuNonBatiRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/BaremRfuNonBatiRepository.java index 55cb011..fd31967 100644 --- a/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/BaremRfuNonBatiRepository.java +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/rfu/parametre/BaremRfuNonBatiRepository.java @@ -2,11 +2,136 @@ package io.gmss.fiscad.persistence.repositories.rfu.parametre; import io.gmss.fiscad.entities.rfu.parametre.BaremRfuNonBati; import io.gmss.fiscad.entities.rfu.parametre.ZoneRfu; +import io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import java.util.List; import java.util.Optional; public interface BaremRfuNonBatiRepository extends JpaRepository { Optional findAllByCommune_IdAndZoneRfu_Id(Long communeId,Long zoneRfuId); + + @Query( + value = """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb( + b.id, + b.valeurAdministrative, + b.taux, + c.id, + c.code, + c.nom, + z.id, + z.code, + z.nom + ) + FROM BaremRfuNonBati b + LEFT JOIN b.commune c + LEFT JOIN b.zoneRfu z + """, + countQuery = """ + SELECT COUNT(b) + FROM BaremRfuNonBati b + """ + ) + Page findAllPayloadToDtoPaged(Pageable pageable); + + @Query( + """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb( + b.id, + b.valeurAdministrative, + b.taux, + c.id, + c.code, + c.nom, + z.id, + z.code, + z.nom + ) + FROM BaremRfuNonBati b + LEFT JOIN b.commune c + LEFT JOIN b.zoneRfu z + """ + ) + List findAllPayloadToDto(); + + + @Query( + """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb( + b.id, + b.valeurAdministrative, + b.taux, + c.id, + c.code, + c.nom, + z.id, + z.code, + z.nom + ) + FROM BaremRfuNonBati b + LEFT JOIN b.commune c + LEFT JOIN b.zoneRfu z + WHERE c.id = :communeId + """ + ) + List findByCommuneToDto( + @Param("communeId") Long communeId + ); + + + @Query( + """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb( + b.id, + b.valeurAdministrative, + b.taux, + c.id, + c.code, + c.nom, + z.id, + z.code, + z.nom + ) + FROM BaremRfuNonBati b + LEFT JOIN b.commune c + LEFT JOIN b.zoneRfu z + WHERE b.id = :BaremNonBatiId + """ + ) + Optional findByIdToDto( + @Param("BaremNonBatiId") Long BaremNonBatiId + ); + + + + @Query( + value = """ + SELECT new io.gmss.fiscad.paylaods.request.crudweb.BaremRfuNonBatiPayloadWeb( + b.id, + b.valeurAdministrative, + b.taux, + c.id, + c.code, + c.nom, + z.id, + z.code, + z.nom + ) + FROM BaremRfuNonBati b + LEFT JOIN b.commune c + LEFT JOIN b.zoneRfu z + WHERE (:communeId IS NULL OR c.id = :communeId) + AND (:zoneId IS NULL OR z.id = :zoneId) + """ + ) + Optional findByCommuneAndZoneToDto( + @Param("communeId") Long communeId, + @Param("zoneId") Long zoneId + ); } diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index a2e217b..5cfa69a 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -24,6 +24,7 @@ import io.gmss.fiscad.persistence.repositories.infocad.metier.PieceRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.UploadRepository; import io.gmss.fiscad.persistence.repositories.infocad.parametre.*; import io.gmss.fiscad.persistence.repositories.rfu.metier.*; +import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuNonBatiRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.CaracteristiqueRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository; @@ -74,6 +75,7 @@ public class EntityFromPayLoadService { private final EnqueteActiviteRepository enqueteActiviteRepository; private final ExerciceRepository exerciceRepository ; private final BaremRfuRepository baremRfuRepository ; + private final BaremRfuNonBatiRepository baremRfuNonBatiRepository ; private final ImpositionsTfuRepository impositionsTfuRepository ; @@ -927,4 +929,32 @@ public class EntityFromPayLoadService { return impositionsTfu; } + + + + public BaremRfuNonBati getBaremRfuNonBatiFromPayLoadWeb(BaremRfuNonBatiPayloadWeb baremRfuNonBatiPayloadWeb){ + BaremRfuNonBati baremRfuNonBati = new BaremRfuNonBati(); + if (baremRfuNonBatiPayloadWeb.getId()!=null) + baremRfuNonBati=baremRfuNonBatiRepository.findById(baremRfuNonBatiPayloadWeb.getId()).orElse(new BaremRfuNonBati()); + + // ====================== + // Relations (sans hit DB) + // ====================== + + if (baremRfuNonBatiPayloadWeb.getZoneRfuId() != null) { + ZoneRfu zoneRfu = new ZoneRfu(); + zoneRfu.setId(baremRfuNonBatiPayloadWeb.getZoneRfuId()); + baremRfuNonBati.setZoneRfu(zoneRfu); + } + + if (baremRfuNonBatiPayloadWeb.getCommuneId() != null) { + Commune commune = new Commune(); + commune.setId(baremRfuNonBatiPayloadWeb.getCommuneId()); + baremRfuNonBati.setCommune(commune); + } + + baremRfuNonBati.setTaux(baremRfuNonBatiPayloadWeb.getTaux()); + + return baremRfuNonBati; + } } -- 2.49.1 From bd8bd64a2dfccaa68a6113c408a919d34a0b2e6f Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Sun, 8 Mar 2026 14:51:54 +0100 Subject: [PATCH 2/3] Gestion des barem --- .gitea/workflows/cd-main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/cd-main.yml b/.gitea/workflows/cd-main.yml index 5b5344c..8732594 100644 --- a/.gitea/workflows/cd-main.yml +++ b/.gitea/workflows/cd-main.yml @@ -52,8 +52,10 @@ jobs: echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV" # 4) Checkout du dépôt + #- name: Checkout repository + # uses: https://gitea.com/actions/checkout@v4 #actions/checkout@v4 - name: Checkout repository - uses: https://gitea.com/actions/checkout@v4 #actions/checkout@v4 + run: git clone ${{ gitea.server_url }}/${{ gitea.repository }} . # 5) Informations de contexte (sans secrets) - name: Show context information -- 2.49.1 From eba53a42aa84c3f70a7c74be0d1c800c3cd43532 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Sun, 8 Mar 2026 14:54:00 +0100 Subject: [PATCH 3/3] Gestion des barem --- .gitea/workflows/ci-develop.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ci-develop.yml b/.gitea/workflows/ci-develop.yml index 49d3dd1..6a885f2 100644 --- a/.gitea/workflows/ci-develop.yml +++ b/.gitea/workflows/ci-develop.yml @@ -52,8 +52,10 @@ jobs: echo "JAVA_HOME=$JAVA_HOME" >> "$GITHUB_ENV" # 4) Checkout du dépôt + #- name: Checkout repository + # uses: https://gitea.com/actions/checkout@v4 #actions/checkout@v4 - name: Checkout repository - uses: https://gitea.com/actions/checkout@v4 #actions/checkout@v4 + run: git clone ${{ gitea.server_url }}/${{ gitea.repository }} . # 5) Création des secrets runtime (CI uniquement) - name: Create runtime secrets -- 2.49.1