// LoadData loads the build data for the given commits. func LoadData(db buildbot.DB, commits []string) (map[string]*buildbot.Build, map[string]map[string]*buildbot.BuildSummary, map[string][]*buildbot.BuilderComment, error) { defer timer.New("build_cache.LoadData()").Stop() builds, err := db.GetBuildsForCommits(commits, nil) if err != nil { return nil, nil, nil, err } byId := map[string]*buildbot.Build{} byCommit := map[string]map[string]*buildbot.BuildSummary{} builders := map[string]bool{} for hash, buildList := range builds { byBuilder := map[string]*buildbot.BuildSummary{} for _, b := range buildList { byId[string(b.Id())] = b if !util.AnyMatch(BOT_BLACKLIST, b.Builder) { byBuilder[b.Builder] = b.GetSummary() builders[b.Builder] = true } } byCommit[hash] = byBuilder } builderList := make([]string, 0, len(builders)) for b, _ := range builders { builderList = append(builderList, b) } builderComments, err := db.GetBuildersComments(builderList) if err != nil { return nil, nil, nil, err } return byId, byCommit, builderComments, nil }