func doMungers(config *config.MungeConfig) error { if len(config.IssueMungers) == 0 && len(config.PRMungersList) == 0 { glog.Fatalf("must include at least one --issue-mungers or --pr-mungers") } for { nextRunStartTime := time.Now().Add(config.Period) if len(config.IssueMungers) > 0 { glog.Infof("Running issue mungers") if err := issues.MungeIssues(config); err != nil { glog.Errorf("Error munging issues: %v", err) } } if len(config.PRMungersList) > 0 { glog.Infof("Running PR mungers") if err := pulls.MungePullRequests(config); err != nil { glog.Errorf("Error munging PRs: %v", err) } } config.ResetAPICount() if config.Once { break } if nextRunStartTime.After(time.Now()) { sleepDuration := nextRunStartTime.Sub(time.Now()) glog.Infof("Sleeping for %v\n", sleepDuration) time.Sleep(sleepDuration) } else { glog.Infof("Not sleeping as we took more than %v to complete one loop\n", config.Period) } } return nil }