mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Add support to migrate from gogs (#14342)
Add support to migrate gogs: * issues * comments * labels * milestones * wiki Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										25
									
								
								vendor/github.com/gogs/go-gogs-client/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/gogs/go-gogs-client/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# Compiled Object files, Static and Dynamic libs (Shared Objects)
 | 
			
		||||
*.o
 | 
			
		||||
*.a
 | 
			
		||||
*.so
 | 
			
		||||
 | 
			
		||||
# Folders
 | 
			
		||||
_obj
 | 
			
		||||
_test
 | 
			
		||||
 | 
			
		||||
# Architecture specific extensions/prefixes
 | 
			
		||||
*.[568vq]
 | 
			
		||||
[568vq].out
 | 
			
		||||
 | 
			
		||||
*.cgo1.go
 | 
			
		||||
*.cgo2.c
 | 
			
		||||
_cgo_defun.c
 | 
			
		||||
_cgo_gotypes.go
 | 
			
		||||
_cgo_export.*
 | 
			
		||||
 | 
			
		||||
_testmain.go
 | 
			
		||||
 | 
			
		||||
*.exe
 | 
			
		||||
*.test
 | 
			
		||||
*.prof
 | 
			
		||||
.idea
 | 
			
		||||
							
								
								
									
										22
									
								
								vendor/github.com/gogs/go-gogs-client/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/gogs/go-gogs-client/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2014 Go Git Service
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/gogs/go-gogs-client/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/gogs/go-gogs-client/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
Gogs API client in Go
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
This package is still in experiment, see [Wiki](https://github.com/gogits/go-gogs-client/wiki) for documentation.
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
This project is under the MIT License. See the [LICENSE](https://github.com/gogits/gogs/blob/master/LICENSE) file for the full license text.
 | 
			
		||||
							
								
								
									
										43
									
								
								vendor/github.com/gogs/go-gogs-client/admin_org.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								vendor/github.com/gogs/go-gogs-client/admin_org.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminCreateOrg(user string, opt CreateOrgOption) (*Organization, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	org := new(Organization)
 | 
			
		||||
	return org, c.getParsedResponse("POST", fmt.Sprintf("/admin/users/%s/orgs", user),
 | 
			
		||||
		jsonHeader, bytes.NewReader(body), org)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminCreateTeam(user string, opt CreateTeamOption) (*Team, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	team := new(Team)
 | 
			
		||||
	return team, c.getParsedResponse("POST", fmt.Sprintf("/admin/orgs/%s/teams", user),
 | 
			
		||||
		jsonHeader, bytes.NewReader(body), team)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminAddTeamMembership(teamID int64, user string) error {
 | 
			
		||||
	_, err := c.getResponse("PUT", fmt.Sprintf("/admin/teams/%d/members/%s", teamID, user),
 | 
			
		||||
		jsonHeader, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminAddTeamRepository(teamID int64, repo string) error {
 | 
			
		||||
	_, err := c.getResponse("PUT", fmt.Sprintf("/admin/teams/%d/repos/%s", teamID, repo),
 | 
			
		||||
		jsonHeader, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								vendor/github.com/gogs/go-gogs-client/admin_repo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/gogs/go-gogs-client/admin_repo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminCreateRepo(user string, opt CreateRepoOption) (*Repository, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	return repo, c.getParsedResponse("POST", fmt.Sprintf("/admin/users/%s/repos", user),
 | 
			
		||||
		jsonHeader, bytes.NewReader(body), repo)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										68
									
								
								vendor/github.com/gogs/go-gogs-client/admin_user.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								vendor/github.com/gogs/go-gogs-client/admin_user.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type CreateUserOption struct {
 | 
			
		||||
	SourceID   int64  `json:"source_id"`
 | 
			
		||||
	LoginName  string `json:"login_name"`
 | 
			
		||||
	Username   string `json:"username" binding:"Required;AlphaDashDot;MaxSize(35)"`
 | 
			
		||||
	FullName   string `json:"full_name" binding:"MaxSize(100)"`
 | 
			
		||||
	Email      string `json:"email" binding:"Required;Email;MaxSize(254)"`
 | 
			
		||||
	Password   string `json:"password" binding:"MaxSize(255)"`
 | 
			
		||||
	SendNotify bool   `json:"send_notify"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminCreateUser(opt CreateUserOption) (*User, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	user := new(User)
 | 
			
		||||
	return user, c.getParsedResponse("POST", "/admin/users", jsonHeader, bytes.NewReader(body), user)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditUserOption struct {
 | 
			
		||||
	SourceID         int64  `json:"source_id"`
 | 
			
		||||
	LoginName        string `json:"login_name"`
 | 
			
		||||
	FullName         string `json:"full_name" binding:"MaxSize(100)"`
 | 
			
		||||
	Email            string `json:"email" binding:"Required;Email;MaxSize(254)"`
 | 
			
		||||
	Password         string `json:"password" binding:"MaxSize(255)"`
 | 
			
		||||
	Website          string `json:"website" binding:"MaxSize(50)"`
 | 
			
		||||
	Location         string `json:"location" binding:"MaxSize(50)"`
 | 
			
		||||
	Active           *bool  `json:"active"`
 | 
			
		||||
	Admin            *bool  `json:"admin"`
 | 
			
		||||
	AllowGitHook     *bool  `json:"allow_git_hook"`
 | 
			
		||||
	AllowImportLocal *bool  `json:"allow_import_local"`
 | 
			
		||||
	MaxRepoCreation  *int   `json:"max_repo_creation"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminEditUser(user string, opt EditUserOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PATCH", fmt.Sprintf("/admin/users/%s", user), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminDeleteUser(user string) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/admin/users/%s", user), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AdminCreateUserPublicKey(user string, opt CreateKeyOption) (*PublicKey, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	key := new(PublicKey)
 | 
			
		||||
	return key, c.getParsedResponse("POST", fmt.Sprintf("/admin/users/%s/keys", user), jsonHeader, bytes.NewReader(body), key)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										90
									
								
								vendor/github.com/gogs/go-gogs-client/gogs.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/gogs/go-gogs-client/gogs.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
// Copyright 2014 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func Version() string {
 | 
			
		||||
	return "0.13.0"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Client represents a Gogs API client.
 | 
			
		||||
type Client struct {
 | 
			
		||||
	url         string
 | 
			
		||||
	accessToken string
 | 
			
		||||
	client      *http.Client
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewClient initializes and returns an API client.
 | 
			
		||||
func NewClient(url, token string) *Client {
 | 
			
		||||
	return &Client{
 | 
			
		||||
		url:         strings.TrimSuffix(url, "/"),
 | 
			
		||||
		accessToken: token,
 | 
			
		||||
		client:      &http.Client{},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SetHTTPClient replaces default http.Client with user given one.
 | 
			
		||||
func (c *Client) SetHTTPClient(client *http.Client) {
 | 
			
		||||
	c.client = client
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) doRequest(method, path string, header http.Header, body io.Reader) (*http.Response, error) {
 | 
			
		||||
	req, err := http.NewRequest(method, c.url+"/api/v1"+path, body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	req.Header.Set("Authorization", "token "+c.accessToken)
 | 
			
		||||
	for k, v := range header {
 | 
			
		||||
		req.Header[k] = v
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return c.client.Do(req)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) getResponse(method, path string, header http.Header, body io.Reader) ([]byte, error) {
 | 
			
		||||
	resp, err := c.doRequest(method, path, header, body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
 | 
			
		||||
	data, err := ioutil.ReadAll(resp.Body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch resp.StatusCode {
 | 
			
		||||
	case 403:
 | 
			
		||||
		return nil, errors.New("403 Forbidden")
 | 
			
		||||
	case 404:
 | 
			
		||||
		return nil, errors.New("404 Not Found")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode/100 != 2 {
 | 
			
		||||
		errMap := make(map[string]interface{})
 | 
			
		||||
		if err = json.Unmarshal(data, &errMap); err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		return nil, errors.New(errMap["message"].(string))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return data, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) getParsedResponse(method, path string, header http.Header, body io.Reader, obj interface{}) error {
 | 
			
		||||
	data, err := c.getResponse(method, path, header, body)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	return json.Unmarshal(data, obj)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										103
									
								
								vendor/github.com/gogs/go-gogs-client/issue.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								vendor/github.com/gogs/go-gogs-client/issue.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type StateType string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	STATE_OPEN   StateType = "open"
 | 
			
		||||
	STATE_CLOSED StateType = "closed"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type PullRequestMeta struct {
 | 
			
		||||
	HasMerged bool       `json:"merged"`
 | 
			
		||||
	Merged    *time.Time `json:"merged_at"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Issue struct {
 | 
			
		||||
	ID        int64      `json:"id"`
 | 
			
		||||
	Index     int64      `json:"number"`
 | 
			
		||||
	Poster    *User      `json:"user"`
 | 
			
		||||
	Title     string     `json:"title"`
 | 
			
		||||
	Body      string     `json:"body"`
 | 
			
		||||
	Labels    []*Label   `json:"labels"`
 | 
			
		||||
	Milestone *Milestone `json:"milestone"`
 | 
			
		||||
	Assignee  *User      `json:"assignee"`
 | 
			
		||||
	State     StateType  `json:"state"`
 | 
			
		||||
	Comments  int        `json:"comments"`
 | 
			
		||||
	Created   time.Time  `json:"created_at"`
 | 
			
		||||
	Updated   time.Time  `json:"updated_at"`
 | 
			
		||||
 | 
			
		||||
	PullRequest *PullRequestMeta `json:"pull_request"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ListIssueOption struct {
 | 
			
		||||
	Page  int
 | 
			
		||||
	State string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListIssues(opt ListIssueOption) ([]*Issue, error) {
 | 
			
		||||
	issues := make([]*Issue, 0, 10)
 | 
			
		||||
	return issues, c.getParsedResponse("GET", fmt.Sprintf("/issues?page=%d&state=%s", opt.Page, opt.State), nil, nil, &issues)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListUserIssues(opt ListIssueOption) ([]*Issue, error) {
 | 
			
		||||
	issues := make([]*Issue, 0, 10)
 | 
			
		||||
	return issues, c.getParsedResponse("GET", fmt.Sprintf("/user/issues?page=%d&state=%s", opt.Page, opt.State), nil, nil, &issues)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListRepoIssues(owner, repo string, opt ListIssueOption) ([]*Issue, error) {
 | 
			
		||||
	issues := make([]*Issue, 0, 10)
 | 
			
		||||
	return issues, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues?page=%d&state=%s", owner, repo, opt.Page, opt.State), nil, nil, &issues)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetIssue(owner, repo string, index int64) (*Issue, error) {
 | 
			
		||||
	issue := new(Issue)
 | 
			
		||||
	return issue, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index), nil, nil, issue)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateIssueOption struct {
 | 
			
		||||
	Title     string  `json:"title" binding:"Required"`
 | 
			
		||||
	Body      string  `json:"body"`
 | 
			
		||||
	Assignee  string  `json:"assignee"`
 | 
			
		||||
	Milestone int64   `json:"milestone"`
 | 
			
		||||
	Labels    []int64 `json:"labels"`
 | 
			
		||||
	Closed    bool    `json:"closed"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateIssue(owner, repo string, opt CreateIssueOption) (*Issue, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	issue := new(Issue)
 | 
			
		||||
	return issue, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues", owner, repo),
 | 
			
		||||
		jsonHeader, bytes.NewReader(body), issue)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditIssueOption struct {
 | 
			
		||||
	Title     string  `json:"title"`
 | 
			
		||||
	Body      *string `json:"body"`
 | 
			
		||||
	Assignee  *string `json:"assignee"`
 | 
			
		||||
	Milestone *int64  `json:"milestone"`
 | 
			
		||||
	State     *string `json:"state"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) EditIssue(owner, repo string, index int64, opt EditIssueOption) (*Issue, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	issue := new(Issue)
 | 
			
		||||
	return issue, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/issues/%d", owner, repo, index),
 | 
			
		||||
		jsonHeader, bytes.NewReader(body), issue)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										70
									
								
								vendor/github.com/gogs/go-gogs-client/issue_comment.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								vendor/github.com/gogs/go-gogs-client/issue_comment.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Comment represents a comment in commit and issue page.
 | 
			
		||||
type Comment struct {
 | 
			
		||||
	ID      int64     `json:"id"`
 | 
			
		||||
	HTMLURL string    `json:"html_url"`
 | 
			
		||||
	Poster  *User     `json:"user"`
 | 
			
		||||
	Body    string    `json:"body"`
 | 
			
		||||
	Created time.Time `json:"created_at"`
 | 
			
		||||
	Updated time.Time `json:"updated_at"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ListIssueComments list comments on an issue.
 | 
			
		||||
func (c *Client) ListIssueComments(owner, repo string, index int64) ([]*Comment, error) {
 | 
			
		||||
	comments := make([]*Comment, 0, 10)
 | 
			
		||||
	return comments, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d/comments", owner, repo, index), nil, nil, &comments)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ListRepoIssueComments list comments for a given repo.
 | 
			
		||||
func (c *Client) ListRepoIssueComments(owner, repo string) ([]*Comment, error) {
 | 
			
		||||
	comments := make([]*Comment, 0, 10)
 | 
			
		||||
	return comments, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/comments", owner, repo), nil, nil, &comments)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateIssueCommentOption is option when creating an issue comment.
 | 
			
		||||
type CreateIssueCommentOption struct {
 | 
			
		||||
	Body string `json:"body" binding:"Required"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateIssueComment create comment on an issue.
 | 
			
		||||
func (c *Client) CreateIssueComment(owner, repo string, index int64, opt CreateIssueCommentOption) (*Comment, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	comment := new(Comment)
 | 
			
		||||
	return comment, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/comments", owner, repo, index), jsonHeader, bytes.NewReader(body), comment)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EditIssueCommentOption is option when editing an issue comment.
 | 
			
		||||
type EditIssueCommentOption struct {
 | 
			
		||||
	Body string `json:"body" binding:"Required"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EditIssueComment edits an issue comment.
 | 
			
		||||
func (c *Client) EditIssueComment(owner, repo string, index, commentID int64, opt EditIssueCommentOption) (*Comment, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	comment := new(Comment)
 | 
			
		||||
	return comment, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/issues/%d/comments/%d", owner, repo, index, commentID), jsonHeader, bytes.NewReader(body), comment)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeleteIssueComment deletes an issue comment.
 | 
			
		||||
func (c *Client) DeleteIssueComment(owner, repo string, index, commentID int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/comments/%d", owner, repo, index, commentID), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										99
									
								
								vendor/github.com/gogs/go-gogs-client/issue_label.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								vendor/github.com/gogs/go-gogs-client/issue_label.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Label struct {
 | 
			
		||||
	ID    int64  `json:"id"`
 | 
			
		||||
	Name  string `json:"name"`
 | 
			
		||||
	Color string `json:"color"`
 | 
			
		||||
	URL   string `json:"url"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListRepoLabels(owner, repo string) ([]*Label, error) {
 | 
			
		||||
	labels := make([]*Label, 0, 10)
 | 
			
		||||
	return labels, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/labels", owner, repo), nil, nil, &labels)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetRepoLabel(owner, repo string, id int64) (*Label, error) {
 | 
			
		||||
	label := new(Label)
 | 
			
		||||
	return label, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/labels/%d", owner, repo, id), nil, nil, label)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateLabelOption struct {
 | 
			
		||||
	Name  string `json:"name" binding:"Required"`
 | 
			
		||||
	Color string `json:"color" binding:"Required;Size(7)"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateLabel(owner, repo string, opt CreateLabelOption) (*Label, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	label := new(Label)
 | 
			
		||||
	return label, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/labels", owner, repo),
 | 
			
		||||
		jsonHeader, bytes.NewReader(body), label)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditLabelOption struct {
 | 
			
		||||
	Name  *string `json:"name"`
 | 
			
		||||
	Color *string `json:"color"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) EditLabel(owner, repo string, id int64, opt EditLabelOption) (*Label, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	label := new(Label)
 | 
			
		||||
	return label, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/labels/%d", owner, repo, id), jsonHeader, bytes.NewReader(body), label)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) DeleteLabel(owner, repo string, id int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/labels/%d", owner, repo, id), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type IssueLabelsOption struct {
 | 
			
		||||
	Labels []int64 `json:"labels"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetIssueLabels(owner, repo string, index int64) ([]*Label, error) {
 | 
			
		||||
	labels := make([]*Label, 0, 5)
 | 
			
		||||
	return labels, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), nil, nil, &labels)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AddIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	labels := make([]*Label, 0)
 | 
			
		||||
	return labels, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), jsonHeader, bytes.NewReader(body), &labels)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ReplaceIssueLabels(owner, repo string, index int64, opt IssueLabelsOption) ([]*Label, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	labels := make([]*Label, 0)
 | 
			
		||||
	return labels, c.getParsedResponse("PUT", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), jsonHeader, bytes.NewReader(body), &labels)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) DeleteIssueLabel(owner, repo string, index, label int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/labels/%d", owner, repo, index, label), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ClearIssueLabels(owner, repo string, index int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/issues/%d/labels", owner, repo, index), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										69
									
								
								vendor/github.com/gogs/go-gogs-client/issue_milestone.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								vendor/github.com/gogs/go-gogs-client/issue_milestone.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Milestone struct {
 | 
			
		||||
	ID           int64      `json:"id"`
 | 
			
		||||
	Title        string     `json:"title"`
 | 
			
		||||
	Description  string     `json:"description"`
 | 
			
		||||
	State        StateType  `json:"state"`
 | 
			
		||||
	OpenIssues   int        `json:"open_issues"`
 | 
			
		||||
	ClosedIssues int        `json:"closed_issues"`
 | 
			
		||||
	Closed       *time.Time `json:"closed_at"`
 | 
			
		||||
	Deadline     *time.Time `json:"due_on"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListRepoMilestones(owner, repo string) ([]*Milestone, error) {
 | 
			
		||||
	milestones := make([]*Milestone, 0, 10)
 | 
			
		||||
	return milestones, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/milestones", owner, repo), nil, nil, &milestones)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetMilestone(owner, repo string, id int64) (*Milestone, error) {
 | 
			
		||||
	milestone := new(Milestone)
 | 
			
		||||
	return milestone, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/milestones/%d", owner, repo, id), nil, nil, milestone)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateMilestoneOption struct {
 | 
			
		||||
	Title       string     `json:"title"`
 | 
			
		||||
	Description string     `json:"description"`
 | 
			
		||||
	Deadline    *time.Time `json:"due_on"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateMilestone(owner, repo string, opt CreateMilestoneOption) (*Milestone, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	milestone := new(Milestone)
 | 
			
		||||
	return milestone, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/milestones", owner, repo), jsonHeader, bytes.NewReader(body), milestone)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditMilestoneOption struct {
 | 
			
		||||
	Title       string     `json:"title"`
 | 
			
		||||
	Description *string    `json:"description"`
 | 
			
		||||
	State       *string    `json:"state"`
 | 
			
		||||
	Deadline    *time.Time `json:"due_on"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) EditMilestone(owner, repo string, id int64, opt EditMilestoneOption) (*Milestone, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	milestone := new(Milestone)
 | 
			
		||||
	return milestone, c.getParsedResponse("PATCH", fmt.Sprintf("/repos/%s/%s/milestones/%d", owner, repo, id), jsonHeader, bytes.NewReader(body), milestone)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) DeleteMilestone(owner, repo string, id int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/milestones/%d", owner, repo, id), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								vendor/github.com/gogs/go-gogs-client/media_types.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/gogs/go-gogs-client/media_types.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
// Copyright 2018 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	MediaApplicationSHA = "application/vnd.gogs.sha"
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										10
									
								
								vendor/github.com/gogs/go-gogs-client/miscellaneous.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/gogs/go-gogs-client/miscellaneous.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
type MarkdownOption struct {
 | 
			
		||||
	Text    string
 | 
			
		||||
	Context string
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										69
									
								
								vendor/github.com/gogs/go-gogs-client/org.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								vendor/github.com/gogs/go-gogs-client/org.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Organization struct {
 | 
			
		||||
	ID          int64  `json:"id"`
 | 
			
		||||
	UserName    string `json:"username"`
 | 
			
		||||
	FullName    string `json:"full_name"`
 | 
			
		||||
	AvatarUrl   string `json:"avatar_url"`
 | 
			
		||||
	Description string `json:"description"`
 | 
			
		||||
	Website     string `json:"website"`
 | 
			
		||||
	Location    string `json:"location"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListMyOrgs() ([]*Organization, error) {
 | 
			
		||||
	orgs := make([]*Organization, 0, 5)
 | 
			
		||||
	return orgs, c.getParsedResponse("GET", "/user/orgs", nil, nil, &orgs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListUserOrgs(user string) ([]*Organization, error) {
 | 
			
		||||
	orgs := make([]*Organization, 0, 5)
 | 
			
		||||
	return orgs, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/orgs", user), nil, nil, &orgs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetOrg(orgname string) (*Organization, error) {
 | 
			
		||||
	org := new(Organization)
 | 
			
		||||
	return org, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s", orgname), nil, nil, org)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateOrgOption struct {
 | 
			
		||||
	UserName    string `json:"username" binding:"Required"`
 | 
			
		||||
	FullName    string `json:"full_name"`
 | 
			
		||||
	Description string `json:"description"`
 | 
			
		||||
	Website     string `json:"website"`
 | 
			
		||||
	Location    string `json:"location"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditOrgOption struct {
 | 
			
		||||
	FullName    string `json:"full_name"`
 | 
			
		||||
	Description string `json:"description"`
 | 
			
		||||
	Website     string `json:"website"`
 | 
			
		||||
	Location    string `json:"location"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateOrg(opt CreateOrgOption) (*Organization, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	org := new(Organization)
 | 
			
		||||
	return org, c.getParsedResponse("POST", "/user/orgs", jsonHeader, bytes.NewReader(body), org)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) EditOrg(orgname string, opt EditOrgOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PATCH", fmt.Sprintf("/orgs/%s", orgname), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								vendor/github.com/gogs/go-gogs-client/org_member.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								vendor/github.com/gogs/go-gogs-client/org_member.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type AddOrgMembershipOption struct {
 | 
			
		||||
	Role string `json:"role" binding:"Required"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AddOrgMembership(org, user string, opt AddOrgMembershipOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PUT", fmt.Sprintf("/orgs/%s/membership/%s", org, user), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								vendor/github.com/gogs/go-gogs-client/org_team.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/gogs/go-gogs-client/org_team.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
 | 
			
		||||
type Team struct {
 | 
			
		||||
	ID          int64  `json:"id"`
 | 
			
		||||
	Name        string `json:"name"`
 | 
			
		||||
	Description string `json:"description"`
 | 
			
		||||
	Permission  string `json:"permission"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateTeamOption struct {
 | 
			
		||||
	Name        string `json:"name" binding:"Required;AlphaDashDot;MaxSize(30)"`
 | 
			
		||||
	Description string `json:"description" binding:"MaxSize(255)"`
 | 
			
		||||
	Permission  string `json:"permission"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListTeams(name string) ([]*Team, error) {
 | 
			
		||||
	teams := make([]*Team, 0, 5)
 | 
			
		||||
	return teams, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/teams", name), nil, nil, &teams)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								vendor/github.com/gogs/go-gogs-client/pull.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								vendor/github.com/gogs/go-gogs-client/pull.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// PullRequest represents a pull reqesut API object.
 | 
			
		||||
type PullRequest struct {
 | 
			
		||||
	// Copied from issue.go
 | 
			
		||||
	ID        int64      `json:"id"`
 | 
			
		||||
	Index     int64      `json:"number"`
 | 
			
		||||
	Poster    *User      `json:"user"`
 | 
			
		||||
	Title     string     `json:"title"`
 | 
			
		||||
	Body      string     `json:"body"`
 | 
			
		||||
	Labels    []*Label   `json:"labels"`
 | 
			
		||||
	Milestone *Milestone `json:"milestone"`
 | 
			
		||||
	Assignee  *User      `json:"assignee"`
 | 
			
		||||
	State     StateType  `json:"state"`
 | 
			
		||||
	Comments  int        `json:"comments"`
 | 
			
		||||
 | 
			
		||||
	HeadBranch string      `json:"head_branch"`
 | 
			
		||||
	HeadRepo   *Repository `json:"head_repo"`
 | 
			
		||||
	BaseBranch string      `json:"base_branch"`
 | 
			
		||||
	BaseRepo   *Repository `json:"base_repo"`
 | 
			
		||||
 | 
			
		||||
	HTMLURL string `json:"html_url"`
 | 
			
		||||
 | 
			
		||||
	Mergeable      *bool      `json:"mergeable"`
 | 
			
		||||
	HasMerged      bool       `json:"merged"`
 | 
			
		||||
	Merged         *time.Time `json:"merged_at"`
 | 
			
		||||
	MergedCommitID *string    `json:"merge_commit_sha"`
 | 
			
		||||
	MergedBy       *User      `json:"merged_by"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								vendor/github.com/gogs/go-gogs-client/release.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/gogs/go-gogs-client/release.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
// Copyright 2017 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Release represents a release API object.
 | 
			
		||||
type Release struct {
 | 
			
		||||
	ID              int64     `json:"id"`
 | 
			
		||||
	TagName         string    `json:"tag_name"`
 | 
			
		||||
	TargetCommitish string    `json:"target_commitish"`
 | 
			
		||||
	Name            string    `json:"name"`
 | 
			
		||||
	Body            string    `json:"body"`
 | 
			
		||||
	Draft           bool      `json:"draft"`
 | 
			
		||||
	Prerelease      bool      `json:"prerelease"`
 | 
			
		||||
	Author          *User     `json:"author"`
 | 
			
		||||
	Created         time.Time `json:"created_at"`
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										172
									
								
								vendor/github.com/gogs/go-gogs-client/repo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								vendor/github.com/gogs/go-gogs-client/repo.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,172 @@
 | 
			
		||||
// Copyright 2014 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Permission represents a API permission.
 | 
			
		||||
type Permission struct {
 | 
			
		||||
	Admin bool `json:"admin"`
 | 
			
		||||
	Push  bool `json:"push"`
 | 
			
		||||
	Pull  bool `json:"pull"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Repository represents a API repository.
 | 
			
		||||
type Repository struct {
 | 
			
		||||
	ID            int64       `json:"id"`
 | 
			
		||||
	Owner         *User       `json:"owner"`
 | 
			
		||||
	Name          string      `json:"name"`
 | 
			
		||||
	FullName      string      `json:"full_name"`
 | 
			
		||||
	Description   string      `json:"description"`
 | 
			
		||||
	Private       bool        `json:"private"`
 | 
			
		||||
	Unlisted      bool        `json:"unlisted"`
 | 
			
		||||
	Fork          bool        `json:"fork"`
 | 
			
		||||
	Parent        *Repository `json:"parent"`
 | 
			
		||||
	Empty         bool        `json:"empty"`
 | 
			
		||||
	Mirror        bool        `json:"mirror"`
 | 
			
		||||
	Size          int64       `json:"size"`
 | 
			
		||||
	HTMLURL       string      `json:"html_url"`
 | 
			
		||||
	SSHURL        string      `json:"ssh_url"`
 | 
			
		||||
	CloneURL      string      `json:"clone_url"`
 | 
			
		||||
	Website       string      `json:"website"`
 | 
			
		||||
	Stars         int         `json:"stars_count"`
 | 
			
		||||
	Forks         int         `json:"forks_count"`
 | 
			
		||||
	Watchers      int         `json:"watchers_count"`
 | 
			
		||||
	OpenIssues    int         `json:"open_issues_count"`
 | 
			
		||||
	DefaultBranch string      `json:"default_branch"`
 | 
			
		||||
	Created       time.Time   `json:"created_at"`
 | 
			
		||||
	Updated       time.Time   `json:"updated_at"`
 | 
			
		||||
	Permissions   *Permission `json:"permissions,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ListMyRepos lists all repositories for the authenticated user that has access to.
 | 
			
		||||
func (c *Client) ListMyRepos() ([]*Repository, error) {
 | 
			
		||||
	repos := make([]*Repository, 0, 10)
 | 
			
		||||
	return repos, c.getParsedResponse("GET", "/user/repos", nil, nil, &repos)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListUserRepos(user string) ([]*Repository, error) {
 | 
			
		||||
	repos := make([]*Repository, 0, 10)
 | 
			
		||||
	return repos, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/repos", user), nil, nil, &repos)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListOrgRepos(org string) ([]*Repository, error) {
 | 
			
		||||
	repos := make([]*Repository, 0, 10)
 | 
			
		||||
	return repos, c.getParsedResponse("GET", fmt.Sprintf("/orgs/%s/repos", org), nil, nil, &repos)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateRepoOption struct {
 | 
			
		||||
	Name        string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"`
 | 
			
		||||
	Description string `json:"description" binding:"MaxSize(255)"`
 | 
			
		||||
	Private     bool   `json:"private"`
 | 
			
		||||
	Unlisted    bool   `json:"unlisted"`
 | 
			
		||||
	AutoInit    bool   `json:"auto_init"`
 | 
			
		||||
	Gitignores  string `json:"gitignores"`
 | 
			
		||||
	License     string `json:"license"`
 | 
			
		||||
	Readme      string `json:"readme"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateRepo creates a repository for authenticated user.
 | 
			
		||||
func (c *Client) CreateRepo(opt CreateRepoOption) (*Repository, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	return repo, c.getParsedResponse("POST", "/user/repos", jsonHeader, bytes.NewReader(body), repo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CreateOrgRepo creates an organization repository for authenticated user.
 | 
			
		||||
func (c *Client) CreateOrgRepo(org string, opt CreateRepoOption) (*Repository, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	return repo, c.getParsedResponse("POST", fmt.Sprintf("/org/%s/repos", org), jsonHeader, bytes.NewReader(body), repo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetRepo returns information of a repository of given owner.
 | 
			
		||||
func (c *Client) GetRepo(owner, reponame string) (*Repository, error) {
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	return repo, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s", owner, reponame), nil, nil, repo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DeleteRepo deletes a repository of user or organization.
 | 
			
		||||
func (c *Client) DeleteRepo(owner, repo string) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s", owner, repo), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type MigrateRepoOption struct {
 | 
			
		||||
	CloneAddr    string `json:"clone_addr" binding:"Required"`
 | 
			
		||||
	AuthUsername string `json:"auth_username"`
 | 
			
		||||
	AuthPassword string `json:"auth_password"`
 | 
			
		||||
	UID          int    `json:"uid" binding:"Required"`
 | 
			
		||||
	RepoName     string `json:"repo_name" binding:"Required"`
 | 
			
		||||
	Mirror       bool   `json:"mirror"`
 | 
			
		||||
	Private      bool   `json:"private"`
 | 
			
		||||
	Unlisted     bool   `json:"unlisted"`
 | 
			
		||||
	Description  string `json:"description"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MigrateRepo migrates a repository from other Git hosting sources for the
 | 
			
		||||
// authenticated user.
 | 
			
		||||
//
 | 
			
		||||
// To migrate a repository for a organization, the authenticated user must be a
 | 
			
		||||
// owner of the specified organization.
 | 
			
		||||
func (c *Client) MigrateRepo(opt MigrateRepoOption) (*Repository, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	repo := new(Repository)
 | 
			
		||||
	return repo, c.getParsedResponse("POST", "/repos/migrate", jsonHeader, bytes.NewReader(body), repo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditIssueTrackerOption struct {
 | 
			
		||||
	EnableIssues          *bool   `json:"enable_issues"`
 | 
			
		||||
	EnableExternalTracker *bool   `json:"enable_external_tracker"`
 | 
			
		||||
	ExternalTrackerURL    *string `json:"external_tracker_url"`
 | 
			
		||||
	TrackerURLFormat      *string `json:"tracker_url_format"`
 | 
			
		||||
	TrackerIssueStyle     *string `json:"tracker_issue_style"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EditIssueTracker updates issue tracker options of the repository.
 | 
			
		||||
func (c *Client) EditIssueTracker(owner, repo string, opt EditIssueTrackerOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PATCH", fmt.Sprintf("/repos/%s/%s/issue-tracker", owner, repo), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditWikiOption struct {
 | 
			
		||||
	EnableWiki         *bool   `json:"enable_wiki"`
 | 
			
		||||
	AllowPublicWiki    *bool   `json:"allow_public_wiki"`
 | 
			
		||||
	EnableExternalWiki *bool   `json:"enable_external_wiki"`
 | 
			
		||||
	ExternalWikiURL    *string `json:"external_wiki_url"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// EditWiki updates wiki options of the repository.
 | 
			
		||||
func (c *Client) EditWiki(owner, repo string, opt EditWikiOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PATCH", fmt.Sprintf("/repos/%s/%s/wiki", owner, repo), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) MirrorSync(owner, repo string) error {
 | 
			
		||||
	_, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/mirror-sync", owner, repo), jsonHeader, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								vendor/github.com/gogs/go-gogs-client/repo_branch.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/gogs/go-gogs-client/repo_branch.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Branch represents a repository branch.
 | 
			
		||||
type Branch struct {
 | 
			
		||||
	Name   string         `json:"name"`
 | 
			
		||||
	Commit *PayloadCommit `json:"commit"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListRepoBranches(user, repo string) ([]*Branch, error) {
 | 
			
		||||
	branches := make([]*Branch, 0, 10)
 | 
			
		||||
	return branches, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/branches", user, repo), nil, nil, &branches)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetRepoBranch(user, repo, branch string) (*Branch, error) {
 | 
			
		||||
	b := new(Branch)
 | 
			
		||||
	return b, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/branches/%s", user, repo, branch), nil, nil, &b)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/github.com/gogs/go-gogs-client/repo_collaborator.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								vendor/github.com/gogs/go-gogs-client/repo_collaborator.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
// Copyright 2016 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Collaborator struct {
 | 
			
		||||
	*User
 | 
			
		||||
	Permissions Permission `json:"permissions"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type AddCollaboratorOption struct {
 | 
			
		||||
	Permission *string `json:"permission"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListCollaborator(user, repo string) ([]*Collaborator, error) {
 | 
			
		||||
	collabs := make([]*Collaborator, 0, 10)
 | 
			
		||||
	return collabs, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/collaborators", user, repo), nil, nil, &collabs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AddCollaborator(user, repo, collaborator string, opt AddCollaboratorOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PUT", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) IsCollaborator(user, repo, collaborator string) error {
 | 
			
		||||
	_, err := c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/collaborators/%s", user, repo, collaborator), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										53
									
								
								vendor/github.com/gogs/go-gogs-client/repo_commit.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								vendor/github.com/gogs/go-gogs-client/repo_commit.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
// Copyright 2018 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// CommitMeta contains meta information of a commit in terms of API.
 | 
			
		||||
type CommitMeta struct {
 | 
			
		||||
	URL string `json:"url"`
 | 
			
		||||
	SHA string `json:"sha"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CommitUser contains information of a user in the context of a commit.
 | 
			
		||||
type CommitUser struct {
 | 
			
		||||
	Name  string `json:"name"`
 | 
			
		||||
	Email string `json:"email"`
 | 
			
		||||
	Date  string `json:"date"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RepoCommit contains information of a commit in the context of a repository.
 | 
			
		||||
type RepoCommit struct {
 | 
			
		||||
	URL       string      `json:"url"`
 | 
			
		||||
	Author    *CommitUser `json:"author"`
 | 
			
		||||
	Committer *CommitUser `json:"committer"`
 | 
			
		||||
	Message   string      `json:"message"`
 | 
			
		||||
	Tree      *CommitMeta `json:"tree"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Commit contains information generated from a Git commit.
 | 
			
		||||
type Commit struct {
 | 
			
		||||
	*CommitMeta
 | 
			
		||||
	HTMLURL    string        `json:"html_url"`
 | 
			
		||||
	RepoCommit *RepoCommit   `json:"commit"`
 | 
			
		||||
	Author     *User         `json:"author"`
 | 
			
		||||
	Committer  *User         `json:"committer"`
 | 
			
		||||
	Parents    []*CommitMeta `json:"parents"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetSingleCommit(user, repo, commitID string) (*Commit, error) {
 | 
			
		||||
	commit := new(Commit)
 | 
			
		||||
	return commit, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/commits/%s", user, repo, commitID), nil, nil, &commit)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetReferenceSHA(user, repo, ref string) (string, error) {
 | 
			
		||||
	data, err := c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/commits/%s", user, repo, ref),
 | 
			
		||||
		http.Header{"Accept": []string{MediaApplicationSHA}}, nil)
 | 
			
		||||
	return string(data), err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								vendor/github.com/gogs/go-gogs-client/repo_file.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/gogs/go-gogs-client/repo_file.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
// Copyright 2014 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GetFile downloads a file of repository, ref can be branch/tag/commit.
 | 
			
		||||
// e.g.: ref -> master, tree -> macaron.go(no leading slash)
 | 
			
		||||
func (c *Client) GetFile(user, repo, ref, tree string) ([]byte, error) {
 | 
			
		||||
	return c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/raw/%s/%s", user, repo, ref, tree), nil, nil)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetArchive downloads the full contents of a repository. Ref can be a branch/tag/commit.
 | 
			
		||||
func (c *Client) GetArchive(user, repo, ref, format string) ([]byte, error) {
 | 
			
		||||
	if format != ".zip" && format != ".tar.gz" {
 | 
			
		||||
		return nil, fmt.Errorf("invalid format: %s (must be .zip or .tar.gz)", format)
 | 
			
		||||
	}
 | 
			
		||||
	return c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/archive/%s%s", user, repo, ref, format), nil, nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										345
									
								
								vendor/github.com/gogs/go-gogs-client/repo_hook.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										345
									
								
								vendor/github.com/gogs/go-gogs-client/repo_hook.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,345 @@
 | 
			
		||||
// Copyright 2014 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	ErrInvalidReceiveHook = errors.New("invalid JSON payload received over webhook")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Hook struct {
 | 
			
		||||
	ID      int64             `json:"id"`
 | 
			
		||||
	Type    string            `json:"type"`
 | 
			
		||||
	URL     string            `json:"-"`
 | 
			
		||||
	Config  map[string]string `json:"config"`
 | 
			
		||||
	Events  []string          `json:"events"`
 | 
			
		||||
	Active  bool              `json:"active"`
 | 
			
		||||
	Updated time.Time         `json:"updated_at"`
 | 
			
		||||
	Created time.Time         `json:"created_at"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateHookOption struct {
 | 
			
		||||
	Type   string            `json:"type" binding:"Required"`
 | 
			
		||||
	Config map[string]string `json:"config" binding:"Required"`
 | 
			
		||||
	Events []string          `json:"events"`
 | 
			
		||||
	Active bool              `json:"active"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateRepoHook(user, repo 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("/repos/%s/%s/hooks", user, repo), jsonHeader, bytes.NewReader(body), h)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type EditHookOption struct {
 | 
			
		||||
	Config map[string]string `json:"config"`
 | 
			
		||||
	Events []string          `json:"events"`
 | 
			
		||||
	Active *bool             `json:"active"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) EditRepoHook(user, repo string, id int64, opt EditHookOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("PATCH", fmt.Sprintf("/repos/%s/%s/hooks/%d", user, repo, id), jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Payloader interface {
 | 
			
		||||
	JSONPayload() ([]byte, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type PayloadUser struct {
 | 
			
		||||
	Name     string `json:"name"`
 | 
			
		||||
	Email    string `json:"email"`
 | 
			
		||||
	UserName string `json:"username"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// FIXME: consider use same format as API when commits API are added.
 | 
			
		||||
type PayloadCommit struct {
 | 
			
		||||
	ID        string       `json:"id"`
 | 
			
		||||
	Message   string       `json:"message"`
 | 
			
		||||
	URL       string       `json:"url"`
 | 
			
		||||
	Author    *PayloadUser `json:"author"`
 | 
			
		||||
	Committer *PayloadUser `json:"committer"`
 | 
			
		||||
 | 
			
		||||
	Added    []string `json:"added"`
 | 
			
		||||
	Removed  []string `json:"removed"`
 | 
			
		||||
	Modified []string `json:"modified"`
 | 
			
		||||
 | 
			
		||||
	Timestamp time.Time `json:"timestamp"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	_ Payloader = &CreatePayload{}
 | 
			
		||||
	_ Payloader = &DeletePayload{}
 | 
			
		||||
	_ Payloader = &ForkPayload{}
 | 
			
		||||
	_ Payloader = &PushPayload{}
 | 
			
		||||
	_ Payloader = &IssuesPayload{}
 | 
			
		||||
	_ Payloader = &IssueCommentPayload{}
 | 
			
		||||
	_ Payloader = &PullRequestPayload{}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// _________                        __
 | 
			
		||||
// \_   ___ \_______   ____ _____ _/  |_  ____
 | 
			
		||||
// /    \  \/\_  __ \_/ __ \\__  \\   __\/ __ \
 | 
			
		||||
// \     \____|  | \/\  ___/ / __ \|  | \  ___/
 | 
			
		||||
//  \______  /|__|    \___  >____  /__|  \___  >
 | 
			
		||||
//         \/             \/     \/          \/
 | 
			
		||||
 | 
			
		||||
type CreatePayload struct {
 | 
			
		||||
	Ref           string      `json:"ref"`
 | 
			
		||||
	RefType       string      `json:"ref_type"`
 | 
			
		||||
	Sha           string      `json:"sha"`
 | 
			
		||||
	DefaultBranch string      `json:"default_branch"`
 | 
			
		||||
	Repo          *Repository `json:"repository"`
 | 
			
		||||
	Sender        *User       `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *CreatePayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ParseCreateHook parses create event hook content.
 | 
			
		||||
func ParseCreateHook(raw []byte) (*CreatePayload, error) {
 | 
			
		||||
	hook := new(CreatePayload)
 | 
			
		||||
	if err := json.Unmarshal(raw, hook); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// it is possible the JSON was parsed, however,
 | 
			
		||||
	// was not from Gogs (maybe was from Bitbucket)
 | 
			
		||||
	// So we'll check to be sure certain key fields
 | 
			
		||||
	// were populated
 | 
			
		||||
	switch {
 | 
			
		||||
	case hook.Repo == nil:
 | 
			
		||||
		return nil, ErrInvalidReceiveHook
 | 
			
		||||
	case len(hook.Ref) == 0:
 | 
			
		||||
		return nil, ErrInvalidReceiveHook
 | 
			
		||||
	}
 | 
			
		||||
	return hook, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ________         .__          __
 | 
			
		||||
// \______ \   ____ |  |   _____/  |_  ____
 | 
			
		||||
//  |    |  \_/ __ \|  | _/ __ \   __\/ __ \
 | 
			
		||||
//  |    `   \  ___/|  |_\  ___/|  | \  ___/
 | 
			
		||||
// /_______  /\___  >____/\___  >__|  \___  >
 | 
			
		||||
//         \/     \/          \/          \/
 | 
			
		||||
 | 
			
		||||
type PusherType string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	PUSHER_TYPE_USER PusherType = "user"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type DeletePayload struct {
 | 
			
		||||
	Ref        string      `json:"ref"`
 | 
			
		||||
	RefType    string      `json:"ref_type"`
 | 
			
		||||
	PusherType PusherType  `json:"pusher_type"`
 | 
			
		||||
	Repo       *Repository `json:"repository"`
 | 
			
		||||
	Sender     *User       `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *DeletePayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ___________           __
 | 
			
		||||
// \_   _____/__________|  | __
 | 
			
		||||
//  |    __)/  _ \_  __ \  |/ /
 | 
			
		||||
//  |     \(  <_> )  | \/    <
 | 
			
		||||
//  \___  / \____/|__|  |__|_ \
 | 
			
		||||
//      \/                   \/
 | 
			
		||||
 | 
			
		||||
type ForkPayload struct {
 | 
			
		||||
	Forkee *Repository `json:"forkee"`
 | 
			
		||||
	Repo   *Repository `json:"repository"`
 | 
			
		||||
	Sender *User       `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *ForkPayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// __________             .__
 | 
			
		||||
// \______   \__ __  _____|  |__
 | 
			
		||||
//  |     ___/  |  \/  ___/  |  \
 | 
			
		||||
//  |    |   |  |  /\___ \|   Y  \
 | 
			
		||||
//  |____|   |____//____  >___|  /
 | 
			
		||||
//                      \/     \/
 | 
			
		||||
 | 
			
		||||
// PushPayload represents a payload information of push event.
 | 
			
		||||
type PushPayload struct {
 | 
			
		||||
	Ref        string           `json:"ref"`
 | 
			
		||||
	Before     string           `json:"before"`
 | 
			
		||||
	After      string           `json:"after"`
 | 
			
		||||
	CompareURL string           `json:"compare_url"`
 | 
			
		||||
	Commits    []*PayloadCommit `json:"commits"`
 | 
			
		||||
	Repo       *Repository      `json:"repository"`
 | 
			
		||||
	Pusher     *User            `json:"pusher"`
 | 
			
		||||
	Sender     *User            `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *PushPayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ParsePushHook parses push event hook content.
 | 
			
		||||
func ParsePushHook(raw []byte) (*PushPayload, error) {
 | 
			
		||||
	hook := new(PushPayload)
 | 
			
		||||
	if err := json.Unmarshal(raw, hook); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	switch {
 | 
			
		||||
	case hook.Repo == nil:
 | 
			
		||||
		return nil, ErrInvalidReceiveHook
 | 
			
		||||
	case len(hook.Ref) == 0:
 | 
			
		||||
		return nil, ErrInvalidReceiveHook
 | 
			
		||||
	}
 | 
			
		||||
	return hook, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Branch returns branch name from a payload
 | 
			
		||||
func (p *PushPayload) Branch() string {
 | 
			
		||||
	return strings.Replace(p.Ref, "refs/heads/", "", -1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// .___
 | 
			
		||||
// |   | ______ ________ __   ____
 | 
			
		||||
// |   |/  ___//  ___/  |  \_/ __ \
 | 
			
		||||
// |   |\___ \ \___ \|  |  /\  ___/
 | 
			
		||||
// |___/____  >____  >____/  \___  >
 | 
			
		||||
//          \/     \/            \/
 | 
			
		||||
 | 
			
		||||
type HookIssueAction string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	HOOK_ISSUE_OPENED        HookIssueAction = "opened"
 | 
			
		||||
	HOOK_ISSUE_CLOSED        HookIssueAction = "closed"
 | 
			
		||||
	HOOK_ISSUE_REOPENED      HookIssueAction = "reopened"
 | 
			
		||||
	HOOK_ISSUE_EDITED        HookIssueAction = "edited"
 | 
			
		||||
	HOOK_ISSUE_ASSIGNED      HookIssueAction = "assigned"
 | 
			
		||||
	HOOK_ISSUE_UNASSIGNED    HookIssueAction = "unassigned"
 | 
			
		||||
	HOOK_ISSUE_LABEL_UPDATED HookIssueAction = "label_updated"
 | 
			
		||||
	HOOK_ISSUE_LABEL_CLEARED HookIssueAction = "label_cleared"
 | 
			
		||||
	HOOK_ISSUE_MILESTONED    HookIssueAction = "milestoned"
 | 
			
		||||
	HOOK_ISSUE_DEMILESTONED  HookIssueAction = "demilestoned"
 | 
			
		||||
	HOOK_ISSUE_SYNCHRONIZED  HookIssueAction = "synchronized"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ChangesFromPayload struct {
 | 
			
		||||
	From string `json:"from"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ChangesPayload struct {
 | 
			
		||||
	Title *ChangesFromPayload `json:"title,omitempty"`
 | 
			
		||||
	Body  *ChangesFromPayload `json:"body,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IssuesPayload represents a payload information of issues event.
 | 
			
		||||
type IssuesPayload struct {
 | 
			
		||||
	Action     HookIssueAction `json:"action"`
 | 
			
		||||
	Index      int64           `json:"number"`
 | 
			
		||||
	Issue      *Issue          `json:"issue"`
 | 
			
		||||
	Changes    *ChangesPayload `json:"changes,omitempty"`
 | 
			
		||||
	Repository *Repository     `json:"repository"`
 | 
			
		||||
	Sender     *User           `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *IssuesPayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type HookIssueCommentAction string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	HOOK_ISSUE_COMMENT_CREATED HookIssueCommentAction = "created"
 | 
			
		||||
	HOOK_ISSUE_COMMENT_EDITED  HookIssueCommentAction = "edited"
 | 
			
		||||
	HOOK_ISSUE_COMMENT_DELETED HookIssueCommentAction = "deleted"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IssueCommentPayload represents a payload information of issue comment event.
 | 
			
		||||
type IssueCommentPayload struct {
 | 
			
		||||
	Action     HookIssueCommentAction `json:"action"`
 | 
			
		||||
	Issue      *Issue                 `json:"issue"`
 | 
			
		||||
	Comment    *Comment               `json:"comment"`
 | 
			
		||||
	Changes    *ChangesPayload        `json:"changes,omitempty"`
 | 
			
		||||
	Repository *Repository            `json:"repository"`
 | 
			
		||||
	Sender     *User                  `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *IssueCommentPayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// __________      .__  .__    __________                                     __
 | 
			
		||||
// \______   \__ __|  | |  |   \______   \ ____  ________ __   ____   _______/  |_
 | 
			
		||||
//  |     ___/  |  \  | |  |    |       _// __ \/ ____/  |  \_/ __ \ /  ___/\   __\
 | 
			
		||||
//  |    |   |  |  /  |_|  |__  |    |   \  ___< <_|  |  |  /\  ___/ \___ \  |  |
 | 
			
		||||
//  |____|   |____/|____/____/  |____|_  /\___  >__   |____/  \___  >____  > |__|
 | 
			
		||||
//                                     \/     \/   |__|           \/     \/
 | 
			
		||||
 | 
			
		||||
// PullRequestPayload represents a payload information of pull request event.
 | 
			
		||||
type PullRequestPayload struct {
 | 
			
		||||
	Action      HookIssueAction `json:"action"`
 | 
			
		||||
	Index       int64           `json:"number"`
 | 
			
		||||
	PullRequest *PullRequest    `json:"pull_request"`
 | 
			
		||||
	Changes     *ChangesPayload `json:"changes,omitempty"`
 | 
			
		||||
	Repository  *Repository     `json:"repository"`
 | 
			
		||||
	Sender      *User           `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *PullRequestPayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// __________       .__
 | 
			
		||||
// \______   \ ____ |  |   ____ _____    ______ ____
 | 
			
		||||
//  |       _// __ \|  | _/ __ \\__  \  /  ___// __ \
 | 
			
		||||
//  |    |   \  ___/|  |_\  ___/ / __ \_\___ \\  ___/
 | 
			
		||||
//  |____|_  /\___  >____/\___  >____  /____  >\___  >
 | 
			
		||||
//         \/     \/          \/     \/     \/     \/
 | 
			
		||||
 | 
			
		||||
type HookReleaseAction string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	HOOK_RELEASE_PUBLISHED HookReleaseAction = "published"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ReleasePayload represents a payload information of release event.
 | 
			
		||||
type ReleasePayload struct {
 | 
			
		||||
	Action     HookReleaseAction `json:"action"`
 | 
			
		||||
	Release    *Release          `json:"release"`
 | 
			
		||||
	Repository *Repository       `json:"repository"`
 | 
			
		||||
	Sender     *User             `json:"sender"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (p *ReleasePayload) JSONPayload() ([]byte, error) {
 | 
			
		||||
	return json.MarshalIndent(p, "", "  ")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										50
									
								
								vendor/github.com/gogs/go-gogs-client/repo_key.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/gogs/go-gogs-client/repo_key.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type DeployKey struct {
 | 
			
		||||
	ID       int64     `json:"id"`
 | 
			
		||||
	Key      string    `json:"key"`
 | 
			
		||||
	URL      string    `json:"url"`
 | 
			
		||||
	Title    string    `json:"title"`
 | 
			
		||||
	Created  time.Time `json:"created_at"`
 | 
			
		||||
	ReadOnly bool      `json:"read_only"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListDeployKeys(user, repo string) ([]*DeployKey, error) {
 | 
			
		||||
	keys := make([]*DeployKey, 0, 10)
 | 
			
		||||
	return keys, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/keys", user, repo), nil, nil, &keys)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetDeployKey(user, repo string, keyID int64) (*DeployKey, error) {
 | 
			
		||||
	key := new(DeployKey)
 | 
			
		||||
	return key, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/keys/%d", user, repo, keyID), nil, nil, &key)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateKeyOption struct {
 | 
			
		||||
	Title string `json:"title" binding:"Required"`
 | 
			
		||||
	Key   string `json:"key" binding:"Required"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateDeployKey(user, repo string, opt CreateKeyOption) (*DeployKey, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	key := new(DeployKey)
 | 
			
		||||
	return key, c.getParsedResponse("POST", fmt.Sprintf("/repos/%s/%s/keys", user, repo), jsonHeader, bytes.NewReader(body), key)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) DeleteDeployKey(owner, repo string, keyID int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/repos/%s/%s/keys/%d", owner, repo, keyID), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								vendor/github.com/gogs/go-gogs-client/user.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/gogs/go-gogs-client/user.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
// Copyright 2014 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// User represents a API user.
 | 
			
		||||
type User struct {
 | 
			
		||||
	ID        int64  `json:"id"`
 | 
			
		||||
	UserName  string `json:"username"` // LEGACY [Gogs 1.0]: remove field(s) for backward compatibility
 | 
			
		||||
	Login     string `json:"login"`
 | 
			
		||||
	FullName  string `json:"full_name"`
 | 
			
		||||
	Email     string `json:"email"`
 | 
			
		||||
	AvatarUrl string `json:"avatar_url"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetUserInfo(user string) (*User, error) {
 | 
			
		||||
	u := new(User)
 | 
			
		||||
	err := c.getParsedResponse("GET", fmt.Sprintf("/users/%s", user), nil, nil, u)
 | 
			
		||||
	return u, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetSelfInfo() (*User, error) {
 | 
			
		||||
	u := new(User)
 | 
			
		||||
	err := c.getParsedResponse("GET", "/user", nil, nil, u)
 | 
			
		||||
	return u, err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								vendor/github.com/gogs/go-gogs-client/user_app.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								vendor/github.com/gogs/go-gogs-client/user_app.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
// Copyright 2014 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/base64"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func BasicAuthEncode(user, pass string) string {
 | 
			
		||||
	return base64.StdEncoding.EncodeToString([]byte(user + ":" + pass))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AccessToken represents a API access token.
 | 
			
		||||
type AccessToken struct {
 | 
			
		||||
	Name string `json:"name"`
 | 
			
		||||
	Sha1 string `json:"sha1"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListAccessTokens(user, pass string) ([]*AccessToken, error) {
 | 
			
		||||
	tokens := make([]*AccessToken, 0, 10)
 | 
			
		||||
	return tokens, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/tokens", user),
 | 
			
		||||
		http.Header{"Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}}, nil, &tokens)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateAccessTokenOption struct {
 | 
			
		||||
	Name string `json:"name" binding:"Required"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreateAccessToken(user, pass string, opt CreateAccessTokenOption) (*AccessToken, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	t := new(AccessToken)
 | 
			
		||||
	return t, c.getParsedResponse("POST", fmt.Sprintf("/users/%s/tokens", user),
 | 
			
		||||
		http.Header{
 | 
			
		||||
			"content-type":  []string{"application/json"},
 | 
			
		||||
			"Authorization": []string{"Basic " + BasicAuthEncode(user, pass)}},
 | 
			
		||||
		bytes.NewReader(body), t)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								vendor/github.com/gogs/go-gogs-client/user_email.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								vendor/github.com/gogs/go-gogs-client/user_email.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Email struct {
 | 
			
		||||
	Email    string `json:"email"`
 | 
			
		||||
	Verified bool   `json:"verified"`
 | 
			
		||||
	Primary  bool   `json:"primary"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListEmails() ([]*Email, error) {
 | 
			
		||||
	emails := make([]*Email, 0, 3)
 | 
			
		||||
	return emails, c.getParsedResponse("GET", "/user/emails", nil, nil, &emails)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type CreateEmailOption struct {
 | 
			
		||||
	Emails []string `json:"emails"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) AddEmail(opt CreateEmailOption) ([]*Email, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	emails := make([]*Email, 0, 3)
 | 
			
		||||
	return emails, c.getParsedResponse("POST", "/user/emails", jsonHeader, bytes.NewReader(body), emails)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) DeleteEmail(opt CreateEmailOption) error {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	_, err = c.getResponse("DELETE", "/user/emails", jsonHeader, bytes.NewReader(body))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								vendor/github.com/gogs/go-gogs-client/user_follow.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/gogs/go-gogs-client/user_follow.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListMyFollowers(page int) ([]*User, error) {
 | 
			
		||||
	users := make([]*User, 0, 10)
 | 
			
		||||
	return users, c.getParsedResponse("GET", fmt.Sprintf("/user/followers?page=%d", page), nil, nil, &users)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListFollowers(user string, page int) ([]*User, error) {
 | 
			
		||||
	users := make([]*User, 0, 10)
 | 
			
		||||
	return users, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/followers?page=%d", user, page), nil, nil, &users)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListMyFollowing(page int) ([]*User, error) {
 | 
			
		||||
	users := make([]*User, 0, 10)
 | 
			
		||||
	return users, c.getParsedResponse("GET", fmt.Sprintf("/user/following?page=%d", page), nil, nil, &users)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListFollowing(user string, page int) ([]*User, error) {
 | 
			
		||||
	users := make([]*User, 0, 10)
 | 
			
		||||
	return users, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/following?page=%d", user, page), nil, nil, &users)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) IsFollowing(target string) bool {
 | 
			
		||||
	_, err := c.getResponse("GET", fmt.Sprintf("/user/following/%s", target), nil, nil)
 | 
			
		||||
	return err == nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) IsUserFollowing(user, target string) bool {
 | 
			
		||||
	_, err := c.getResponse("GET", fmt.Sprintf("/users/%s/following/%s", user, target), nil, nil)
 | 
			
		||||
	return err == nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) Follow(target string) error {
 | 
			
		||||
	_, err := c.getResponse("PUT", fmt.Sprintf("/user/following/%s", target), jsonHeader, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) Unfollow(target string) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/user/following/%s", target), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								vendor/github.com/gogs/go-gogs-client/user_key.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								vendor/github.com/gogs/go-gogs-client/user_key.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type PublicKey struct {
 | 
			
		||||
	ID      int64     `json:"id"`
 | 
			
		||||
	Key     string    `json:"key"`
 | 
			
		||||
	URL     string    `json:"url,omitempty"`
 | 
			
		||||
	Title   string    `json:"title,omitempty"`
 | 
			
		||||
	Created time.Time `json:"created_at,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListPublicKeys(user string) ([]*PublicKey, error) {
 | 
			
		||||
	keys := make([]*PublicKey, 0, 10)
 | 
			
		||||
	return keys, c.getParsedResponse("GET", fmt.Sprintf("/users/%s/keys", user), nil, nil, &keys)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) ListMyPublicKeys() ([]*PublicKey, error) {
 | 
			
		||||
	keys := make([]*PublicKey, 0, 10)
 | 
			
		||||
	return keys, c.getParsedResponse("GET", "/user/keys", nil, nil, &keys)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) GetPublicKey(keyID int64) (*PublicKey, error) {
 | 
			
		||||
	key := new(PublicKey)
 | 
			
		||||
	return key, c.getParsedResponse("GET", fmt.Sprintf("/user/keys/%d", keyID), nil, nil, &key)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) CreatePublicKey(opt CreateKeyOption) (*PublicKey, error) {
 | 
			
		||||
	body, err := json.Marshal(&opt)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	key := new(PublicKey)
 | 
			
		||||
	return key, c.getParsedResponse("POST", "/user/keys", jsonHeader, bytes.NewReader(body), key)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *Client) DeletePublicKey(keyID int64) error {
 | 
			
		||||
	_, err := c.getResponse("DELETE", fmt.Sprintf("/user/keys/%d", keyID), nil, nil)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								vendor/github.com/gogs/go-gogs-client/utils.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								vendor/github.com/gogs/go-gogs-client/utils.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
// Copyright 2015 The Gogs 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 gogs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var jsonHeader = http.Header{"content-type": []string{"application/json"}}
 | 
			
		||||
 | 
			
		||||
func Bool(v bool) *bool {
 | 
			
		||||
	return &v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func String(v string) *string {
 | 
			
		||||
	return &v
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Int64(v int64) *int64 {
 | 
			
		||||
	return &v
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user