handle system events
This commit is contained in:
		
							parent
							
								
									a0493bd805
								
							
						
					
					
						commit
						614c69d792
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue