Fix Gitea remote pull-request webhook parsing

This commit is contained in:
Michael de Wit 2018-01-29 13:20:02 +01:00
parent 75150d4a42
commit e4a77e5346
4 changed files with 14 additions and 17 deletions

View file

@ -103,13 +103,11 @@ const HookPullRequest = `{
"email": "gordon@golang.org",
"avatar_url": "http://gitea.golang.org///1.gravatar.com/avatar/8c58a0be77ee441bb8f8595b7f1b4e87"
},
"base_branch": "master",
"base": {
"label": "master",
"ref": "master",
"sha": "9353195a19e45482665306e466c832c46560532d"
},
"head_branch": "feature/changes",
"head": {
"label": "feature/changes",
"ref": "feature/changes",

View file

@ -127,15 +127,15 @@ func buildFromPullRequest(hook *pullRequestHook) *model.Build {
Commit: hook.PullRequest.Head.Sha,
Link: hook.PullRequest.URL,
Ref: fmt.Sprintf("refs/pull/%d/head", hook.Number),
Branch: hook.PullRequest.BaseBranch,
Branch: hook.PullRequest.Base.Ref,
Message: hook.PullRequest.Title,
Author: hook.PullRequest.User.Username,
Avatar: avatar,
Sender: sender,
Title: hook.PullRequest.Title,
Refspec: fmt.Sprintf("%s:%s",
hook.PullRequest.HeadBranch,
hook.PullRequest.BaseBranch,
hook.PullRequest.Head.Ref,
hook.PullRequest.Base.Ref,
),
}
return build

View file

@ -127,6 +127,7 @@ func Test_parse(t *testing.T) {
g.Assert(build.Ref).Equal("refs/pull/1/head")
g.Assert(build.Link).Equal(hook.PullRequest.URL)
g.Assert(build.Branch).Equal("master")
g.Assert(build.Refspec).Equal("feature/changes:master")
g.Assert(build.Message).Equal(hook.PullRequest.Title)
g.Assert(build.Avatar).Equal("http://1.gravatar.com/avatar/8c58a0be77ee441bb8f8595b7f1b4e87")
g.Assert(build.Author).Equal(hook.PullRequest.User.Username)

View file

@ -54,16 +54,15 @@ type pullRequestHook struct {
Email string `json:"email"`
Avatar string `json:"avatar_url"`
} `json:"user"`
Title string `json:"title"`
Body string `json:"body"`
Labels []string `json:"labels"`
State string `json:"state"`
URL string `json:"html_url"`
Mergeable bool `json:"mergeable"`
Merged bool `json:"merged"`
MergeBase string `json:"merge_base"`
BaseBranch string `json:"base_branch"`
Base struct {
Title string `json:"title"`
Body string `json:"body"`
Labels []string `json:"labels"`
State string `json:"state"`
URL string `json:"html_url"`
Mergeable bool `json:"mergeable"`
Merged bool `json:"merged"`
MergeBase string `json:"merge_base"`
Base struct {
Label string `json:"label"`
Ref string `json:"ref"`
Sha string `json:"sha"`
@ -82,8 +81,7 @@ type pullRequestHook struct {
} `json:"owner"`
} `json:"repo"`
} `json:"base"`
HeadBranch string `json:"head_branch"`
Head struct {
Head struct {
Label string `json:"label"`
Ref string `json:"ref"`
Sha string `json:"sha"`