fix(shared): accept a private repository carrying a single credential - #2444
Merged
Conversation
StephaneTrebel
approved these changes
Aug 7, 2026
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

0 New Issues
0 Fixed Issues
0 Accepted Issues
Issues liées
Issues numéro:
Quel est le comportement actuel ?
Depuis la migration des dépôts vers l'API v2,
CreateRepositorySchemadéclareexternalUserNameetexternalTokenen.min(1)sur la brancheisPrivate: truede l'union discriminée : les deux credentials sont donc obligatoires.
L'API v1 (
CreateRepoFormSchema), elle, n'a jamais exigé que l'un des deux — c'estaussi ce que valide encore le formulaire client (
RepoForm.vue). Créer un dépôt privéavec un token seul (ou un nom d'utilisateur seul) passe la validation du front, puis
échoue côté serveur :
POST /api/v2/projects/:projectId/repositories→400 Bad Request{ "formErrors": [], "fieldErrors": { "externalUserName": [ "Si le dépôt est privé, vous devez renseigner au moins le nom d'utilisateur ou le token" ] } }Le message renvoyé contredit d'ailleurs la règle réellement appliquée. Deux tests e2e
échouent en CI sur ce 400 : Should add an external private repo (token seul) et
Should add an external private infra repo (nom d'utilisateur seul).
Quel est le nouveau comportement ?
Un dépôt privé n'exige plus qu'au moins un des deux credentials, comme en v1 :
externalUserNameetexternalTokenpassent àz.string().default('');.refine()porté par l'union impose la présence d'au moins l'un des deux.Le type de sortie
CreateRepositoryest inchangé (les deux champs restent desstringnon optionnelles pour un dépôt privé), donc aucun impact sur le service ni sur le mapping
côté serveur.
Tests unitaires du schéma mis à jour en conséquence : token seul accepté, nom
d'utilisateur seul accepté, aucun credential rejeté, les deux vides rejetés.
Cette PR introduit-elle un breaking change ?
Non. La validation est assouplie : toutes les charges utiles acceptées auparavant le
restent. Aucun test e2e n'a été modifié — les deux tests qui échouaient passent désormais
sans changement.
Autres informations