gitlab-triage 0.17.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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