pr_comet 0.2.0 → 0.5.1

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: 26c2bf63b04addbcf8944b89f84b026baa7c0345d3888b977448ef5b1376f67c
4
- data.tar.gz: ee125a1a0c3f34ba61f97908aeeab173daf06de06ac36a205832dffc37cedecf
3
+ metadata.gz: 1de5a702a941ad3f61b8a3b87f765da115e1feadd39210b45f80e3809d5e123f
4
+ data.tar.gz: 50a81dd0413e6a0d22e992a6f4d757a7180678e54221f1004590a1821f12e345
5
5
  SHA512:
6
- metadata.gz: 9e26ed62ce34b767a376e7053e3b0abaf02f52fae8994db44f7c5c6d2a13374d98c30801a28c6444597677656ca8c512872688e704610af84b39a0a97ab4b7dc
7
- data.tar.gz: cd38ef82bd6adbcaa623bec8f945c54c72012346861f96fc6eda0aaca5bad6a3dc201ba82cf0cf7643eda9c322f28474cd0f7e0f5e5493d5bdf44008dece2ec4
6
+ metadata.gz: 81d78d0f2aaabbc1a28374d42591b2e6e413ed18dbf62a5989b206e81b5651534ba8c5115c42dfc2c8731f6fa2865a5857bc4dc50e6f8e5e7e0ead19c5a49a5e
7
+ data.tar.gz: 4a9951f3871295496a7f956d4452d1d5120ee198d00c076f7272f9a271a8f30531c9b49d6c4d95edce5d26d1d80b0c18d2b281cd55c3e8cfefc423a8cb8863e3
@@ -2,136 +2,88 @@
2
2
  #
3
3
  # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
4
  #
5
- version: 2
5
+ version: 2.1
6
+
7
+ orbs:
8
+ ruby-orbs: sue445/ruby-orbs@1.6.1
9
+ code-climate: rvla/code-climate@0.0.2
6
10
 
7
11
  references:
8
- - &download_cc_test_reporter
9
- run:
10
- name: Download cc-test-reporter
11
- command: |
12
- mkdir -p tmp/
13
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./tmp/cc-test-reporter
14
- chmod +x ./tmp/cc-test-reporter
15
- - &restore_bundle_install_cache
16
- restore_cache:
17
- keys:
18
- - v1-dependencies-{{ checksum "Gemfile.lock" }}
19
- - v1-dependencies-
20
- - &bundle_install
21
- run:
22
- name: Bundle Install
23
- command: |
24
- bundle install --jobs=4 --retry=3 --path vendor/bundle
25
- - &save_bundle_install_cache
26
- save_cache:
27
- paths:
28
- - ./vendor/bundle
29
- key: v1-dependencies-{{ checksum "Gemfile.lock" }}
30
- - &run_rspec
31
- run:
32
- name: Run Rspec
33
- command: |
34
- mkdir /tmp/test-results
35
- TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
36
- ./tmp/cc-test-reporter before-build
37
- bundle exec rspec --format documentation \
38
- --color \
39
- --format RspecJunitFormatter \
40
- --out /tmp/test-results/rspec.xml \
41
- $TEST_FILES
42
- ./tmp/cc-test-reporter after-build --coverage-input-type simplecov --exit-code $?
12
+ - &ruby_version
13
+ ruby_version:
14
+ type: enum
15
+ enum: ['2.5', '2.6', '2.7', '3.0', 'latest']
16
+ default: '3.0'
43
17
 
44
- - &build
18
+ executors:
19
+ default:
20
+ parameters:
21
+ <<: *ruby_version
22
+ docker:
23
+ - image: circleci/ruby:<< parameters.ruby_version >>
45
24
  working_directory: ~/repo
25
+
26
+ commands:
27
+ run_rspec:
28
+ description: Run RSpec
46
29
  steps:
47
- - checkout
48
- - *download_cc_test_reporter
49
- - *restore_bundle_install_cache
50
- - *bundle_install
51
- - *save_bundle_install_cache
52
- - *run_rspec
30
+ - code-climate/install
31
+ - run:
32
+ name: Execute RSpec
33
+ command: |
34
+ mkdir /tmp/test-results
35
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
36
+ cc-test-reporter before-build
37
+ bundle exec rspec --format documentation \
38
+ --color \
39
+ --format RspecJunitFormatter \
40
+ --out /tmp/test-results/rspec.xml \
41
+ $TEST_FILES
42
+ - code-climate/format-coverage:
43
+ input-type: simplecov
44
+ prefix: $(readlink -f .)
45
+ coverage-file: coverage/coverage.json
46
+ output: coverage/codeclimate.$CIRCLE_BUILD_NUM.json
47
+ - persist_to_workspace:
48
+ root: coverage
49
+ paths:
50
+ - codeclimate.*.json
53
51
  - store_test_results:
54
52
  path: /tmp/test-results
55
53
  - store_artifacts:
56
54
  path: /tmp/test-results
57
55
  destination: test-results
58
- - run:
59
- name: Rake Build
60
- command: |
61
- bundle exec rake build
62
-
63
- - &rubocop
64
- working_directory: ~/repo
56
+ rubocop:
65
57
  steps:
66
- - checkout
67
- - *restore_bundle_install_cache
68
- - *bundle_install
69
- - *save_bundle_install_cache
70
- - run: bundle exec rubocop
71
-
72
- - &yardoc
73
- working_directory: ~/repo
58
+ - run:
59
+ name: Run RuboCop
60
+ command: bundle exec rubocop
61
+ yardoc:
62
+ description: 'Generate YARDoc'
74
63
  steps:
75
- - checkout
76
- - *restore_bundle_install_cache
77
- - *bundle_install
78
- - *save_bundle_install_cache
79
- - run: bundle exec yardoc -o ./yardoc
64
+ - run: bundle exec yardoc -o ./yardoc
80
65
  - store_artifacts:
