gitlab-triage 0.17.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50e7ccde3708d94fd7af8e08648c66c808efc29d65af9ef1daed5b2d93e8d186
4
- data.tar.gz: 6d56190f6a55e5458a8a2a0dde2cd6d148c8cadc7b3171323c1f06c3165b38bf
3
+ metadata.gz: '068290d03b6eb617a306b0a5ea4ce9b255fa266a66cf97b7af06dca8395aae0a'
4
+ data.tar.gz: d73a8294b27be8fcec3fc465be95cf41109b8762abb1578a8c6b60da6d29c5ac
5
5
  SHA512:
6
- metadata.gz: e3e8a45c76ec475486acfc23f555b3c71e90086fa0424efc36411de1caa32fee9471a2f2a751eac0a834a0a320e5293582e4b9011d39e09d0e40925ba1f64da1
7
- data.tar.gz: ffc308fedc4e4d1f64ab028ef25ec46e4382990d601ff78137cbbc5d613bf3b8b5a299d8a2a31d32e09e9003ff6033eba6f464de0cd0b21d2df1db8b6cbf2a5d
6
+ metadata.gz: 24127793df3fcb08fe6ed9434ea4f0005617fb1e507df0a7e14bc065eb18bcd7a36bbf7d91501bf442484d21ea0dc1b4b02ad45dd625e6ca37c3fab234b8aec4
7
+ data.tar.gz: 1271a01b3bf03430265b068f98b9df87a53b8ca2026a71874fb64c5d1ceba3a950c6910a89045440f8e55eef0d64d46283a33e3459aeb1ddee337321e219fca8
@@ -100,7 +100,12 @@ module Gitlab
100
100
  return if rules.blank?
101
101
 
102
102
  rules.each do |rule|
103
- process_action(Policies::RulePolicy.new(resource_type, rule, resources_for_rule(resource_type, rule), network))
103
+ resources_for_rule(resource_type, rule) do |resources|
104
+ policy = Policies::RulePolicy.new(
105
+ resource_type, rule, resources, network)
106
+
107
+ process_action(policy)
108
+ end
104
109
  end
105
110
  end
106
111
 
@@ -108,20 +113,32 @@ module Gitlab
108
113
  puts Gitlab::Triage::UI.header("Processing summary: **#{summary[:name]}**", char: '~')
109
114
  puts
110
115
 
111
- resources = resources_for_rules(resource_type, summary[:rules])
112
- # { summary_rule => resources }
113
- summary_parts = Hash[summary[:rules].zip(resources)]
116
+ summary_parts_for_rules(resource_type, summary[:rules]) do |parts|
117
+ policy = Policies::SummaryPolicy.new(
118
+ resource_type, summary, parts, network)
114
119
 
115
- process_action(Policies::SummaryPolicy.new(resource_type, summary, summary_parts, network))
120
+ process_action(policy)
121
+ end
116
122
  end
117
123
 
118
- def resources_for_rules(resource_type, rules)
119
- rules.map { |rule| resources_for_rule(resource_type, rule) }
124
+ def summary_parts_for_rules(resource_type, rules)
125
+ # { summary_rule => resources }
126
+ parts = rules.inject({}) do |result, rule|
127
+ resources_and_conditions =
128
+ to_enum(:resources_for_rule, resource_type, rule)
129
+
130
+ resources_and_conditions
131
+ .inject(result) do |result, (resources, conditions)|
132
+ # { expanded_summary_rule => resources }
133
+ result.merge(rule.merge(conditions: conditions) => resources)
134
+ end
135
+ end
136
+
137
+ yield(parts)
120
138
  end
121
139
 
122
140
  def resources_for_rule(resource_type, rule)
123
141
  puts Gitlab::Triage::UI.header("Processing rule: **#{rule[:name]}**", char: '-')
124
- resources = []
125
142
 
126
143
  ExpandCondition.perform(rule_conditions(rule)) do |conditions|
127
144
  # retrieving the resources for every rule is inefficient
@@ -138,9 +155,9 @@ module Gitlab
138
155
  resources = limit_resources(resources, rule_limits(rule))
139
156
  puts "\n* Total after limiting: #{resources.count} resources"
140
157
  puts
141
- end
142
158
 
143
- resources
159
+ yield(resources, conditions)
160
+ end
144
161
  end
145
162
 
146
163
  # We don't have to do this once the response will contain the type
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module Triage
3
- VERSION = '0.17.0'.freeze
3
+ VERSION = '1.0.0'.freeze
4
4
  end
5
5
  end
@@ -8,7 +8,7 @@ dry-run:triage:
8
8
  script:
9
9
  - gem install gitlab-triage
10
10
  - gitlab-triage --help
11
- - gitlab-triage --dry-run --token $API_TOKEN --project-id $CI_PROJECT_PATH
11
+ - gitlab-triage --dry-run --token $API_TOKEN --source projects --source-id $CI_PROJECT_PATH
12
12
  when: manual
13
13
  except:
14
14
  - schedules
@@ -17,6 +17,6 @@ run:triage:
17
17
  stage: triage
18
18
  script:
19
19
  - gem install gitlab-triage
20
- - gitlab-triage --token $API_TOKEN --project-id $CI_PROJECT_PATH
20
+ - gitlab-triage --token $API_TOKEN --source projects --source-id $CI_PROJECT_PATH
21
21
  only:
22
22
  - schedules
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-triage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-18 00:00:00.000000000 Z
11
+ date: 2019-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport