diff options
author | Segev Finer <segev208@gmail.com> | 2019-04-17 08:31:08 +0300 |
---|---|---|
committer | techknowlogick <matti@mdranta.net> | 2019-04-17 01:31:08 -0400 |
commit | 34548369e1d78eb1141aecd4ab02acf59f2949ae (patch) | |
tree | 77ab26b7f7c7c4e53b604a8c4eec8d2a502b4af8 /vendor | |
parent | 827ab6b75a70a3cd90033a4d49bb44c635dd3310 (diff) | |
download | gitea-34548369e1d78eb1141aecd4ab02acf59f2949ae.tar.gz gitea-34548369e1d78eb1141aecd4ab02acf59f2949ae.zip |
Add API for manipulating Git hooks (#6436)
* Add API for manipulating Git hooks
Signed-off-by: Segev Finer <segev@codeocean.com>
* Replace code.gitea.io/sdk with PR branch temporarily for CI
* Switch back to code.gitea.io/sdk@master
* Return 403 instead of 404 on no permission to edit hooks in API
* Add tests for Git hooks API
* Update models/repo_list_test.go
Co-Authored-By: segevfiner <segev208@gmail.com>
* Update models/repo_list_test.go
Co-Authored-By: segevfiner <segev208@gmail.com>
* empty line
Diffstat (limited to 'vendor')
-rw-r--r-- | vendor/code.gitea.io/sdk/gitea/git_hook.go | 54 | ||||
-rw-r--r-- | vendor/code.gitea.io/sdk/gitea/gitea.go | 10 | ||||
-rw-r--r-- | vendor/modules.txt | 2 |
3 files changed, 64 insertions, 2 deletions
diff --git a/vendor/code.gitea.io/sdk/gitea/git_hook.go b/vendor/code.gitea.io/sdk/gitea/git_hook.go new file mode 100644 index 0000000000..d47fe1d0ca --- /dev/null +++ b/vendor/code.gitea.io/sdk/gitea/git_hook.go @@ -0,0 +1,54 @@ +// Copyright 2019 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package gitea + +import ( + "bytes" + "encoding/json" + "fmt" +) + +// GitHook represents a Git repository hook +type GitHook struct { + Name string `json:"name"` + IsActive bool `json:"is_active"` + Content string `json:"content,omitempty"` +} + +// GitHookList represents a list of Git hooks +type GitHookList []*GitHook + +// ListRepoGitHooks list all the Git hooks of one repository +func (c *Client) ListRepoGitHooks(user, repo string) (GitHookList, error) { + hooks := make([]*GitHook, 0, 10) + return hooks, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks/git", user, repo), nil, nil, &hooks) +} + +// GetRepoGitHook get a Git hook of a repository +func (c *Client) GetRepoGitHook(user, repo, id string) (*GitHook, error) { + h := new(GitHook) + return h, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/hooks/git/%s", user, repo, id), nil, nil, h) +} + +// EditGitHookOption options when modifying one Git hook +type EditGitHookOption struct { + Content string `json:"content"` +} + +// EditRepoGitHook modify one Git hook of a repository +func (c *Client) EditRepoGitHook(user, repo, id string, opt EditGitHookOption) error { + body, err := json.Marshal(&opt) + if err != nil { + return err + } + _, err = c.getResponse("PATCH", fmt.Sprintf("/repos/%s/%s/hooks/git/%s", user, repo, id), jsonHeader, bytes.NewReader(body)) + return err +} + +// DeleteRepoGitHook delete one Git hook from a repository +func (c *Client) DeleteRepoGitHook(user, repo, id string) error { + _, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/hooks/git/%s", user, repo, id), nil, nil) + return err +} diff --git a/vendor/code.gitea.io/sdk/gitea/gitea.go b/vendor/code.gitea.io/sdk/gitea/gitea.go index d90a6ebc15..fa35e09555 100644 --- a/vendor/code.gitea.io/sdk/gitea/gitea.go +++ b/vendor/code.gitea.io/sdk/gitea/gitea.go @@ -36,6 +36,12 @@ func NewClient(url, token string) *Client { } } +// NewClientWithHTTP creates an API client with a custom http client +func NewClientWithHTTP(url string, httpClient *http.Client) { + client := NewClient(url, "") + client.client = httpClient +} + // SetHTTPClient replaces default http.Client with user given one. func (c *Client) SetHTTPClient(client *http.Client) { c.client = client @@ -51,7 +57,9 @@ func (c *Client) doRequest(method, path string, header http.Header, body io.Read if err != nil { return nil, err } - req.Header.Set("Authorization", "token "+c.accessToken) + if len(c.accessToken) != 0 { + req.Header.Set("Authorization", "token "+c.accessToken) + } if c.sudo != "" { req.Header.Set("Sudo", c.sudo) } diff --git a/vendor/modules.txt b/vendor/modules.txt index 97c9e29794..940b7fc875 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,4 +1,4 @@ -# code.gitea.io/sdk v0.0.0-20190321154058-a669487e86e0 +# code.gitea.io/sdk v0.0.0-20190416172854-7d954d775498 code.gitea.io/sdk/gitea # github.com/BurntSushi/toml v0.3.1 github.com/BurntSushi/toml |