summaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
authorSegev Finer <segev208@gmail.com>2019-04-17 08:31:08 +0300
committertechknowlogick <matti@mdranta.net>2019-04-17 01:31:08 -0400
commit34548369e1d78eb1141aecd4ab02acf59f2949ae (patch)
tree77ab26b7f7c7c4e53b604a8c4eec8d2a502b4af8 /vendor
parent827ab6b75a70a3cd90033a4d49bb44c635dd3310 (diff)
downloadgitea-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.go54
-rw-r--r--vendor/code.gitea.io/sdk/gitea/gitea.go10
-rw-r--r--vendor/modules.txt2
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