theforeman-rubocop 0.0.6 → 0.1.2

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: 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.