handle system events

This commit is contained in:
Martin/Geno 2019-03-09 00:09:45 +01:00
parent a0493bd805
commit 272181e00d
No known key found for this signature in database
GPG Key ID: 9D7D3C6BFF600C6A
3 changed files with 24 additions and 1 deletions

View File

@ -46,5 +46,6 @@ deploy:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- ssh -6 -o StrictHostKeyChecking=no -p $SSH_PORT "$CI_PROJECT_NAME@$SSH_HOST" sudo /usr/bin/systemctl stop $CI_PROJECT_NAME
- scp -6 -o StrictHostKeyChecking=no -P $SSH_PORT "/go/bin/$CI_PROJECT_NAME" "$CI_PROJECT_NAME@$SSH_HOST":/opt/$CI_PROJECT_NAME/bin
- ssh -6 -o StrictHostKeyChecking=no -p $SSH_PORT "$CI_PROJECT_NAME@$SSH_HOST" sudo /usr/bin/systemctl restart $CI_PROJECT_NAME
- ssh -6 -o StrictHostKeyChecking=no -p $SSH_PORT "$CI_PROJECT_NAME@$SSH_HOST" sudo /usr/bin/systemctl start $CI_PROJECT_NAME

View File

@ -1,6 +1,7 @@
package gitlab
import (
"encoding/json"
"fmt"
"net/http"
@ -89,6 +90,26 @@ func init() {
err = libHTTP.Read(r, &pl)
msg = pl.String()
case SystemEvents:
var data map[string]interface{}
err = json.NewDecoder(r.Body).Decode(data)
if err != nil {
msg = fmt.Sprintf("unable to decode gitlab system event")
} else if event, ok := data["event_name"]; ok {
switch event {
case "push":
var pl PushEventPayload
err = libHTTP.Read(r, &pl)
msg = fmt.Sprintf("S > %s", pl.String())
default:
err = nil
msg = fmt.Sprintf("unknown gitlab system event '%s' received", event)
}
} else {
err = nil
msg = fmt.Sprintf("unable to get event_name of gitlab system event")
}
default:
err = nil
msg = fmt.Sprintf("unknown gitlab event '%s' received", gitLabEvent)

View File

@ -19,6 +19,7 @@ const (
WikiPageEvents Event = "Wiki Page Hook"
PipelineEvents Event = "Pipeline Hook"
BuildEvents Event = "Build Hook"
SystemEvents Event = "System Hook"
)
type customTime struct {