codeowners-checker 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/codeowners-checker.gemspec +11 -3
- data/issues.md +29 -0
- data/lib/codeowners/checker.rb +17 -8
- data/lib/codeowners/checker/code_owners.rb +1 -1
- data/lib/codeowners/checker/file_as_array.rb +3 -0
- data/lib/codeowners/checker/group.rb +21 -9
- data/lib/codeowners/checker/group/line.rb +7 -21
- data/lib/codeowners/checker/group/pattern.rb +27 -8
- data/lib/codeowners/checker/line_grouper.rb +7 -1
- data/lib/codeowners/checker/owner.rb +12 -0
- data/lib/codeowners/checker/version.rb +1 -1
- data/lib/codeowners/cli/main.rb +118 -31
- data/lib/codeowners/cli/suggest_file_from_pattern.rb +95 -0
- data/lib/codeowners/config.rb +1 -0
- metadata +7 -17
- data/.gitignore +0 -12
- data/.projections.json +0 -4
- data/.rspec +0 -3
- data/.rubocop.yml +0 -28
- data/.travis.yml +0 -5
- data/Gemfile +0 -5
- data/Gemfile.lock +0 -78
- data/Guardfile +0 -39
- data/Rakefile +0 -10
- data/bin/console +0 -15
- data/bin/setup +0 -8
- data/demos/missing_reference.svg +0 -1
- data/demos/useless_pattern.svg +0 -1
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Codeowners
|
4
|
+
module Cli
|
5
|
+
# Case the user have `fzf` installed, it works building suggestions from
|
6
|
+
# `fzf`. See more on #fzf_query.
|
7
|
+
#
|
8
|
+
# Without `fzf` it tries to suggest patterns using fuzzy match search picking
|
9
|
+
# all the files from the parent folder of the current pattern.
|
10
|
+
class SuggestFileFromPattern
|
11
|
+
def initialize(pattern)
|
12
|
+
@pattern = pattern
|
13
|
+
end
|
14
|
+
|
15
|
+
# Pick suggestion from current pattern
|
16
|
+
# If have fzf installed, pick suggestions using fzf
|
17
|
+
# otherwise fallback to the default fuzzy match searching for the file
|
18
|
+
# from the parent folder.
|
19
|
+
def pick_suggestion
|
20
|
+
strategy_class.new(@pattern).pick_suggestions
|
21
|
+
end
|
22
|
+
|
23
|
+
def strategy_class
|
24
|
+
SuggestFileFromPattern.installed_fzf? ? FilesFromFZFSearch : FilesFromParentFolder
|
25
|
+
end
|
26
|
+
|
27
|
+
# Checks if fzf is installed.
|
28
|
+
def self.installed_fzf?
|
29
|
+
`command -v fzf` != ''
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Build a list of suggestions case the pattern is not matching.
|
34
|
+
class SuggestionStrategy
|
35
|
+
def initialize(pattern)
|
36
|
+
@pattern = pattern
|
37
|
+
end
|
38
|
+
|
39
|
+
def pick_suggestions
|
40
|
+
raise NotImplementedError
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Bring a list of suggestions using `fzf` from the current folder
|
45
|
+
class FilesFromFZFSearch < SuggestionStrategy
|
46
|
+
# Open `fzf` with {#query} to suggest a list of matching files
|
47
|
+
def pick_suggestions
|
48
|
+
`fzf --height 50% --reverse -q #{query.inspect}`
|
49
|
+
.lines.first&.chomp
|
50
|
+
end
|
51
|
+
|
52
|
+
# Returns shortcut of the current folders
|
53
|
+
# => 'some/folder/with/file.txt' to 'some/fowi/file.txt'
|
54
|
+
def query
|
55
|
+
dir, _, file = @pattern.gsub(/[_\-\*]+/, '').rpartition '/'
|
56
|
+
dir.gsub(%r{/(\w{,2})[^/]+}, '\1') + # map 2 chars per folder
|
57
|
+
file.gsub(/\.\w+/, '') # remove extension
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Pick all files from parent folder of pattern.
|
62
|
+
# Apply fuzzy match search on all files to pick the best option.
|
63
|
+
class FilesFromParentFolder < SuggestionStrategy
|
64
|
+
# Filter for files using fuzzy match search against all the files from
|
65
|
+
# the parent folder.
|
66
|
+
def pick_suggestions
|
67
|
+
require 'fuzzy_match'
|
68
|
+
search = FuzzyMatch.new(suggest_files_for_pattern)
|
69
|
+
search.find(@pattern)
|
70
|
+
end
|
71
|
+
|
72
|
+
# If the pattern use "*/*" it will consider "."
|
73
|
+
# If the pattern uses Static files, it tries to reach the parent.
|
74
|
+
# If the pattern revers to the root folder, pick all files from the
|
75
|
+
# current pattern dir.
|
76
|
+
def query
|
77
|
+
parent_folders = @pattern.split('/')[0..-2]
|
78
|
+
parent_folders << '*' if parent_folders[-1] != '*'
|
79
|
+
File.join(*parent_folders)
|
80
|
+
end
|
81
|
+
|
82
|
+
private
|
83
|
+
|
84
|
+
def suggest_files_for_pattern
|
85
|
+
files = Dir[query] || []
|
86
|
+
files.map(&method(:normalize_path))
|
87
|
+
end
|
88
|
+
|
89
|
+
def normalize_path(file)
|
90
|
+
Pathname.new(file)
|
91
|
+
.relative_path_from(Pathname.new('.')).to_s
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
data/lib/codeowners/config.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codeowners-checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jônatas Davi Paganini
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-
|
13
|
+
date: 2019-04-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: fuzzy_match
|
@@ -174,24 +174,12 @@ executables:
|
|
174
174
|
extensions: []
|
175
175
|
extra_rdoc_files: []
|
176
176
|
files:
|
177
|
-
- ".gitignore"
|
178
|
-
- ".projections.json"
|
179
|
-
- ".rspec"
|
180
|
-
- ".rubocop.yml"
|
181
|
-
- ".travis.yml"
|
182
177
|
- CODE_OF_CONDUCT.md
|
183
|
-
- Gemfile
|
184
|
-
- Gemfile.lock
|
185
|
-
- Guardfile
|
186
178
|
- LICENSE.txt
|
187
179
|
- README.md
|
188
|
-
- Rakefile
|
189
180
|
- bin/codeowners-checker
|
190
|
-
- bin/console
|
191
|
-
- bin/setup
|
192
181
|
- codeowners-checker.gemspec
|
193
|
-
-
|
194
|
-
- demos/useless_pattern.svg
|
182
|
+
- issues.md
|
195
183
|
- lib/codeowners/checker.rb
|
196
184
|
- lib/codeowners/checker/array.rb
|
197
185
|
- lib/codeowners/checker/code_owners.rb
|
@@ -205,14 +193,16 @@ files:
|
|
205
193
|
- lib/codeowners/checker/group/pattern.rb
|
206
194
|
- lib/codeowners/checker/group/unrecognized_line.rb
|
207
195
|
- lib/codeowners/checker/line_grouper.rb
|
196
|
+
- lib/codeowners/checker/owner.rb
|
208
197
|
- lib/codeowners/checker/version.rb
|
209
198
|
- lib/codeowners/cli/base.rb
|
210
199
|
- lib/codeowners/cli/check.rb
|
211
200
|
- lib/codeowners/cli/config.rb
|
212
201
|
- lib/codeowners/cli/filter.rb
|
213
202
|
- lib/codeowners/cli/main.rb
|
203
|
+
- lib/codeowners/cli/suggest_file_from_pattern.rb
|
214
204
|
- lib/codeowners/config.rb
|
215
|
-
homepage:
|
205
|
+
homepage: https://github.com/toptal/codeowners-checker
|
216
206
|
licenses:
|
217
207
|
- MIT
|
218
208
|
metadata: {}
|
@@ -232,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
232
222
|
version: '0'
|
233
223
|
requirements: []
|
234
224
|
rubyforge_project:
|
235
|
-
rubygems_version: 2.7.
|
225
|
+
rubygems_version: 2.7.6
|
236
226
|
signing_key:
|
237
227
|
specification_version: 4
|
238
228
|
summary: Check consistency of Github CODEOWNERS and git changes.
|
data/.gitignore
DELETED
data/.projections.json
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require: rubocop-rspec
|
2
|
-
|
3
|
-
AllCops:
|
4
|
-
TargetRubyVersion: 2.5
|
5
|
-
|
6
|
-
Metrics/BlockLength:
|
7
|
-
Enabled: false
|
8
|
-
|
9
|
-
Metrics/LineLength:
|
10
|
-
Max: 120
|
11
|
-
|
12
|
-
Style/StructInheritance:
|
13
|
-
Enabled: false
|
14
|
-
|
15
|
-
RSpec/MultipleExpectations:
|
16
|
-
Enabled: false
|
17
|
-
|
18
|
-
RSpec/NamedSubject:
|
19
|
-
Enabled: false
|
20
|
-
|
21
|
-
RSpec/ExampleLength:
|
22
|
-
Enabled: false
|
23
|
-
|
24
|
-
RSpec/MessageSpies:
|
25
|
-
Enabled: false
|
26
|
-
|
27
|
-
RSpec/SubjectStub:
|
28
|
-
Enabled: false
|
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
codeowners-checker (1.0.0)
|
5
|
-
fuzzy_match (~> 2.1)
|
6
|
-
git (~> 1.5)
|
7
|
-
thor (~> 0.20.3)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
ast (2.4.0)
|
13
|
-
coderay (1.1.2)
|
14
|
-
diff-lcs (1.3)
|
15
|
-
docile (1.3.0)
|
16
|
-
fuzzy_match (2.1.0)
|
17
|
-
git (1.5.0)
|
18
|
-
jaro_winkler (1.5.1)
|
19
|
-
json (2.1.0)
|
20
|
-
method_source (0.9.2)
|
21
|
-
parallel (1.12.1)
|
22
|
-
parser (2.5.3.0)
|
23
|
-
ast (~> 2.4.0)
|
24
|
-
powerpack (0.1.2)
|
25
|
-
pry (0.12.2)
|
26
|
-
coderay (~> 1.1.0)
|
27
|
-
method_source (~> 0.9.0)
|
28
|
-
rainbow (3.0.0)
|
29
|
-
rake (10.5.0)
|
30
|
-
rb-readline (0.5.5)
|
31
|
-
rspec (3.8.0)
|
32
|
-
rspec-core (~> 3.8.0)
|
33
|
-
rspec-expectations (~> 3.8.0)
|
34
|
-
rspec-mocks (~> 3.8.0)
|
35
|
-
rspec-core (3.8.0)
|
36
|
-
rspec-support (~> 3.8.0)
|
37
|
-
rspec-expectations (3.8.2)
|
38
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
39
|
-
rspec-support (~> 3.8.0)
|
40
|
-
rspec-mocks (3.8.0)
|
41
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
42
|
-
rspec-support (~> 3.8.0)
|
43
|
-
rspec-support (3.8.0)
|
44
|
-
rubocop (0.61.1)
|
45
|
-
jaro_winkler (~> 1.5.1)
|
46
|
-
parallel (~> 1.10)
|
47
|
-
parser (>= 2.5, != 2.5.1.1)
|
48
|
-
powerpack (~> 0.1)
|
49
|
-
rainbow (>= 2.2.2, < 4.0)
|
50
|
-
ruby-progressbar (~> 1.7)
|
51
|
-
unicode-display_width (~> 1.4.0)
|
52
|
-
rubocop-rspec (1.30.1)
|
53
|
-
rubocop (>= 0.60.0)
|
54
|
-
ruby-progressbar (1.10.0)
|
55
|
-
simplecov (0.16.1)
|
56
|
-
docile (~> 1.1)
|
57
|
-
json (>= 1.8, < 3)
|
58
|
-
simplecov-html (~> 0.10.0)
|
59
|
-
simplecov-html (0.10.2)
|
60
|
-
thor (0.20.3)
|
61
|
-
unicode-display_width (1.4.0)
|
62
|
-
|
63
|
-
PLATFORMS
|
64
|
-
ruby
|
65
|
-
|
66
|
-
DEPENDENCIES
|
67
|
-
bundler (~> 1.16)
|
68
|
-
codeowners-checker!
|
69
|
-
pry (~> 0.12.2)
|
70
|
-
rake (~> 10.0)
|
71
|
-
rb-readline (~> 0.5.5)
|
72
|
-
rspec (~> 3.0)
|
73
|
-
rubocop (~> 0.61.1)
|
74
|
-
rubocop-rspec (~> 1.30)
|
75
|
-
simplecov (~> 0.16.1)
|
76
|
-
|
77
|
-
BUNDLED WITH
|
78
|
-
1.17.3
|
data/Guardfile
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# A sample Guardfile
|
4
|
-
# More info at https://github.com/guard/guard#readme
|
5
|
-
|
6
|
-
## Uncomment and set this to only include directories you want to watch
|
7
|
-
# directories %w(app lib config test spec features) \
|
8
|
-
# .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
9
|
-
|
10
|
-
## Note: if you are using the `directories` clause above and you are not
|
11
|
-
## watching the project directory ('.'), then you will want to move
|
12
|
-
## the Guardfile to a watched dir and symlink it back, e.g.
|
13
|
-
#
|
14
|
-
# $ mkdir config
|
15
|
-
# $ mv Guardfile config/
|
16
|
-
# $ ln -s config/Guardfile .
|
17
|
-
#
|
18
|
-
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
19
|
-
|
20
|
-
guard 'livereload' do
|
21
|
-
watch(%r{lib/.+\.rb$})
|
22
|
-
end
|
23
|
-
|
24
|
-
guard :rspec, cmd: 'bundle exec rspec' do
|
25
|
-
require 'guard/rspec/dsl'
|
26
|
-
dsl = Guard::RSpec::Dsl.new(self)
|
27
|
-
|
28
|
-
# Feel free to open issues for suggestions and improvements
|
29
|
-
|
30
|
-
# RSpec files
|
31
|
-
rspec = dsl.rspec
|
32
|
-
watch(rspec.spec_helper) { rspec.spec_dir }
|
33
|
-
watch(rspec.spec_support) { rspec.spec_dir }
|
34
|
-
watch(rspec.spec_files)
|
35
|
-
|
36
|
-
# Ruby files
|
37
|
-
ruby = dsl.ruby
|
38
|
-
dsl.watch_spec_files_for(ruby.lib_files)
|
39
|
-
end
|
data/Rakefile
DELETED
data/bin/console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require 'bundler/setup'
|
5
|
-
require 'code/ownership/checker'
|
6
|
-
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
9
|
-
|
10
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
-
# require "pry"
|
12
|
-
# Pry.start
|
13
|
-
|
14
|
-
require 'irb'
|
15
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
data/demos/missing_reference.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1350" height="559.33"><rect width="1350" height="559.33" rx="5" ry="5" class="a"/><svg y="0%" x="0%"><circle cx="20" cy="20" r="6" fill="#ff5f58"/><circle cx="40" cy="20" r="6" fill="#ffbd2e"/><circle cx="60" cy="20" r="6" fill="#18c132"/></svg><svg height="499.33" viewBox="0 0 131 49.933" width="1310" x="15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="50"><style>@keyframes j{0%{transform:translateX(0)}5.77%{transform:translateX(-131px)}5.91%{transform:translateX(-262px)}7.22%{transform:translateX(-393px)}7.84%{transform:translateX(-524px)}8.29%{transform:translateX(-655px)}8.9%{transform:translateX(-786px)}9.55%{transform:translateX(-917px)}10.2%{transform:translateX(-1048px)}12.57%{transform:translateX(-1179px)}14.02%{transform:translateX(-1310px)}15.87%{transform:translateX(-1441px)}16.16%{transform:translateX(-1572px)}16.83%{transform:translateX(-1703px)}17.22%{transform:translateX(-1834px)}18.26%{transform:translateX(-1965px)}26.12%{transform:translateX(-2096px)}27.78%{transform:translateX(-2227px)}30.13%{transform:translateX(-2489px)}34.33%{transform:translateX(-2620px)}35.58%{transform:translateX(-2751px)}36.16%{transform:translateX(-2882px)}36.9%{transform:translateX(-3013px)}37.79%{transform:translateX(-3144px)}38.28%{transform:translateX(-3275px)}38.74%{transform:translateX(-3406px)}39.27%{transform:translateX(-3537px)}41.32%{transform:translateX(-3668px)}42.11%{transform:translateX(-3799px)}42.64%{transform:translateX(-3930px)}43.68%{transform:translateX(-4061px)}44.3%{transform:translateX(-4192px)}44.96%{transform:translateX(-4323px)}45.97%{transform:translateX(-4454px)}46.61%{transform:translateX(-4585px)}47.51%{transform:translateX(-4716px)}48.07%{transform:translateX(-4847px)}48.77%{transform:translateX(-4978px)}49.52%{transform:translateX(-5109px)}49.94%{transform:translateX(-5240px)}50.81%{transform:translateX(-5633px)}55.56%{transform:translateX(-5764px)}57.47%{transform:translateX(-5895px)}57.48%{transform:translateX(-6026px)}62.68%{transform:translateX(-6157px)}64.07%{transform:translateX(-6419px)}66.81%{transform:translateX(-6550px)}68.72%{transform:translateX(-6681px)}69.53%{transform:translateX(-6812px)}70.4%{transform:translateX(-6943px)}71.26%{transform:translateX(-7074px)}71.8%{transform:translateX(-7205px)}72.31%{transform:translateX(-7336px)}72.74%{transform:translateX(-7467px)}74.57%{transform:translateX(-7598px)}75.81%{transform:translateX(-7729px)}76.82%{transform:translateX(-7860px)}77.46%{transform:translateX(-7991px)}78.04%{transform:translateX(-8122px)}78.62%{transform:translateX(-8253px)}79.11%{transform:translateX(-8384px)}79.56%{transform:translateX(-8515px)}80.52%{transform:translateX(-8646px)}81.39%{transform:translateX(-8777px)}81.6%{transform:translateX(-8908px)}81.88%{transform:translateX(-9039px)}82.32%{transform:translateX(-9170px)}83.52%{transform:translateX(-9432px)}88.21%{transform:translateX(-9563px)}89.78%{transform:translateX(-9694px)}90.14%{transform:translateX(-9825px)}95.23%{transform:translateX(-9956px)}96.45%{transform:translateX(-10087px)}96.64%{transform:translateX(-10218px)}96.75%{transform:translateX(-10349px)}to{transform:translateX(-10480px)}}.a{fill:#282d35}.f{fill:#b9c0cb}.g{fill:#a8cc8c}.l{fill:#b9c0cb;text-decoration:underline}.m{fill:#e88388;font-weight:700}</style><g font-size="1.67" font-family="Monaco,Consolas,Menlo,'Bitstream Vera Sans Mono','Powerline Symbols',monospace"><defs><symbol id="1"><text y="1.67" class="f">Evas-MBP%</text></symbol><symbol id="2"><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">check</text></symbol><symbol id="3"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">added:</text><text x="12.024" y="1.67" class="f">"app/controllers/application_controller.rb".</text><text x="57.114" y="1.67" class="f">Add</text><text x="61.122" y="1.67" class="f">owner</text><text x="67.134" y="1.67" class="f">to</text><text x="70.14" y="1.67" class="f">CODEOWNERS?</text><text x="82.164" y="1.67" class="f">y</text></symbol><symbol id="4"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text></symbol><symbol id="5"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@</text></symbol><symbol id="6"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@c</text></symbol><symbol id="7"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@co</text></symbol><symbol id="8"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@com</text></symbol><symbol id="9"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@comp</text></symbol><symbol id="10"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@compa</text></symbol><symbol id="11"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@compan</text></symbol><symbol id="12"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@company</text></symbol><symbol id="13"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@company/</text></symbol><symbol id="14"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@company/b</text></symbol><symbol id="15"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@company/backend-devs</text></symbol><symbol id="16"><text y="1.67" class="f">Possible</text><text x="9.018" y="1.67" class="f">groups</text><text x="16.032" y="1.67" class="f">to</text><text x="19.038" y="1.67" class="f">which</text><text x="25.05" y="1.67" class="f">the</text><text x="29.058" y="1.67" class="f">pattern</text><text x="37.074" y="1.67" class="f">belongs:</text></symbol><symbol id="17"><text y="1.67" class="f">1</text><text x="2.004" y="1.67" class="f">-</text><text x="4.008" y="1.67" class="f">#</text><text x="6.012" y="1.67" class="f">Backend</text></symbol><symbol id="18"><text y="1.67" class="f">Choose</text><text x="7.014" y="1.67" class="f">group:</text><text x="15.03" y="1.67" class="f">1</text></symbol><symbol id="19"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">added:</text><text x="12.024" y="1.67" class="f">"lib/invoices.rb".</text><text x="31.062" y="1.67" class="f">Add</text><text x="35.07" y="1.67" class="f">owner</text><text x="41.082" y="1.67" class="f">to</text><text x="44.088" y="1.67" class="f">CODEOWNERS?</text><text x="56.112" y="1.67" class="f">y</text></symbol><symbol id="20"><text y="1.67" class="f">File</text><text x="5.01" y="1.67" class="f">owner(s):</text><text x="16.032" y="1.67" class="f">@company/billing-team</text></symbol><symbol id="21"><text y="1.67" class="f">Add</text><text x="4.008" y="1.67" class="f">to</text><text x="7.014" y="1.67" class="f">the</text><text x="11.022" y="1.67" class="f">end</text><text x="15.03" y="1.67" class="f">of</text><text x="18.036" y="1.67" class="f">the</text><text x="22.044" y="1.67" class="f">codeowners</text><text x="33.066" y="1.67" class="f">file?</text><text x="39.078" y="1.67" class="f">y</text></symbol><symbol id="22"><text y="1.67" class="f">Commit</text><text x="7.014" y="1.67" class="f">changes?</text><text x="16.032" y="1.67" class="f">y</text></symbol><symbol id="a"><path fill="transparent" d="M0 0h131v24H0z"/></symbol><symbol id="b"><path fill="#6f7683" d="M0 0h1.102v2.171H0z"/></symbol></defs><path class="a" d="M0 0h131v49.933H0z"/><g style="animation-duration:23.886376s;animation-iteration-count:infinite;animation-name:j;animation-timing-function:steps(1,end)"><svg width="10611"><svg><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="131"><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="262"><use xlink:href="#a"/><use xlink:href="#b" x="9.996"/><use xlink:href="#1"/></svg><svg x="393"><use xlink:href="#a"/><use xlink:href="#b" x="10.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="l">c</text></svg><svg x="524"><use xlink:href="#a"/><use xlink:href="#b" x="11.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="l">co</text></svg><svg x="655"><use xlink:href="#a"/><use xlink:href="#b" x="12.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="m">cod</text></svg><svg x="786"><use xlink:href="#a"/><use xlink:href="#b" x="13.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">code</text></svg><svg x="917"><use xlink:href="#a"/><use xlink:href="#b" x="14.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="m">codeo</text></svg><svg x="1048"><use xlink:href="#a"/><use xlink:href="#b" x="15.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="m">codeow</text></svg><svg x="1179"><use xlink:href="#a"/><use xlink:href="#b" x="28.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text></svg><svg x="1310"><use xlink:href="#a"/><use xlink:href="#b" x="29.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="l">c</text></svg><svg x="1441"><use xlink:href="#a"/><use xlink:href="#b" x="30.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">ch</text></svg><svg x="1572"><use xlink:href="#a"/><use xlink:href="#b" x="31.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">che</text></svg><svg x="1703"><use xlink:href="#a"/><use xlink:href="#b" x="32.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">chec</text></svg><svg x="1834"><use xlink:href="#a"/><use xlink:href="#b" x="33.996"/><use xlink:href="#2"/></svg><svg x="1965"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="2.146"/><use xlink:href="#2"/></svg><svg x="2096"><use xlink:href="#a"/><use xlink:href="#b" x="81.996" y="2.146"/><use xlink:href="#2"/><text y="3.841" class="f">File</text><text x="5.01" y="3.841" class="f">added:</text><text x="12.024" y="3.841" class="f">"app/controllers/application_controller.rb".</text><text x="57.114" y="3.841" class="f">Add</text><text x="61.122" y="3.841" class="f">owner</text><text x="67.134" y="3.841" class="f">to</text><text x="70.14" y="3.841" class="f">CODEOWNERS?</text></svg><svg x="2227"><use xlink:href="#a"/><use xlink:href="#b" x="82.996" y="2.146"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/></svg><svg x="2358"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/></svg><svg x="2489"><use xlink:href="#a"/><use xlink:href="#b" x="15.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="2620"><use xlink:href="#a"/><use xlink:href="#b" x="16.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="2751"><use xlink:href="#a"/><use xlink:href="#b" x="17.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2882"><use xlink:href="#a"/><use xlink:href="#b" x="18.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#7" y="4.342"/></svg><svg x="3013"><use xlink:href="#a"/><use xlink:href="#b" x="19.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#8" y="4.342"/></svg><svg x="3144"><use xlink:href="#a"/><use xlink:href="#b" x="20.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#9" y="4.342"/></svg><svg x="3275"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#10" y="4.342"/></svg><svg x="3406"><use xlink:href="#a"/><use xlink:href="#b" x="22.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#11" y="4.342"/></svg><svg x="3537"><use xlink:href="#a"/><use xlink:href="#b" x="23.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#12" y="4.342"/></svg><svg x="3668"><use xlink:href="#a"/><use xlink:href="#b" x="24.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#13" y="4.342"/></svg><svg x="3799"><use xlink:href="#a"/><use xlink:href="#b" x="25.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#14" y="4.342"/></svg><svg x="3930"><use xlink:href="#a"/><use xlink:href="#b" x="26.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/ba</text></svg><svg x="4061"><use xlink:href="#a"/><use xlink:href="#b" x="27.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/bac</text></svg><svg x="4192"><use xlink:href="#a"/><use xlink:href="#b" x="28.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/back</text></svg><svg x="4323"><use xlink:href="#a"/><use xlink:href="#b" x="29.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backe</text></svg><svg x="4454"><use xlink:href="#a"/><use xlink:href="#b" x="30.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backen</text></svg><svg x="4585"><use xlink:href="#a"/><use xlink:href="#b" x="31.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backend</text></svg><svg x="4716"><use xlink:href="#a"/><use xlink:href="#b" x="32.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backend-</text></svg><svg x="4847"><use xlink:href="#a"/><use xlink:href="#b" x="33.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backend-d</text></svg><svg x="4978"><use xlink:href="#a"/><use xlink:href="#b" x="34.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backend-de</text></svg><svg x="5109"><use xlink:href="#a"/><use xlink:href="#b" x="35.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="f">File</text><text x="5.01" y="6.012" class="f">owner(s):</text><text x="16.032" y="6.012" class="f">@company/backend-dev</text></svg><svg x="5240"><use xlink:href="#a"/><use xlink:href="#b" x="36.996" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/></svg><svg x="5371"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/></svg><svg x="5502"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="10.83"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/></svg><svg x="5633"><use xlink:href="#a"/><use xlink:href="#b" x="14.996" y="10.83"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><text y="12.525" class="f">Choose</text><text x="7.014" y="12.525" class="f">group:</text></svg><svg x="5764"><use xlink:href="#a"/><use xlink:href="#b" x="15.996" y="10.83"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/></svg><svg x="5895"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="13.001"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/></svg><svg x="6026"><use xlink:href="#a"/><use xlink:href="#b" x="55.996" y="13.001"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><text y="14.696" class="f">File</text><text x="5.01" y="14.696" class="f">added:</text><text x="12.024" y="14.696" class="f">"lib/invoices.rb".</text><text x="31.062" y="14.696" class="f">Add</text><text x="35.07" y="14.696" class="f">owner</text><text x="41.082" y="14.696" class="f">to</text><text x="44.088" y="14.696" class="f">CODEOWNERS?</text></svg><svg x="6157"><use xlink:href="#a"/><use xlink:href="#b" x="56.996" y="13.001"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/></svg><svg x="6288"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/></svg><svg x="6419"><use xlink:href="#a"/><use xlink:href="#b" x="15.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#4" y="15.197"/></svg><svg x="6550"><use xlink:href="#a"/><use xlink:href="#b" x="16.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#5" y="15.197"/></svg><svg x="6681"><use xlink:href="#a"/><use xlink:href="#b" x="17.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#6" y="15.197"/></svg><svg x="6812"><use xlink:href="#a"/><use xlink:href="#b" x="18.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#7" y="15.197"/></svg><svg x="6943"><use xlink:href="#a"/><use xlink:href="#b" x="19.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#8" y="15.197"/></svg><svg x="7074"><use xlink:href="#a"/><use xlink:href="#b" x="20.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#9" y="15.197"/></svg><svg x="7205"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#10" y="15.197"/></svg><svg x="7336"><use xlink:href="#a"/><use xlink:href="#b" x="22.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#11" y="15.197"/></svg><svg x="7467"><use xlink:href="#a"/><use xlink:href="#b" x="23.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#12" y="15.197"/></svg><svg x="7598"><use xlink:href="#a"/><use xlink:href="#b" x="24.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#13" y="15.197"/></svg><svg x="7729"><use xlink:href="#a"/><use xlink:href="#b" x="25.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#14" y="15.197"/></svg><svg x="7860"><use xlink:href="#a"/><use xlink:href="#b" x="26.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/bi</text></svg><svg x="7991"><use xlink:href="#a"/><use xlink:href="#b" x="27.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/bil</text></svg><svg x="8122"><use xlink:href="#a"/><use xlink:href="#b" x="28.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/bill</text></svg><svg x="8253"><use xlink:href="#a"/><use xlink:href="#b" x="29.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billi</text></svg><svg x="8384"><use xlink:href="#a"/><use xlink:href="#b" x="30.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billin</text></svg><svg x="8515"><use xlink:href="#a"/><use xlink:href="#b" x="31.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billing</text></svg><svg x="8646"><use xlink:href="#a"/><use xlink:href="#b" x="32.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billing-</text></svg><svg x="8777"><use xlink:href="#a"/><use xlink:href="#b" x="33.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billing-t</text></svg><svg x="8908"><use xlink:href="#a"/><use xlink:href="#b" x="34.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billing-te</text></svg><svg x="9039"><use xlink:href="#a"/><use xlink:href="#b" x="35.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><text y="16.867" class="f">File</text><text x="5.01" y="16.867" class="f">owner(s):</text><text x="16.032" y="16.867" class="f">@company/billing-tea</text></svg><svg x="9170"><use xlink:href="#a"/><use xlink:href="#b" x="36.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/></svg><svg x="9301"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="17.343"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/></svg><svg x="9432"><use xlink:href="#a"/><use xlink:href="#b" x="38.996" y="17.343"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><text y="19.038" class="f">Add</text><text x="4.008" y="19.038" class="f">to</text><text x="7.014" y="19.038" class="f">the</text><text x="11.022" y="19.038" class="f">end</text><text x="15.03" y="19.038" class="f">of</text><text x="18.036" y="19.038" class="f">the</text><text x="22.044" y="19.038" class="f">codeowners</text><text x="33.066" y="19.038" class="f">file?</text></svg><svg x="9563"><use xlink:href="#a"/><use xlink:href="#b" x="39.996" y="17.343"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/></svg><svg x="9694"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="19.514"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/></svg><svg x="9825"><use xlink:href="#a"/><use xlink:href="#b" x="15.996" y="19.514"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/><text y="21.209" class="f">Commit</text><text x="7.014" y="21.209" class="f">changes?</text></svg><svg x="9956"><use xlink:href="#a"/><use xlink:href="#b" x="16.996" y="19.514"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/><use xlink:href="#22" y="19.539"/></svg><svg x="10087"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="21.685"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/><use xlink:href="#22" y="19.539"/></svg><svg x="10218"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="21.685"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/><use xlink:href="#22" y="19.539"/></svg><svg x="10349"><use xlink:href="#a"/><use xlink:href="#b" x="9.996" y="21.685"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/><use xlink:href="#22" y="19.539"/><use xlink:href="#1" y="21.71"/></svg><svg x="10480"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="23.856"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#15" y="4.342"/><use xlink:href="#16" y="6.513"/><use xlink:href="#17" y="8.684"/><use xlink:href="#18" y="10.855"/><use xlink:href="#19" y="13.026"/><use xlink:href="#20" y="15.197"/><use xlink:href="#21" y="17.368"/><use xlink:href="#22" y="19.539"/><use xlink:href="#1" y="21.71"/></svg></svg></g></g></svg></svg>
|
data/demos/useless_pattern.svg
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1350" height="559.33"><rect width="1350" height="559.33" rx="5" ry="5" class="a"/><svg y="0%" x="0%"><circle cx="20" cy="20" r="6" fill="#ff5f58"/><circle cx="40" cy="20" r="6" fill="#ffbd2e"/><circle cx="60" cy="20" r="6" fill="#18c132"/></svg><svg height="499.33" viewBox="0 0 131 49.933" width="1310" x="15" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="50"><style>@keyframes j{0%{transform:translateX(0)}8.43%{transform:translateX(-131px)}8.58%{transform:translateX(-262px)}10.85%{transform:translateX(-393px)}11.44%{transform:translateX(-524px)}12.04%{transform:translateX(-655px)}12.8%{transform:translateX(-786px)}13.62%{transform:translateX(-917px)}15%{transform:translateX(-1048px)}16.64%{transform:translateX(-1179px)}17.48%{transform:translateX(-1310px)}18.07%{transform:translateX(-1441px)}19.02%{transform:translateX(-1572px)}19.68%{transform:translateX(-1703px)}21.08%{transform:translateX(-1834px)}31.09%{transform:translateX(-2096px)}43.03%{transform:translateX(-2227px)}44.85%{transform:translateX(-2358px)}44.9%{transform:translateX(-2620px)}50.66%{transform:translateX(-2751px)}53.08%{transform:translateX(-2882px)}53.19%{transform:translateX(-3144px)}63.72%{transform:translateX(-3275px)}65.64%{transform:translateX(-3537px)}71.26%{transform:translateX(-3668px)}72.87%{transform:translateX(-3799px)}73.88%{transform:translateX(-3930px)}74.34%{transform:translateX(-4061px)}75.12%{transform:translateX(-4192px)}75.81%{transform:translateX(-4323px)}76.63%{transform:translateX(-4454px)}77.8%{transform:translateX(-4585px)}80.16%{transform:translateX(-4716px)}81.24%{transform:translateX(-4847px)}82.02%{transform:translateX(-4978px)}82.24%{transform:translateX(-5109px)}85.12%{transform:translateX(-5371px)}89.93%{transform:translateX(-5502px)}92.02%{transform:translateX(-5633px)}92.37%{transform:translateX(-5764px)}92.49%{transform:translateX(-5895px)}to{transform:translateX(-6026px)}}.a{fill:#282d35}.f{fill:#b9c0cb}.g{fill:#a8cc8c}.l{fill:#b9c0cb;text-decoration:underline}.m{fill:#e88388;font-weight:700}</style><g font-size="1.67" font-family="Monaco,Consolas,Menlo,'Bitstream Vera Sans Mono','Powerline Symbols',monospace"><defs><symbol id="1"><text y="1.67" class="f">Evas-MBP%</text></symbol><symbol id="2"><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">check</text></symbol><symbol id="3"><text y="1.67" class="f">Pattern</text><text x="8.016" y="1.67" class="f">"app/models/billng.rb"</text><text x="31.062" y="1.67" class="f">doesn't</text><text x="39.078" y="1.67" class="f">match.</text></symbol><symbol id="4"><text y="1.67" class="f">Replace</text><text x="8.016" y="1.67" class="f">with:</text><text x="14.028" y="1.67" class="f">"app/models/billing.rb"?</text></symbol><symbol id="5"><text y="1.67" class="f">(y)</text><text x="4.008" y="1.67" class="f">yes</text></symbol><symbol id="6"><text y="1.67" class="f">(i)</text><text x="4.008" y="1.67" class="f">ignore</text></symbol><symbol id="7"><text y="1.67" class="f">(e)</text><text x="4.008" y="1.67" class="f">edit</text><text x="9.018" y="1.67" class="f">the</text><text x="13.026" y="1.67" class="f">pattern</text></symbol><symbol id="8"><text y="1.67" class="f">(d)</text><text x="4.008" y="1.67" class="f">delete</text><text x="11.022" y="1.67" class="f">the</text><text x="15.03" y="1.67" class="f">pattern</text></symbol><symbol id="9"><text x="1.002" y="1.67" class="f">[y,</text><text x="5.01" y="1.67" class="f">i,</text><text x="8.016" y="1.67" class="f">e,</text><text x="11.022" y="1.67" class="f">d]</text></symbol><symbol id="10"><text x="1.002" y="1.67" class="f">[y,</text><text x="5.01" y="1.67" class="f">i,</text><text x="8.016" y="1.67" class="f">e,</text><text x="11.022" y="1.67" class="f">d]</text><text x="14.028" y="1.67" class="f">y</text></symbol><symbol id="11"><text y="1.67" class="f">Pattern</text><text x="8.016" y="1.67" class="f">"lib/security/*"</text><text x="25.05" y="1.67" class="f">doesn't</text><text x="33.066" y="1.67" class="f">match.</text></symbol><symbol id="12"><text x="1.002" y="1.67" class="f">[i,</text><text x="5.01" y="1.67" class="f">e,</text><text x="8.016" y="1.67" class="f">d]</text><text x="11.022" y="1.67" class="f">d</text></symbol><symbol id="13"><text y="1.67" class="f">Pattern</text><text x="8.016" y="1.67" class="f">".rubo.yml"</text><text x="20.04" y="1.67" class="f">doesn't</text><text x="28.056" y="1.67" class="f">match.</text></symbol><symbol id="14"><text y="1.67" class="f">Replace</text><text x="8.016" y="1.67" class="f">with:</text><text x="14.028" y="1.67" class="f">"db"?</text></symbol><symbol id="15"><text x="1.002" y="1.67" class="f">[y,</text><text x="5.01" y="1.67" class="f">i,</text><text x="8.016" y="1.67" class="f">e,</text><text x="11.022" y="1.67" class="f">d]</text><text x="14.028" y="1.67" class="f">e</text></symbol><symbol id="16"><text y="1.67" class="f">Replace</text><text x="8.016" y="1.67" class="f">pattern</text><text x="16.032" y="1.67" class="f">".rubo.yml"</text><text x="28.056" y="1.67" class="f">with:</text><text x="35.07" y="1.67" class="f">.rubocop.yml</text></symbol><symbol id="17"><text y="1.67" class="f">Commit</text><text x="7.014" y="1.67" class="f">changes?</text><text x="16.032" y="1.67" class="f">y</text></symbol><symbol id="a"><path fill="transparent" d="M0 0h131v24H0z"/></symbol><symbol id="b"><path fill="#6f7683" d="M0 0h1.102v2.171H0z"/></symbol></defs><path class="a" d="M0 0h131v49.933H0z"/><g style="animation-duration:19.572061s;animation-iteration-count:infinite;animation-name:j;animation-timing-function:steps(1,end)"><svg width="6157"><svg><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="131"><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="262"><use xlink:href="#a"/><use xlink:href="#b" x="9.996"/><use xlink:href="#1"/></svg><svg x="393"><use xlink:href="#a"/><use xlink:href="#b" x="10.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="l">c</text></svg><svg x="524"><use xlink:href="#a"/><use xlink:href="#b" x="11.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="l">co</text></svg><svg x="655"><use xlink:href="#a"/><use xlink:href="#b" x="12.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="m">cod</text></svg><svg x="786"><use xlink:href="#a"/><use xlink:href="#b" x="13.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">code</text></svg><svg x="917"><use xlink:href="#a"/><use xlink:href="#b" x="14.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="m">codeo</text></svg><svg x="1048"><use xlink:href="#a"/><use xlink:href="#b" x="28.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text></svg><svg x="1179"><use xlink:href="#a"/><use xlink:href="#b" x="29.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="l">c</text></svg><svg x="1310"><use xlink:href="#a"/><use xlink:href="#b" x="30.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">ch</text></svg><svg x="1441"><use xlink:href="#a"/><use xlink:href="#b" x="31.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">che</text></svg><svg x="1572"><use xlink:href="#a"/><use xlink:href="#b" x="32.996"/><text y="1.67" class="f">Evas-MBP%</text><text x="10.02" y="1.67" class="g">codeowners-checker</text><text x="29.058" y="1.67" class="f">chec</text></svg><svg x="1703"><use xlink:href="#a"/><use xlink:href="#b" x="33.996"/><use xlink:href="#2"/></svg><svg x="1834"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="2.146"/><use xlink:href="#2"/></svg><svg x="1965"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="4.317"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/></svg><svg x="2096"><use xlink:href="#a"/><use xlink:href="#b" x="13.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#9" y="15.197"/></svg><svg x="2227"><use xlink:href="#a"/><use xlink:href="#b" x="14.996" y="15.172"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/></svg><svg x="2358"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="17.343"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/></svg><svg x="2489"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="19.514"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/></svg><svg x="2620"><use xlink:href="#a"/><use xlink:href="#b" x="10.996" y="26.027"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><text x="1.002" y="27.722" class="f">[i,</text><text x="5.01" y="27.722" class="f">e,</text><text x="8.016" y="27.722" class="f">d]</text></svg><svg x="2751"><use xlink:href="#a"/><use xlink:href="#b" x="11.996" y="26.027"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/></svg><svg x="2882"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="28.198"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/></svg><svg x="3013"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="30.369"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/></svg><svg x="3144"><use xlink:href="#a"/><use xlink:href="#b" x="13.996" y="41.224"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#9" y="41.249"/></svg><svg x="3275"><use xlink:href="#a"/><use xlink:href="#b" x="14.996" y="41.224"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/></svg><svg x="3406"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/></svg><svg x="3537"><use xlink:href="#a"/><use xlink:href="#b" x="34.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text></svg><svg x="3668"><use xlink:href="#a"/><use xlink:href="#b" x="35.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.</text></svg><svg x="3799"><use xlink:href="#a"/><use xlink:href="#b" x="36.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.r</text></svg><svg x="3930"><use xlink:href="#a"/><use xlink:href="#b" x="37.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.ru</text></svg><svg x="4061"><use xlink:href="#a"/><use xlink:href="#b" x="38.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.rub</text></svg><svg x="4192"><use xlink:href="#a"/><use xlink:href="#b" x="39.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.rubo</text></svg><svg x="4323"><use xlink:href="#a"/><use xlink:href="#b" x="40.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.ruboc</text></svg><svg x="4454"><use xlink:href="#a"/><use xlink:href="#b" x="41.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.ruboco</text></svg><svg x="4585"><use xlink:href="#a"/><use xlink:href="#b" x="42.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.rubocop</text></svg><svg x="4716"><use xlink:href="#a"/><use xlink:href="#b" x="43.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.rubocop.</text></svg><svg x="4847"><use xlink:href="#a"/><use xlink:href="#b" x="44.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.rubocop.y</text></svg><svg x="4978"><use xlink:href="#a"/><use xlink:href="#b" x="45.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><text y="45.09" class="f">Replace</text><text x="8.016" y="45.09" class="f">pattern</text><text x="16.032" y="45.09" class="f">".rubo.yml"</text><text x="28.056" y="45.09" class="f">with:</text><text x="35.07" y="45.09" class="f">.rubocop.ym</text></svg><svg x="5109"><use xlink:href="#a"/><use xlink:href="#b" x="46.996" y="43.395"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/></svg><svg x="5240"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="45.566"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/></svg><svg x="5371"><use xlink:href="#a"/><use xlink:href="#b" x="15.996" y="45.566"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/><text y="47.261" class="f">Commit</text><text x="7.014" y="47.261" class="f">changes?</text></svg><svg x="5502"><use xlink:href="#a"/><use xlink:href="#b" x="16.996" y="45.566"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/><use xlink:href="#17" y="45.591"/></svg><svg x="5633"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="47.737"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/><use xlink:href="#17" y="45.591"/></svg><svg x="5764"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="47.737"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/><use xlink:href="#17" y="45.591"/></svg><svg x="5895"><use xlink:href="#a"/><use xlink:href="#b" x="9.996" y="47.737"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/><use xlink:href="#17" y="45.591"/><use xlink:href="#1" y="47.762"/></svg><svg x="6026"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="49.908"/><use xlink:href="#2"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/><use xlink:href="#5" y="6.513"/><use xlink:href="#6" y="8.684"/><use xlink:href="#7" y="10.855"/><use xlink:href="#8" y="13.026"/><use xlink:href="#10" y="15.197"/><use xlink:href="#11" y="17.368"/><use xlink:href="#7" y="19.539"/><use xlink:href="#8" y="21.71"/><use xlink:href="#6" y="23.881"/><use xlink:href="#12" y="26.052"/><use xlink:href="#13" y="28.223"/><use xlink:href="#14" y="30.394"/><use xlink:href="#5" y="32.565"/><use xlink:href="#6" y="34.736"/><use xlink:href="#7" y="36.907"/><use xlink:href="#8" y="39.078"/><use xlink:href="#15" y="41.249"/><use xlink:href="#16" y="43.42"/><use xlink:href="#17" y="45.591"/><use xlink:href="#1" y="47.762"/></svg></svg></g></g></svg></svg>
|