Class: Lariat::CLI
- Inherits:
-
Object
- Object
- Lariat::CLI
- Defined in:
- lib/lariat/cli.rb
Class Method Summary collapse
- .gather_project_roundup_data(gh, queries, build_stats) ⇒ Object
- .generate_project_roundup(build_stats = nil) ⇒ Object
- .load_queries ⇒ Object
- .process_project_roundup(gh, issue_defaults, issue_body) ⇒ Object
Class Method Details
.gather_project_roundup_data(gh, queries, build_stats) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 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) ⇒ Object
36 37 38 39 40 41 42 43 |
# 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 ⇒ Object
56 57 58 |
# 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) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# 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 |