theforeman-rubocop 0.0.6 → 0.1.2

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: bbbe548f51498820c292bf44965d764dbdab91c1d193a829231d6249bf7e7daf
4
- data.tar.gz: 84927a1cfba2eee92b2fbc55baace5559d66c97188e45ed2354c1e7ffe6c1a8b
3
+ metadata.gz: 4e9eb8f575e916fcab0745eb7276223aa6dcb811a15d07c2060797c5f39052f7
4
+ data.tar.gz: 036dd53d4ef286f78a8e19a516943760a7d639b2802001fc1dac4a0d01d60c9a
5
5
  SHA512:
6
- metadata.gz: d7d2faf2f935f170891ac00a820767d7052191b094bd4a2533fd24c84c3f0fc46907a74d62a6f7db6541fa970123bbb274ef52ee492ca248eba2ac7db83fed2f
7
- data.tar.gz: 127c9be12615fcac2b0c8995364f86e9f7df6c012a1fa7c2d051dcfff55d7382fc630b786cc68218f34354329c8a1604bd0abb1814ff5f0fce77347fe047e353
6
+ metadata.gz: e3de58bbbb56e96a03f537a33c06584db876f9c6d6afacc8425925f2958e5eed0ec6b0c51b92463d77c81cd43179cd3b957618cd96ad36ee7fc8adaef492a58c
7
+ data.tar.gz: 5b15ed628bfce839978f14afd07a2c854c273f520633c4819796851aa074f13c135f50d8c2aee62bf01007c04fb948a1413038c9ca20e7a33b818db30571736f
@@ -1,50 +1,17 @@
1
1
  name: Publish RubyGem
2
2
 
3
3
  on:
4
- tags:
5
- - v*
4
+ create:
5
+ tags:
6
+ - v*
6
7
 
7
8
  jobs:
8
- publish_ghp:
9
- name: Build + Publish on GHP
10
- runs-on: ubuntu-latest
11
-
12
- steps:
13
- - uses: actions/checkout@v2
14
- - name: Set up Ruby 2.6
15
- uses: actions/setup-ruby@v1
16
- with:
17
- ruby-version: 2.6.x
18
-
19
- - run: gem build *.gemspec
20
- - name: Publish to GPR
21
- run: |
22
- mkdir -p $HOME/.gem
23
- touch $HOME/.gem/credentials
24
- chmod 0600 $HOME/.gem/credentials
25
- printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
26
- gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
27
- env:
28
- GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
29
- OWNER: ${{ github.repository_owner }}
30
-
31
9
  publish_rubygems:
32
10
  name: Build + Publish on RubyGems
33
11
  runs-on: ubuntu-latest
34
12
  steps:
35
13
  - uses: actions/checkout@v2
36
- - name: Set up Ruby 2.6
37
- uses: actions/setup-ruby@v1
38
- with:
39
- ruby-version: 2.6.x
40
-
41
- - run: gem build *.gemspec
42
14
  - name: Publish to RubyGems
43
- run: |
44
- mkdir -p $HOME/.gem
45
- touch $HOME/.gem/credentials
46
- chmod 0600 $HOME/.gem/credentials
47
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
48
- gem push *.gem
49
- env:
50
- GEM_HOST_API_KEY: "Bearer ${{secrets.RUBYGEM_API_KEY}}"
15
+ uses: dawidd6/action-publish-gem@v1
16
+ with:
17
+ api_key: ${{secrets.RUBYGEM_API_KEY}}
data/README.md CHANGED
@@ -14,6 +14,8 @@ Instead of defining the rules for plugin per plugin, plugins can include default
14
14
 
15
15
  ## Usage
16
16
 
