当'git push'到git Gogs存储库时,如何从服务器调用脚本?

问题描述 投票:1回答:1

当我从本地存储库调用git push到git gogs存储库时,我需要在我的服务器上运行脚本

#!/bin/sh
git pull origin test

source env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

python manage.py migrate
python manage.py collectstatic --noinput

sudo systemctl restart gunicorn.service
sudo systemctl restart celery-worker.service
sudo systemctl restart celery-beat.service

在互联网上减去 - 你需要使用git Hooks。弄清楚如何编辑钩子。

问题 - 如何从git Hooks通过SSH从服务器运行文件?

ssh [email protected]

这不起作用!

git github ssh githooks
1个回答
0
投票

考虑到server-side hook已经在(Git Gogs)服务器上执行,你不应该需要ssh。

确保将您的脚本作为可执行的接收后文件放在Gogs repositories bare repos中。

在那个钩子里,做:

#!/bin/bash
echo "pull from non-bare repo"
unset GIT_DIR
cd /path/to/checkedout/repo
git --work-tree=. --git-dir=.git pull --no-rebase origin test
... rest of your script

确保/ path / to / checked out / repo是你的一个Dogs repo的克隆。

© www.soinside.com 2019 - 2024. All rights reserved.