Add ListRepoCommits (#266)
Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: spawn2kill <spawn2kill@noreply.gitea.io> Reviewed-on: https://gitea.com/gitea/go-sdk/pulls/266 Reviewed-by: Andrew Thornton <art27@cantab.net> Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
56edda5f6f
commit
ffaf5e0d1e
3 changed files with 52 additions and 1 deletions
2
Makefile
2
Makefile
|
@ -55,7 +55,7 @@ test:
|
||||||
|
|
||||||
.PHONY: test-instance
|
.PHONY: test-instance
|
||||||
test-instance:
|
test-instance:
|
||||||
rm -r ${WORK_DIR}/test 2> /dev/null; \
|
rm -f -r ${WORK_DIR}/test 2> /dev/null; \
|
||||||
mkdir -p ${WORK_DIR}/test/conf/ ${WORK_DIR}/test/data/
|
mkdir -p ${WORK_DIR}/test/conf/ ${WORK_DIR}/test/data/
|
||||||
wget "https://dl.gitea.io/gitea/master/gitea-master-linux-amd64" -O ${WORK_DIR}/test/gitea-master; \
|
wget "https://dl.gitea.io/gitea/master/gitea-master-linux-amd64" -O ${WORK_DIR}/test/gitea-master; \
|
||||||
chmod +x ${WORK_DIR}/test/gitea-master; \
|
chmod +x ${WORK_DIR}/test/gitea-master; \
|
||||||
|
|
|
@ -7,6 +7,7 @@ package gitea
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Identity for a person's identity like an author or committer
|
// Identity for a person's identity like an author or committer
|
||||||
|
@ -51,3 +52,28 @@ func (c *Client) GetSingleCommit(user, repo, commitID string) (*Commit, error) {
|
||||||
commit := new(Commit)
|
commit := new(Commit)
|
||||||
return commit, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/git/commits/%s", user, repo, commitID), nil, nil, &commit)
|
return commit, c.getParsedResponse("GET", fmt.Sprintf("/repos/%s/%s/git/commits/%s", user, repo, commitID), nil, nil, &commit)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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, error) {
|
||||||
|
link, _ := url.Parse(fmt.Sprintf("/repos/%s/%s/commits", user, repo))
|
||||||
|
opt.setDefaults()
|
||||||
|
commits := make([]*Commit, 0, opt.PageSize)
|
||||||
|
link.RawQuery = opt.QueryEncode()
|
||||||
|
return commits, c.getParsedResponse("GET", link.String(), nil, nil, &commits)
|
||||||
|
}
|
||||||
|
|
25
gitea/repo_commit_test.go
Normal file
25
gitea/repo_commit_test.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// Copyright 2020 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 (
|
||||||
|
"log"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestListRepoCommits(t *testing.T) {
|
||||||
|
log.Println("== TestListRepoCommits ==")
|
||||||
|
c := newTestClient()
|
||||||
|
|
||||||
|
repo, err := createTestRepo(t, "ListRepoCommits", c)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
l, err := c.ListRepoCommits(repo.Owner.UserName, repo.Name, ListCommitOptions{})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Len(t, l, 1)
|
||||||
|
assert.EqualValues(t, "Initial commit", l[0].RepoCommit.Message)
|
||||||
|
}
|
Loading…
Reference in a new issue