Add GetRepoLanguages (#412)

Add GetRepoLanguages

Add Migration Language Tests

Co-authored-by: 6543 <6543@obermui.de>
Reviewed-on: https://gitea.com/gitea/go-sdk/pulls/412
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Reviewed-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
6543 2020-09-06 17:20:00 +00:00
parent 1a3d9bf20c
commit 5904d8e622
2 changed files with 52 additions and 0 deletions

View file

@ -376,3 +376,17 @@ func (c *Client) MirrorSync(owner, repo string) error {
_, err := c.getResponse("POST", fmt.Sprintf("/repos/%s/%s/mirror-sync", owner, repo), nil, nil)
return err
}
// GetRepoLanguages return language stats of a repo
func (c *Client) GetRepoLanguages(owner, repo string) (map[string]int64, error) {
langMap := make(map[string]int64)
data, err := c.getResponse("GET", fmt.Sprintf("/repos/%s/%s/languages", owner, repo), jsonHeader, nil)
if err != nil {
return nil, err
}
if err = json.Unmarshal(data, &langMap); err != nil {
return nil, err
}
return langMap, nil
}

View file

@ -7,6 +7,7 @@ package gitea
import (
"log"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
@ -31,6 +32,43 @@ func TestCreateRepo(t *testing.T) {
assert.NoError(t, err)
}
func TestRepoMigrateAndLanguages(t *testing.T) {
log.Println("== TestMigrateRepo ==")
c := newTestClient()
user, uErr := c.GetMyUserInfo()
assert.NoError(t, uErr)
_, err := c.GetRepo(user.UserName, "sdk-mirror")
if err == nil {
_ = c.DeleteRepo(user.UserName, "sdk-mirror")
}
repoM, err := c.MigrateRepo(MigrateRepoOption{
CloneAddr: "https://gitea.com/gitea/go-sdk.git",
RepoName: "sdk-mirror",
UID: int(user.ID),
Mirror: true,
Private: false,
Description: "mirror sdk",
})
assert.NoError(t, err)
repoG, err := c.GetRepo(repoM.Owner.UserName, repoM.Name)
assert.NoError(t, err)
assert.EqualValues(t, repoM.ID, repoG.ID)
assert.EqualValues(t, "master", repoG.DefaultBranch)
assert.True(t, repoG.Mirror)
assert.False(t, repoG.Empty)
assert.EqualValues(t, 1, repoG.Watchers)
log.Println("== TestRepoLanguages ==")
time.Sleep(time.Second)
lang, err := c.GetRepoLanguages(repoM.Owner.UserName, repoM.Name)
assert.NoError(t, err)
assert.Len(t, lang, 2)
assert.True(t, 217441 < lang["Go"])
assert.EqualValues(t, 3578, lang["Makefile"])
}
func TestSearchRepo(t *testing.T) {
log.Println("== TestSearchRepo ==")
c := newTestClient()