class Lariat::CLI
Public Class Methods
gather_project_roundup_data(gh, queries, build_stats)
click to toggle source
# File lib/lariat/cli.rb, line 6 def self.gather_project_roundup_data(gh, queries, build_stats) args = { report_date: 1.week.ago.to_s.split(/ /).first } issue_category_queries = queries["issue_category_queries"] issue_summary_results = queries["issue_summary_queries"].map do |query| results = gh.search_issues(query["query"] % args) {:title => query["title"], total: results.total_count } end issue_category_results = issue_category_queries.keys.map do |key| results = issue_category_queries[key].map do |query| results = gh.search_issues(query["query"] % args) results.total_count end { key => results } end pr_results = queries["pr_queries"].map do |query| results = gh.search_issues(query["query"] % args) {:section => query["section"], :title => query["title"], total: results.total_count } end top_issues_results = queries["top_issue_queries"].map do |query_definition| results = gh.search_issues(query_definition["query"]) {:section => query_definition["section"], :title => query_definition["title"], :issues => results.to_h["items"] } end ::Lariat::IssueWriter.write_issue(build_stats, top_issues_results, issue_summary_results, issue_category_results, pr_results) end
generate_project_roundup(build_stats = nil)
click to toggle source
# File lib/lariat/cli.rb, line 36 def self.generate_project_roundup(build_stats = nil) build_stats ||= ::Lariat::SabotageStats.gather_stats("https://sabotage.internal.mx/stats.json", 7) gh = ::Lariat::Github.new("config/github.yml") queries = load_queries issue_body = gather_project_roundup_data(gh, queries, build_stats) process_project_roundup(gh, queries["project_roundup_defaults"].first, issue_body) end
load_queries()
click to toggle source
# File lib/lariat/cli.rb, line 56 def self.load_queries ::Lariat.load_config_from_yaml("config/queries.yml") end
process_project_roundup(gh, issue_defaults, issue_body)
click to toggle source
# File lib/lariat/cli.rb, line 45 def self.process_project_roundup(gh, issue_defaults, issue_body) # find and close previous roundup previous_issue = gh.search_issues('is:issue is:open user:%{user} repo:%{repository} label:"%{label}"' % issue_defaults.symbolize_keys) gh.close_issue(previous_issue.items.first) if previous_issue.total_count > 0 # create new issue date_params = { week_ending: Date.today.to_s } gh.create_issue(issue_defaults["user"], issue_defaults["repository"], issue_defaults["title"] % date_params, issue_body, [issue_defaults["label"]]) end