lariat 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/bin/lariat +2 -3
- data/lariat.gemspec +1 -0
- data/lib/lariat.rb +1 -0
- data/lib/lariat/cli.rb +17 -19
- data/lib/lariat/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bb36b9fcdb6d0d2225b9d0a34f4003cad3a4274
|
4
|
+
data.tar.gz: 33513d6ff685e593f242417bdb7b1c00550b2cfb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f74db7e0cd20e63a3047baa715513d5140cfac8d1ce044472eb7ec6c5a88df2742ea4cda9ddd06f443ca4c2098bb63595b7f1c4a40e82ed49755ad7bee3d9a1
|
7
|
+
data.tar.gz: 842c86bdcd313a43d801ff3eec0b75fab2ed142696caa30e6b5abe044b4228f8dc43f708e87df0487b925887403a1f066c92e739178d80680a00ae046fa6d121
|
data/.gitignore
CHANGED
data/bin/lariat
CHANGED
data/lariat.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
+
spec.add_dependency "activesupport"
|
22
23
|
spec.add_dependency "github_api", "~> 0.12"
|
23
24
|
spec.add_dependency "rest-client", "~> 2.0"
|
24
25
|
spec.add_dependency "safe_yaml", "~> 1.0"
|
data/lib/lariat.rb
CHANGED
data/lib/lariat/cli.rb
CHANGED
@@ -1,34 +1,33 @@
|
|
1
|
+
require "active_support"
|
2
|
+
require "active_support/core_ext/numeric/time"
|
3
|
+
|
1
4
|
module Lariat
|
2
5
|
class CLI
|
3
|
-
def self.gather_project_roundup_data(build_stats)
|
4
|
-
queries = load_queries
|
5
|
-
|
6
|
-
gh = ::Lariat::Github.new("./config/github.yml")
|
7
|
-
|
6
|
+
def self.gather_project_roundup_data(gh, queries, build_stats)
|
8
7
|
args = { report_date: 1.week.ago.to_s.split(/ /).first }
|
9
8
|
issue_category_queries = queries["issue_category_queries"]
|
10
9
|
|
11
10
|
issue_summary_results = queries["issue_summary_queries"].map do |query|
|
12
|
-
results = gh.search_issues(query[
|
13
|
-
{:title => query[
|
11
|
+
results = gh.search_issues(query["query"] % args)
|
12
|
+
{:title => query["title"], total: results.total_count }
|
14
13
|
end
|
15
14
|
|
16
15
|
issue_category_results = issue_category_queries.keys.map do |key|
|
17
16
|
results = issue_category_queries[key].map do |query|
|
18
|
-
results = gh.search_issues(query[
|
17
|
+
results = gh.search_issues(query["query"] % args)
|
19
18
|
results.total_count
|
20
19
|
end
|
21
20
|
{ key => results }
|
22
21
|
end
|
23
22
|
|
24
23
|
pr_results = queries["pr_queries"].map do |query|
|
25
|
-
results = gh.search_issues(query[
|
26
|
-
{:section => query[
|
24
|
+
results = gh.search_issues(query["query"] % args)
|
25
|
+
{:section => query["section"], :title => query["title"], total: results.total_count }
|
27
26
|
end
|
28
27
|
|
29
28
|
top_issues_results = queries["top_issue_queries"].map do |query_definition|
|
30
|
-
results = gh.search_issues(query_definition[
|
31
|
-
{:section => query_definition[
|
29
|
+
results = gh.search_issues(query_definition["query"])
|
30
|
+
{:section => query_definition["section"], :title => query_definition["title"], :issues => results.to_h["items"] }
|
32
31
|
end
|
33
32
|
|
34
33
|
::Lariat::IssueWriter.write_issue(build_stats, top_issues_results, issue_summary_results, issue_category_results, pr_results)
|
@@ -36,27 +35,26 @@ module Lariat
|
|
36
35
|
|
37
36
|
def self.generate_project_roundup(build_stats = nil)
|
38
37
|
build_stats ||= ::Lariat::SabotageStats.gather_stats("https://sabotage.internal.mx/stats.json", 7)
|
38
|
+
gh = ::Lariat::Github.new("config/github.yml")
|
39
|
+
queries = load_queries
|
39
40
|
|
40
|
-
issue_body = gather_project_roundup_data(build_stats)
|
41
|
+
issue_body = gather_project_roundup_data(gh, queries, build_stats)
|
41
42
|
process_project_roundup(gh, queries["project_roundup_defaults"].first, issue_body)
|
42
43
|
end
|
43
44
|
|
44
45
|
def self.process_project_roundup(gh, issue_defaults, issue_body)
|
45
46
|
# find and close previous roundup
|
46
|
-
previous_issue = gh.search_issues('is:issue is:open user:%{user} repo:%{repository} label:"
|
47
|
-
unless previous_issue.total_count > 0
|
48
|
-
previous_issue = gh.search_issues('is:issue is:open "Project Roundup"')
|
49
|
-
end
|
47
|
+
previous_issue = gh.search_issues('is:issue is:open user:%{user} repo:%{repository} label:"%{label}"' % issue_defaults.symbolize_keys)
|
50
48
|
|
51
49
|
gh.close_issue(previous_issue.items.first) if previous_issue.total_count > 0
|
52
50
|
|
53
51
|
# create new issue
|
54
52
|
date_params = { week_ending: Date.today.to_s }
|
55
|
-
gh.create_issue(issue_defaults[
|
53
|
+
gh.create_issue(issue_defaults["user"], issue_defaults["repository"], issue_defaults["title"] % date_params, issue_body, [issue_defaults["label"]])
|
56
54
|
end
|
57
55
|
|
58
56
|
def self.load_queries
|
59
|
-
::Lariat.load_config_from_yaml(
|
57
|
+
::Lariat.load_config_from_yaml("config/queries.yml")
|
60
58
|
end
|
61
59
|
end
|
62
60
|
end
|
data/lib/lariat/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lariat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MX Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: github_api
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|