17
+ There is also a [guide how to run this in GH action](docs/github_action.md)
18
+
17
19
  ```ruby
18
20
  # Gemfile
19
21
  gem 'theforeman-rubocop', '~> 0.0.4'
data/default.yml CHANGED
@@ -4,6 +4,8 @@ inherit_from:
4
4
  - rules/style.yml
5
5
  - rules/performance.yml
6
6
  - rules/rails.yml
7
+ - rules/to_decide.yml
8
+ - rules/minitest.yml
7
9
 
8
10
  AllCops:
9
11
  NewCops: disable
@@ -0,0 +1,51 @@
1
+ # How to run RuboCop in GH action
2
+
3
+ ## Foreman plugin
4
+
5
+ We will cover how to do use this in Foreman plugin. It should work for any rubygem the same tho.
6
+
7
+ Rubocop doesn't benefit from running in the full Foreman environment so it is actually better to have own dependency in Gemfile on it.
8
+ We are then able to run the rubocop directly in the plugin folder, which is much faster as we install only the plugin dependencies, not the full foreman dependencies.
9
+
10
+ In theory, you can just `gem install theforeman-foreman` in the action, but it is discouraged as it is then hard to synchronize what version you use in the CI.
11
+
12
+ ### Plugin `Gemfile`
13
+
14
+ ```ruby
15
+ source 'https://rubygems.org'
16
+ gemspec
17
+
18
+ # We use special group rubocop so we can opt out from all dependencies but rubocop.
19
+ gem 'theforeman-rubocop', '~> 0.1.0', groups: %i[development rubocop]
20
+ ```
21
+
22
+ ### GH action
23
+
24
+ Following GH action will run
25
+
26
+ ```yaml
27
+ name: Ruby Testing
28
+ on:
29
+ pull_request:
30
+ push:
31
+ branches:
32
+ - master
33
+ jobs:
34
+ rubocop:
35
+ runs-on: ubuntu-latest
36
+ env:
37
+ BUNDLE_WITHOUT: development:test
38
+ steps:
39
+ - uses: actions/checkout@v2
40
+ - name: Setup Ruby
41
+ uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: 2.7 # Currently supported ruby verion
44
+ bundler-cache: true
45
+ - name: Run rubocop
46
+ run: bundle exec rubocop -P --format github
47
+ view_specs:
48
+ runs-on: ubuntu-latest
49
+ needs: rubocop
50
+ # .... Whatever you run as tests if you run them in GH actions
51
+ ```
data/lenient.yml CHANGED
@@ -1,3 +1,4 @@
1
1
  inherit_from:
2
2
  - default.yml
3
3
  - rules/style_lenient.yml
4
+ - rules/minitest_lenient.yml
@@ -1,5 +1,5 @@
1
1
  module Theforeman
2
2
  module Rubocop
3
- VERSION = '0.0.6'.freeze
3
+ VERSION = '0.1.2'.freeze
4
4
  end
5
5
  end
data/rules/minitest.yml CHANGED
@@ -1,2 +1,5 @@
1
1
  require:
2
2
  - rubocop-minitest
3
+
4
+ Minitest/MultipleAssertions:
5
+ Max: 5
@@ -0,0 +1,2 @@
1
+ Minitest/MultipleAssertions:
2
+ Enabled: false
@@ -1,7 +1,13 @@
1
+ Naming/VariableNumber:
2
+ Enabled: false
3
+
1
4
  # Don't prefer is_a? over kind_of?
2
5
  Style/ClassCheck:
3
6
  Enabled: false
4
7
 
8
+ Style/HashAsLastArrayItem:
9
+ Enabled: false
10
+
5
11
  # Support both, Ruby 1.9 hashmap and hash-rocket syntax
6
12
  Style/HashSyntax:
7
13
  EnforcedStyle: no_mixed_keys
@@ -14,6 +20,9 @@ Style/LineEndConcatenation:
14
20
  Style/StringLiterals:
15
21
  Enabled: false
16
22
 
23
+ Style/StringConcatenation:
24
+ Enabled: false
25
+
17
26
  Style/SymbolArray:
18
27
  EnforcedStyle: brackets
19
28
  MinSize: 1
@@ -0,0 +1,3 @@
1
+ # We need to decide if we want to allow releasing from CI
2
+ Gemspec/RequireMFA:
3
+ Enabled: false
data/strict.yml CHANGED
@@ -1,11 +1,12 @@
1
1
  inherit_from:
2
2
  - rules/base.yml
3
+ - rules/ruby_target.yml
3
4
  - rules/style.yml
4
5
  - rules/performance.yml
5
6
  - rules/metrics.yml
6
- - rules/ruby_target.yml
7
7
  - rules/rails.yml
8
8
  - rules/minitest.yml
9
+ - rules/to_decide.yml
9
10
 
10
11
  AllCops:
11
12
  NewCops: disable
@@ -20,12 +20,13 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_dependency 'rubocop', '~> 0.89.0'
23
+ spec.add_dependency 'rubocop', '~> 1.23.0'
24
24
  spec.add_dependency 'rubocop-checkstyle_formatter', '~> 0.4.0'
25
- spec.add_dependency 'rubocop-rspec', '~> 1.43.2'
26
- spec.add_dependency 'rubocop-minitest', '~> 0.10.1'
25
+ spec.add_dependency 'rubocop-rspec', '~> 2.0'
26
+ spec.add_dependency 'rubocop-minitest', '~> 0.17.0'
27
27
  spec.add_dependency 'rubocop-performance', '~> 1.8.1'
28
- spec.add_dependency 'rubocop-rails', '~> 2.8.1'
28
+ spec.add_dependency 'rubocop-rails', '~> 2.12.4'
29
+ spec.add_dependency 'rubocop-graphql', '~> 0.11.2'
29
30
  spec.add_development_dependency 'bundler', '~> 2.1'
30
31
  spec.add_development_dependency 'rake', '~> 13.0'
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: theforeman-rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondřej Ezr
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-30 00:00:00.000000000 Z
11
+ date: 2021-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.89.0
19
+ version: 1.23.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.89.0
26
+ version: 1.23.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop-checkstyle_formatter
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.43.2
47
+ version: '2.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.43.2
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop-minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.10.1
61
+ version: 0.17.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.10.1
68
+ version: 0.17.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop-performance
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.8.1
89
+ version: 2.12.4
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.8.1
96
+ version: 2.12.4
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-graphql
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.11.2
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.11.2
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: bundler
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -133,17 +147,20 @@ files:
133
147
  - AUTHORS
134
148
  - README.md
135
149
  - default.yml
150
+ - docs/github_action.md
136
151
  - lenient.yml
137
152
  - lib/theforeman/rubocop/version.rb
138
153
  - minitest.yml
139
154
  - rules/base.yml
140
155
  - rules/metrics.yml
141
156
  - rules/minitest.yml
157
+ - rules/minitest_lenient.yml
142
158
  - rules/performance.yml
143
159
  - rules/rails.yml
144
160
  - rules/ruby_target.yml
145
161
  - rules/style.yml
146
162
  - rules/style_lenient.yml
163
+ - rules/to_decide.yml
147
164
  - strict.yml
148
165
  - strictest.yml
149
166
  - theforeman-rubocop.gemspec
@@ -165,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
165
182
  - !ruby/object:Gem::Version
166
183
  version: '0'
167
184
  requirements: []
168
- rubygems_version: 3.1.4
185
+ rubygems_version: 3.1.2
169
186
  signing_key:
170
187
  specification_version: 4
171
188
  summary: Shared Rubocop configuration for theforeman.org family of projects.