From d4fb58d2e684ac3e546c83480b91c05cfe6bc4d9 Mon Sep 17 00:00:00 2001 From: Greg Taylor Date: Thu, 19 Nov 2015 12:38:20 -0800 Subject: [PATCH] Adding Bitbucket tag push hook support. --- remote/bitbucket/bitbucket.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/remote/bitbucket/bitbucket.go b/remote/bitbucket/bitbucket.go index 8965294f..281d27bc 100644 --- a/remote/bitbucket/bitbucket.go +++ b/remote/bitbucket/bitbucket.go @@ -397,17 +397,26 @@ func (bb *Bitbucket) pushHook(r *http.Request) (*model.Repo, *model.Build, error // change that has branch information. for _, change := range hook.Push.Changes { - // must have branch and sha information - if change.New.Type != "branch" || change.New.Target.Hash == "" { + // must have sha information + if change.New.Target.Hash == "" { + continue + } + // we only support tag and branch pushes for now + buildEventType := model.EventPush + buildRef := fmt.Sprintf("refs/heads/%s", change.New.Name) + if change.New.Type == "tag" || change.New.Type == "annotated_tag" { + buildEventType = model.EventTag + buildRef = fmt.Sprintf("refs/tags/%s", change.New.Name) + } else if change.New.Type != "branch" { continue } // return the updated repository information and the // build information. return convertRepo(&hook.Repo), &model.Build{ - Event: model.EventPush, + Event: buildEventType, Commit: change.New.Target.Hash, - Ref: fmt.Sprintf("refs/heads/%s", change.New.Name), + Ref: buildRef, Link: change.New.Target.Links.Html.Href, Branch: change.New.Name, Message: change.New.Target.Message,