fish-hook
fish-hook copied to clipboard
A console tool which manages your github webhooks efficiently.
fish-hook
fish-hook is an efficient tool for managing your lots of github webhooks.
Requirement
- >= python3.5
- pip3
Notice: Because of using sanic web framework, python3.5 or more high version needed!
Get started
Installation
$ pip3 install fish-hook
Usage
$ fish-hook init
$ cd fish/
$ fish-hook new
Then edit shell scripts...
$ fish-hook server
If you create webhook for repository named example, fish-hook will create a subdirectory in main directory that the structure likes this:
fish/
config.json
example/
app_config.json
push.sh
You can reference all webhook events of github add your own shell script file like push.sh in example directory.
For example, if you create a shell script file named fork.sh in example directory, the fork.sh will be executed when fish-hook got the fork event from github(someone forks this repository).
The fish-hook will do nothing without send a normal message at Ping event received.
Most of the time, you just need a shell script to handle push event :P
Create a webhook
$ fish-hook new
Remove the webhook
$ fish-hook remove
Get all github webhook events
$ fish-hook events
Production
Use Screen
screen -d -m fish-hook server
Set github webhook
-
Open
https://github.com/:account/:repository/settings/hooks -
Click 'add webhook'

-
FIll your server name with port and repository name(as same as fish-hook)

Events
| Name | Description |
|---|---|
| "*" | "Any time any event is triggered", |
| commit_comment | "Any time a Commit is commented on", |
| "create" | "Any time a Repository, Branch, or Tag is created", |
| "delete" | "Any time a Branch or Tag is deleted", |
| "deployment_status" | "Any time a deployment for the Repository has a status update from the API", |
| "deployment" | "Any time a Repository has a new deployment created from the API", |
| "fork" | "Any time a Repository is forked", |
| "gollum" | "Any time a Wiki page is updated", |
| "issue_comment" | "Any time an Issue is commented on", |
| "issues" | "Any time an Issue is opened or closed", |
| "member" | "Any time a User is added as a collaborator to a non-Organization Repository", |
| "membership" | "Any time a User is added or removed from a team. Organization hooks only.", |
| "page_build" | "Any time a Pages site is built or results in a failed build", |
| "public" | "Any time a Repository changes from private to public", |
| "pull_request_review_comment" | "Any time a Commit is commented on while inside a Pull Request review (the Files Changed tab)", |
| "pull_request" | "Any time a Pull Request is opened, closed, or synchronized (updated due to a new push in the branch that the pull request is tracking)", |
| "push" | "Any git push to a Repository. This is the default event", |
| "release" | "Any time a Release is published in the Repository", |
| "repository" | "Any time a Repository is created. Organization hooks only.", |
| "status" | "Any time a Repository has a status update from the API", |
| "team_add" | "Any time a team is added or modified on a Repository", |
| "watchAny" | "time a User watches the Repository" |
Author
Licence
MIT
Todos
- Add
prodcommand - Improve compatibility