Git module for Caddy v2
The module is helpful in creating git clients that pull from the given repository at regular intervals of time (poll service) or whenever there is a change in the repository (webhook service). On a successful pull it runs the specified commands to automate deployment.
Simply add the following import to
cmd/caddy/main.go
and build the caddy binary:
package main
import (
caddycmd "github.com/caddyserver/caddy/v2/cmd"
// plug in Caddy modules here
_ "github.com/caddyserver/caddy/v2/modules/standard"
_ "github.com/vrongmeal/caddygit/module/git" // Yay!!!
)
func main() {
caddycmd.Main()
}
OR you can use xcaddy to build:
$ xcaddy build v2.1.1 \
--with github.com/vrongmeal/caddygit/module/git
{
// Your caddy apps.
"apps": {
// Git app module.
"git": {
// Your git clients to be deployed.
"clients": [
// Example client.
{
// Git repository info.
"repo": {
// HTTP URL of the git repository.
"url": "http://github.com/vrongmeal/caddygit",
// Path to clone the repository in. If path specified
// exists and is a git repository, it simply opens the
// repo. If the path is not a repo and does not exist,
// it creates a repo in that path.
"path": "/path/to/clone",
// Branch (or tag) of the repository to clone. Defaults
// to `master`.
"branch": "my-branch",
// Username and secret for authentication of private
// repositories. If authenticating via access token,
// set the auth_secret equal to the value of access token
// and auth_user can be omitted.
"auth_user": "vrongmeal",
"auth_secret": "password",
// Specifies whether to clone only the specified branch.
"single_branch": true,
// Depth of commits to fetch.
"depth": 1
},
// Service info.
"service": {
// Type of the service.
// Services supported: poll, webhook
"type": "poll",
// Interval after which service will tick.
"interval": "10m"
},
// Commands to run after every update.
"commands_after": [
{
// Command to execute.
"command": ["echo", "hello world"],
// Whether to run command in background (async).
// Defaults to false.
"async": true
}
]
}
]
}
}
}
- Support for Caddyfile
- Webhook service