# git-webhook-ci Tool to automatize your deploy based on file write changes ## Description After some change is made in our listener file the script placed on path set on `.yaml` variable called **webhook_script_path** will be executed. ## Context As a security risk that could be allow a webhook listener on a VPS for your git repository, I've decided to create this package which is a listener to file changes on write. This will trigger a bash script which you shold place on your server to run desired tasks. In my case I've done this to run a bash deploy command like - git pull - build - move build to desired dir - restart services like nginx or whatever ## Installation ### Requirements - [Go version > 1.22](https://go.dev/dl/) - [GNU Make 4.3](https://www.gnu.org/software/make/) - [goreportcard-cli](https://github.com/gojp/goreportcard) - [golangci-lint](https://golangci-lint.run/) ### Environment Vars As shown in app.example.yml you have to configure this variables in order to make your binary works right: ```.env script_binary_path: "/bin/bash" webhook_script_path: "./test-script.sh" file_to_watch_path: "./test_monitor.txt" ``` ## How to use ### Build To build you can only just `make build` command ```bash make build ``` ## Tests ```bash make test-coverage ``` output: ```terminal coverage: 80.0% of statements ok gitea.urkob.com/urko/git-webhook-ci/internal/watcher 2.024s coverage: 80.0% of statements coverage: 100.0% of statements ok gitea.urkob.com/urko/git-webhook-ci/pkg/watcher 0.017s coverage: 100.0% of statements ``` ## goreportcard ```bash ➜ git-webhook-ci git:(main) ✗ make goreportcard oreportcard-cli -v Grade .......... A+ 100.0% Files .................. 6 Issues ................. 0 gofmt ............... 100% go_vet .............. 100% gocyclo ............. 100% ineffassign ......... 100% license ............. 100% misspell ............ 100% ```