Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jun 22, 2020. It is now read-only.

HFIProgramming/ProjectHooker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

10 Commits

Repository files navigation

ProjectHooker

衍生自: https://github.com/mdluo/github-webhook-handler-php
WebHook升级版,增加了各种功能

目的

在服务器上面同时部署多个项目的时候希望只用部署一次Webhook就可以全部挂钩?
指令删改太麻烦?单文件耦合度太高?每次都要重新写一次脚本?
想要发送指令Log到其他地方?(Telegram)?
这里应该有你想要的

特性

  • 一次部署,后续只需要添加对应的配置文件和指令集即可
  • 没有依赖需要(有点懒)
  • 指令集可复用
  • Post-Command Section, Log, etc...
  • 觉得不够的话你可PR或者提issue看看能不能加咯

说明

  • 调用地址: /project/{Your Project Name}
    我们在仓库内提供一些例子供你参考

Config

@TODO Be specific
通常,配置的名字都是{{Project Name}}.config.php。当你在调用的时候将会自动加载
组成成分包含:

  • secret
    Webhook Secret
  • path
    Project Path 项目地址
  • logPath
    Log Path, Empty means log will not be saved 日志地址,留空将不会保存
  • templateVariable
    Variable You want to define in the command 命令变量
  • commandPackage
    Command package you want to run 指令包名称,name.pack.php
  • postCommandVariable Post Command Variable
  • postCommandPackage
    Package that will Exec after finished commandPackage

Command Package

  • Variable $command 你想要执行的命令
    注意 如果你希望command被你指定的Variable渲染,请使用双引号

编写Pack

  • 你的配置文件中的注册的变量*Variable都会被推广,所以你可以用{$key}获取到值
  • 其中,一部分基本变量path,secret会被默认推广,你可以直接调用,注册可以覆盖掉默认值 - $LogFilePath 只能在PostCommand内调用,这是注册在runtimeVariable中的,如果你没有填写路径,这个变量将会返回NULL

Log

  • index.php 内定义了Log的储存方式(默认JSON)
  • Log 是以 runtimeVariable 的形式代入到指令的Parse过程中

@TODO

  • parse Payload 并使用commit id作为LOG名字
  • index.php 耦合性还是太高了
  • 安全性检查(尚未发现)

权限说明

因为执行指令的用户和Apache或者Nginx权限是一层的,你需要让它拥有LOG目录/项目目录/你要执行的操作的权限,切记

#if you are using Apache as web server, change `www-data` to `www`
chown -R www-data /path/to/the/repository/
chmod -R g+s /path/to/the/repository/
cd /path/to/the/repository/
sudo -u www-data git pull

lisense

MIT

About

A PHP Webhook multi-project handler

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /