项目地址:https://github.com/zhshch2002/gitup
这是一个自动为服务器更新 Git 仓库的小工具,设计了两种模式。
- WebHook:正常的 GitHub WebHook 触发,适用于暴露在公网的环境。
- OnTime:配置 cron 来进行轮训,适用于不暴露在公网的环境。
Get Start
获取 GitUp
# 下载程序
wget https://raw.githubusercontent.com/zhshch2002/gitup/master/build/gitup-linux-amd64
# 设置为可执行文件
chmod +x gitup-linux-amd64
其他平台的可执行文件请看 build 目录。
设置 Git 保存密码
# 请前往工作仓库
git config credential.helper store # 开启保存密码功能
# 然后执行一次git pull,这一次输入密码后将不会再要求输入密码。
配置
请在与程序同级目录下创建 config.yml
。
listen: 0.0.0.0:8000 # WebHook服务器监听配置
repo:
- dir: /bulabula1 # 仓库本地地址
branch: origin/master
mode: ontime # 触发模式 ontime:根据time的配置轮训。适用于不暴露在公网的情景。
time: "0 0 */1 * *" # 配置方法参考 https://github.com/robfig/cron
- dir: /bulabula2
branch: origin/master
mode: webhook # 触发模式 webhook:程序运行后会创建一个WebHook链接,当有请求发送到那个地址时会触发更新。
运行
./gitup-linux-amd64 # 直接运行
nohup ./gitup-linux-amd64 > gitup.log 2>&1 & # 后台运行
获取 WebHook 链接
当运行 GitUp 后会输出目录和链接的对应关系。例如:
2019/11/21 21:02:56 config loaded
2019/11/21 21:02:56 Set OnTime job /bulabula1
2019/11/21 21:02:56 /bulabula2 - /a/ab759829d5f73f2586f1717d47ccd670 这里就是链接
2019/11/21 21:02:56 Listen on 0.0.0.0:8000
注意!
请注意不要外泄 GitUp 提供的链接。连接的泄露可能造成安全问题。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于