Giter Site home page Giter Site logo

github-webhook's Introduction

1. Github-webhook Tools

Build Status

1.1. 📡 Overview

  • The Github-webhook is a webhook tool on github
  • That can trigger bash scripts after monitoring git's push behavior
  • The a line command handles the automatic build
  • Built-in queue for tasks, quick response to GitHub Webhook, 100% response 200 guaranteed
  1. github-webhook 是github webhook自动构建工具.能监听git push行为,自动触发脚本.
  2. 一条命令搞定webhook自动构建,无需复杂的配置.
  3. 内置队列执行任务,迅速响应 github webhook, 保证100% response 200

1.2. 📜 Usage

1.2.1. Download && Install

cd ~
wget https://github.com/yezihack/github-webhook/releases/download/v1.5.0/github-webhook1.5.0.linux-amd64.tar.gz
tar -zxvf github-webhook1.5.0.linux-amd64.tar.gz
cp ~/github-webhook /usr/sbin
chmod +x /usr/sbin/github-webhook

run script

mkdir -p /opt/sh

cat > /opt/sh/test.sh <<EOF
#!/bin/bash

now=\$(date)
echo "date:\${now}"
EOF

/usr/sbin/github-webhook --bash /opt/sh/test.sh

1.3. Command

  • Daemonize run: nohup github-webhook --bash /home/my.sh --secret mysecret -q & 后台运行
  • Monitor run: github-webhook --bash /home/my.sh --secret mysecret
  • Quiet mode run: github-webhook --bash /home/my.sh --secret mysecret --quiet
  • Custom port mode run: github-webhook --bash /home/my.sh --secret mysecret --port 6100 --quiet
  • Hidden secret mode run: github-webhook --bash /home/my.sh --quiet

1.3.1. Use Systemd

/opt/sh/test.sh is your script bash file

cat > /usr/lib/systemd/system/webhook.service << EOF
[Unit]
Description=github-webhook
Documentation=https://github.com/yezihack/github-webhook
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/sbin/github-webhook --bash /opt/sh/test.sh --secret mpjjCBWebn8qw3mM
Restart=always
RestartSec=3s
 
[Install]
WantedBy=multi-user.target
EOF

Manager Systemd:

systemctl daemon-reload
systemctl start webhook
systemctl status webhook

1.4. WebHook

  • Default port: 2020
  • Http path: /web-hook
  • Test URL: http://ip:2020/ping
  • WebHook URL: http://ip:2020/web-hook

1.5. 💌 Features

  • Just run the binaries file
  • Custom your bash script
  • Custom your enter secret
  • Custom your port. 0 ~ 65535
  • Quiet operation

中文

  • 直接运行二进制文件
  • 自定义脚本路径
  • 自定义密码
  • 自定义端口. 0 ~ 65535
  • 安静模式
GLOBAL OPTIONS:
   --bash value, -b value    Execute the script path. eg: /home/hook.sh
   --port value, -p value    http port (default: 2020)
   --secret value, -s value  github hook secret
   --quiet, -q               quiet operation (default: false)
   --verbose, --vv           print verbose (default: false)
   --help, -h                show help (default: false)
   --version, -v             print the version (default: false)

中文

GLOBAL OPTIONS:
   --bash value, -b value    Execute the script path. eg: /home/hook.sh 自定义脚本
   --port value, -p value    http port (default: 2020) 自定义端口,默认6666
   --secret value, -s value  github hook secret 自定义密码, 不允许为空
   --verbose, --vv           print verbose (default: false) 打印更多详细信息
   --quiet, -q               quiet operation (default: false) 安静模式,默认关闭. -q 开启,不输出任何信息
   --help, -h                show help (default: false) 
   --version, -v             print the version (default: false)

1.6. How it works

github-webhook

  • step 1:: Run your github-webhook server

    • notice: port default 2020, http-path: /web-hook
    • 注意: 端口默认为 2020, 可以更改, http的路由: /web-hook
    • 查看自己的外网Ip: curp ip.sb

  • step 2: Add webhook

    • 添加 webhook 参数

      配置第一步 配置第二步 配置第三步

  • step 3: run shell script

  • notice: Make sure that the last line write: exit 0

  • shell脚本的最后一行一定要写上 exit 0 代码

#!/bin/bash
echo "hello webhook"
exit 0

1.7. 👋 Thanks

github-webhook's People

Contributors

yezihack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

github-webhook's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.