Sync team repos task and db func

This commit is contained in:
2015-03-20 17:45:04 +07:00
parent 86e7b499b4
commit 6e498953bd
2 changed files with 59 additions and 0 deletions
+28
View File
@@ -128,6 +128,7 @@ func SyncOrgTeams(token string, org *db.Org) (err error) {
OrgID: org.ID,
}
go SyncTeamMembers(token, t)
go SyncTeamRepos(token, t)
t.Save()
}
if opt.Page >= resp.LastPage {
@@ -192,3 +193,30 @@ func SyncTeamMembers(token string, team *db.Team) (err error) {
return
}
func SyncTeamRepos(token string, team *db.Team) (err error) {
defer report("SyncTeamRepos", time.Now())
client := newGithubClient(token)
opt := &github.ListOptions{PerPage: 100}
var ids = []uint64{}
for {
opt.Page++
var repos []github.Repository
var resp *github.Response
if repos, resp, err = client.Organizations.ListTeamRepos(int(team.ID), opt); err != nil {
return
}
saveResponseMeta(token, resp)
for _, repo := range repos {
ids = append(ids, uint64(*repo.ID))
}
if opt.Page >= resp.LastPage {
break
}
}
db.SaveTeamRepos(team.OrgID, team.ID, ids)
return
}