From fbdc15b5bdb495163e8f29101e286bb3ed9fcdac Mon Sep 17 00:00:00 2001 From: vanloswang Date: Wed, 21 Sep 2016 16:49:38 +0800 Subject: [PATCH 1/2] Add support for GitLab Push Event --- pkg/build/webhook/github/github.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/build/webhook/github/github.go b/pkg/build/webhook/github/github.go index c7f07ec7bf36..7b36eaf0887e 100644 --- a/pkg/build/webhook/github/github.go +++ b/pkg/build/webhook/github/github.go @@ -16,7 +16,7 @@ import ( ) var ( - ErrNoGitHubEvent = errors.New("missing X-GitHub-Event or X-Gogs-Event") + ErrNoGitHubEvent = errors.New("missing X-GitHub-Event, X-Gogs-Event or X-Gitlab-Event") ) // WebHook used for processing github webhook requests. @@ -57,8 +57,8 @@ func (p *WebHook) Extract(buildCfg *api.BuildConfig, secret, path string, req *h return revision, envvars, proceed, err } method := getEvent(req.Header) - if method != "ping" && method != "push" { - return revision, envvars, proceed, fmt.Errorf("Unknown X-GitHub-Event or X-Gogs-Event %s", method) + if method != "ping" && method != "push" && method != "Push Hook" { + return revision, envvars, proceed, fmt.Errorf("Unknown X-GitHub-Event, X-Gogs-Event or X-Gitlab-Event %s", method) } if method == "ping" { return revision, envvars, proceed, err @@ -110,5 +110,8 @@ func getEvent(header http.Header) string { if len(event) == 0 { event = header.Get("X-Gogs-Event") } + if len(event) == 0 { + event = header.Get("X-Gitlab-Event") + } return event } From ca6be6d7163f12f29cb5fd76176c55e1b26c1b15 Mon Sep 17 00:00:00 2001 From: vanloswang Date: Thu, 22 Sep 2016 09:30:57 +0800 Subject: [PATCH 2/2] Refactor support for GitLab Push Event test case --- pkg/build/webhook/github/github_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/build/webhook/github/github_test.go b/pkg/build/webhook/github/github_test.go index c1bde504e737..2c9c80c91e89 100644 --- a/pkg/build/webhook/github/github_test.go +++ b/pkg/build/webhook/github/github_test.go @@ -147,8 +147,8 @@ func TestMissingEvent(t *testing.T) { plugin := New() revision, _, proceed, err := plugin.Extract(buildConfig, "secret100", "", req) - if err == nil || !strings.Contains(err.Error(), "missing X-GitHub-Event or X-Gogs-Event") { - t.Errorf("Expected missing X-GitHub-Event or X-Gogs-Event, got %v", err) + if err == nil || !strings.Contains(err.Error(), "missing X-GitHub-Event, X-Gogs-Event or X-Gitlab-Event") { + t.Errorf("Expected missing X-GitHub-Event, X-Gogs-Event or X-Gitlab-Event, got %v", err) } if proceed { t.Error("Expected 'proceed' return value to be 'false'") @@ -165,8 +165,8 @@ func TestWrongGitHubEvent(t *testing.T) { plugin := New() revision, _, proceed, err := plugin.Extract(buildConfig, "secret100", "", req) - if err == nil || !strings.Contains(err.Error(), "Unknown X-GitHub-Event or X-Gogs-Event") { - t.Errorf("Expected missing Unknown X-GitHub-Event or X-Gogs-Event, got %v", err) + if err == nil || !strings.Contains(err.Error(), "Unknown X-GitHub-Event, X-Gogs-Event or X-Gitlab-Event") { + t.Errorf("Expected missing Unknown X-GitHub-Event, X-Gogs-Event or X-Gitlab-Event, got %v", err) } if proceed { t.Error("Expected 'proceed' return value to be 'false'")