Je viens de découvrir que les crochets git (pré-réception, après réception) ne peut pas être exécuté tout en faisant-git push via HTTP, cependant ces hooks peuvent être appelés en faisant git-push via SSH.
Est-ce vrai?
Alors, comment puis-je faire fonctionner git/hooks/pre-receive alors que nous utilisons HTTP comme protocole d'accès?
/// ------------------------------------------ -------------------------------------------------- ----
/// /// @SERVER Ceci est le code crochet post-recevoir
hello.git $ cat hooks/post-receive
#!/bin/bash
while read oldrev newrev ref
do
if [[ $ref =~ .*/master$ ]];
then
echo "Master ref received. Deploying master branch to production..."
#git --work-tree=/var/www/html --git-dir=/home/demo/proj checkout -f
else
echo "Ref $ref successfully received. Doing nothing: only the master branch may be deployed on this server."
fi
done
/// ---------------- -------------------------------------------------- ------------------------------
/// @ CLIENT
/// Ici git/hooks/post-receive fonctionne tout en poussant git via SSH.
$ git push
[email protected]'s password:
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 390 bytes | 390.00 KiB/s, done.
Total 5 (delta 1), reused 0 (delta 0)
remote: Master ref received. Deploying master branch to production...
To hostxxx.net:/var/www/html/repo/hello.git
a308dbc..82184b8 master -> master
Quel serveur utilisez-vous pour basculer sur HTTP? – phd
Nous installons un serveur pour notre entreprise qui se trouve sur Internet, et en raison de la limitation de sécurité dans le serveur proxy, nous devons utiliser le protocole HTTP/HTTPS au lieu de SSH. Alors pourriez-vous me donner des conseils s'il vous plaît? – zhengfish
Oui, mais quel est exactement le serveur? Le serveur HTTP simple n'exécutera certainement pas de hook côté serveur, vous devez configurer [git-http-backend] (https://www.kernel.org/pub/software/scm/git/docs/git-http-backend. html). – phd