From 264e1031960ab6e82b5e7212a3ea7af4325c785f Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Thu, 19 Mar 2015 19:55:17 +0700 Subject: [PATCH] Sync org teams task --- task/sync.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/task/sync.go b/task/sync.go index a62d4c8..3397aa8 100644 --- a/task/sync.go +++ b/task/sync.go @@ -101,6 +101,38 @@ func SyncUserOrgs(token string) (err error) { } } + return +} + +func SyncOrgTeams(token string, org *db.Org) (err error) { + defer report("SyncOrgTeams", time.Now()) + client := newGithubClient(token) + opt := &github.ListOptions{PerPage: 100} + + for { + opt.Page++ + var teams []github.Team + var resp *github.Response + if teams, resp, err = client.Organizations.ListTeams(org.Login, opt); err != nil { + return + } + saveResponseMeta(token, resp) + + for _, team := range teams { + t := &db.Team{ + ID: uint64(*team.ID), + Name: *team.Name, + Slug: *team.Slug, + Permission: *team.Permission, + OrgID: org.ID, + } + t.Save() + } + if opt.Page == resp.LastPage { + break + } + } + return } }