81
66
  path: ./yardoc
82
67
  destination: yardoc
83
-
84
- jobs:
85
- build_on_ruby_2.4:
86
- docker:
87
- - image: circleci/ruby:2.4-node-browsers
88
- <<: *build
89
- build_on_ruby_2.5:
90
- docker:
91
- - image: circleci/ruby:2.5-node-browsers
92
- <<: *build
93
- build_on_ruby_2.6:
94
- docker:
95
- - image: circleci/ruby:2.6-node-browsers
96
- <<: *build
97
- build_on_ruby_latest:
98
- docker:
99
- - image: circleci/ruby:latest-node-browsers-legacy
100
- <<: *build
101
- rubocop:
102
- docker:
103
- - image: circleci/ruby:2.4-node-browsers
104
- <<: *rubocop
105
- yardoc:
106
- docker:
107
- - image: circleci/ruby:2.4-node-browsers
108
- <<: *yardoc
109
-
68
+ rake_build:
69
+ steps:
70
+ - run:
71
+ name: Rake Build
72
+ command: bundle exec rake build
110
73
  rubocop_challenge:
111
- docker:
112
- - image: circleci/ruby:2.4-node-browsers
113
- working_directory: ~/repo
114
74
  steps:
115
- - checkout
116
75
  - run:
117
76
  name: Rubocop Challenge
118
77
  command: |
119
78
  gem install rubocop_challenger --pre
120
79
  rubocop_challenger go --email=ryz310@gmail.com --name=ryz310
121
-
122
80
  release:
123
- docker:
124
- - image: circleci/ruby:2.4-node-browsers
125
- working_directory: ~/repo
81
+ description: Release to RubyGems.org
126
82
  steps:
127
- - checkout
128
- - *restore_bundle_install_cache
129
- - *bundle_install
130
- - *save_bundle_install_cache
131
83
  - run:
132
84
  name: Create Rubygems Credentials
133
85
  command: |
134
- mkdir ~/.gem
86
+ mkdir ~/.gem || true
135
87
  echo -e "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}" > ~/.gem/credentials
136
88
  chmod 0600 ~/.gem/credentials
137
89
  - run:
@@ -139,24 +91,101 @@ jobs:
139
91
  command: |
140
92
  git push --set-upstream origin ${CIRCLE_BRANCH}
141
93
  bundle exec rake release --trace
94
+ setup:
95
+ description: Setup for Job Working
96
+ parameters:
97
+ <<: *ruby_version
98
+ steps:
99
+ - checkout
100
+ - run:
101
+ name: Install bundler v2.x for ruby 2.5 & 2.6
102
+ command: gem install bundler
103
+ - ruby-orbs/bundle-install:
104
+ cache_key_prefix: v1-dependencies-<< parameters.ruby_version >>
105
+ test_and_build:
106
+ description: Build the RubyGem
107
+ steps:
108
+ - run_rspec
109
+ - rake_build
110
+
111
+ jobs:
112
+ build:
113
+ parameters:
114
+ <<: *ruby_version
115
+ executor:
116
+ name: default
117
+ ruby_version: << parameters.ruby_version >>
118
+ steps:
119
+ - setup:
120
+ ruby_version: << parameters.ruby_version >>
121
+ - test_and_build
122
+ upload-coverage:
123
+ executor: default
124
+ steps:
125
+ - attach_workspace:
126
+ at: ~/repo
127
+ - code-climate/install
128
+ - code-climate/sum-coverage:
129
+ input: codeclimate.*.json
130
+ parts: 5
131
+ - code-climate/upload-coverage
132
+ rubocop:
133
+ executor: default
134
+ steps:
135
+ - setup
136
+ - rubocop
137
+ yardoc:
138
+ executor: default
139
+ steps:
140
+ - setup
141
+ - yardoc
142
+ rubocop_challenge:
143
+ executor: default
144
+ steps:
145
+ - checkout
146
+ - rubocop_challenge
147
+ release:
148
+ executor: default
149
+ steps:
150
+ - setup
151
+ - release
142
152
 
143
153
  workflows:
144
154
  version: 2
145
155
 
146
156
  commit:
147
157
  jobs:
148
- - build_on_ruby_2.4
149
- - build_on_ruby_2.5
150
- - build_on_ruby_2.6
151
- - build_on_ruby_latest
158
+ - build:
159
+ name: build_on_ruby_2.5
160
+ ruby_version: '2.5'
161
+ - build:
162
+ name: build_on_ruby_2.6
163
+ ruby_version: '2.6'
164
+ - build:
165
+ name: build_on_ruby_2.7
166
+ ruby_version: '2.7'
167
+ - build:
168
+ name: build_on_ruby_3.0
169
+ ruby_version: '3.0'
170
+ - build:
171
+ name: build_on_ruby_latest
172
+ ruby_version: 'latest'
152
173
  - rubocop
153
174
  - yardoc
175
+ - upload-coverage:
176
+ requires:
177
+ - build_on_ruby_2.5
178
+ - build_on_ruby_2.6
179
+ - build_on_ruby_2.7
180
+ - build_on_ruby_3.0
181
+ - build_on_ruby_latest
154
182
  - release:
155
183
  context: RubyGems API Key
156
184
  requires:
157
- - build_on_ruby_2.4
158
185
  - build_on_ruby_2.5
159
186
  - build_on_ruby_2.6
187
+ - build_on_ruby_2.7
188
+ - build_on_ruby_3.0
160
189
  - build_on_ruby_latest
161
190
  - rubocop
162
191
  filters:
@@ -0,0 +1,18 @@
1
+ version: 1
2
+ update_configs:
3
+ - package_manager: "ruby:bundler"
4
+ directory: "/"
5
+ update_schedule: "live"
6
+ default_reviewers:
7
+ - "ryz310"
8
+ default_assignees:
9
+ - "ryz310"
10
+ default_labels:
11
+ - "dependabot"
12
+ automerged_updates:
13
+ - match:
14
+ dependency_type: "development"
15
+ update_type: "all"
16
+ - match:
17
+ dependency_type: "production"
18
+ update_type: "semver:patch"
@@ -0,0 +1,15 @@
1
+ # [Usage]
2
+ #
3
+ # $ gem install gem_comet
4
+ # $ gem_comet init
5
+ # $ gem_comet release {version number, like as "1.2.3"}
6
+ # $ gem_comet changelog
7
+ # $ gem_comet versions
8
+
9
+ version: 1.1
10
+
11
+ release:
12
+ base_branch: master
13
+ release_branch: production
14
+ version_file_path: lib/pr_comet/version.rb
15
+ changelog_file_path: CHANGELOG.md
@@ -5,7 +5,7 @@ require:
5
5
  inherit_from: .rubocop_todo.yml
6
6
 
7
7
  AllCops:
8
- TargetRubyVersion: 2.4
8
+ TargetRubyVersion: 2.5
9
9
 
10
10
  Metrics/BlockLength:
11
11
  Exclude:
@@ -0,0 +1,3 @@
1
+ ---
2
+ Ignore:
3
+ - Performance/StartWith
@@ -1,7 +1,19 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2019-05-30 23:31:16 +0000 using RuboCop version 0.71.0.
3
+ # on 2021-01-11 09:02:52 UTC using RuboCop version 1.8.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Configuration parameters: Include.
11
+ # Include: **/*.gemspec
12
+ Gemspec/RequiredRubyVersion:
13
+ Exclude:
14
+ - 'pr_comet.gemspec'
15
+
16
+ # Offense count: 15
17
+ # Configuration parameters: AllowSubject.
18
+ RSpec/MultipleMemoizedHelpers:
19
+ Max: 9
@@ -0,0 +1,118 @@
1
+ # Change log
2
+
3
+ ## v0.5.1 (Jan 11, 2021)
4
+
5
+ ### Bugfix
6
+
7
+ * [#220](https://github.com/ryz310/pr_comet/pull/220) Fix verbose option ([@ryz310](https://github.com/ryz310))
8
+
9
+ ### Dependabot
10
+
11
+ * [#199](https://github.com/ryz310/pr_comet/pull/199) Update bundler requirement from ~> 1.16 to ~> 2.2 ([@ryz310](https://github.com/ryz310))
12
+ * [#219](https://github.com/ryz310/pr_comet/pull/219) ryz310/dependabot/bundler/rubocop-1.8.1 ([@ryz310](https://github.com/ryz310))
13
+
14
+ ## v0.5.0 (Jan 11, 2021)
15
+
16
+ ### Feature
17
+
18
+ * [#216](https://github.com/ryz310/pr_comet/pull/216) Add verbose option ([@ryz310](https://github.com/ryz310))
19
+
20
+ ### Dependabot
21
+
22
+ * [#215](https://github.com/ryz310/pr_comet/pull/215) Update simplecov requirement from = 0.17.1 to = 0.21.2 ([@ryz310](https://github.com/ryz310))
23
+ * [#214](https://github.com/ryz310/pr_comet/pull/214) ryz310/dependabot/bundler/rubocop-1.8.0 ([@ryz310](https://github.com/ryz310))
24
+
25
+ ## v0.4.0 (Jan 04, 2021)
26
+
27
+ ### Feature
28
+
29
+ * [#210](https://github.com/ryz310/pr_comet/pull/210) Support ruby 3.0 ([@ryz310](https://github.com/ryz310))
30
+
31
+ ### Breaking Change
32
+
33
+ * [#176](https://github.com/ryz310/pr_comet/pull/176) End of support for Ruby 2.4 ([@ryz310](https://github.com/ryz310))
34
+
35
+ ### Rubocop Challenge
36
+
37
+ * [#127](https://github.com/ryz310/pr_comet/pull/127) Style/IfUnlessModifier-20200523233029 ([@ryz310](https://github.com/ryz310))
38
+ * [#129](https://github.com/ryz310/pr_comet/pull/129) Performance/StartWith-20200525233033 ([@ryz310](https://github.com/ryz310))
39
+ * [#204](https://github.com/ryz310/pr_comet/pull/204) Re-generate .rubocop_todo.yml with RuboCop v1.7.0 ([@ryz310](https://github.com/ryz310))
40
+
41
+ ### Dependabot
42
+
43
+ * [#110](https://github.com/ryz310/pr_comet/pull/110) ryz310/dependabot/bundler/pry-byebug-3.9.0 ([@ryz310](https://github.com/ryz310))
44
+ * [#174](https://github.com/ryz310/pr_comet/pull/174) ryz310/dependabot/bundler/rspec-3.10.0 ([@ryz310](https://github.com/ryz310))
45
+ * [#198](https://github.com/ryz310/pr_comet/pull/198) ryz310/dependabot/bundler/rubocop-1.6.1 ([@ryz310](https://github.com/ryz310))
46
+ * [#201](https://github.com/ryz310/pr_comet/pull/201) ryz310/dependabot/bundler/rubocop-rspec-2.1.0 ([@ryz310](https://github.com/ryz310))
47
+ * [#202](https://github.com/ryz310/pr_comet/pull/202) ryz310/dependabot/bundler/rake-13.0.2 ([@ryz310](https://github.com/ryz310))
48
+ * [#205](https://github.com/ryz310/pr_comet/pull/205) ryz310/dependabot/bundler/yard-0.9.26 ([@ryz310](https://github.com/ryz310))
49
+ * [#206](https://github.com/ryz310/pr_comet/pull/206) ryz310/dependabot/bundler/octokit-4.20.0 ([@ryz310](https://github.com/ryz310))
50
+ * [#209](https://github.com/ryz310/pr_comet/pull/209) ryz310/dependabot/bundler/rubocop-performance-1.9.2 ([@ryz310](https://github.com/ryz310))
51
+
52
+ ### Misc
53
+
54
+ * [#91](https://github.com/ryz310/pr_comet/pull/91) Update ruby-orbs orb to v1.6.0 ([@ryz310](https://github.com/ryz310))
55
+ * [#111](https://github.com/ryz310/pr_comet/pull/111) Edit dependabot configuration ([@ryz310](https://github.com/ryz310))
56
+
57
+ ## v0.3.1 (Nov 02, 2019)
58
+
59
+ ### Feature
60
+
61
+ * [#60](https://github.com/ryz310/pr_comet/pull/60) Stub pr comet ([@ryz310](https://github.com/ryz310))
62
+
63
+ ### Rubocop Challenge
64
+
65
+ * [#37](https://github.com/ryz310/pr_comet/pull/37) Re-generate .rubocop_todo.yml with RuboCop v0.73.0 ([@ryz310](https://github.com/ryz310))
66
+ * [#38](https://github.com/ryz310/pr_comet/pull/38) Performance/RegexpMatch-20190729233036 ([@ryz310](https://github.com/ryz310))
67
+ * [#39](https://github.com/ryz310/pr_comet/pull/39) Re-generate .rubocop_todo.yml with RuboCop v0.74.0 ([@ryz310](https://github.com/ryz310))
68
+ * [#45](https://github.com/ryz310/pr_comet/pull/45) Re-generate .rubocop_todo.yml with RuboCop v0.75.0 ([@ryz310](https://github.com/ryz310))
69
+ * [#50](https://github.com/ryz310/pr_comet/pull/50) Re-generate .rubocop_todo.yml with RuboCop v0.75.1 ([@ryz310](https://github.com/ryz310))
70
+ * [#55](https://github.com/ryz310/pr_comet/pull/55) Re-generate .rubocop_todo.yml with RuboCop v0.76.0 ([@ryz310](https://github.com/ryz310))
71
+
72
+ ### Misc
73
+
74
+ * [#44](https://github.com/ryz310/pr_comet/pull/44) Bump rubocop-rspec from 1.34.1 to 1.36.0 ([@ryz310](https://github.com/ryz310))
75
+ * [#40](https://github.com/ryz310/pr_comet/pull/40) ryz310/dependabot/bundler/simplecov-0.17.1 ([@ryz310](https://github.com/ryz310))
76
+ * [#43](https://github.com/ryz310/pr_comet/pull/43) ryz310/dependabot/bundler/rake-tw-13.0 ([@ryz310](https://github.com/ryz310))
77
+ * [#48](https://github.com/ryz310/pr_comet/pull/48) ryz310/dependabot/bundler/rspec-3.9.0 ([@ryz310](https://github.com/ryz310))
78
+ * [#47](https://github.com/ryz310/pr_comet/pull/47) ryz310/dependabot/bundler/rubocop-performance-1.5.0 ([@ryz310](https://github.com/ryz310))
79
+ * [#53](https://github.com/ryz310/pr_comet/pull/53) Configure Renovate ([@ryz310](https://github.com/ryz310))
80
+ * [#56](https://github.com/ryz310/pr_comet/pull/56) Update ruby-orbs orb to v1.4.4 ([@ryz310](https://github.com/ryz310))
81
+ * [#61](https://github.com/ryz310/pr_comet/pull/61) Install gem_comet :comet: ([@ryz310](https://github.com/ryz310))
82
+
83
+ ## v0.3.0 (Jul 12, 2019)
84
+
85
+ ### Feature
86
+
87
+ * [#34](https://github.com/ryz310/pr_comet/pull/34) Support blank PR creation ([@ryz310](https://github.com/ryz310))
88
+
89
+ ## v0.2.1 (Jul 12, 2019)
90
+
91
+ ### Misc
92
+
93
+ * [#28](https://github.com/ryz310/pr_comet/pull/28) Re-generate .rubocop_todo.yml with RuboCop v0.72.0 ([@ryz310](https://github.com/ryz310))
94
+ * [#29](https://github.com/ryz310/pr_comet/pull/29) Migrate cirecle ci config to v2.1 ([@ryz310](https://github.com/ryz310))
95
+ * [#30](https://github.com/ryz310/pr_comet/pull/30) Improvement of the test coverage ([@ryz310](https://github.com/ryz310))
96
+
97
+ ## v0.2.0 (Jun 09, 2019)
98
+
99
+ ### Feature
100
+
101
+ * [#16](https://github.com/ryz310/pr_comet/pull/16) Use rainbow gem ([@ryz310](https://github.com/ryz310))
102
+ * [#18](https://github.com/ryz310/pr_comet/pull/18) Support GitHub project ([@ryz310](https://github.com/ryz310))
103
+
104
+ ### Misc
105
+
106
+ * [#5](https://github.com/ryz310/pr_comet/pull/5) Re-generate .rubocop_todo.yml with RuboCop v0.68.0 ([@ryz310](https://github.com/ryz310))
107
+ * [#12](https://github.com/ryz310/pr_comet/pull/12) Re-generate .rubocop_todo.yml with RuboCop v0.68.1 ([@ryz310](https://github.com/ryz310))
108
+ * [#13](https://github.com/ryz310/pr_comet/pull/13) Re-generate .rubocop_todo.yml with RuboCop v0.69.0 ([@ryz310](https://github.com/ryz310))
109
+ * [#15](https://github.com/ryz310/pr_comet/pull/15) Re-generate .rubocop_todo.yml with RuboCop v0.70.0 ([@ryz310](https://github.com/ryz310))
110
+ * [#17](https://github.com/ryz310/pr_comet/pull/17) Re-generate .rubocop_todo.yml with RuboCop v0.71.0 ([@ryz310](https://github.com/ryz310))
111
+
112
+ ## v0.1.1 (Apr 08, 2019)
113
+
114
+ Fix bugs.
115
+
116
+ ## v0.1.0 (Apr 08, 2019)
117
+
118
+ Initial release! :rocket:
@@ -1,93 +1,105 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pr_comet (0.2.0)
4
+ pr_comet (0.5.1)
5
5
  octokit
6
6
  rainbow
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- addressable (2.6.0)
12
- public_suffix (>= 2.0.2, < 4.0)
13
- ast (2.4.0)
14
- byebug (11.0.1)
15
- coderay (1.1.2)
16
- diff-lcs (1.3)
17
- docile (1.3.1)
18
- faraday (0.15.4)
11
+ addressable (2.7.0)
12
+ public_suffix (>= 2.0.2, < 5.0)
13
+ ast (2.4.1)
14
+ byebug (11.1.3)
15
+ coderay (1.1.3)
16
+ diff-lcs (1.4.4)
17
+ docile (1.3.4)
18
+ faraday (1.3.0)
19
+ faraday-net_http (~> 1.0)
19
20
  multipart-post (>= 1.2, < 3)
20
- jaro_winkler (1.5.2)
21
- json (2.2.0)
22
- method_source (0.9.2)
21
+ ruby2_keywords
22
+ faraday-net_http (1.0.0)
23
+ method_source (1.0.0)
23
24
  multipart-post (2.1.1)
24
- octokit (4.14.0)
25
+ octokit (4.20.0)
26
+ faraday (>= 0.9)
25
27
  sawyer (~> 0.8.0, >= 0.5.3)
26
- parallel (1.17.0)
27
- parser (2.6.3.0)
28
- ast (~> 2.4.0)
29
- pry (0.12.2)
30
- coderay (~> 1.1.0)
31
- method_source (~> 0.9.0)
32
- pry-byebug (3.7.0)
28
+ parallel (1.20.1)
29
+ parser (3.0.0.0)
30
+ ast (~> 2.4.1)
31
+ pry (0.13.1)
32
+ coderay (~> 1.1)
33
+ method_source (~> 1.0)
34
+ pry-byebug (3.9.0)
33
35
  byebug (~> 11.0)
34
- pry (~> 0.10)
35
- public_suffix (3.1.0)
36
+ pry (~> 0.13.0)
37
+ public_suffix (4.0.6)
36
38
  rainbow (3.0.0)
37
- rake (10.5.0)
38
- rspec (3.8.0)
39
- rspec-core (~> 3.8.0)
40
- rspec-expectations (~> 3.8.0)
41
- rspec-mocks (~> 3.8.0)
42
- rspec-core (3.8.0)
43
- rspec-support (~> 3.8.0)
44
- rspec-expectations (3.8.3)
39
+ rake (13.0.3)
40
+ regexp_parser (2.0.3)
41
+ rexml (3.2.4)
42
+ rspec (3.10.0)
43
+ rspec-core (~> 3.10.0)
44
+ rspec-expectations (~> 3.10.0)
45
+ rspec-mocks (~> 3.10.0)
46
+ rspec-core (3.10.1)
47
+ rspec-support (~> 3.10.0)
48
+ rspec-expectations (3.10.1)
45
49
  diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.8.0)
47
- rspec-mocks (3.8.0)
50
+ rspec-support (~> 3.10.0)
51
+ rspec-mocks (3.10.1)
48
52
  diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.8.0)
50
- rspec-support (3.8.0)
53
+ rspec-support (~> 3.10.0)
54
+ rspec-support (3.10.1)
51
55
  rspec_junit_formatter (0.4.1)
52
56
  rspec-core (>= 2, < 4, != 2.12.0)
53
- rubocop (0.71.0)
54
- jaro_winkler (~> 1.5.1)
57
+ rubocop (1.8.1)
55
58
  parallel (~> 1.10)
56
- parser (>= 2.6)
59
+ parser (>= 3.0.0.0)
57
60
  rainbow (>= 2.2.2, < 4.0)
61
+ regexp_parser (>= 1.8, < 3.0)
62
+ rexml
63
+ rubocop-ast (>= 1.2.0, < 2.0)
58
64
  ruby-progressbar (~> 1.7)
59
- unicode-display_width (>= 1.4.0, < 1.7)
60
- rubocop-performance (1.3.0)
61
- rubocop (>= 0.68.0)
62
- rubocop-rspec (1.33.0)
63
- rubocop (>= 0.60.0)
64
- ruby-progressbar (1.10.1)
65
+ unicode-display_width (>= 1.4.0, < 3.0)
66
+ rubocop-ast (1.4.0)
67
+ parser (>= 2.7.1.5)
68
+ rubocop-performance (1.9.2)
69
+ rubocop (>= 0.90.0, < 2.0)
70
+ rubocop-ast (>= 0.4.0)
71
+ rubocop-rspec (2.1.0)
72
+ rubocop (~> 1.0)
73
+ rubocop-ast (>= 1.1.0)
74
+ ruby-progressbar (1.11.0)
75
+ ruby2_keywords (0.0.2)
65
76
  sawyer (0.8.2)
66
77
  addressable (>= 2.3.5)
67
78
  faraday (> 0.8, < 2.0)
68
- simplecov (0.16.1)
79
+ simplecov (0.21.2)
69
80
  docile (~> 1.1)
70
- json (>= 1.8, < 3)
71
- simplecov-html (~> 0.10.0)
72
- simplecov-html (0.10.2)
73
- unicode-display_width (1.6.0)
74
- yard (0.9.19)
81
+ simplecov-html (~> 0.11)
82
+ simplecov_json_formatter (~> 0.1)
83
+ simplecov-html (0.12.3)
84
+ simplecov_json_formatter (0.1.2)
85
+ unicode-display_width (2.0.0)
86
+ yard (0.9.26)
75
87
 
76
88
  PLATFORMS
77
89
  ruby
78
90
 
79
91
  DEPENDENCIES
80
- bundler (~> 1.16)
92
+ bundler (~> 2.2)
81
93
  pr_comet!
82
94
  pry-byebug
83
- rake (~> 10.0)
95
+ rake (~> 13.0)
84
96
  rspec
85
97
  rspec_junit_formatter
86
98
  rubocop
87
99
  rubocop-performance
88
100
  rubocop-rspec
89
- simplecov
101
+ simplecov (= 0.21.2)
90
102
  yard
91
103
 
92
104
  BUNDLED WITH
93
- 1.17.3
105
+ 2.2.4
data/README.md CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  [![CircleCI](https://circleci.com/gh/ryz310/pr_comet.svg?style=svg)](https://circleci.com/gh/ryz310/pr_comet) [![Gem Version](https://badge.fury.io/rb/pr_comet.svg)](https://badge.fury.io/rb/pr_comet) [![Maintainability](https://api.codeclimate.com/v1/badges/962618c106a548ed762b/maintainability)](https://codeclimate.com/github/ryz310/pr_comet/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/962618c106a548ed762b/test_coverage)](https://codeclimate.com/github/ryz310/pr_comet/test_coverage)
4
4
 
5
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/pr_comet`. To experiment with that code, run `bin/console` for an interactive prompt.
6
-
7
- TODO: Delete this and the text above, and describe your gem
5
+ A helper library that makes it easy to create pull requests.
8
6
 
9
7
  ## Installation
10
8
 
@@ -24,7 +22,77 @@ Or install it yourself as:
24
22
 
25
23
  ## Usage
26
24
 
27
- TODO: Write usage instructions here
25
+ ```ruby
26
+ # Initialize.
27
+ pr_comet = PrComet.new(base: 'master', branch: '{branch name}')
28
+
29
+ # Modify arbitrary files and commit into the block.
30
+ pr_comet.commit '{commit message}' do
31
+ file = File.read('path/to/file')
32
+ file.sub!('hoge', 'fuga')
33
+ File.write('path/to/file', file)
34
+ end
35
+
36
+ # You can also change files outer the block.
37
+ `bundle update`
38
+ pr_comet.commit '$ bundle update'
39
+
40
+ # Create a new pull request.
41
+ pr_comet.create!(
42
+ title: 'New pull request',
43
+ body: '{New pull request body}',
44
+ labels: ['label 1', 'label 2'] # optional
45
+ )
46
+ ```
47
+
48
+ ## Rspec
49
+
50
+ ### Testing
51
+
52
+ You can stub `PrComet` class for testing.
53
+ Add the following code to `spec/spec_helper`:
54
+
55
+ ```ruby
56
+ require 'pr_comet/rspec'
57
+ ```
58
+
59
+ Then you can use `#stub_pr_comet!`.
60
+ It makes `PrComet` class to stubbing and `PrComet.new` will return stubbed `PrComet` instance.
61
+ The stubbed `PrComet#commit` does not execute `$ git commit`, but it executes given block code.
62
+
63
+ ```ruby
64
+ def create_pr
65
+ pr_comet = PrComet.new(base: 'master', branch: 'any-branch') # stubbed.
66
+ pr_comet.commit 'Hello world.' do # stubbed.
67
+ File.write('path/to/file.txt', 'Hello world.') # not stubbed.
68
+ end
69
+ pr_comet.create!(title: 'New pull request') # stubbed.
70
+ end
71
+
72
+ stub_pr_comet!
73
+ allow(File).to receive(:write)
74
+ create_pr
75
+ expect(File).to have_received(:write).with('path/to/file.txt', 'Hello world.')
76
+ ```
77
+
78
+ If you want to test about `PrComet`, you can use `#stub_pr_comet!` return value.
79
+ It returns any instance of `PrComet`.
80
+
81
+ ```ruby
82
+ def create_pr
83
+ pr_comet = PrComet.new(base: 'master', branch: 'any-branch')
84
+ pr_comet.commit 'commit message' do
85
+ # ...
86
+ end
87
+ pr_comet.create!(title: 'New pull request')
88
+ end
89
+
90
+ pr_comet = stub_pr_comet!
91
+ create_pr
92
+ expect(PrComet).to have_received(:new).with(base: 'master', branch: 'any-branch')
93
+ expect(pr_comet).to have_received(:commit).with('commit message')
94
+ expect(pr_comet).to have_received(:create!).with(title: 'New pull request')
95
+ ```
28
96
 
29
97
  ## Development
30
98
 
@@ -8,14 +8,15 @@ require 'pr_comet'
8
8
 
9
9
  VERSION_FORMAT = /\A\d+\.\d+\.\d+(\.(pre|beta|rc)\d?)?\z/.freeze
10
10
  version = ARGV[0]
11
- pr_comet = PrComet.new(base: 'master', branch: "update/v#{version}")
11
+ update_pr = PrComet.new(base: 'master', branch: "update/v#{version}")
12
+ release_pr = PrComet.new(base: 'production', branch: 'master')
12
13
 
13
14
  # Verifying
14
15
  abort 'usage: bin/release VERSION' if version.nil?
15
- abort 'A version must be like a `1.2.3`' unless version =~ VERSION_FORMAT
16
+ abort 'A version must be like a `1.2.3`' unless VERSION_FORMAT.match?(version)
16
17
 
17
18
  # Modify a version file
18
- pr_comet.commit ':comet: Update version' do
19
+ update_pr.commit ':comet: Update version' do
19
20
  File.write('lib/pr_comet/version.rb', <<~VERSION)
20
21
  # frozen_string_literal: true
21
22
 
@@ -26,9 +27,10 @@ pr_comet.commit ':comet: Update version' do
26
27
  end
27
28
 
28
29
  # Bundle Update
29
- pr_comet.commit ':comet: Run $ bundle update' do
30
+ update_pr.commit ':comet: Run $ bundle update' do
30
31
  `bundle update`
31
32
  end
32
33
 
33
34
  # Create a pull request
34
- pr_comet.create!(title: "Update v#{version}", body: '')
35
+ update_pr.create!(title: "Update v#{version}", body: '')
36
+ release_pr.create!(title: "Release v#{version}", body: '', validate: false)
@@ -13,16 +13,16 @@ require 'pr_comet/github/client'
13
13
  class PrComet
14
14
  # @note You have to set ENV['GITHUB_ACCESS_TOKEN']
15
15
  # @param base [String] The branch you want your changes pulled into
16
- # @param branch [String] The branch where your changes are going to
17
- # implement.
16
+ # @param branch [String] The branch where your changes are going to implement.
18
17
  # @param user_name [String] The username to use for committer and author
19
18
  # @param user_email [String] The email to use for committer and author
20
- def initialize(base:, branch:, user_name: nil, user_email: nil)
19
+ # @param verbose [Boolean] Displays executing commands
20
+ def initialize(base:, branch:, user_name: nil, user_email: nil, verbose: false)
21
21
  raise "You have to set ENV['GITHUB_ACCESS_TOKEN']" if access_token.nil?
22
22
 
23
23
  @base_branch = base
24
24
  @topic_branch = branch
25
- @git = Git::Command.new(user_name: user_name, user_email: user_email)
25
+ @git = Git::Command.new(user_name: user_name, user_email: user_email, verbose: verbose)
26
26
  @github = Github::Client.new(access_token, git.remote_url('origin'))
27
27
  @initial_sha1 = git.current_sha1
28
28
  end
@@ -42,44 +42,67 @@ class PrComet
42
42
  result
43
43
  end
44
44
 
45
- # Create a pull request
46
- # You should call #commit before calling this method
45
+ # Create a pull request. You should call #commit before calling this method.
46
+ # If you want to create a blank PR, you can do it with `validate: false`
47
+ # option.
47
48
  #
48
- # @param title [String] Title for the pull request
49
- # @param body [String] The body for the pull request
50
- # @param labels [Array<String>]
49
+ # @param options [Hash]
50
+ # Options for the PR creation.
51
+ # @option title [String]
52
+ # The title for the pull request
53
+ # @option body [String]
54
+ # The body for the pull request
55
+ # @option labels [Array<String>]
51
56
  # List of labels. It is a optional parameter. You can add labels to the
52
57
  # created PR.
53
- # @param project_column_name [String]
58
+ # @option project_column_name [String]
54
59
  # A project column name. It is a optional parameter. You can add the created
55
60
  # PR to the GitHub project.
56
- # @param project_id [Integer]
61
+ # @option project_id [Integer]
57
62
  # A target project ID. It is a optional parameter. If does not supplied,
58
63
  # this method will find a project which associated the repository.
59
- # When the repository has multiple projects, you should supply this.
60
- # @return [Boolean] Return true if it is successed.
61
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/LineLength
62
- def create!(title:, body:, labels: nil, project_column_name: nil, project_id: nil)
63
- return false unless git_condition_valid?
64
+ # When the repository is associated with multiple projects, you should
65
+ # supply this.
66
+ # @option validate [Boolean]
67
+ # Verifies the branch has commits and checkout to the topic branch. If you
68
+ # want to create a blank PR, set "false" to this option. default: true.
69
+ # @return [Boolean]
70
+ # Return true if it is successed.
71
+ # rubocop:disable Metrics/AbcSize
72
+ def create!(**options)
73
+ options[:validate] = true if options[:validate].nil?
74
+ return false if options[:validate] && !git_condition_valid?
64
75
 
65
76
  git.push(github_token_url, topic_branch)
66
- pr_number = github.create_pull_request(
67
- base: base_branch, head: topic_branch, title: title, body: body
68
- )
69
- github.add_labels(pr_number, *labels) unless labels.nil?
70
- unless project_column_name.nil?
71
- github.add_to_project(
72
- pr_number, column_name: project_column_name, project_id: project_id
73
- )
77
+ pr_number = github.create_pull_request(**generate_create_pr_options(**options))
78
+ github.add_labels(pr_number, *options[:labels]) unless options[:labels].nil?
79
+ unless options[:project_column_name].nil?
80
+ github.add_to_project(pr_number, **generate_add_to_project_options(**options))
74
81
  end
75
82
  true
76
83
  end
77
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/LineLength
84
+ # rubocop:enable Metrics/AbcSize
78
85
 
79
86
  private
80
87
 
81
88
  attr_reader :git, :github, :base_branch, :topic_branch, :initial_sha1
82
89
 
90
+ def generate_create_pr_options(**options)
91
+ {
92
+ base: base_branch,
93
+ head: topic_branch,
94
+ title: options[:title],
95
+ body: options[:body]
96
+ }
97
+ end
98
+
99
+ def generate_add_to_project_options(**options)
100
+ {
101
+ column_name: options[:project_column_name],
102
+ project_id: options[:project_id]
103
+ }
104
+ end
105
+
83
106
  def git_condition_valid?
84
107
  !git.current_sha1?(initial_sha1) && git.current_branch?(topic_branch)
85
108
  end
@@ -3,6 +3,8 @@
3
3
  class PrComet
4
4
  # To execute command line. You should inherit this class to use.
5
5
  module CommandLine
6
+ attr_reader :verbose
7
+
6
8
  private
7
9
 
8
10
  # Execute a command
@@ -10,10 +12,10 @@ class PrComet
10
12
  # @param command [String] The command you want to execute
11
13
  # @return [String] The result in the execution
12
14
  def execute(command)
13
- puts "$ #{command}"
15
+ puts "$ #{command}" if verbose
14
16
  `#{command}`.chomp.tap do |result|
15
17
  color = $CHILD_STATUS.success? ? :green : :red
16
- puts Rainbow(result).color(color)
18
+ puts Rainbow(result).color(color) if verbose
17
19
  end
18
20
  end
19
21
  end
@@ -6,9 +6,10 @@ class PrComet
6
6
  class Command
7
7
  include CommandLine
8
8
 
9
- def initialize(user_name: nil, user_email: nil)
9
+ def initialize(user_name: nil, user_email: nil, verbose: false)
10
10
  @user_name = user_name
11
11
  @user_email = user_email
12
+ @verbose = verbose
12
13
  end
13
14
 
14
15
  def user_name
@@ -71,8 +71,6 @@ class PrComet
71
71
  # @return [Integer, nil] Project column ID
72
72
  def get_project_column_id(project_id, column_name)
73
73
  find_project_columns(project_id).find { |c| c.name == column_name }.id
74
- rescue StandardError
75
- raise "Cannot find the GitHub project column with '#{column_name}'"
76
74
  end
77
75
 
78
76
  # Returns the issue (or pull request) ID
@@ -91,8 +89,6 @@ class PrComet
91
89
  # @see http://octokit.github.io/octokit.rb/Octokit/Client/Projects.html#projects-instance_method
92
90
  def default_project_id
93
91
  client.projects(repository).first.id
94
- rescue Octokit::Error
95
- raise 'Project does not found on this repository'
96
92
  end
97
93
 
98
94
  # Finds project columns with supplied project ID.
@@ -102,8 +98,6 @@ class PrComet
102
98
  # @see http://octokit.github.io/octokit.rb/Octokit/Client/Projects.html#project_columns-instance_method
103
99
  def find_project_columns(project_id)
104
100
  client.project_columns(project_id)
105
- rescue Octokit::Error
106
- raise "Project columns does not found at project_id:#{project_id}"
107
101
  end
108
102
  end
109
103
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pr_comet'
4
+ require 'pr_comet/rspec/stub'
5
+
6
+ RSpec.configure do |config|
7
+ config.include PrComet::Stub
8
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class PrComet
4
+ # Test helper module for RSpec
5
+ module Stub
6
+ def stub_pr_comet!
7
+ instance_double(PrComet, create!: true).tap do |pr_comet|
8
+ allow(pr_comet).to receive(:commit) { |_message, &block| block&.call }
9
+ allow(PrComet).to receive(:new).and_return(pr_comet)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class PrComet
4
- VERSION = '0.2.0'
4
+ VERSION = '0.5.1'
5
5
  end
@@ -25,14 +25,14 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency 'octokit'
26
26
  spec.add_runtime_dependency 'rainbow'
27
27
 
28
- spec.add_development_dependency 'bundler', '~> 1.16'
28
+ spec.add_development_dependency 'bundler', '~> 2.2'
29
29
  spec.add_development_dependency 'pry-byebug'
30
- spec.add_development_dependency 'rake', '~> 10.0'
30
+ spec.add_development_dependency 'rake', '~> 13.0'
31
31
  spec.add_development_dependency 'rspec'
32
32
  spec.add_development_dependency 'rspec_junit_formatter'
33
33
  spec.add_development_dependency 'rubocop'
34
34
  spec.add_development_dependency 'rubocop-performance'
35
35
  spec.add_development_dependency 'rubocop-rspec'
36
- spec.add_development_dependency 'simplecov'
36
+ spec.add_development_dependency 'simplecov', '0.21.2'
37
37
  spec.add_development_dependency 'yard'
38
38
  end
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": [
3
+ "config:base"
4
+ ]
5
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pr_comet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ryz310
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-09 00:00:00.000000000 Z
11
+ date: 2021-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.16'
47
+ version: '2.2'
48
48
  type: :development
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.16'
54
+ version: '2.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry-byebug
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -154,16 +154,16 @@ dependencies:
154
154
  name: simplecov
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: 0.21.2
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: '0'
166
+ version: 0.21.2
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: yard
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -186,11 +186,15 @@ extensions: []
186
186
  extra_rdoc_files: []
187
187
  files:
188
188
  - ".circleci/config.yml"
189
+ - ".dependabot/config.yml"
189
190
  - ".envrc.skeleton"
191
+ - ".gem_comet.yml"
190
192
  - ".gitignore"
191
193
  - ".rspec"
192
194
  - ".rubocop.yml"
195
+ - ".rubocop_challenge.yml"
193
196
  - ".rubocop_todo.yml"
197
+ - CHANGELOG.md
194
198
  - CODE_OF_CONDUCT.md
195
199
  - Gemfile
196
200
  - Gemfile.lock
@@ -205,8 +209,11 @@ files:
205
209
  - lib/pr_comet/errors.rb
206
210
  - lib/pr_comet/git/command.rb
207
211
  - lib/pr_comet/github/client.rb
212
+ - lib/pr_comet/rspec.rb
213
+ - lib/pr_comet/rspec/stub.rb
208
214
  - lib/pr_comet/version.rb
209
215
  - pr_comet.gemspec
216
+ - renovate.json
210
217
  homepage: https://github.com/ryz310/pr_comet
211
218
  licenses:
212
219
  - MIT
@@ -226,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
233
  - !ruby/object:Gem::Version
227
234
  version: '0'
228
235
  requirements: []
229
- rubygems_version: 3.0.3
236
+ rubygems_version: 3.2.3
230
237
  signing_key:
231
238
  specification_version: 4
232
239
  summary: Create a lots of pull request like comets