From 8de8ec027d1ca44f889b89a69b26c3a9b599bbb6 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Sat, 24 Dec 2016 14:47:32 -0500 Subject: [PATCH] Update sdk --- .../sdk/gitea/{repo_hook.go => hook.go} | 51 +++++++++++++++++-- .../sdk/gitea/repo_collaborator.go | 31 +++++++++++ vendor/vendor.json | 6 +-- 3 files changed, 82 insertions(+), 6 deletions(-) rename vendor/code.gitea.io/sdk/gitea/{repo_hook.go => hook.go} (81%) diff --git a/vendor/code.gitea.io/sdk/gitea/repo_hook.go b/vendor/code.gitea.io/sdk/gitea/hook.go similarity index 81% rename from vendor/code.gitea.io/sdk/gitea/repo_hook.go rename to vendor/code.gitea.io/sdk/gitea/hook.go index 3367d2abe..d07ccbf43 100644 --- a/vendor/code.gitea.io/sdk/gitea/repo_hook.go +++ b/vendor/code.gitea.io/sdk/gitea/hook.go @@ -30,12 +30,30 @@ type Hook struct { Created time.Time `json:"created_at"` } +// ListOrgHooks list all the hooks of one organization +func (c *Client) ListOrgHooks(org string) ([]*Hook, error) { + hooks := make([]*Hook, 0, 10) + return hooks, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/hooks", org), nil, nil, &hooks) +} + // ListRepoHooks list all the hooks of one repository func (c *Client) ListRepoHooks(user, repo string) ([]*Hook, error) { hooks := make([]*Hook, 0, 10) return hooks, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks", user, repo), nil, nil, &hooks) } +// GetOrgHook get a hook of an organization +func (c *Client) GetOrgHook(org string, id int64) (*Hook, error) { + h := new(Hook) + return h, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/hooks/%d", org, id), nil, nil, h) +} + +// GetRepoHook get a hook of a repository +func (c *Client) GetRepoHook(user, repo string, id int64) (*Hook, error) { + h := new(Hook) + return h, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks/%d", user, repo, id), nil, nil, h) +} + // CreateHookOption options when create a hook type CreateHookOption struct { Type string `json:"type" binding:"Required"` @@ -44,7 +62,17 @@ type CreateHookOption struct { Active bool `json:"active"` } -// CreateRepoHook create one hook with options +// CreateOrgHook create one hook for an organization, with options +func (c *Client) CreateOrgHook(org string, opt CreateHookOption) (*Hook, error) { + body, err := json.Marshal(&opt) + if err != nil { + return nil, err + } + h := new(Hook) + return h, c.getParsedResponse("POST", fmt.Sprintf("/orgs/%s/hooks", org), jsonHeader, bytes.NewReader(body), h) +} + +// CreateRepoHook create one hook for a repository, with options func (c *Client) CreateRepoHook(user, repo string, opt CreateHookOption) (*Hook, error) { body, err := json.Marshal(&opt) if err != nil { @@ -61,7 +89,17 @@ type EditHookOption struct { Active *bool `json:"active"` } -// EditRepoHook modify one hook with hook id and options +// EditOrgHook modify one hook of an organization, with hook id and options +func (c *Client) EditOrgHook(org string, id int64, opt EditHookOption) error { + body, err := json.Marshal(&opt) + if err != nil { + return err + } + _, err = c.getResponse("PATCH", fmt.Sprintf("/orgs/%s/hooks/%d", org, id), jsonHeader, bytes.NewReader(body)) + return err +} + +// EditRepoHook modify one hook of a repository, with hook id and options func (c *Client) EditRepoHook(user, repo string, id int64, opt EditHookOption) error { body, err := json.Marshal(&opt) if err != nil { @@ -71,7 +109,14 @@ func (c *Client) EditRepoHook(user, repo string, id int64, opt EditHookOption) e return err } -// DeleteRepoHook delete one hook with hook id +// DeleteOrgHook delete one hook from an organization, with hook id +func (c *Client) DeleteOrgHook(org string, id int64) error { + _, err := c.getResponse("DELETE", fmt.Sprintf("/org/%s/hooks/%d", org, id), nil, nil) + return err +} + + +// DeleteRepoHook delete one hook from a repository, with hook id func (c *Client) DeleteRepoHook(user, repo string, id int64) error { _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/hooks/%d", user, repo, id), nil, nil) return err diff --git a/vendor/code.gitea.io/sdk/gitea/repo_collaborator.go b/vendor/code.gitea.io/sdk/gitea/repo_collaborator.go index 82f6f8f77..546f2476e 100644 --- a/vendor/code.gitea.io/sdk/gitea/repo_collaborator.go +++ b/vendor/code.gitea.io/sdk/gitea/repo_collaborator.go @@ -10,6 +10,29 @@ import ( "fmt" ) +// ListCollaborators list a repository's collaborators +func (c *Client) ListCollaborators(user, repo string) ([]*User, error) { + collaborators := make([]*User, 0, 10) + err := c.getParsedResponse("GET", + fmt.Sprintf("/repos/%s/%s/collaborators", user, repo), + nil, nil, &collaborators) + return collaborators, err +} + +// IsCollaborator check if a user is a collaborator of a repository +func (c *Client) IsCollaborator(user, repo, collaborator string) (bool, error) { + status, err := c.getStatusCode("GET", + fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), + nil, nil) + if err != nil { + return false, err + } + if status == 204 { + return true, nil + } + return false, nil +} + // AddCollaboratorOption options when add some user as a collaborator of a repository type AddCollaboratorOption struct { Permission *string `json:"permission"` @@ -24,3 +47,11 @@ func (c *Client) AddCollaborator(user, repo, collaborator string, opt AddCollabo _, err = c.getResponse("PUT", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), nil, bytes.NewReader(body)) return err } + +// DeleteCollaborator remove a collaborator from a repository +func (c *Client) DeleteCollaborator(user, repo, collaborator string) error { + _, err := c.getResponse("DELETE", + fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), + nil, nil) + return err +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 5545a121a..0ffec82b1 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -9,10 +9,10 @@ "revisionTime": "2016-12-22T08:49:21Z" }, { - "checksumSHA1": "KZEYDYPzVc12f0770V++kIHhfa0=", + "checksumSHA1": "dnGaLR7sd9D5YpQZP4QUGZiEq+c=", "path": "code.gitea.io/sdk/gitea", - "revision": "76837c0ea4b9b9a011e7bb04d79e3d20caf1a45c", - "revisionTime": "2016-12-15T16:13:48Z" + "revision": "d628d07f7377c2c10df5e0292370b21d9ac689eb", + "revisionTime": "2016-12-24T02:50:46Z" }, { "checksumSHA1": "IyfS7Rbl6OgR83QR7TOfKdDCq+M=",