diff --git a/README.md b/README.md
index 05b08ab..92a6858 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
Library webhooks
================
-

+

[](https://semaphoreci.com/joeybloggs/webhooks)
-[](https://coveralls.io/github/go-playground/webhooks?branch=v2)
+[](https://coveralls.io/github/go-playground/webhooks?branch=v3)
[](https://goreportcard.com/report/go-playground/webhooks)
-[](https://godoc.org/gopkg.in/go-playground/webhooks.v2)
+[](https://godoc.org/gopkg.in/go-playground/webhooks.v3)

Library webhooks allows for easy recieving and parsing of GitHub, Bitbucket and GitLab Webhook Events
@@ -24,17 +24,17 @@ Installation
Use go get.
```shell
- go get -u gopkg.in/go-playground/webhooks.v2
+ go get -u gopkg.in/go-playground/webhooks.v3
```
Then import the package into your own code.
- import "gopkg.in/go-playground/webhooks.v2"
+ import "gopkg.in/go-playground/webhooks.v3"
Usage and Documentation
------
-Please see http://godoc.org/gopkg.in/go-playground/webhooks.v2 for detailed usage docs.
+Please see http://godoc.org/gopkg.in/go-playground/webhooks.v3 for detailed usage docs.
##### Examples:
@@ -46,8 +46,8 @@ import (
"fmt"
"strconv"
- "gopkg.in/go-playground/webhooks.v2"
- "gopkg.in/go-playground/webhooks.v2/github"
+ "gopkg.in/go-playground/webhooks.v3"
+ "gopkg.in/go-playground/webhooks.v3/github"
)
const (
@@ -104,8 +104,8 @@ import (
"fmt"
"strconv"
- "gopkg.in/go-playground/webhooks.v2"
- "gopkg.in/go-playground/webhooks.v2/github"
+ "gopkg.in/go-playground/webhooks.v3"
+ "gopkg.in/go-playground/webhooks.v3/github"
)
const (
diff --git a/bitbucket/bitbucket.go b/bitbucket/bitbucket.go
index 6cb3e55..7629fb3 100644
--- a/bitbucket/bitbucket.go
+++ b/bitbucket/bitbucket.go
@@ -25,23 +25,24 @@ type Event string
// Bitbucket hook types
const (
- RepoPushEvent Event = "repo:push"
- RepoForkEvent Event = "repo:fork"
- RepoCommitCommentCreatedEvent Event = "repo:commit_comment_created"
- RepoCommitStatusCreatedEvent Event = "repo:commit_status_created"
- RepoCommitStatusUpdatedEvent Event = "repo:commit_status_updated"
- IssueCreatedEvent Event = "issue:created"
- IssueUpdatedEvent Event = "issue:updated"
- IssueCommentCreatedEvent Event = "issue:comment_created"
- PullRequestCreatedEvent Event = "pullrequest:created"
- PullRequestUpdatedEvent Event = "pullrequest:updated"
- PullRequestApprovedEvent Event = "pullrequest:approved"
- PullRequestApprovalRemovedEvent Event = "pullrequest:unapproved"
- PullRequestMergedEvent Event = "pullrequest:fulfilled"
- PullRequestDeclinedEvent Event = "pullrequest:rejected"
- PullRequestCommentCreatedEvent Event = "pullrequest:comment_created"
- PullRequestCommentUpdatedEvent Event = "pullrequest:comment_updated"
- PullRequestCommentDeletedEvent Event = "pull_request:comment_deleted"
+ RepoPushEvent Event = "repo:push"
+ RepoForkEvent Event = "repo:fork"
+ RepoUpdatedEvent Event = "repo:updated"
+ RepoCommitCommentCreatedEvent Event = "repo:commit_comment_created"
+ RepoCommitStatusCreatedEvent Event = "repo:commit_status_created"
+ RepoCommitStatusUpdatedEvent Event = "repo:commit_status_updated"
+ IssueCreatedEvent Event = "issue:created"
+ IssueUpdatedEvent Event = "issue:updated"
+ IssueCommentCreatedEvent Event = "issue:comment_created"
+ PullRequestCreatedEvent Event = "pullrequest:created"
+ PullRequestUpdatedEvent Event = "pullrequest:updated"
+ PullRequestApprovedEvent Event = "pullrequest:approved"
+ PullRequestUnapprovedEvent Event = "pullrequest:unapproved"
+ PullRequestMergedEvent Event = "pullrequest:fulfilled"
+ PullRequestDeclinedEvent Event = "pullrequest:rejected"
+ PullRequestCommentCreatedEvent Event = "pullrequest:comment_created"
+ PullRequestCommentUpdatedEvent Event = "pullrequest:comment_updated"
+ PullRequestCommentDeletedEvent Event = "pull_request:comment_deleted"
)
// New creates and returns a WebHook instance denoted by the Provider type
@@ -111,6 +112,10 @@ func (hook Webhook) ParsePayload(w http.ResponseWriter, r *http.Request) {
var pl RepoForkPayload
json.Unmarshal([]byte(payload), &pl)
hook.runProcessPayloadFunc(fn, pl, hd)
+ case RepoUpdatedEvent:
+ var pl RepoUpdatedPayload
+ json.Unmarshal([]byte(payload), &pl)
+ hook.runProcessPayloadFunc(fn, pl, hd)
case RepoCommitCommentCreatedEvent:
var pl RepoCommitCommentCreatedPayload
json.Unmarshal([]byte(payload), &pl)
@@ -147,8 +152,8 @@ func (hook Webhook) ParsePayload(w http.ResponseWriter, r *http.Request) {
var pl PullRequestApprovedPayload
json.Unmarshal([]byte(payload), &pl)
hook.runProcessPayloadFunc(fn, pl, hd)
- case PullRequestApprovalRemovedEvent:
- var pl PullRequestApprovalRemovedPayload
+ case PullRequestUnapprovedEvent:
+ var pl PullRequestUnapprovedPayload
json.Unmarshal([]byte(payload), &pl)
hook.runProcessPayloadFunc(fn, pl, hd)
case PullRequestMergedEvent:
diff --git a/bitbucket/bitbucket_test.go b/bitbucket/bitbucket_test.go
index 485a496..bd7a027 100644
--- a/bitbucket/bitbucket_test.go
+++ b/bitbucket/bitbucket_test.go
@@ -39,7 +39,27 @@ func TestMain(m *testing.M) {
// setup
hook = New(&Config{UUID: "MY_UUID"})
- hook.RegisterEvents(HandlePayload, RepoPushEvent, RepoForkEvent, RepoCommitCommentCreatedEvent, RepoCommitStatusCreatedEvent, RepoCommitStatusUpdatedEvent, IssueCreatedEvent, IssueUpdatedEvent, IssueCommentCreatedEvent, PullRequestCreatedEvent, PullRequestUpdatedEvent, PullRequestApprovedEvent, PullRequestApprovalRemovedEvent, PullRequestMergedEvent, PullRequestDeclinedEvent, PullRequestCommentCreatedEvent, PullRequestCommentUpdatedEvent, PullRequestCommentDeletedEvent)
+ hook.RegisterEvents(
+ HandlePayload,
+ RepoPushEvent,
+ RepoForkEvent,
+ RepoUpdatedEvent,
+ RepoCommitCommentCreatedEvent,
+ RepoCommitStatusCreatedEvent,
+ RepoCommitStatusUpdatedEvent,
+ IssueCreatedEvent,
+ IssueUpdatedEvent,
+ IssueCommentCreatedEvent,
+ PullRequestCreatedEvent,
+ PullRequestUpdatedEvent,
+ PullRequestApprovedEvent,
+ PullRequestUnapprovedEvent,
+ PullRequestMergedEvent,
+ PullRequestDeclinedEvent,
+ PullRequestCommentCreatedEvent,
+ PullRequestCommentUpdatedEvent,
+ PullRequestCommentDeletedEvent,
+ )
go webhooks.Run(hook, "127.0.0.1:"+strconv.Itoa(port), path)
time.Sleep(time.Millisecond * 500)
@@ -445,6 +465,142 @@ func TestRepoFork(t *testing.T) {
Equal(t, resp.StatusCode, http.StatusOK)
}
+func TestRepoUpdated(t *testing.T) {
+
+ payload := `{
+ "actor": {
+ "type": "user",
+ "username": "emmap1",
+ "display_name": "Emma",
+ "uuid": "{a54f16da-24e9-4d7f-a3a7-b1ba2cd98aa3}",
+ "links": {
+ "self": {
+ "href": "https://api.bitbucket.org/api/2.0/users/emmap1"
+ },
+ "html": {
+ "href": "https://api.bitbucket.org/emmap1"
+ },
+ "avatar": {
+ "href": "https://bitbucket-api-assetroot.s3.amazonaws.com/c/photos/2015/Feb/26/3613917261-0-emmap1-avatar_avatar.png"
+ }
+ }
+ },
+ "repository": {
+ "type": "repository",
+ "links": {
+ "self": {
+ "href": "https://api.bitbucket.org/api/2.0/repositories/bitbucket/bitbucket"
+ },
+ "html": {
+ "href": "https://api.bitbucket.org/bitbucket/bitbucket"
+ },
+ "avatar": {
+ "href": "https://api-staging-assetroot.s3.amazonaws.com/c/photos/2014/Aug/01/bitbucket-logo-2629490769-3_avatar.png"
+ }
+ },
+ "uuid": "{673a6070-3421-46c9-9d48-90745f7bfe8e}",
+ "project": {
+ "type": "project",
+ "project": "Untitled project",
+ "uuid": "{3b7898dc-6891-4225-ae60-24613bb83080}",
+ "links": {
+ "html": {
+ "href": "https://bitbucket.org/account/user/teamawesome/projects/proj"
+ },
+ "avatar": {
+ "href": "https://bitbucket.org/account/user/teamawesome/projects/proj/avatar/32"
+ }
+ },
+ "key": "proj"
+ },
+ "full_name": "team_name/repo_name",
+ "name": "repo_name",
+ "website": "https://mywebsite.com/",
+ "owner": {
+ "type": "user",
+ "username": "emmap1",
+ "display_name": "Emma",
+ "uuid": "{a54f16da-24e9-4d7f-a3a7-b1ba2cd98aa3}",
+ "links": {
+ "self": {
+ "href": "https://api.bitbucket.org/api/2.0/users/emmap1"
+ },
+ "html": {
+ "href": "https://api.bitbucket.org/emmap1"
+ },
+ "avatar": {
+ "href": "https://bitbucket-api-assetroot.s3.amazonaws.com/c/photos/2015/Feb/26/3613917261-0-emmap1-avatar_avatar.png"
+ }
+ }
+ },
+ "scm": "git",
+ "is_private": true
+ },
+ "changes": {
+ "name": {
+ "new": "repository",
+ "old": "repository_name"
+ },
+ "website": {
+ "new": "http://www.example.com/",
+ "old": ""
+ },
+ "language": {
+ "new": "java",
+ "old": ""
+ },
+ "links": {
+ "new": {
+ "avatar": {
+ "href": "https://bitbucket.org/teamawesome/repository/avatar/32/"
+ },
+ "self": {
+ "href": "https://api.bitbucket.org/2.0/repositories/teamawesome/repository"
+ },
+ "html": {
+ "href": "https://bitbucket.org/teamawesome/repository"
+ }
+ },
+ "old": {
+ "avatar": {
+ "href": "https://bitbucket.org/teamawesome/repository_name/avatar/32/"
+ },
+ "self": {
+ "href": "https://api.bitbucket.org/2.0/repositories/teamawesome/repository_name"
+ },
+ "html": {
+ "href": "https://bitbucket.org/teamawesome/repository_name"
+ }
+ }
+ },
+ "description": {
+ "new": "This is a better description.",
+ "old": "This is a description."
+ },
+ "full_name": {
+ "new": "teamawesome/repository",
+ "old": "teamawesome/repository_name"
+ }
+ }
+}
+`
+
+ req, err := http.NewRequest("POST", "http://127.0.0.1:3009/webhooks", bytes.NewBuffer([]byte(payload)))
+ req.Header.Set("Content-Type", "application/json")
+ req.Header.Set("X-Hook-UUID", "MY_UUID")
+ req.Header.Set("X-Event-Key", "repo:updated")
+
+ Equal(t, err, nil)
+
+ client := &http.Client{}
+ resp, err := client.Do(req)
+ Equal(t, err, nil)
+
+ defer resp.Body.Close()
+
+ Equal(t, resp.StatusCode, http.StatusOK)
+}
+
func TestRepoCommitCommentCreated(t *testing.T) {
payload := `{
diff --git a/bitbucket/payload.go b/bitbucket/payload.go
index aac6a8a..683914c 100644
--- a/bitbucket/payload.go
+++ b/bitbucket/payload.go
@@ -2,388 +2,508 @@ package bitbucket
import "time"
-// PullRequestCommentDeletedPayload is the Bitbucket pull_request:comment_deleted payload
-type PullRequestCommentDeletedPayload struct {
- Actor User `json:"actor"`
- Repository Repository `json:"repository"`
- PullRequest PullRequest `json:"pullrequest"`
- Comment Comment `json:"comment"`
-}
-
-// PullRequestCommentUpdatedPayload is the Bitbucket pullrequest:comment_updated payload
-type PullRequestCommentUpdatedPayload struct {
- Actor User `json:"actor"`
- Repository Repository `json:"repository"`
- PullRequest PullRequest `json:"pullrequest"`
- Comment Comment `json:"comment"`
-}
-
-// PullRequestCommentCreatedPayload is the Bitbucket pullrequest:comment_created payload
-type PullRequestCommentCreatedPayload struct {
- Actor User `json:"actor"`
- Repository Repository `json:"repository"`
- PullRequest PullRequest `json:"pullrequest"`
- Comment Comment `json:"comment"`
-}
-
-// PullRequestDeclinedPayload is the Bitbucket pullrequest:rejected payload
-type PullRequestDeclinedPayload struct {
- Actor User `json:"actor"`
- PullRequest PullRequest `json:"pullrequest"`
- Repository Repository `json:"repository"`
-}
-
-// PullRequestMergedPayload is the Bitbucket pullrequest:fulfilled payload
-type PullRequestMergedPayload struct {
- Actor User `json:"actor"`
- PullRequest PullRequest `json:"pullrequest"`
- Repository Repository `json:"repository"`
-}
-
-// PullRequestApprovalRemovedPayload is the Bitbucket pullrequest:unapproved payload
-type PullRequestApprovalRemovedPayload struct {
- Actor User `json:"actor"`
- PullRequest PullRequest `json:"pullrequest"`
- Repository Repository `json:"repository"`
- Approval Approval `json:"approval"`
-}
-
-// PullRequestApprovedPayload is the Bitbucket pullrequest:approved payload
-type PullRequestApprovedPayload struct {
- Actor User `json:"actor"`
- PullRequest PullRequest `json:"pullrequest"`
- Repository Repository `json:"repository"`
- Approval Approval `json:"approval"`
-}
-
-// PullRequestUpdatedPayload is the Bitbucket pullrequest:updated payload
-type PullRequestUpdatedPayload struct {
- Actor User `json:"actor"`
- PullRequest PullRequest `json:"pullrequest"`
- Repository Repository `json:"repository"`
-}
-
-// PullRequestCreatedPayload is the Bitbucket pullrequest:created payload
-type PullRequestCreatedPayload struct {
- Actor User `json:"actor"`
- PullRequest PullRequest `json:"pullrequest"`
- Repository Repository `json:"repository"`
-}
-
-// IssueCommentCreatedPayload is the Bitbucket issue:comment_created payload
-type IssueCommentCreatedPayload struct {
- Actor User `json:"actor"`
+// RepoPushPayload is the Bitbucket repo:push payload
+type RepoPushPayload struct {
+ Actor Owner `json:"actor"`
Repository Repository `json:"repository"`
- Issue Issue `json:"issue"`
- Comment Comment `json:"comment"`
-}
-
-// IssueUpdatedPayload is the Bitbucket issue:updated payload
-type IssueUpdatedPayload struct {
- Actor User `json:"actor"`
- Issue Issue `json:"issue"`
- Repository Repository `json:"repository"`
- Comment Comment `json:"comment"`
- Changes IssueChanges `json:"changes"`
-}
-
-// IssueCreatedPayload is the Bitbucket issue:created payload
-type IssueCreatedPayload struct {
- Actor User `json:"actor"`
- Issue Issue `json:"issue"`
- Repository Repository `json:"repository"`
-}
-
-// RepoCommitStatusUpdatedPayload is the Bitbucket repo:commit_status_updated payload
-type RepoCommitStatusUpdatedPayload struct {
- Actor User `json:"actor"`
- Repository Repository `json:"repository"`
- CommitStatus CommitStatus `json:"commit_status"`
-}
-
-// RepoCommitStatusCreatedPayload is the Bitbucket repo:commit_status_created payload
-type RepoCommitStatusCreatedPayload struct {
- Actor User `json:"actor"`
- Repository Repository `json:"repository"`
- CommitStatus CommitStatus `json:"commit_status"`
-}
-
-// RepoCommitCommentCreatedPayload is the Bitbucket repo:commit_comment_created payload
-type RepoCommitCommentCreatedPayload struct {
- Actor User `json:"actor"`
- Comment Comment `json:"comment"`
- Repository Repository `json:"repository"`
- Commit CommitHash `json:"commit"`
+ Push struct {
+ Changes []struct {
+ New struct {
+ Type string `json:"type"`
+ Name string `json:"name"`
+ Target struct {
+ Type string `json:"type"`
+ Hash string `json:"hash"`
+ Author Owner `json:"author"`
+ Message string `json:"message"`
+ Date time.Time `json:"date"`
+ Parents []struct {
+ Type string `json:"type"`
+ Hash string `json:"hash"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"parents"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"target"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ Commits struct {
+ Href string `json:"href"`
+ } `json:"commits"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"new"`
+ Old struct {
+ Type string `json:"type"`
+ Name string `json:"name"`
+ Target struct {
+ Type string `json:"type"`
+ Hash string `json:"hash"`
+ Author Owner `json:"author"`
+ Message string `json:"message"`
+ Date time.Time `json:"date"`
+ Parents []struct {
+ Type string `json:"type"`
+ Hash string `json:"hash"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"parents"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"target"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ Commits struct {
+ Href string `json:"href"`
+ } `json:"commits"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"old"`
+ Links struct {
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ Diff struct {
+ Href string `json:"href"`
+ } `json:"diff"`
+ Commits struct {
+ Href string `json:"href"`
+ } `json:"commits"`
+ } `json:"links"`
+ Created bool `json:"created"`
+ Forced bool `json:"forced"`
+ Closed bool `json:"closed"`
+ Commits []struct {
+ Hash string `json:"hash"`
+ Type string `json:"type"`
+ Message string `json:"message"`
+ Author Owner `json:"author"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
+ } `json:"commits"`
+ Truncated bool `json:"truncated"`
+ } `json:"changes"`
+ } `json:"push"`
}
// RepoForkPayload is the Bitbucket repo:fork payload
type RepoForkPayload struct {
- Actor User `json:"actor"`
+ Actor Owner `json:"actor"`
Repository Repository `json:"repository"`
Fork Repository `json:"fork"`
}
-// RepoPushPayload is the Bitbucket repo:push payload
-type RepoPushPayload struct {
- Actor User `json:"actor"`
+// RepoUpdatedPayload is the Bitbucket repo:updated payload
+type RepoUpdatedPayload struct {
+ Actor Owner `json:"actor"`
Repository Repository `json:"repository"`
- Push Push `json:"push"`
+ Changes struct {
+ Name struct {
+ New string `json:"new"`
+ Old string `json:"old"`
+ } `json:"name"`
+ Website struct {
+ New string `json:"new"`
+ Old string `json:"old"`
+ } `json:"website"`
+ Language struct {
+ New string `json:"new"`
+ Old string `json:"old"`
+ } `json:"language"`
+ Links struct {
+ New struct {
+ Avatar struct {
+ Href string `json:"href"`
+ } `json:"avatar"`
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"new"`
+ Old struct {
+ Avatar struct {
+ Href string `json:"href"`
+ } `json:"avatar"`
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"old"`
+ } `json:"links"`
+ Description struct {
+ New string `json:"new"`
+ Old string `json:"old"`
+ } `json:"description"`
+ FullName struct {
+ New string `json:"new"`
+ Old string `json:"old"`
+ } `json:"full_name"`
+ } `json:"changes"`
}
-// Approval is the common Bitbucket Issue Approval Sub Entity
-type Approval struct {
- Date time.Time `json:"date"`
- User User `json:"user"`
+// RepoCommitCommentCreatedPayload is the Bitbucket repo:commit_comment_created payload
+type RepoCommitCommentCreatedPayload struct {
+ Actor Owner `json:"actor"`
+ Comment Comment `json:"comment"`
+ Repository Repository `json:"repository"`
+ Commit struct {
+ Hash string `json:"hash"`
+ } `json:"commit"`
}
-// IssueChanges is the common Bitbucket Issue Changes Sub Entity
-type IssueChanges struct {
- Status IssueChangeStatus `json:"status"`
+// RepoCommitStatusCreatedPayload is the Bitbucket repo:commit_status_created payload
+type RepoCommitStatusCreatedPayload struct {
+ Actor Owner `json:"actor"`
+ Repository Repository `json:"repository"`
+ CommitStatus struct {
+ Name string `json:"name"`
+ Description string `json:"description"`
+ State string `json:"state"`
+ Key string `json:"key"`
+ URL string `json:"url"`
+ Type string `json:"type"`
+ CreatedOn time.Time `json:"created_on"`
+ UpdatedOn time.Time `json:"updated_on"`
+ Links struct {
+ Commit struct {
+ Href string `json:"href"`
+ } `json:"commit"`
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ } `json:"links"`
+ } `json:"commit_status"`
}
-// IssueChangeStatus is the common Bitbucket Issue Change Status Sub Entity
-type IssueChangeStatus struct {
- Old string `json:"old"`
- New string `json:"new"`
+// RepoCommitStatusUpdatedPayload is the Bitbucket repo:commit_status_updated payload
+type RepoCommitStatusUpdatedPayload struct {
+ Actor Owner `json:"actor"`
+ Repository Repository `json:"repository"`
+ CommitStatus struct {
+ Name string `json:"name"`
+ Description string `json:"description"`
+ State string `json:"state"`
+ Key string `json:"key"`
+ URL string `json:"url"`
+ Type string `json:"type"`
+ CreatedOn time.Time `json:"created_on"`
+ UpdatedOn time.Time `json:"updated_on"`
+ Links struct {
+ Commit struct {
+ Href string `json:"href"`
+ } `json:"commit"`
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ } `json:"links"`
+ } `json:"commit_status"`
}
-// CommitStatus is the common Bitbucket CommitStatus Sub Entity
-type CommitStatus struct {
- Name string `json:"name"`
- Description string `json:"description"`
- State string `json:"state"`
- Key string `json:"key"`
- URL string `json:"url"`
- Type string `json:"type"`
- CreatedOn time.Time `json:"created_on"`
- UpdatedOn time.Time `json:"updated_on"`
- Links LinksSelfCommit `json:"links"`
+// IssueCreatedPayload is the Bitbucket issue:created payload
+type IssueCreatedPayload struct {
+ Actor Owner `json:"actor"`
+ Issue Issue `json:"issue"`
+ Repository Repository `json:"repository"`
}
-// Push is the common Bitbucket Push Sub Entity
-type Push struct {
- Changes []Change `json:"changes"`
+// IssueUpdatedPayload is the Bitbucket issue:updated payload
+type IssueUpdatedPayload struct {
+ Actor Owner `json:"actor"`
+ Issue Issue `json:"issue"`
+ Repository Repository `json:"repository"`
+ Comment Comment `json:"comment"`
+ Changes struct {
+ Status struct {
+ Old string `json:"old"`
+ New string `json:"new"`
+ } `json:"status"`
+ } `json:"changes"`
}
-// Change is the common Bitbucket Change Sub Entity
-type Change struct {
- New ChangeData `json:"new"`
- Old ChangeData `json:"old"`
- Links LinksHTMLDiffCommits `json:"links"`
- Created bool `json:"created"`
- Forced bool `json:"forced"`
- Closed bool `json:"closed"`
- Commits []Commit `json:"commits"`
- Truncated bool `json:"truncated"`
+// IssueCommentCreatedPayload is the Bitbucket pullrequest:created payload
+type IssueCommentCreatedPayload struct {
+ Actor Owner `json:"actor"`
+ Repository Repository `json:"repository"`
+ Issue Issue `json:"issue"`
+ Comment Comment `json:"comment"`
}
-// ChangeData is the common Bitbucket ChangeData Sub Entity
-type ChangeData struct {
- Type string `json:"type"`
- Name string `json:"name"`
- Target Target `json:"target"`
- Links LinksHTMLSelfCommits `json:"links"`
+// PullRequestCreatedPayload is the Bitbucket pullrequest:created payload
+type PullRequestCreatedPayload struct {
+ Actor Owner `json:"actor"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Repository Repository `json:"repository"`
}
-// Target is the common Bitbucket Target Sub Entity
-type Target struct {
- Type string `json:"type"`
- Hash string `json:"hash"`
- Author User `json:"author"`
- Message string `json:"message"`
- Date time.Time `json:"date"`
- Parents []Parent `json:"parents"`
- Links LinksHTMLSelf `json:"links"`
+// PullRequestUpdatedPayload is the Bitbucket pullrequest:updated payload
+type PullRequestUpdatedPayload struct {
+ Actor Owner `json:"actor"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Repository Repository `json:"repository"`
}
-// Parent is the common Bitbucket Parent Sub Entity
-type Parent struct {
- Type string `json:"type"`
- Hash string `json:"hash"`
- Links LinksHTMLSelf `json:"links"`
+// PullRequestApprovedPayload is the Bitbucket pullrequest:approved payload
+type PullRequestApprovedPayload struct {
+ Actor Owner `json:"actor"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Repository Repository `json:"repository"`
+ Approval struct {
+ Date time.Time `json:"date"`
+ User Owner `json:"user"`
+ } `json:"approval"`
}
-// Commit is the common Bitbucket Commit Sub Entity
-type Commit struct {
- Hash string `json:"hash"`
- Type string `json:"type"`
- Message string `json:"message"`
- Author User `json:"author"`
- Links LinksHTMLSelf `json:"links"`
+// PullRequestUnapprovedPayload is the Bitbucket pullrequest:unapproved payload
+type PullRequestUnapprovedPayload struct {
+ Actor Owner `json:"actor"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Repository Repository `json:"repository"`
+ Approval struct {
+ Date time.Time `json:"date"`
+ User Owner `json:"user"`
+ } `json:"approval"`
}
-// User is the common Bitbucket User Entity
-type User struct {
+// PullRequestMergedPayload is the Bitbucket pullrequest:fulfilled payload
+type PullRequestMergedPayload struct {
+ Actor Owner `json:"actor"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Repository Repository `json:"repository"`
+}
+
+// PullRequestDeclinedPayload is the Bitbucket pullrequest:rejected payload
+type PullRequestDeclinedPayload struct {
+ Actor Owner `json:"actor"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Repository Repository `json:"repository"`
+}
+
+// PullRequestCommentCreatedPayload is the Bitbucket pullrequest:comment_updated payload
+type PullRequestCommentCreatedPayload struct {
+ Actor Owner `json:"actor"`
+ Repository Repository `json:"repository"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Comment Comment `json:"comment"`
+}
+
+// PullRequestCommentUpdatedPayload is the Bitbucket pullrequest:comment_created payload
+type PullRequestCommentUpdatedPayload struct {
+ Actor Owner `json:"actor"`
+ Repository Repository `json:"repository"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Comment Comment `json:"comment"`
+}
+
+// PullRequestCommentDeletedPayload is the Bitbucket pullrequest:comment_deleted payload
+type PullRequestCommentDeletedPayload struct {
+ Actor Owner `json:"actor"`
+ Repository Repository `json:"repository"`
+ PullRequest PullRequest `json:"pullrequest"`
+ Comment Comment `json:"comment"`
+}
+
+// Owner is the common Bitbucket Owner Sub Entity
+type Owner struct {
+ Type string `json:"type"`
Username string `json:"username"`
DisplayName string `json:"display_name"`
UUID string `json:"uuid"`
- Links Links `json:"links"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ Avatar struct {
+ Href string `json:"href"`
+ } `json:"avatar"`
+ } `json:"links"`
}
-// Repository is the common Bitbucket Repository Entity
+// Repository is the common Bitbucket Repository Sub Entity
type Repository struct {
- Links Links `json:"links"`
- UUID string `json:"uuid"`
- FullName string `json:"full_name"`
- Name string `json:"name"`
- Scm string `json:"scm"`
- IsPrivate bool `json:"is_private"`
+ Type string `json:"type"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ Avatar struct {
+ Href string `json:"href"`
+ } `json:"avatar"`
+ } `json:"links"`
+ UUID string `json:"uuid"`
+ Project Project `json:"project"`
+ FullName string `json:"full_name"`
+ Name string `json:"name"`
+ Website string `json:"website"`
+ Owner Owner `json:"owner"`
+ Scm string `json:"scm"`
+ IsPrivate bool `json:"is_private"`
}
-// Issue is the common Bitbucket Issue Entity
+// Project is the common Bitbucket Project Sub Entity
+type Project struct {
+ Type string `json:"type"`
+ Project string `json:"project"`
+ UUID string `json:"uuid"`
+ Links struct {
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ Avatar struct {
+ Href string `json:"href"`
+ } `json:"avatar"`
+ } `json:"links"`
+ Key string `json:"key"`
+}
+
+// Issue is the common Bitbucket Issue Sub Entity
type Issue struct {
- ID int64 `json:"id"`
- Component string `json:"component"`
- Title string `json:"title"`
- Content Content `json:"content"`
- Priority string `json:"priority"`
- State string `json:"state"`
- Type string `json:"type"`
- Milestone Milestone `json:"milestone"`
- Version Version `json:"version"`
- CreatedOn time.Time `json:"created_on"`
- UpdatedOn time.Time `json:"updated_on"`
- Links LinksHTMLSelf `json:"links"`
+ ID int64 `json:"id"`
+ Component string `json:"component"`
+ Title string `json:"title"`
+ Content struct {
+ Raw string `json:"raw"`
+ HTML string `json:"html"`
+ Markup string `json:"markup"`
+ } `json:"content"`
+ Priority string `json:"priority"`
+ State string `json:"state"`
+ Type string `json:"type"`
+ Milestone struct {
+ Name string `json:"name"`
+ } `json:"milestone"`
+ Version struct {
+ Name string `json:"name"`
+ } `json:"version"`
+ CreatedOn time.Time `json:"created_on"`
+ UpdatedOn time.Time `json:"updated_on"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
}
-// Comment is the common Bitbucket Comment Entity
+// Comment is the common Bitbucket Comment Sub Entity
type Comment struct {
- ID int64 `json:"id"`
- Parent ParentID `json:"parent"`
- Content Content `json:"content"`
- Inline Inline `json:"inline"`
- CreatedOn time.Time `json:"created_on"`
- UpdatedOn time.Time `json:"updated_on"`
- Links LinksHTMLSelf `json:"links"`
+ ID int64 `json:"id"`
+ Parent struct {
+ ID int64 `json:"id"`
+ } `json:"parent"`
+ Content struct {
+ Raw string `json:"raw"`
+ HTML string `json:"html"`
+ Markup string `json:"markup"`
+ } `json:"content"`
+ Inline struct {
+ Path string `json:"path"`
+ From *int64 `json:"from"`
+ To int64 `json:"to"`
+ } `json:"inline"`
+ CreatedOn time.Time `json:"created_on"`
+ UpdatedOn time.Time `json:"updated_on"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
}
-// PullRequest is the common Bitbucket PullRequest Entity
+// PullRequest is the common Bitbucket Pull Request Sub Entity
type PullRequest struct {
- ID int64 `json:"id"`
- Title string `json:"title"`
- Description string `json:"description"`
- State string `json:"state"`
- Author User `json:"author"`
- Source Source `json:"source"`
- Destination Destination `json:"destination"`
- MergeCommit CommitHash `json:"merge_commit"`
- Participants []User `json:"participants"`
- Reviewers []User `json:"reviewers"`
- CloseSourceBranch bool `json:"close_source_branch"`
- ClosedBy User `json:"closed_by"`
- Reason string `json:"reason"`
- CreatedOn time.Time `json:"created_on"`
- UpdatedOn time.Time `json:"updated_on"`
- Links LinksHTMLSelf `json:"links"`
-}
-
-// Destination is the common Bitbucket Destination Sub Entity
-type Destination struct {
- Branch Branch `json:"branch"`
- Commit CommitHash `json:"commit"`
- Repository Repository `json:"repository"`
-}
-
-// Source is the common Bitbucket Source Sub Entity
-type Source struct {
- Branch Branch `json:"branch"`
- Commit CommitHash `json:"commit"`
- Repository Repository `json:"repository"`
-}
-
-// Branch is the common Bitbucket Branch Sub Entity
-type Branch struct {
- Name string `json:"name"`
-}
-
-// CommitHash is the common Bitbucket CommitHash Sub Entity
-type CommitHash struct {
- Hash string `json:"hash"`
-}
-
-// Inline is the common Bitbucket Inline Sub Entity
-type Inline struct {
- Path string `json:"path"`
- From *int64 `json:"from"`
- To int64 `json:"to"`
-}
-
-// ParentID is the common Bitbucket ParentID Sub Entity
-type ParentID struct {
- ID int64 `json:"id"`
-}
-
-// Avatar is the common Bitbucket Avatar Sub Entity
-type Avatar struct {
- HREF string `json:"href"`
-}
-
-// HTML is the common Bitbucket HTML Sub Entity
-type HTML struct {
- HREF string `json:"href"`
-}
-
-// Self is the common Bitbucket Self Sub Entity
-type Self struct {
- HREF string `json:"href"`
-}
-
-// Diff is the common Bitbucket Diff Sub Entity
-type Diff struct {
- HREF string `json:"href"`
-}
-
-// Commits is the common Bitbucket Commits Sub Entity
-type Commits struct {
- HREF string `json:"href"`
-}
-
-// LinksSelfCommit is the common Bitbucket LinksSelfCommit Sub Entity
-type LinksSelfCommit struct {
- Self Self `json:"self"`
- Commit Commits `json:"commit"`
-}
-
-// LinksHTMLSelfCommits is the common Bitbucket LinksHTMLSelfCommits Sub Entity
-type LinksHTMLSelfCommits struct {
- Self Self `json:"self"`
- Commits Commits `json:"commits"`
- HTML HTML `json:"html"`
-}
-
-// LinksHTMLDiffCommits is the common Bitbucket LinksHTMLDiffCommits Sub Entity
-type LinksHTMLDiffCommits struct {
- HTML HTML `json:"html"`
- Diff Diff `json:"diff"`
- Commits Commits `json:"commits"`
-}
-
-// Links is the common Bitbucket Links Sub Entity
-type Links struct {
- Avatar Avatar `json:"avatar"`
- HTML HTML `json:"html"`
- Self Self `json:"self"`
-}
-
-// LinksHTMLSelf is the common Bitbucket LinksHTMLSelf Sub Entity
-type LinksHTMLSelf struct {
- HTML HTML `json:"html"`
- Self Self `json:"self"`
-}
-
-// Content is the common Bitbucket Content Sub Entity
-type Content struct {
- HTML string `json:"html"`
- Markup string `json:"markup"`
- Raw string `json:"raw"`
-}
-
-// Milestone is the common Bitbucket Milestone Sub Entity
-type Milestone struct {
- Name string `json:"name"`
-}
-
-// Version is the common Bitbucket Version Sub Entity
-type Version struct {
- Name string `json:"name"`
+ ID int64 `json:"id"`
+ Title string `json:"title"`
+ Description string `json:"description"`
+ State string `json:"state"`
+ Author Owner `json:"author"`
+ Source struct {
+ Branch struct {
+ Name string `json:"name"`
+ } `json:"branch"`
+ Commit struct {
+ Hash string `json:"hash"`
+ } `json:"commit"`
+ Repository Repository `json:"repository"`
+ } `json:"source"`
+ Destination struct {
+ Branch struct {
+ Name string `json:"name"`
+ } `json:"branch"`
+ Commit struct {
+ Hash string `json:"hash"`
+ } `json:"commit"`
+ Repository Repository `json:"repository"`
+ } `json:"destination"`
+ MergeCommit struct {
+ Hash string `json:"hash"`
+ } `json:"merge_commit"`
+ Participants []Owner `json:"participants"`
+ Reviewers []Owner `json:"reviewers"`
+ CloseSourceBranch bool `json:"close_source_branch"`
+ ClosedBy Owner `json:"closed_by"`
+ Reason string `json:"reason"`
+ CreatedOn time.Time `json:"created_on"`
+ UpdatedOn time.Time `json:"updated_on"`
+ Links struct {
+ Self struct {
+ Href string `json:"href"`
+ } `json:"self"`
+ HTML struct {
+ Href string `json:"href"`
+ } `json:"html"`
+ } `json:"links"`
}
diff --git a/examples/multiple-handlers/main.go b/examples/multiple-handlers/main.go
index 6aa9d19..9c18641 100644
--- a/examples/multiple-handlers/main.go
+++ b/examples/multiple-handlers/main.go
@@ -33,7 +33,7 @@ func HandleRelease(payload interface{}, header webhooks.Header) {
pl := payload.(github.ReleasePayload)
// only want to compile on full releases
- if pl.Release.Draft || pl.Release.Prelelease || pl.Release.TargetCommitish != "master" {
+ if pl.Release.Draft || pl.Release.Prerelease || pl.Release.TargetCommitish != "master" {
return
}
diff --git a/gitlab/payload.go b/gitlab/payload.go
index 02a40bf..6ebda10 100644
--- a/gitlab/payload.go
+++ b/gitlab/payload.go
@@ -54,15 +54,15 @@ type PushEventPayload struct {
After string `json:"after"`
Ref string `json:"ref"`
CheckoutSHA string `json:"checkout_sha"`
- UserID int `json:"user_id"`
+ UserID int64 `json:"user_id"`
UserName string `json:"user_name"`
UserEmail string `json:"user_email"`
UserAvatar string `json:"user_avatar"`
- ProjectID int `json:"project_id"`
+ ProjectID int64 `json:"project_id"`
Project Project `json:"Project"`
Repository Repository `json:"repository"`
Commits []Commit `json:"commits"`
- TotalCommitsCount int `json:"total_commits_count"`
+ TotalCommitsCount int64 `json:"total_commits_count"`
}
// TagEventPayload contains the information for GitLab's tag push event
@@ -72,14 +72,14 @@ type TagEventPayload struct {
After string `json:"after"`
Ref string `json:"ref"`
CheckoutSHA string `json:"checkout_sha"`
- UserID int `json:"user_id"`
+ UserID int64 `json:"user_id"`
UserName string `json:"user_name"`
UserAvatar string `json:"user_avatar"`
- ProjectID int `json:"project_id"`
+ ProjectID int64 `json:"project_id"`
Project Project `json:"Project"`
Repository Repository `json:"repository"`
Commits []Commit `json:"commits"`
- TotalCommitsCount int `json:"total_commits_count"`
+ TotalCommitsCount int64 `json:"total_commits_count"`
}
// WikiPageEventPayload contains the information for GitLab's wiki created/updated event
@@ -105,7 +105,7 @@ type PipelineEventPayload struct {
type CommentEventPayload struct {
ObjectKind string `json:"object_kind"`
User User `json:"user"`
- ProjectID int `json:"project_id"`
+ ProjectID int64 `json:"project_id"`
Project Project `json:"project"`
Repository Repository `json:"repository"`
ObjectAttributes ObjectAttributes `json:"object_attributes"`
@@ -122,15 +122,15 @@ type BuildEventPayload struct {
Tag bool `json:"tag"`
BeforeSHA string `json:"before_sha"`
SHA string `json:"sha"`
- BuildID int `json:"build_id"`
+ BuildID int64 `json:"build_id"`
BuildName string `json:"build_name"`
BuildStage string `json:"build_stage"`
BuildStatus string `json:"build_status"`
BuildStartedAt customTime `json:"build_started_at"`
BuildFinishedAt customTime `json:"build_finished_at"`
- BuildDuration int `json:"build_duration"`
+ BuildDuration int64 `json:"build_duration"`
BuildAllowFailure bool `json:"build_allow_failure"`
- ProjectID int `json:"project_id"`
+ ProjectID int64 `json:"project_id"`
ProjectName string `json:"project_name"`
User User `json:"user"`
Commit BuildCommit `json:"commit"`
@@ -139,24 +139,24 @@ type BuildEventPayload struct {
// Issue contais all of the GitLab issue information
type Issue struct {
- ID int `json:"id"`
+ ID int64 `json:"id"`
Title string `json:"title"`
- AssigneeID int `json:"assignee_id"`
- AuthorID int `json:"author_id"`
- ProjectID int `json:"project_id"`
+ AssigneeID int64 `json:"assignee_id"`
+ AuthorID int64 `json:"author_id"`
+ ProjectID int64 `json:"project_id"`
CreatedAt customTime `json:"created_at"`
UpdatedAt customTime `json:"updated_at"`
- Position int `json:"position"`
+ Position int64 `json:"position"`
BranchName string `json:"branch_name"`
Description string `json:"description"`
- MilestoneID int `json:"milestone_id"`
+ MilestoneID int64 `json:"milestone_id"`
State string `json:"state"`
- IID int `json:"iid"`
+ IID int64 `json:"iid"`
}
// Build contais all of the GitLab build information
type Build struct {
- ID int `json:"id"`
+ ID int64 `json:"id"`
Stage string `json:"stage"`
Name string `json:"name"`
Status string `json:"status"`
@@ -199,30 +199,30 @@ type Commit struct {
// BuildCommit contais all of the GitLab build commit information
type BuildCommit struct {
- ID int `json:"id"`
+ ID int64 `json:"id"`
SHA string `json:"sha"`
Message string `json:"message"`
AuthorName string `json:"auuthor_name"`
AuthorEmail string `json:"author_email"`
Status string `json:"status"`
- Duration int `json:"duration"`
+ Duration int64 `json:"duration"`
StartedAt customTime `json:"started_at"`
FinishedAt customTime `json:"finished_at"`
}
// Snippet contais all of the GitLab snippet information
type Snippet struct {
- ID int `json:"id"`
+ ID int64 `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
- AuthorID int `json:"author_id"`
- ProjectID int `json:"project_id"`
+ AuthorID int64 `json:"author_id"`
+ ProjectID int64 `json:"project_id"`
CreatedAt customTime `json:"created_at"`
UpdatedAt customTime `json:"updated_at"`
FileName string `json:"file_name"`
ExpiresAt customTime `json:"expires_at"`
Type string `json:"type"`
- VisibilityLevel int `json:"visibility_level"`
+ VisibilityLevel int64 `json:"visibility_level"`
}
// User contais all of the GitLab user information
@@ -241,7 +241,7 @@ type Project struct {
GitSSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"`
- VisibilityLevel int `json:"visibility_level"`
+ VisibilityLevel int64 `json:"visibility_level"`
PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"`
@@ -260,25 +260,25 @@ type Repository struct {
// ObjectAttributes contais all of the GitLab object attributes information
type ObjectAttributes struct {
- ID int `json:"id"`
+ ID int64 `json:"id"`
Title string `json:"title"`
- AssigneeID int `json:"assignee_id"`
- AuthorID int `json:"author_id"`
- ProjectID int `json:"project_id"`
+ AssigneeID int64 `json:"assignee_id"`
+ AuthorID int64 `json:"author_id"`
+ ProjectID int64 `json:"project_id"`
CreatedAt customTime `json:"created_at"`
UpdatedAt customTime `json:"updated_at"`
- Position int `json:"position"`
+ Position int64 `json:"position"`
BranchName string `json:"branch_name"`
Description string `json:"description"`
- MilestoneID int `json:"milestone_id"`
+ MilestoneID int64 `json:"milestone_id"`
State string `json:"state"`
- IID int `json:"iid"`
+ IID int64 `json:"iid"`
URL string `json:"url"`
Action string `json:"action"`
TargetBranch string `json:"target_branch"`
SourceBranch string `json:"source_branch"`
- SourceProjectID int `json:"source_project_id"`
- TargetProjectID int `json:"target_project_id"`
+ SourceProjectID int64 `json:"source_project_id"`
+ TargetProjectID int64 `json:"target_project_id"`
StCommits string `json:"st_commits"`
MergeStatus string `json:"merge_status"`
Content string `json:"content"`
@@ -291,13 +291,13 @@ type ObjectAttributes struct {
BeforeSHA string `json:"before_sha"`
Status string `json:"status"`
Stages []string `json:"stages"`
- Duration int `json:"duration"`
+ Duration int64 `json:"duration"`
Note string `json:"note"`
NotebookType string `json:"noteable_type"`
At customTime `json:"attachment"`
LineCode string `json:"line_code"`
CommitID string `json:"commit_id"`
- NoteableID int `json:"noteable_id"`
+ NoteableID int64 `json:"noteable_id"`
System bool `json:"system"`
WorkInProgress bool `json:"work_in_progress"`
StDiffs []StDiff `json:"st_diffs"`
@@ -309,22 +309,22 @@ type ObjectAttributes struct {
// MergeRequest contais all of the GitLab merge request information
type MergeRequest struct {
- ID int `json:"id"`
+ ID int64 `json:"id"`
TargetBranch string `json:"target_branch"`
SourceBranch string `json:"source_branch"`
SourceProjectID string `json:"source_project_id"`
- AssigneeID int `json:"assignee_id"`
- AuthorID int `json:"author_id"`
+ AssigneeID int64 `json:"assignee_id"`
+ AuthorID int64 `json:"author_id"`
Title string `json:"title"`
CreatedAt customTime `json:"created_at"`
UpdatedAt customTime `json:"updated_at"`
- MilestoneID int `json:"milestone_id"`
+ MilestoneID int64 `json:"milestone_id"`
State string `json:"state"`
MergeStatus string `json:"merge_status"`
- TargetProjectID int `json:"target_project_id"`
- IID int `json:"iid"`
+ TargetProjectID int64 `json:"target_project_id"`
+ IID int64 `json:"iid"`
Description string `json:"description"`
- Position int `json:"position"`
+ Position int64 `json:"position"`
LockedAt customTime `json:"locked_at"`
Source Source `json:"source"`
Target Target `json:"target"`
@@ -361,7 +361,7 @@ type Source struct {
GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"`
- VisibilityLevel int `json:"visibility_level"`
+ VisibilityLevel int64 `json:"visibility_level"`
PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"`
@@ -379,7 +379,7 @@ type Target struct {
GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"`
- VisibilityLevel int `json:"visibility_level"`
+ VisibilityLevel int64 `json:"visibility_level"`
PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"`