gem_comet 0.4.0 → 0.8.0
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 +4 -4
- data/.circleci/config.yml +14 -19
- data/.dependabot/config.yml +18 -0
- data/.gem_comet.yml +17 -1
- data/.rubocop.yml +1 -1
- data/.rubocop_challenge.yml +3 -0
- data/.rubocop_todo.yml +16 -1
- data/CHANGELOG.md +108 -19
- data/Gemfile.lock +65 -53
- data/README.md +4 -0
- data/gem_comet.gemspec +5 -3
- data/lib/gem_comet.rb +4 -6
- data/lib/gem_comet/changelog/generator.rb +36 -8
- data/lib/gem_comet/cli.rb +5 -1
- data/lib/gem_comet/config.rb +16 -9
- data/lib/gem_comet/git_command.rb +46 -0
- data/lib/gem_comet/release.rb +10 -6
- data/lib/gem_comet/release/create_release_pr.rb +38 -0
- data/lib/gem_comet/release/{update_pr.rb → create_update_pr.rb} +15 -5
- data/lib/gem_comet/service_abstract.rb +2 -2
- data/lib/gem_comet/verify_git_condition.rb +45 -0
- data/lib/gem_comet/version.rb +1 -1
- data/lib/gem_comet/version_history.rb +2 -1
- data/renovate.json +5 -0
- data/template/.gem_comet.yml.erb +6 -0
- data/template/release_pr.md.erb +5 -0
- data/template/update_pr.md.erb +6 -0
- metadata +21 -14
- data/lib/gem_comet/release/release_pr.rb +0 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e11e63f7c4687ba1b98858b475b9eaa471cc96bde4be53df6fac06ea5a06069c
|
|
4
|
+
data.tar.gz: 20bc0f22daf10dae7078160799e8c1beaa5e4bca084dcc973db68f06ea7dd7b2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d45c9585a76e9bef8682e2f22350d9af725728092c9c653885b9337221adf41b08b17fbf4ea677fcf19211d42a5f2698d0236b233432262c907df840d8e25180
|
|
7
|
+
data.tar.gz: e069789e5c5c56f8427d375c7eac37027551a3eb0a34ee15bc852d3699c8515afad061160973b1f3eecf0d389383e664ded2c0f232c55c3c37350a83ba13abe8
|
data/.circleci/config.yml
CHANGED
|
@@ -5,22 +5,22 @@
|
|
|
5
5
|
version: 2.1
|
|
6
6
|
|
|
7
7
|
orbs:
|
|
8
|
-
ruby-orbs: sue445/ruby-orbs@1.
|
|
8
|
+
ruby-orbs: sue445/ruby-orbs@1.6.1
|
|
9
9
|
code-climate: rvla/code-climate@0.0.2
|
|
10
10
|
|
|
11
11
|
references:
|
|
12
12
|
- &ruby_version
|
|
13
13
|
ruby_version:
|
|
14
14
|
type: enum
|
|
15
|
-
enum: ['2.
|
|
16
|
-
default: '
|
|
15
|
+
enum: ['2.7', '3.0', 'latest']
|
|
16
|
+
default: '3.0'
|
|
17
17
|
|
|
18
18
|
executors:
|
|
19
19
|
default:
|
|
20
20
|
parameters:
|
|
21
21
|
<<: *ruby_version
|
|
22
22
|
docker:
|
|
23
|
-
- image: circleci/ruby:<< parameters.ruby_version
|
|
23
|
+
- image: circleci/ruby:<< parameters.ruby_version >>
|
|
24
24
|
working_directory: ~/repo
|
|
25
25
|
|
|
26
26
|
commands:
|
|
@@ -42,7 +42,7 @@ commands:
|
|
|
42
42
|
- code-climate/format-coverage:
|
|
43
43
|
input-type: simplecov
|
|
44
44
|
prefix: $(readlink -f .)
|
|
45
|
-
coverage-file: coverage
|
|
45
|
+
coverage-file: coverage/coverage.json
|
|
46
46
|
output: coverage/codeclimate.$CIRCLE_BUILD_NUM.json
|
|
47
47
|
- persist_to_workspace:
|
|
48
48
|
root: coverage
|
|
@@ -124,7 +124,7 @@ jobs:
|
|
|
124
124
|
- code-climate/install
|
|
125
125
|
- code-climate/sum-coverage:
|
|
126
126
|
input: codeclimate.*.json
|
|
127
|
-
parts:
|
|
127
|
+
parts: 3
|
|
128
128
|
- code-climate/upload-coverage
|
|
129
129
|
rubocop:
|
|
130
130
|
executor: default
|
|
@@ -153,14 +153,11 @@ workflows:
|
|
|
153
153
|
commit:
|
|
154
154
|
jobs:
|
|
155
155
|
- build:
|
|
156
|
-
name: build_on_ruby_2.
|
|
157
|
-
ruby_version: '2.
|
|
156
|
+
name: build_on_ruby_2.7
|
|
157
|
+
ruby_version: '2.7'
|
|
158
158
|
- build:
|
|
159
|
-
name:
|
|
160
|
-
ruby_version: '
|
|
161
|
-
- build:
|
|
162
|
-
name: build_on_ruby_2.6
|
|
163
|
-
ruby_version: '2.6'
|
|
159
|
+
name: build_on_ruby_3.0
|
|
160
|
+
ruby_version: '3.0'
|
|
164
161
|
- build:
|
|
165
162
|
name: build_on_ruby_latest
|
|
166
163
|
ruby_version: 'latest'
|
|
@@ -168,16 +165,14 @@ workflows:
|
|
|
168
165
|
- yardoc
|
|
169
166
|
- upload-coverage:
|
|
170
167
|
requires:
|
|
171
|
-
- build_on_ruby_2.
|
|
172
|
-
-
|
|
173
|
-
- build_on_ruby_2.6
|
|
168
|
+
- build_on_ruby_2.7
|
|
169
|
+
- build_on_ruby_3.0
|
|
174
170
|
- build_on_ruby_latest
|
|
175
171
|
- release:
|
|
176
172
|
context: RubyGems API Key
|
|
177
173
|
requires:
|
|
178
|
-
- build_on_ruby_2.
|
|
179
|
-
-
|
|
180
|
-
- build_on_ruby_2.6
|
|
174
|
+
- build_on_ruby_2.7
|
|
175
|
+
- build_on_ruby_3.0
|
|
181
176
|
- build_on_ruby_latest
|
|
182
177
|
- rubocop
|
|
183
178
|
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"
|
data/.gem_comet.yml
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
|
|
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.2
|
|
2
10
|
|
|
3
11
|
release:
|
|
4
12
|
base_branch: master
|
|
5
13
|
release_branch: release
|
|
6
14
|
version_file_path: lib/gem_comet/version.rb
|
|
7
15
|
changelog_file_path: CHANGELOG.md
|
|
16
|
+
changelog:
|
|
17
|
+
categories:
|
|
18
|
+
- Feature
|
|
19
|
+
- Bugfix
|
|
20
|
+
- Breaking Change
|
|
21
|
+
- Rubocop Challenger
|
|
22
|
+
- Dependabot
|
|
23
|
+
- Misc
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2020-12-25 23:30:51 UTC using RuboCop version 1.7.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: 11
|
|
10
|
+
Lint/MissingSuper:
|
|
11
|
+
Exclude:
|
|
12
|
+
- 'lib/gem_comet/bundle_updater.rb'
|
|
13
|
+
- 'lib/gem_comet/changelog.rb'
|
|
14
|
+
- 'lib/gem_comet/changelog/generator.rb'
|
|
15
|
+
- 'lib/gem_comet/changelog/initializer.rb'
|
|
16
|
+
- 'lib/gem_comet/config.rb'
|
|
17
|
+
- 'lib/gem_comet/open_github_pulls_page.rb'
|
|
18
|
+
- 'lib/gem_comet/release.rb'
|
|
19
|
+
- 'lib/gem_comet/release/create_release_pr.rb'
|
|
20
|
+
- 'lib/gem_comet/release/create_update_pr.rb'
|
|
21
|
+
- 'lib/gem_comet/repository_url.rb'
|
|
22
|
+
- 'lib/gem_comet/verify_git_condition.rb'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,57 +1,146 @@
|
|
|
1
1
|
# Change log
|
|
2
2
|
|
|
3
|
+
## v0.8.0 (Jan 11, 2021)
|
|
4
|
+
|
|
5
|
+
### Feature
|
|
6
|
+
|
|
7
|
+
* [#223](https://github.com/ryz310/gem_comet/pull/223) Add verbose option ([@ryz310](https://github.com/ryz310))
|
|
8
|
+
* [#226](https://github.com/ryz310/gem_comet/pull/226) Add categories option ([@ryz310](https://github.com/ryz310))
|
|
9
|
+
|
|
10
|
+
### Dependabot
|
|
11
|
+
|
|
12
|
+
* [#201](https://github.com/ryz310/gem_comet/pull/201) Update bundler requirement from ~> 1.16 to ~> 2.2 ([@ryz310](https://github.com/ryz310))
|
|
13
|
+
* [#221](https://github.com/ryz310/gem_comet/pull/221) ryz310/dependabot/bundler/rubocop-1.8.0 ([@ryz310](https://github.com/ryz310))
|
|
14
|
+
* [#222](https://github.com/ryz310/gem_comet/pull/222) Update simplecov requirement from = 0.17.1 to = 0.21.2 ([@ryz310](https://github.com/ryz310))
|
|
15
|
+
* [#227](https://github.com/ryz310/gem_comet/pull/227) ryz310/dependabot/bundler/rubocop-1.8.1 ([@ryz310](https://github.com/ryz310))
|
|
16
|
+
|
|
17
|
+
## v0.7.2 (Jan 04, 2021)
|
|
18
|
+
|
|
19
|
+
### Bugfix
|
|
20
|
+
|
|
21
|
+
* [#217](https://github.com/ryz310/gem_comet/pull/217) Use `**` to keyword argument for Ruby 3.0 ([@ryz310](https://github.com/ryz310))
|
|
22
|
+
|
|
23
|
+
## v0.7.1 (Jan 04, 2021)
|
|
24
|
+
|
|
25
|
+
### Bugfix
|
|
26
|
+
|
|
27
|
+
* [#214](https://github.com/ryz310/gem_comet/pull/214) Fix dependency ([@ryz310](https://github.com/ryz310))
|
|
28
|
+
|
|
29
|
+
## v0.7.0 (Jan 04, 2021)
|
|
30
|
+
|
|
31
|
+
### Breaking Change
|
|
32
|
+
|
|
33
|
+
* [#178](https://github.com/ryz310/gem_comet/pull/178) End of support for Ruby 2.4 ([@ryz310](https://github.com/ryz310))
|
|
34
|
+
* [#211](https://github.com/ryz310/gem_comet/pull/211) Support ruby 3.0 ([@ryz310](https://github.com/ryz310))
|
|
35
|
+
|
|
36
|
+
### Rubocop Challenger
|
|
37
|
+
|
|
38
|
+
* [#129](https://github.com/ryz310/gem_comet/pull/129) Performance/StartWith-20200523233027 ([@ryz310](https://github.com/ryz310))
|
|
39
|
+
* [#206](https://github.com/ryz310/gem_comet/pull/206) Re-generate .rubocop_todo.yml with RuboCop v1.7.0 ([@ryz310](https://github.com/ryz310))
|
|
40
|
+
|
|
41
|
+
### Dependabot
|
|
42
|
+
|
|
43
|
+
* [#74](https://github.com/ryz310/gem_comet/pull/74) Bump thor from 1.0.0 to 1.0.1 ([@ryz310](https://github.com/ryz310))
|
|
44
|
+
* [#112](https://github.com/ryz310/gem_comet/pull/112) ryz310/dependabot/bundler/pry-byebug-3.9.0 ([@ryz310](https://github.com/ryz310))
|
|
45
|
+
* [#176](https://github.com/ryz310/gem_comet/pull/176) ryz310/dependabot/bundler/rspec-3.10.0 ([@ryz310](https://github.com/ryz310))
|
|
46
|
+
* [#200](https://github.com/ryz310/gem_comet/pull/200) ryz310/dependabot/bundler/rubocop-1.6.1 ([@ryz310](https://github.com/ryz310))
|
|
47
|
+
* [#203](https://github.com/ryz310/gem_comet/pull/203) ryz310/dependabot/bundler/rubocop-rspec-2.1.0 ([@ryz310](https://github.com/ryz310))
|
|
48
|
+
* [#204](https://github.com/ryz310/gem_comet/pull/204) ryz310/dependabot/bundler/rake-13.0.2 ([@ryz310](https://github.com/ryz310))
|
|
49
|
+
* [#207](https://github.com/ryz310/gem_comet/pull/207) ryz310/dependabot/bundler/yard-0.9.26 ([@ryz310](https://github.com/ryz310))
|
|
50
|
+
* [#210](https://github.com/ryz310/gem_comet/pull/210) ryz310/dependabot/bundler/rubocop-performance-1.9.2 ([@ryz310](https://github.com/ryz310))
|
|
51
|
+
|
|
52
|
+
### Misc
|
|
53
|
+
|
|
54
|
+
* [#71](https://github.com/ryz310/gem_comet/pull/71) Rename service classes to add verb to prefix ([@ryz310](https://github.com/ryz310))
|
|
55
|
+
* [#96](https://github.com/ryz310/gem_comet/pull/96) Update ruby-orbs orb to v1.6.0 ([@ryz310](https://github.com/ryz310))
|
|
56
|
+
* [#113](https://github.com/ryz310/gem_comet/pull/113) Edit dependabot configuration ([@ryz310](https://github.com/ryz310))
|
|
57
|
+
|
|
58
|
+
## v0.6.1 (Nov 22, 2019)
|
|
59
|
+
|
|
60
|
+
### Misc
|
|
61
|
+
|
|
62
|
+
* [#64](https://github.com/ryz310/gem_comet/pull/64) Bump rubocop-performance from 1.5.0 to 1.5.1 ([@ryz310](https://github.com/ryz310))
|
|
63
|
+
* [#63](https://github.com/ryz310/gem_comet/pull/63) ryz310/dependabot/bundler/rake-13.0.1 ([@ryz310](https://github.com/ryz310))
|
|
64
|
+
* [#65](https://github.com/ryz310/gem_comet/pull/65) Update ruby-orbs orb to v1.4.5 ([@ryz310](https://github.com/ryz310))
|
|
65
|
+
|
|
66
|
+
## v0.6.0 (Nov 03, 2019)
|
|
67
|
+
|
|
68
|
+
### Feature
|
|
69
|
+
|
|
70
|
+
* [#60](https://github.com/ryz310/gem_comet/pull/60) Verify git condition on release ([@ryz310](https://github.com/ryz310))
|
|
71
|
+
|
|
72
|
+
## v0.5.0 (Nov 02, 2019)
|
|
73
|
+
|
|
74
|
+
### Feature
|
|
75
|
+
|
|
76
|
+
* [#48](https://github.com/ryz310/gem_comet/pull/48) Add TODO list for the release flow ([@ryz310](https://github.com/ryz310))
|
|
77
|
+
* [#49](https://github.com/ryz310/gem_comet/pull/49) Add pull request author names to the changelog generator feature ([@ryz310](https://github.com/ryz310))
|
|
78
|
+
* [#54](https://github.com/ryz310/gem_comet/pull/54) Add to todo list to check version numbering ([@ryz310](https://github.com/ryz310))
|
|
79
|
+
|
|
80
|
+
### Bugfix
|
|
81
|
+
|
|
82
|
+
* [#50](https://github.com/ryz310/gem_comet/pull/50) Fixed broken version number parsing including obsolete version numbers ([@ryz310](https://github.com/ryz310))
|
|
83
|
+
* [#51](https://github.com/ryz310/gem_comet/pull/51) Fix author name parsing ([@ryz310](https://github.com/ryz310))
|
|
84
|
+
|
|
85
|
+
### Misc
|
|
86
|
+
|
|
87
|
+
* [#44](https://github.com/ryz310/gem_comet/pull/44) Configure Renovate ([@ryz310](https://github.com/ryz310))
|
|
88
|
+
* [#46](https://github.com/ryz310/gem_comet/pull/46) Re-generate .rubocop_todo.yml with RuboCop v0.76.0 ([@ryz310](https://github.com/ryz310))
|
|
89
|
+
* [#47](https://github.com/ryz310/gem_comet/pull/47) Update ruby-orbs orb to v1.4.4 ([@ryz310](https://github.com/ryz310))
|
|
90
|
+
* [#53](https://github.com/ryz310/gem_comet/pull/53) Use pr comet stubbing ([@ryz310](https://github.com/ryz310))
|
|
91
|
+
|
|
3
92
|
## v0.4.0 (Oct 27, 2019)
|
|
4
93
|
|
|
5
94
|
### Feature
|
|
6
95
|
|
|
7
|
-
* Modify to display gem versions sorted by tagged date ([
|
|
8
|
-
* Add the legend to creating pull requests ([
|
|
9
|
-
* Open the GitHub pull request page at release ([
|
|
96
|
+
* [#32](https://github.com/ryz310/gem_comet/pull/32) Modify to display gem versions sorted by tagged date ([@ryz310](https://github.com/ryz310))
|
|
97
|
+
* [#33](https://github.com/ryz310/gem_comet/pull/33) Add the legend to creating pull requests ([@ryz310](https://github.com/ryz310))
|
|
98
|
+
* [#36](https://github.com/ryz310/gem_comet/pull/36) Open the GitHub pull request page at release ([@ryz310](https://github.com/ryz310))
|
|
10
99
|
|
|
11
100
|
### Bugfix
|
|
12
101
|
|
|
13
|
-
* Fix broken links included by the modified change log ([
|
|
102
|
+
* [#34](https://github.com/ryz310/gem_comet/pull/34) Fix broken links included by the modified change log ([@ryz310](https://github.com/ryz310))
|
|
14
103
|
|
|
15
104
|
### Breaking Change
|
|
16
105
|
|
|
17
|
-
*
|
|
106
|
+
* [#35](https://github.com/ryz310/gem_comet/pull/35) Changelog initializer ([@ryz310](https://github.com/ryz310))
|
|
18
107
|
* The `$ gem_comet changelog` command options has changed:
|
|
19
108
|
* Before:
|
|
20
109
|
* `$ gem_comet changelog --from=0.1.0 --to=0.1.1`
|
|
21
110
|
* After:
|
|
22
111
|
* `$ gem_comet changelog --version=v0.1.1`
|
|
23
112
|
|
|
24
|
-
##
|
|
113
|
+
## v0.3.0 (Oct 19, 2019)
|
|
25
114
|
|
|
26
115
|
### Feature
|
|
27
116
|
|
|
28
|
-
* Enhance the feature of changelog command ([
|
|
117
|
+
* [#27](https://github.com/ryz310/gem_comet/pull/27) Enhance the feature of changelog command ([@ryz310](https://github.com/ryz310))
|
|
29
118
|
|
|
30
119
|
### Misc
|
|
31
120
|
|
|
32
|
-
* Re-generate .rubocop_todo.yml with RuboCop v0.75.1 ([
|
|
121
|
+
* [#25](https://github.com/ryz310/gem_comet/pull/25) Re-generate .rubocop_todo.yml with RuboCop v0.75.1 ([@ryz310](https://github.com/ryz310))
|
|
33
122
|
|
|
34
|
-
##
|
|
123
|
+
## v0.2.0 (Oct 13, 2019)
|
|
35
124
|
|
|
36
125
|
### Feature
|
|
37
126
|
|
|
38
|
-
* Auto generate change log ([
|
|
127
|
+
* [#22](https://github.com/ryz310/gem_comet/pull/22) Auto generate change log ([@ryz310](https://github.com/ryz310))
|
|
39
128
|
|
|
40
|
-
##
|
|
129
|
+
## v0.1.1 (Oct 13, 2019)
|
|
41
130
|
|
|
42
131
|
### Bugfix
|
|
43
132
|
|
|
44
|
-
* Fix version number validation ([
|
|
133
|
+
* [#16](https://github.com/ryz310/gem_comet/pull/16) Fix version number validation ([@ryz310](https://github.com/ryz310))
|
|
45
134
|
|
|
46
135
|
### Misc
|
|
47
136
|
|
|
48
|
-
* Re-generate .rubocop_todo.yml with RuboCop v0.73.0 ([
|
|
49
|
-
* Re-generate .rubocop_todo.yml with RuboCop v0.74.0 ([
|
|
50
|
-
* Re-generate .rubocop_todo.yml with RuboCop v0.75.0 ([
|
|
51
|
-
* ryz310/dependabot/bundler/rake-tw-13.0 ([
|
|
52
|
-
* ryz310/dependabot/bundler/rubocop-performance-1.5.0 ([
|
|
53
|
-
* ryz310/dependabot/bundler/rspec-3.9.0 ([
|
|
137
|
+
* [#3](https://github.com/ryz310/gem_comet/pull/3) Re-generate .rubocop_todo.yml with RuboCop v0.73.0 ([@ryz310](https://github.com/ryz310))
|
|
138
|
+
* [#5](https://github.com/ryz310/gem_comet/pull/5) Re-generate .rubocop_todo.yml with RuboCop v0.74.0 ([@ryz310](https://github.com/ryz310))
|
|
139
|
+
* [#13](https://github.com/ryz310/gem_comet/pull/13) Re-generate .rubocop_todo.yml with RuboCop v0.75.0 ([@ryz310](https://github.com/ryz310))
|
|
140
|
+
* [#9](https://github.com/ryz310/gem_comet/pull/9) ryz310/dependabot/bundler/rake-tw-13.0 ([@ryz310](https://github.com/ryz310))
|
|
141
|
+
* [#14](https://github.com/ryz310/gem_comet/pull/14) ryz310/dependabot/bundler/rubocop-performance-1.5.0 ([@ryz310](https://github.com/ryz310))
|
|
142
|
+
* [#17](https://github.com/ryz310/gem_comet/pull/17) ryz310/dependabot/bundler/rspec-3.9.0 ([@ryz310](https://github.com/ryz310))
|
|
54
143
|
|
|
55
|
-
##
|
|
144
|
+
## v0.1.0 (Jul 15, 2019)
|
|
56
145
|
|
|
57
146
|
Initial release :rocket:
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
gem_comet (0.
|
|
5
|
-
pr_comet (~> 0.
|
|
4
|
+
gem_comet (0.8.0)
|
|
5
|
+
pr_comet (~> 0.5.1)
|
|
6
6
|
thor
|
|
7
7
|
type_struct
|
|
8
8
|
|
|
@@ -11,79 +11,91 @@ GEM
|
|
|
11
11
|
specs:
|
|
12
12
|
addressable (2.7.0)
|
|
13
13
|
public_suffix (>= 2.0.2, < 5.0)
|
|
14
|
-
ast (2.4.
|
|
15
|
-
byebug (11.
|
|
16
|
-
coderay (1.1.
|
|
17
|
-
diff-lcs (1.
|
|
18
|
-
docile (1.3.
|
|
19
|
-
faraday (
|
|
14
|
+
ast (2.4.1)
|
|
15
|
+
byebug (11.1.3)
|
|
16
|
+
coderay (1.1.3)
|
|
17
|
+
diff-lcs (1.4.4)
|
|
18
|
+
docile (1.3.4)
|
|
19
|
+
faraday (1.3.0)
|
|
20
|
+
faraday-net_http (~> 1.0)
|
|
20
21
|
multipart-post (>= 1.2, < 3)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
method_source (0.
|
|
22
|
+
ruby2_keywords
|
|
23
|
+
faraday-net_http (1.0.0)
|
|
24
|
+
method_source (1.0.0)
|
|
24
25
|
multipart-post (2.1.1)
|
|
25
|
-
octokit (4.
|
|
26
|
+
octokit (4.20.0)
|
|
27
|
+
faraday (>= 0.9)
|
|
26
28
|
sawyer (~> 0.8.0, >= 0.5.3)
|
|
27
|
-
parallel (1.
|
|
28
|
-
parser (
|
|
29
|
-
ast (~> 2.4.
|
|
30
|
-
pr_comet (0.
|
|
29
|
+
parallel (1.20.1)
|
|
30
|
+
parser (3.0.0.0)
|
|
31
|
+
ast (~> 2.4.1)
|
|
32
|
+
pr_comet (0.5.1)
|
|
31
33
|
octokit
|
|
32
34
|
rainbow
|
|
33
|
-
pry (0.
|
|
34
|
-
coderay (~> 1.1
|
|
35
|
-
method_source (~>
|
|
36
|
-
pry-byebug (3.
|
|
35
|
+
pry (0.13.1)
|
|
36
|
+
coderay (~> 1.1)
|
|
37
|
+
method_source (~> 1.0)
|
|
38
|
+
pry-byebug (3.9.0)
|
|
37
39
|
byebug (~> 11.0)
|
|
38
|
-
pry (~> 0.
|
|
39
|
-
public_suffix (4.0.
|
|
40
|
+
pry (~> 0.13.0)
|
|
41
|
+
public_suffix (4.0.6)
|
|
40
42
|
rainbow (3.0.0)
|
|
41
|
-
rake (13.0.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
rspec-
|
|
46
|
-
|
|
47
|
-
rspec-
|
|
48
|
-
rspec-
|
|
43
|
+
rake (13.0.3)
|
|
44
|
+
regexp_parser (2.0.3)
|
|
45
|
+
rexml (3.2.4)
|
|
46
|
+
rspec (3.10.0)
|
|
47
|
+
rspec-core (~> 3.10.0)
|
|
48
|
+
rspec-expectations (~> 3.10.0)
|
|
49
|
+
rspec-mocks (~> 3.10.0)
|
|
50
|
+
rspec-core (3.10.1)
|
|
51
|
+
rspec-support (~> 3.10.0)
|
|
52
|
+
rspec-expectations (3.10.1)
|
|
49
53
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
50
|
-
rspec-support (~> 3.
|
|
51
|
-
rspec-mocks (3.
|
|
54
|
+
rspec-support (~> 3.10.0)
|
|
55
|
+
rspec-mocks (3.10.1)
|
|
52
56
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
53
|
-
rspec-support (~> 3.
|
|
54
|
-
rspec-support (3.
|
|
57
|
+
rspec-support (~> 3.10.0)
|
|
58
|
+
rspec-support (3.10.1)
|
|
55
59
|
rspec_junit_formatter (0.4.1)
|
|
56
60
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
57
|
-
rubocop (
|
|
58
|
-
jaro_winkler (~> 1.5.1)
|
|
61
|
+
rubocop (1.8.1)
|
|
59
62
|
parallel (~> 1.10)
|
|
60
|
-
parser (>=
|
|
63
|
+
parser (>= 3.0.0.0)
|
|
61
64
|
rainbow (>= 2.2.2, < 4.0)
|
|
65
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
66
|
+
rexml
|
|
67
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
|
62
68
|
ruby-progressbar (~> 1.7)
|
|
63
|
-
unicode-display_width (>= 1.4.0, <
|
|
64
|
-
rubocop-
|
|
65
|
-
|
|
66
|
-
rubocop-
|
|
67
|
-
rubocop (>= 0.
|
|
68
|
-
|
|
69
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
70
|
+
rubocop-ast (1.4.0)
|
|
71
|
+
parser (>= 2.7.1.5)
|
|
72
|
+
rubocop-performance (1.9.2)
|
|
73
|
+
rubocop (>= 0.90.0, < 2.0)
|
|
74
|
+
rubocop-ast (>= 0.4.0)
|
|
75
|
+
rubocop-rspec (2.1.0)
|
|
76
|
+
rubocop (~> 1.0)
|
|
77
|
+
rubocop-ast (>= 1.1.0)
|
|
78
|
+
ruby-progressbar (1.11.0)
|
|
79
|
+
ruby2_keywords (0.0.2)
|
|
69
80
|
sawyer (0.8.2)
|
|
70
81
|
addressable (>= 2.3.5)
|
|
71
82
|
faraday (> 0.8, < 2.0)
|
|
72
|
-
simplecov (0.
|
|
83
|
+
simplecov (0.21.2)
|
|
73
84
|
docile (~> 1.1)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
simplecov-html (0.
|
|
77
|
-
|
|
85
|
+
simplecov-html (~> 0.11)
|
|
86
|
+
simplecov_json_formatter (~> 0.1)
|
|
87
|
+
simplecov-html (0.12.3)
|
|
88
|
+
simplecov_json_formatter (0.1.2)
|
|
89
|
+
thor (1.0.1)
|
|
78
90
|
type_struct (0.8.0)
|
|
79
|
-
unicode-display_width (
|
|
80
|
-
yard (0.9.
|
|
91
|
+
unicode-display_width (2.0.0)
|
|
92
|
+
yard (0.9.26)
|
|
81
93
|
|
|
82
94
|
PLATFORMS
|
|
83
95
|
ruby
|
|
84
96
|
|
|
85
97
|
DEPENDENCIES
|
|
86
|
-
bundler (~>
|
|
98
|
+
bundler (~> 2.2)
|
|
87
99
|
gem_comet!
|
|
88
100
|
pry-byebug
|
|
89
101
|
rake (~> 13.0)
|
|
@@ -92,8 +104,8 @@ DEPENDENCIES
|
|
|
92
104
|
rubocop
|
|
93
105
|
rubocop-performance
|
|
94
106
|
rubocop-rspec
|
|
95
|
-
simplecov
|
|
107
|
+
simplecov (= 0.21.2)
|
|
96
108
|
yard
|
|
97
109
|
|
|
98
110
|
BUNDLED WITH
|
|
99
|
-
|
|
111
|
+
2.2.4
|
data/README.md
CHANGED
data/gem_comet.gemspec
CHANGED
|
@@ -22,11 +22,13 @@ Gem::Specification.new do |spec|
|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
23
23
|
spec.require_paths = ['lib']
|
|
24
24
|
|
|
25
|
-
spec.
|
|
25
|
+
spec.required_ruby_version = '>= 2.7.0'
|
|
26
|
+
|
|
27
|
+
spec.add_runtime_dependency 'pr_comet', '~> 0.5.1'
|
|
26
28
|
spec.add_runtime_dependency 'thor'
|
|
27
29
|
spec.add_runtime_dependency 'type_struct'
|
|
28
30
|
|
|
29
|
-
spec.add_development_dependency 'bundler', '~>
|
|
31
|
+
spec.add_development_dependency 'bundler', '~> 2.2'
|
|
30
32
|
spec.add_development_dependency 'pry-byebug'
|
|
31
33
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
32
34
|
spec.add_development_dependency 'rspec'
|
|
@@ -34,6 +36,6 @@ Gem::Specification.new do |spec|
|
|
|
34
36
|
spec.add_development_dependency 'rubocop'
|
|
35
37
|
spec.add_development_dependency 'rubocop-performance'
|
|
36
38
|
spec.add_development_dependency 'rubocop-rspec'
|
|
37
|
-
spec.add_development_dependency 'simplecov'
|
|
39
|
+
spec.add_development_dependency 'simplecov', '0.21.2'
|
|
38
40
|
spec.add_development_dependency 'yard'
|
|
39
41
|
end
|
data/lib/gem_comet.rb
CHANGED
|
@@ -8,6 +8,7 @@ require 'yaml'
|
|
|
8
8
|
require 'gem_comet/version'
|
|
9
9
|
require 'gem_comet/service_abstract'
|
|
10
10
|
require 'gem_comet/config'
|
|
11
|
+
require 'gem_comet/git_command'
|
|
11
12
|
require 'gem_comet/bundle_updater'
|
|
12
13
|
require 'gem_comet/version_editor'
|
|
13
14
|
require 'gem_comet/version_history'
|
|
@@ -18,10 +19,7 @@ require 'gem_comet/changelog/generator'
|
|
|
18
19
|
require 'gem_comet/open_github_pulls_page'
|
|
19
20
|
require 'gem_comet/repository_url'
|
|
20
21
|
require 'gem_comet/release'
|
|
21
|
-
require 'gem_comet/release/
|
|
22
|
-
require 'gem_comet/release/
|
|
22
|
+
require 'gem_comet/release/create_update_pr'
|
|
23
|
+
require 'gem_comet/release/create_release_pr'
|
|
24
|
+
require 'gem_comet/verify_git_condition'
|
|
23
25
|
require 'gem_comet/cli'
|
|
24
|
-
|
|
25
|
-
module GemComet
|
|
26
|
-
LEGEND = 'Generated by [gem_comet](https://github.com/ryz310/gem_comet)'
|
|
27
|
-
end
|
|
@@ -17,6 +17,7 @@ module GemComet
|
|
|
17
17
|
private
|
|
18
18
|
|
|
19
19
|
MERGE_COMMIT_TITLE = /Merge pull request #(\d+) from (.+)/.freeze
|
|
20
|
+
DEFAULT_CATEGORIES = ['Feature', 'Bugfix', 'Breaking Change', 'Misc'].freeze
|
|
20
21
|
|
|
21
22
|
# Returns changelogs as markdown format from current version to HEAD commit.
|
|
22
23
|
#
|
|
@@ -27,10 +28,7 @@ module GemComet
|
|
|
27
28
|
|
|
28
29
|
## #{title} (#{versioning_date})
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
### Bugfix
|
|
32
|
-
### Breaking Change
|
|
33
|
-
### Misc
|
|
31
|
+
#{changelog_categories.join("\n")}
|
|
34
32
|
|
|
35
33
|
#{changelogs.reverse.join("\n")}
|
|
36
34
|
MARKDOWN
|
|
@@ -43,6 +41,13 @@ module GemComet
|
|
|
43
41
|
VersionHistory.new.versioning_date_of(version).strftime('%b %d, %Y')
|
|
44
42
|
end
|
|
45
43
|
|
|
44
|
+
# Returns array of changelog categories reading from the config file.
|
|
45
|
+
#
|
|
46
|
+
# @return [Array<String>] Array of changelog categories as markdown format
|
|
47
|
+
def changelog_categories
|
|
48
|
+
(Config.call.changelog&.categories || DEFAULT_CATEGORIES).map { |c| "### #{c}" }
|
|
49
|
+
end
|
|
50
|
+
|
|
46
51
|
# Returns array of changelogs as markdown format.
|
|
47
52
|
#
|
|
48
53
|
# @return [Array<String>] Array of changelogs as markdown format
|
|
@@ -50,14 +55,29 @@ module GemComet
|
|
|
50
55
|
merge_commits.map do |merge_commit|
|
|
51
56
|
next unless merge_commit.match?(MERGE_COMMIT_TITLE)
|
|
52
57
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
number = extract_pull_request_number(merge_commit)
|
|
59
|
+
title = extract_description(merge_commit) || extract_branch_name(merge_commit)
|
|
60
|
+
author = extract_author_name(merge_commit)
|
|
56
61
|
|
|
57
|
-
|
|
62
|
+
generate_changelog(number, title, author)
|
|
58
63
|
end.compact
|
|
59
64
|
end
|
|
60
65
|
|
|
66
|
+
# Generates changelog message as markdown list
|
|
67
|
+
#
|
|
68
|
+
# @param number [Integer] The pull request number
|
|
69
|
+
# @param title [String] The pull request title
|
|
70
|
+
# @param author [String] The author of the PR
|
|
71
|
+
# @return [String] Changelog message as markdown list
|
|
72
|
+
def generate_changelog(number, title, author)
|
|
73
|
+
[
|
|
74
|
+
'*',
|
|
75
|
+
"[##{number}](#{get_pull_request_url(number)})",
|
|
76
|
+
title,
|
|
77
|
+
"([@#{author}](https://github.com/#{author}))"
|
|
78
|
+
].join(' ')
|
|
79
|
+
end
|
|
80
|
+
|
|
61
81
|
# Extracts PR number from merge commit string.
|
|
62
82
|
#
|
|
63
83
|
# @param merge_commit [String] The target string
|
|
@@ -92,6 +112,14 @@ module GemComet
|
|
|
92
112
|
MERGE_COMMIT_TITLE.match(merge_commit).captures.last.chomp.strip
|
|
93
113
|
end
|
|
94
114
|
|
|
115
|
+
# Extracts the author of the PR from merge commit string.
|
|
116
|
+
#
|
|
117
|
+
# @param merge_commit [String] The target string
|
|
118
|
+
# @return [String] Author name
|
|
119
|
+
def extract_author_name(merge_commit)
|
|
120
|
+
extract_branch_name(merge_commit).split('/').first
|
|
121
|
+
end
|
|
122
|
+
|
|
95
123
|
# Parces the merge commit log, which to separate by each commit.
|
|
96
124
|
#
|
|
97
125
|
# @return [Array<String>] Array of git commit log
|
data/lib/gem_comet/cli.rb
CHANGED
|
@@ -20,8 +20,12 @@ module GemComet
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
desc 'release VERSION', 'Creates update PR and release PR'
|
|
23
|
+
option :verbose,
|
|
24
|
+
type: :boolean,
|
|
25
|
+
default: false,
|
|
26
|
+
desc: 'Displays executing commands.'
|
|
23
27
|
def release(version)
|
|
24
|
-
Release.call(version: version)
|
|
28
|
+
Release.call(version: version, verbose: options[:verbose])
|
|
25
29
|
rescue StandardError => e
|
|
26
30
|
puts e.message
|
|
27
31
|
end
|
data/lib/gem_comet/config.rb
CHANGED
|
@@ -6,16 +6,23 @@ module GemComet
|
|
|
6
6
|
using TypeStruct::Union::Ext
|
|
7
7
|
|
|
8
8
|
CONFIG_FILE_PATH = '.gem_comet.yml'
|
|
9
|
-
CURRENT_VERSION = 1.
|
|
9
|
+
CURRENT_VERSION = 1.2
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Release = TypeStruct.new(
|
|
12
|
+
base_branch: String,
|
|
13
|
+
release_branch: String,
|
|
14
|
+
version_file_path: String,
|
|
15
|
+
changelog_file_path: String | nil
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
Changelog = TypeStruct.new(
|
|
19
|
+
categories: TypeStruct::ArrayOf.new(String)
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
V1_2 = TypeStruct.new(
|
|
12
23
|
version: 1.0...2.0,
|
|
13
|
-
release:
|
|
14
|
-
|
|
15
|
-
release_branch: String,
|
|
16
|
-
version_file_path: String,
|
|
17
|
-
changelog_file_path: String | nil
|
|
18
|
-
)
|
|
24
|
+
release: Release,
|
|
25
|
+
changelog: Changelog | nil
|
|
19
26
|
)
|
|
20
27
|
|
|
21
28
|
def initialize; end
|
|
@@ -23,7 +30,7 @@ module GemComet
|
|
|
23
30
|
private
|
|
24
31
|
|
|
25
32
|
def call
|
|
26
|
-
|
|
33
|
+
V1_2.from_hash(YAML.safe_load(File.open(CONFIG_FILE_PATH)))
|
|
27
34
|
rescue Errno::ENOENT
|
|
28
35
|
raise 'Not initialized. Please run `$ gem_comet init`.'
|
|
29
36
|
rescue TypeStruct::MultiTypeError => e
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module GemComet
|
|
4
|
+
# Executes git command
|
|
5
|
+
class GitCommand
|
|
6
|
+
def initialize; end
|
|
7
|
+
|
|
8
|
+
# Get uncommitted files
|
|
9
|
+
#
|
|
10
|
+
# @return [Array<String>] Uncommitted files
|
|
11
|
+
def uncommitted_files
|
|
12
|
+
git_status_short.lines.map(&:chomp)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Get current git branch name
|
|
16
|
+
#
|
|
17
|
+
# @return [String] The current branch name
|
|
18
|
+
def current_branch
|
|
19
|
+
run 'rev-parse', '--abbrev-ref', 'HEAD'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def checkout(branch)
|
|
23
|
+
run 'checkout', branch
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Executes `$ git pull`
|
|
27
|
+
def pull
|
|
28
|
+
run 'pull'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
def execute(command)
|
|
34
|
+
`#{command}`.chomp
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def run(*subcommands)
|
|
38
|
+
command = "git #{subcommands.join(' ')}"
|
|
39
|
+
execute(command)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def git_status_short
|
|
43
|
+
run 'status', '--short'
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
data/lib/gem_comet/release.rb
CHANGED
|
@@ -3,27 +3,30 @@
|
|
|
3
3
|
module GemComet
|
|
4
4
|
# Creates pull requests for gem release and that preparation
|
|
5
5
|
class Release < ServiceAbstract
|
|
6
|
-
def initialize(version:)
|
|
6
|
+
def initialize(version:, verbose: false)
|
|
7
7
|
verify_version_number(version)
|
|
8
8
|
|
|
9
9
|
@version = version
|
|
10
10
|
@config = Config.call
|
|
11
|
+
@verbose = verbose
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
private
|
|
14
15
|
|
|
15
|
-
attr_reader :version, :config
|
|
16
|
+
attr_reader :version, :config, :verbose
|
|
16
17
|
|
|
17
18
|
def call
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
VerifyGitCondition.call
|
|
20
|
+
CreateUpdatePR.call(**update_pr_args)
|
|
21
|
+
CreateReleasePR.call(**release_pr_args)
|
|
20
22
|
OpenGithubPullsPage.call
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def update_pr_args
|
|
24
26
|
{
|
|
25
27
|
version: version,
|
|
26
|
-
base_branch: config.release.base_branch
|
|
28
|
+
base_branch: config.release.base_branch,
|
|
29
|
+
verbose: verbose
|
|
27
30
|
}
|
|
28
31
|
end
|
|
29
32
|
|
|
@@ -31,7 +34,8 @@ module GemComet
|
|
|
31
34
|
{
|
|
32
35
|
version: version,
|
|
33
36
|
base_branch: config.release.base_branch,
|
|
34
|
-
release_branch: config.release.release_branch
|
|
37
|
+
release_branch: config.release.release_branch,
|
|
38
|
+
verbose: verbose
|
|
35
39
|
}
|
|
36
40
|
end
|
|
37
41
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module GemComet
|
|
4
|
+
class Release
|
|
5
|
+
# Creates a pull request for your gem release
|
|
6
|
+
class CreateReleasePR < ServiceAbstract
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
attr_reader :version, :pr_comet
|
|
10
|
+
|
|
11
|
+
def initialize(version:, base_branch:, release_branch:, verbose: false)
|
|
12
|
+
@version = version
|
|
13
|
+
@pr_comet = PrComet.new(base: release_branch, branch: base_branch, verbose: verbose)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
create_pull_request
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def create_pull_request
|
|
21
|
+
pr_comet.create!(
|
|
22
|
+
title: "Release v#{version}",
|
|
23
|
+
body: pull_request_body,
|
|
24
|
+
validate: false
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def pull_request_body
|
|
29
|
+
template = File.read(template_file_path)
|
|
30
|
+
ERB.new(template, trim_mode: '-').result(binding)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def template_file_path
|
|
34
|
+
File.expand_path('../../../template/release_pr.md.erb', __dir__)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
module GemComet
|
|
4
4
|
class Release
|
|
5
5
|
# Creates a pull request for release preparation
|
|
6
|
-
class
|
|
7
|
-
def initialize(version:, base_branch:)
|
|
6
|
+
class CreateUpdatePR < ServiceAbstract
|
|
7
|
+
def initialize(version:, base_branch:, verbose: false)
|
|
8
8
|
@version = version
|
|
9
|
-
@pr_comet = PrComet.new(base: base_branch, branch: "update/v#{version}")
|
|
9
|
+
@pr_comet = PrComet.new(base: base_branch, branch: "update/v#{version}", verbose: verbose)
|
|
10
10
|
@version_editor = VersionEditor.new
|
|
11
|
+
@prev_version = version_editor.current_version
|
|
11
12
|
@changelog_editor = Changelog::Editor.new
|
|
12
13
|
end
|
|
13
14
|
|
|
14
15
|
private
|
|
15
16
|
|
|
16
|
-
attr_reader :version, :pr_comet, :version_editor, :changelog_editor
|
|
17
|
+
attr_reader :version, :prev_version, :pr_comet, :version_editor, :changelog_editor
|
|
17
18
|
|
|
18
19
|
def call
|
|
19
20
|
update_changelog
|
|
@@ -40,7 +41,16 @@ module GemComet
|
|
|
40
41
|
end
|
|
41
42
|
|
|
42
43
|
def create_pull_request
|
|
43
|
-
pr_comet.create!(title: "Update v#{version}", body:
|
|
44
|
+
pr_comet.create!(title: "Update v#{version}", body: pull_request_body)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def pull_request_body
|
|
48
|
+
template = File.read(template_file_path)
|
|
49
|
+
ERB.new(template, trim_mode: '-').result(binding)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def template_file_path
|
|
53
|
+
File.expand_path('../../../template/update_pr.md.erb', __dir__)
|
|
44
54
|
end
|
|
45
55
|
end
|
|
46
56
|
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module GemComet
|
|
4
|
+
# Verifies current git branch condition
|
|
5
|
+
class VerifyGitCondition < ServiceAbstract
|
|
6
|
+
def initialize
|
|
7
|
+
@base_branch = Config.call.release.base_branch
|
|
8
|
+
@git_command = GitCommand.new
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
attr_reader :base_branch, :git_command
|
|
14
|
+
|
|
15
|
+
def call
|
|
16
|
+
verify_git_status
|
|
17
|
+
checkout_to_base_branch!
|
|
18
|
+
git_pull!
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Verifies that there are not uncommitted files
|
|
22
|
+
#
|
|
23
|
+
# @raise [RuntimeError] Exists uncommitted files
|
|
24
|
+
def verify_git_status
|
|
25
|
+
uncommitted_files = git_command.uncommitted_files
|
|
26
|
+
return if uncommitted_files.empty?
|
|
27
|
+
|
|
28
|
+
raise "There are uncommitted files:\n#{uncommitted_files.join("\n")}"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Checkout to the base branch
|
|
32
|
+
def checkout_to_base_branch!
|
|
33
|
+
current_branch = git_command.current_branch
|
|
34
|
+
return if base_branch == current_branch
|
|
35
|
+
|
|
36
|
+
puts "Current branch is expected to '#{base_branch}', but '#{current_branch}'."
|
|
37
|
+
puts "Checkout to '#{base_branch}'."
|
|
38
|
+
git_command.checkout(base_branch)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def git_pull!
|
|
42
|
+
git_command.pull
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
data/lib/gem_comet/version.rb
CHANGED
|
@@ -41,7 +41,8 @@ module GemComet
|
|
|
41
41
|
# @return [Array<Array<String>>] An array of versions and date
|
|
42
42
|
# e.g. [['v0.1.0', '2019-07-15'], ['v0.2.0', '2019-10-14']]
|
|
43
43
|
def array_of_version_and_date
|
|
44
|
-
@array_of_version_and_date ||=
|
|
44
|
+
@array_of_version_and_date ||=
|
|
45
|
+
git_tag_list.lines.map(&:chomp).map(&:split).reject(&:empty?).sort_by(&:last)
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
# Finds an index of the specified version number
|
data/template/.gem_comet.yml.erb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gem_comet
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ryz310
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-01-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pr_comet
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 0.5.1
|
|
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.
|
|
26
|
+
version: 0.5.1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: thor
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,14 +58,14 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '2.2'
|
|
62
62
|
type: :development
|
|
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: '
|
|
68
|
+
version: '2.2'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: pry-byebug
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,16 +168,16 @@ dependencies:
|
|
|
168
168
|
name: simplecov
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
170
170
|
requirements:
|
|
171
|
-
- -
|
|
171
|
+
- - '='
|
|
172
172
|
- !ruby/object:Gem::Version
|
|
173
|
-
version:
|
|
173
|
+
version: 0.21.2
|
|
174
174
|
type: :development
|
|
175
175
|
prerelease: false
|
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
177
|
requirements:
|
|
178
|
-
- -
|
|
178
|
+
- - '='
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
|
-
version:
|
|
180
|
+
version: 0.21.2
|
|
181
181
|
- !ruby/object:Gem::Dependency
|
|
182
182
|
name: yard
|
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -201,11 +201,13 @@ extensions: []
|
|
|
201
201
|
extra_rdoc_files: []
|
|
202
202
|
files:
|
|
203
203
|
- ".circleci/config.yml"
|
|
204
|
+
- ".dependabot/config.yml"
|
|
204
205
|
- ".envrc.skeleton"
|
|
205
206
|
- ".gem_comet.yml"
|
|
206
207
|
- ".gitignore"
|
|
207
208
|
- ".rspec"
|
|
208
209
|
- ".rubocop.yml"
|
|
210
|
+
- ".rubocop_challenge.yml"
|
|
209
211
|
- ".rubocop_todo.yml"
|
|
210
212
|
- CHANGELOG.md
|
|
211
213
|
- CODE_OF_CONDUCT.md
|
|
@@ -226,17 +228,22 @@ files:
|
|
|
226
228
|
- lib/gem_comet/changelog/initializer.rb
|
|
227
229
|
- lib/gem_comet/cli.rb
|
|
228
230
|
- lib/gem_comet/config.rb
|
|
231
|
+
- lib/gem_comet/git_command.rb
|
|
229
232
|
- lib/gem_comet/open_github_pulls_page.rb
|
|
230
233
|
- lib/gem_comet/release.rb
|
|
231
|
-
- lib/gem_comet/release/
|
|
232
|
-
- lib/gem_comet/release/
|
|
234
|
+
- lib/gem_comet/release/create_release_pr.rb
|
|
235
|
+
- lib/gem_comet/release/create_update_pr.rb
|
|
233
236
|
- lib/gem_comet/repository_url.rb
|
|
234
237
|
- lib/gem_comet/service_abstract.rb
|
|
238
|
+
- lib/gem_comet/verify_git_condition.rb
|
|
235
239
|
- lib/gem_comet/version.rb
|
|
236
240
|
- lib/gem_comet/version_editor.rb
|
|
237
241
|
- lib/gem_comet/version_history.rb
|
|
242
|
+
- renovate.json
|
|
238
243
|
- template/.gem_comet.yml.erb
|
|
239
244
|
- template/CHANGELOG.md.erb
|
|
245
|
+
- template/release_pr.md.erb
|
|
246
|
+
- template/update_pr.md.erb
|
|
240
247
|
homepage: https://github.com/ryz310/gem_comet
|
|
241
248
|
licenses:
|
|
242
249
|
- MIT
|
|
@@ -249,14 +256,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
249
256
|
requirements:
|
|
250
257
|
- - ">="
|
|
251
258
|
- !ruby/object:Gem::Version
|
|
252
|
-
version:
|
|
259
|
+
version: 2.7.0
|
|
253
260
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
254
261
|
requirements:
|
|
255
262
|
- - ">="
|
|
256
263
|
- !ruby/object:Gem::Version
|
|
257
264
|
version: '0'
|
|
258
265
|
requirements: []
|
|
259
|
-
rubygems_version: 3.
|
|
266
|
+
rubygems_version: 3.2.3
|
|
260
267
|
signing_key:
|
|
261
268
|
specification_version: 4
|
|
262
269
|
summary: Release a gem quickly like comets
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module GemComet
|
|
4
|
-
class Release
|
|
5
|
-
# Creates a pull request for your gem release
|
|
6
|
-
class ReleasePR < ServiceAbstract
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
attr_reader :version, :pr_comet
|
|
10
|
-
|
|
11
|
-
def initialize(version:, base_branch:, release_branch:)
|
|
12
|
-
@version = version
|
|
13
|
-
@pr_comet = PrComet.new(base: release_branch, branch: base_branch)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def call
|
|
17
|
-
create_pull_request
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def create_pull_request
|
|
21
|
-
pr_comet.create!(title: "Release v#{version}", body: LEGEND, validate: false)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|