githooks sur gogs

Comment mettre en place un Hook au push d'un repo GIT sur Gogs

1 minute read

Comment configurer un Hook sur Gogs

tout d’abord il faut vous rendre dans l’interface de gogs sur le repository de votre projet.

Gogs_settings puis Gogs_webhook puis Gogs_webhook

Et remplir la zone du textarea avec votre script

Par exemple voici le hook que j’utilise pour mettre à jour mon blog lorsque je livre un post sur mon répository Git 🍕

1 #!/bin/bash
2 
3 sudo -u www-data ~/update_hugo.sh

une fois cela fait il faut cliquer sur Gogs_webhook

et voici le script associé

 1 #!/bin/bash
 2 
 3 # on se déplace vers le répertoire qui contient le repo git
 4 cd /var/www/blog/
 5 # on le met à jour
 6 git fetch
 7 git pull
 8 
 9 # on demande à hugo de générer les pages dans le répertoire qui sera affiché par apache.
10 /var/www/hugo/hugo -d /srv/blog/ --cleanDestinationDir --forceSyncStatic

et lorsque je push le repo git alors la commande de mise à jour du blog s’éxecute via le Hook 😊

pour cela il faut passer par l’édition du fichier /etc/sudoers et ajouter cette ligne :

1 git ALL:(www-data) NOPASSWD /home/www-data/update_hugo.sh

Comme cela, avec l’utilisateur git, lorsque j’execute la commande

1 sudo -u www-data ~/update_hugo.sh

la commande est executée avec l’utilisateur www-data sans que j’ai à taper le mot de passe.