problèmes avec les pullgit de gitlab vers dossiers ds AlternC
Le système qui permet de mettre des hooks ds gitlab, ce qui permet que sur un commit, gitlab va faire un push vers un dossier sur un alternC, fonctionne bien jusqu'à ce que les droits sur ce dossier sont modifiés.
Un exemple de script qui va changer les droits est fixperms.sh.
Une fois ce script lancé, lors du prochain commit qu'on fera vers gitlab, gitlab se plaindra d'un problème ds le repo sur AlternC et qu'il ne peut plus pusher. L'erreur dans ce cas est:
Énumération des objets: 7, fait.
Décompte des objets: 100% (7/7), fait.
Compression par delta en utilisant jusqu'à 8 fils d'exécution
Compression des objets: 100% (4/4), fait.
Écriture des objets: 100% (4/4), 343 octets | 343.00 Kio/s, fait.
Total 4 (delta 3), réutilisés 0 (delta 0)
remote: ********** mise en ligne PROD *********
remote: fatal: detected dubious ownership in repository at '/var/www/alternc/d/domainepublic/www/doc.domainepublic.net/documentation'
remote: To add an exception for this directory, call:
remote:
remote: git config --global --add safe.directory /var/www/alternc/d/domainepublic/www/doc.domainepublic.net/documentation
To gitlab.domainepublic.net:domainepublic/documentation.git
05a9008..2050835 master -> master
Si on va sur l'AlternC, qu'on se met en tant que le user alterncpanel et qu'on exécute la commande donnée ds le msg d'erreur (git config --global ...), au commit suivant on a une autre erreur:
$ git push
Énumération des objets: 5, fait.
Décompte des objets: 100% (5/5), fait.
Compression par delta en utilisant jusqu'à 8 fils d'exécution
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (3/3), 305 octets | 305.00 Kio/s, fait.
Total 3 (delta 2), réutilisés 0 (delta 0)
remote: ********** mise en ligne PROD *********
remote: From ssh://gitlab.domainepublic.net:3265/domainepublic/documentation
remote: 091f437..1c75b2f master -> origin/master
remote: error: Your local changes to the following files would be overwritten by merge:
remote: Readme.md
remote: Please commit your changes or stash them before you merge.
remote: Aborting
remote: Updating 091f437..1c75b2f
To gitlab.domainepublic.net:domainepublic/documentation.git
091f437..1c75b2f master -> master
On peut facilement tester ça en lançant le script /usr/lib/alternc/fixperms.sh sur le compte où on a un repo git. Ce script est appelé par le script /usr/lib/alternc/do_actions.php qui lui est appelé toutes les 20 min.
Pas encore bcp testé de solution, mais une piste pourrait être de modifier le script fixperms.sh pour su'il ne change pas les droits d'un dossier si celui-ci a un sous-dossier .git.