Merge pull request #970 from andreynering/api-repo-mirror
Add "mirror" field to repo API
This commit is contained in:
commit
ddb0287bf6
|
@ -281,6 +281,7 @@ func (repo *Repository) APIFormat(mode AccessMode) *api.Repository {
|
||||||
Description: repo.Description,
|
Description: repo.Description,
|
||||||
Private: repo.IsPrivate,
|
Private: repo.IsPrivate,
|
||||||
Fork: repo.IsFork,
|
Fork: repo.IsFork,
|
||||||
|
Mirror: repo.IsMirror,
|
||||||
HTMLURL: repo.HTMLURL(),
|
HTMLURL: repo.HTMLURL(),
|
||||||
SSHURL: cloneLink.SSH,
|
SSHURL: cloneLink.SSH,
|
||||||
CloneURL: cloneLink.HTTPS,
|
CloneURL: cloneLink.HTTPS,
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// Copyright 2014 The Gogs Authors. All rights reserved.
|
// Copyright 2014 The Gogs Authors. All rights reserved.
|
||||||
|
// Copyright 2017 The Gitea Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a MIT-style
|
// Use of this source code is governed by a MIT-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
@ -147,6 +148,7 @@ type PayloadCommit struct {
|
||||||
var (
|
var (
|
||||||
_ Payloader = &CreatePayload{}
|
_ Payloader = &CreatePayload{}
|
||||||
_ Payloader = &PushPayload{}
|
_ Payloader = &PushPayload{}
|
||||||
|
_ Payloader = &IssuePayload{}
|
||||||
_ Payloader = &PullRequestPayload{}
|
_ Payloader = &PullRequestPayload{}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -277,8 +279,33 @@ const (
|
||||||
HookIssueLabelCleared HookIssueAction = "label_cleared"
|
HookIssueLabelCleared HookIssueAction = "label_cleared"
|
||||||
// HookIssueSynchronized synchronized
|
// HookIssueSynchronized synchronized
|
||||||
HookIssueSynchronized HookIssueAction = "synchronized"
|
HookIssueSynchronized HookIssueAction = "synchronized"
|
||||||
|
// HookIssueMilestoned is an issue action for when a milestone is set on an issue.
|
||||||
|
HookIssueMilestoned HookIssueAction = "milestoned"
|
||||||
|
// HookIssueDemilestoned is an issue action for when a milestone is cleared on an issue.
|
||||||
|
HookIssueDemilestoned HookIssueAction = "demilestoned"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// IssuePayload represents the payload information that is sent along with an issue event.
|
||||||
|
type IssuePayload struct {
|
||||||
|
Secret string `json:"secret"`
|
||||||
|
Action HookIssueAction `json:"action"`
|
||||||
|
Index int64 `json:"number"`
|
||||||
|
Changes *ChangesPayload `json:"changes,omitempty"`
|
||||||
|
Issue *Issue `json:"issue"`
|
||||||
|
Repository *Repository `json:"repository"`
|
||||||
|
Sender *User `json:"sender"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetSecret modifies the secret of the IssuePayload.
|
||||||
|
func (p *IssuePayload) SetSecret(secret string) {
|
||||||
|
p.Secret = secret
|
||||||
|
}
|
||||||
|
|
||||||
|
// JSONPayload encodes the IssuePayload to JSON, with an indentation of two spaces.
|
||||||
|
func (p *IssuePayload) JSONPayload() ([]byte, error) {
|
||||||
|
return json.MarshalIndent(p, "", " ")
|
||||||
|
}
|
||||||
|
|
||||||
// ChangesFromPayload FIXME
|
// ChangesFromPayload FIXME
|
||||||
type ChangesFromPayload struct {
|
type ChangesFromPayload struct {
|
||||||
From string `json:"from"`
|
From string `json:"from"`
|
||||||
|
@ -308,7 +335,7 @@ type PullRequestPayload struct {
|
||||||
Sender *User `json:"sender"`
|
Sender *User `json:"sender"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetSecret FIXME
|
// SetSecret modifies the secret of the PullRequestPayload.
|
||||||
func (p *PullRequestPayload) SetSecret(secret string) {
|
func (p *PullRequestPayload) SetSecret(secret string) {
|
||||||
p.Secret = secret
|
p.Secret = secret
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,7 @@ type PullRequestMeta struct {
|
||||||
// Issue an issue to a repository
|
// Issue an issue to a repository
|
||||||
type Issue struct {
|
type Issue struct {
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
|
URL string `json:"url"`
|
||||||
Index int64 `json:"number"`
|
Index int64 `json:"number"`
|
||||||
Poster *User `json:"user"`
|
Poster *User `json:"user"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
// PullRequest represents a pull request API object.
|
// PullRequest represents a pull request API object.
|
||||||
type PullRequest struct {
|
type PullRequest struct {
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
|
URL string `json:"url"`
|
||||||
Index int64 `json:"number"`
|
Index int64 `json:"number"`
|
||||||
Poster *User `json:"user"`
|
Poster *User `json:"user"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
|
|
|
@ -27,6 +27,7 @@ type Repository struct {
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
Private bool `json:"private"`
|
Private bool `json:"private"`
|
||||||
Fork bool `json:"fork"`
|
Fork bool `json:"fork"`
|
||||||
|
Mirror bool `json:"mirror"`
|
||||||
HTMLURL string `json:"html_url"`
|
HTMLURL string `json:"html_url"`
|
||||||
SSHURL string `json:"ssh_url"`
|
SSHURL string `json:"ssh_url"`
|
||||||
CloneURL string `json:"clone_url"`
|
CloneURL string `json:"clone_url"`
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
// Copyright 2017 Gitea Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package gitea
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GPGKey a user GPG key to sign commit and tag in repository
|
||||||
|
type GPGKey struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
PrimaryKeyID string `json:"primary_key_id"`
|
||||||
|
KeyID string `json:"key_id"`
|
||||||
|
PublicKey string `json:"public_key"`
|
||||||
|
Emails []*GPGKeyEmail `json:"emails"`
|
||||||
|
SubsKey []*GPGKey `json:"subkeys"`
|
||||||
|
CanSign bool `json:"can_sign"`
|
||||||
|
CanEncryptComms bool `json:"can_encrypt_comms"`
|
||||||
|
CanEncryptStorage bool `json:"can_encrypt_storage"`
|
||||||
|
CanCertify bool `json:"can_certify"`
|
||||||
|
Created time.Time `json:"created_at,omitempty"`
|
||||||
|
Expires time.Time `json:"expires_at,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// GPGKeyEmail a email attache to a GPGKey
|
||||||
|
type GPGKeyEmail struct {
|
||||||
|
Email string `json:"email"`
|
||||||
|
Verified bool `json:"verified"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateGPGKeyOption options create user GPG key
|
||||||
|
type CreateGPGKeyOption struct {
|
||||||
|
ArmoredKey string `json:"armored_public_key" binding:"Required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListMyGPGKeys list all the GPG keys of current user
|
||||||
|
func (c *Client) ListMyGPGKeys() ([]*GPGKey, error) {
|
||||||
|
keys := make([]*GPGKey, 0, 10)
|
||||||
|
return keys, c.getParsedResponse("GET", "/user/gpg_keys", nil, nil, &keys)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetGPGKey get current user's GPG key by key id
|
||||||
|
func (c *Client) GetGPGKey(keyID int64) (*GPGKey, error) {
|
||||||
|
key := new(GPGKey)
|
||||||
|
return key, c.getParsedResponse("GET", fmt.Sprintf("/user/gpg_keys/%d", keyID), nil, nil, &key)
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateGPGKey create GPG key with options
|
||||||
|
func (c *Client) CreateGPGKey(opt CreateGPGKeyOption) (*GPGKey, error) {
|
||||||
|
body, err := json.Marshal(&opt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
key := new(GPGKey)
|
||||||
|
return key, c.getParsedResponse("POST", "/user/gpg_keys", jsonHeader, bytes.NewReader(body), key)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteGPGKey delete GPG key with key id
|
||||||
|
func (c *Client) DeleteGPGKey(keyID int64) error {
|
||||||
|
_, err := c.getResponse("DELETE", fmt.Sprintf("/user/gpg_keys/%d", keyID), nil, nil)
|
||||||
|
return err
|
||||||
|
}
|
|
@ -9,10 +9,10 @@
|
||||||
"revisionTime": "2017-02-22T02:52:05Z"
|
"revisionTime": "2017-02-22T02:52:05Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "BKj0haFTDebzdC2nACpoGzp3s8A=",
|
"checksumSHA1": "K0VWBaa3ZUE598zVFGavdLB7vW4=",
|
||||||
"path": "code.gitea.io/sdk/gitea",
|
"path": "code.gitea.io/sdk/gitea",
|
||||||
"revision": "2064cc397bc48b0a46f8324a97421a824b11882e",
|
"revision": "06902fe19508c7ede2be38b71287c665efa1f10d",
|
||||||
"revisionTime": "2016-12-31T14:43:27Z"
|
"revisionTime": "2017-02-19T11:17:32Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"checksumSHA1": "IyfS7Rbl6OgR83QR7TOfKdDCq+M=",
|
"checksumSHA1": "IyfS7Rbl6OgR83QR7TOfKdDCq+M=",
|
||||||
|
|
Loading…
Reference in New Issue