49b1948cb1
* first draft * update gitea sdk to 9e280adb4da * adapt feat of updated sdk * releases now works * break the Reactions loop * use convertGiteaLabel * fix endless loop because paggination is not supported there !!! * rename gitea local uploader files * pagination can bite you in the ass * Version Checks * lint * docs * rename gitea sdk import to miss future conficts * go-swagger: dont scan the sdk structs * make sure gitea can shutdown gracefully * make GetPullRequests and GetIssues similar * rm useles * Add Test: started ... * ... add tests ... * Add tests and Fixing things * Workaround missing SHA * Adapt: Ensure that all migration requests are cancellable (714ab71ddc4260937b1480519d453d2dc4e77dd6) * LINT: fix misspells in test set * adapt ListMergeRequestAwardEmoji * update sdk * Return error when creating giteadownloader failed * update sdk * adapt new sdk * adopt new features * check version before err * adapt: 'migrate service type switch page' * optimize * Fix DefaultBranch * impruve * handle subPath * fix test * Fix ReviewCommentPosition * test GetReviews * add DefaultBranch int test set * rm unused * Update SDK to v0.13.0 * addopt sdk changes * found better link * format template * Update Docs * Update Gitea SDK (v0.13.1)
89 lines
2.6 KiB
Go
Vendored
89 lines
2.6 KiB
Go
Vendored
// Copyright 2018 The Gogs Authors. All rights reserved.
|
|
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package gitea
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
"time"
|
|
)
|
|
|
|
// Identity for a person's identity like an author or committer
|
|
type Identity struct {
|
|
Name string `json:"name"`
|
|
Email string `json:"email"`
|
|
}
|
|
|
|
// 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 {
|
|
Identity
|
|
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"`
|
|
}
|
|
|
|
// CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
|
|
type CommitDateOptions struct {
|
|
Author time.Time `json:"author"`
|
|
Committer time.Time `json:"committer"`
|
|
}
|
|
|
|
// GetSingleCommit returns a single commit
|
|
func (c *Client) GetSingleCommit(user, repo, commitID string) (*Commit, *Response, error) {
|
|
commit := new(Commit)
|
|
resp, err := c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/git/commits/%s", user, repo, commitID), nil, nil, &commit)
|
|
return commit, resp, err
|
|
}
|
|
|
|
// ListCommitOptions list commit options
|
|
type ListCommitOptions struct {
|
|
ListOptions
|
|
//SHA or branch to start listing commits from (usually 'master')
|
|
SHA string
|
|
}
|
|
|
|
// QueryEncode turns options into querystring argument
|
|
func (opt *ListCommitOptions) QueryEncode() string {
|
|
query := opt.ListOptions.getURLQuery()
|
|
if opt.SHA != "" {
|
|
query.Add("sha", opt.SHA)
|
|
}
|
|
return query.Encode()
|
|
}
|
|
|
|
// ListRepoCommits return list of commits from a repo
|
|
func (c *Client) ListRepoCommits(user, repo string, opt ListCommitOptions) ([]*Commit, *Response, error) {
|
|
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/commits", user, repo))
|
|
opt.setDefaults()
|
|
commits := make([]*Commit, 0, opt.PageSize)
|
|
link.RawQuery = opt.QueryEncode()
|
|
resp, err := c.getParsedResponse("GET", link.String(), nil, nil, &commits)
|
|
return commits, resp, err
|
|
}
|