web-dev-qa-db-fra.com

Correction d'erreur Gilab: "vous n'êtes pas autorisé à envoyer du code aux branches protégées de ce projet"?

J'ai un problème lorsque je pousse mes codes vers git pendant que j'ai un accès développeur à mon projet, mais tout va bien quand j'ai un accès maître. D'où vient le problème? Et comment le réparer?

Message d'erreur: 

erreur: vous n'êtes pas autorisé à envoyer du code aux branches protégées de ce projet.
...
erreur: échec de pousser certains refs à ...

229

il n'y a pas de problème - tout fonctionne comme prévu.

Dans GitLab, certaines branches peuvent être protégées. Par défaut, seuls les utilisateurs mainteneurs/propriétaires peuvent s’engager dans des branches protégées (voir permissions docs ). La branche master est protégée par défaut. Elle oblige les développeurs à émettre des demandes de fusion qui doivent être validées par les responsables du projet avant de les intégrer au code principal.

Vous pouvez activer et désactiver la protection sur les branches sélectionnées dans les paramètres du projet (où cela dépend exactement de la version de GitLab - voir les instructions ci-dessous). 

Sur la même page de paramètres, vous pouvez également autoriser les développeurs à accéder aux branches protégées. Lorsque ce paramètre est activé, la protection sera limitée au rejet des opérations nécessitant git Push --force (rebase, etc.).

Depuis GitLab 9.3

Aller au projet: "Paramètres" → "Référentiel" → "Développer" sur "Branches protégées"

 enter image description here

Je ne sais pas vraiment quand cette modification a été introduite, les captures d'écran proviennent de la version 10.3.

Vous pouvez maintenant sélectionner qui est autorisé à fusionner ou Transférer dans les branches sélectionnées (par exemple: vous pouvez désactiver les transmissions à master, ce qui oblige à effectuer toutes les modifications de branche via des demandes de fusion). Ou vous pouvez cliquer sur "Ôter la protection" pour supprimer complètement la protection de la branche.

Depuis GitLab 9.0

De la même manière que GitLab 9.3, il n’est pas nécessaire de cliquer sur "Développer" - tout est déjà développé:

Aller au projet: "Paramètres" → "Référentiel" → allez jusqu'à "Branches protégées".

 enter image description here

Pre GitLab 9.0

Projet: "Paramètres" → "Branches protégées" (si vous êtes au moins "maître" d'un projet donné).

 Settings → Protected branches

Cliquez ensuite sur "Supprimer la protection" ou "Les développeurs peuvent envoyer":

 enter image description here

376
Hcorg

pour GitLab Enterprise Edition 9.3.0

Par défaut, la branche principale est protégée.

1-Sélectionnez votre "projet"

2-Sélectionnez "Repository"

3-Sélectionnez "branches"

4-Sélectionnez "Paramètres du projet"

5-In "branches protégées" cliquez pour "développer"

6 et après, cliquez sur le bouton "Annuler la protection"

18
krekto

J'ai rencontré cette erreur sur "une branche vide" sur mon serveur gitlab local. Certaines personnes ont mentionné que "vous ne pouvez pas pousser pour la première fois sur une branche vide". J'ai essayé de créer un simple fichier README sur gitlab via mon navigateur. Ensuite, tout a été réglé de manière incroyable et le problème résolu! Je mentionne que j'étais le maître et que la branche n'était pas protégée.

1
Vahid F

Essayez d'apporter des modifications selon le lien 

https://docs.gitlab.com/ee/user/project/protected_branches.html

rendre le projet non protégé pour le responsable ou le développeur que vous souhaitez valider

1
Barath Ravichander

J'ai rencontré le même problème sur mon référentiel. Je suis le maître du référentiel, mais j'ai eu une telle erreur.

Mon projet n'a pas été protégé, puis re-protégé, et l'erreur a disparu. 

Nous avions mis à niveau la version de gitlab entre mon précédent Push et celui problématique. Je suppose que cette mise à jour a créé le bogue. 

0
jean pierre huart

Les solutions ci-dessus expliquent clairement quel est le problème; Lorsque vous n'avez pas le contrôle sur le référentiel, le meilleur moyen de soumettre votre code est de créer une fourchette du référentiel d'origine et de soumettre votre code à ce nouveau référentiel de sorte que vous puissiez le transmettre ultérieurement au référentiel d'origine. 

0
spicyramen