git-pr-release 1.6.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54aeb2f71e8311efc9d48ea98c695496ddf9a9755d23aa822078484384b83329
4
- data.tar.gz: ee8358c06dc99f8d15983c81f9725c50111af8697253fcc39c66bf2eef3099d7
3
+ metadata.gz: b8bcbbdbe3dfb5b6783306e29dad9c919d86264ea185742aeb07b91d141ac247
4
+ data.tar.gz: 1d67e25f3acde325baf9a1103ecc619011486847def7e561aa620f9b0f538c9f
5
5
  SHA512:
6
- metadata.gz: 594733c2d859ec97b8573df6bfb805df8ad83ffde7e1f80afde7bdc889c1f73b1641f54d047657d58b9cea54c3a24375e56cac6088326fe24f28843be756bfda
7
- data.tar.gz: '09f9266b8d49b75a8fc2981b524df7a8bfb3bffd100c258ac4d660a1fa6cf3906af51f4ad913ae7ba86a3c13f6b1ec27fb9ce7c59e4e7fde49e9f204544604c8'
6
+ metadata.gz: 602b5171e7b0a0160555632b19ff35af9ca7bf9c6d560d4364d8251b661cc205b51f645c15d33db701c623817f5ad31c6e307781178a6103582f35f001b06fb1
7
+ data.tar.gz: 1fad3d9128cc3d982ceb426045013566967d53df7c25364d8b256562863286384b297bbcf14aa0df4acaa81b945e3c570ddef7559c30dbff2a5fe77a41231141
@@ -0,0 +1,47 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ schedule:
9
+ - cron: "0 0 * * *" # JST 09:00
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ container: ${{ matrix.ruby }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby:
19
+ - ruby:2.6
20
+ - ruby:2.7
21
+ - ruby:3.0
22
+ - rubylang/ruby:master-nightly-bionic
23
+ include:
24
+ - ruby: rubylang/ruby:master-nightly-bionic
25
+ allow_failures: "true"
26
+
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+ - name: Cache vendor/bundle
30
+ uses: actions/cache@v2
31
+ with:
32
+ path: vendor/bundle
33
+ key: v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ github.sha }}
34
+ restore-keys: |
35
+ v1-gem-${{ runner.os }}-${{ matrix.ruby }}-
36
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
37
+ - name: bundle update
38
+ run: |
39
+ set -xe
40
+ bundle config path vendor/bundle
41
+ bundle update --jobs $(nproc) --retry 3
42
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
43
+ - name: Run ${{ matrix.test_framework }}
44
+ run: |
45
+ set -xe
46
+ bundle exec rspec
47
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
data/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # git-pr-release
2
2
 
3
+ ## v2.0.0 (2022-02-17)
4
+
5
+ [full changelog](https://github.com/x-motemen/git-pr-release/compare/v1.9.0...v2.0.0)
6
+
7
+ * (#69) remove duplicated PR entries at squash (@Yuki-Inoue)
8
+ * (#70) [Spec] Fix spec for build_pr_title_and_body (@yutailang0119)
9
+ * (#71) Introduce CI (@ohbarye)
10
+ * (#73) (#74) Use `YAML.unsafe_load_file` instead of `YAML.load_file` (@ohbarye)
11
+
12
+ ## v1.9.0 (2021-08-04)
13
+
14
+ [full changelog](https://github.com/x-motemen/git-pr-release/compare/v1.8.0...v1.9.0)
15
+
16
+ * (#68) Add nil check for release\_pr.body (@w1mvy)
17
+
18
+ ## v1.8.0 (2021-06-24)
19
+
20
+ [full changelog](https://github.com/x-motemen/git-pr-release/compare/v1.7.0...v1.8.0)
21
+
22
+ * (#66) Exclude titles from checklist items (@nhosoya)
23
+
24
+ ## v1.7.0 (2021-05-24)
25
+
26
+ [full changelog](https://github.com/x-motemen/git-pr-release/compare/v1.6.0...v1.7.0)
27
+
28
+ * (#64) fix wrong pr number due to sleep (@mpon)
29
+
3
30
  ## v1.6.0 (2021-05-15)
4
31
 
5
32
  [full changelog](https://github.com/x-motemen/git-pr-release/compare/v1.5.0...v1.6.0)
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "git-pr-release"
7
- spec.version = '1.6.0'
7
+ spec.version = '2.0.0'
8
8
  spec.authors = ["motemen"]
9
9
  spec.email = ["motemen@gmail.com"]
10
10
  spec.summary = 'Creates a release pull request'
@@ -87,7 +87,7 @@ module Git
87
87
 
88
88
  merged_pull_request_numbers = @squashed ? fetch_merged_pr_numbers_from_github : fetch_merged_pr_numbers_from_git_remote
89
89
 
90
- merged_prs = merged_pull_request_numbers.sort.map do |nr|
90
+ merged_prs = merged_pull_request_numbers.uniq.sort.map do |nr|
91
91
  pr = client.pull_request repository, nr
92
92
  say "To be released: ##{pr.number} #{pr.title}", :notice
93
93
  pr
@@ -124,8 +124,8 @@ module Git
124
124
 
125
125
  def fetch_merged_pr_numbers_from_github
126
126
  git(:log, '--pretty=format:%H', "origin/#{production_branch}..origin/#{staging_branch}").map(&:chomp).map do |sha1|
127
- client.search_issues("repo:#{repository} is:pr is:closed #{sha1}")[:items].map(&:number)
128
127
  sleep 1
128
+ client.search_issues("repo:#{repository} is:pr is:closed #{sha1}")[:items].map(&:number)
129
129
  end.flatten
130
130
  end
131
131
 
@@ -176,7 +176,7 @@ module Git
176
176
 
177
177
  def build_and_merge_pr_title_and_body(release_pr, merged_prs, changed_files)
178
178
  # release_pr is nil when dry_run && create_mode
179
- old_body = release_pr ? release_pr.body : ""
179
+ old_body = (release_pr && release_pr.body != nil) ? release_pr.body : ""
180
180
  pr_title, new_body = build_pr_title_and_body(release_pr, merged_prs, changed_files, template_path)
181
181
 
182
182
  [pr_title, merge_pr_body(old_body, new_body)]
@@ -11,7 +11,7 @@ module Git
11
11
  end
12
12
 
13
13
  def to_checklist_item
14
- "- [ ] ##{pr.number} #{pr.title}" + mention
14
+ "- [ ] ##{pr.number}" + mention
15
15
  end
16
16
 
17
17
  def html_link
@@ -36,8 +36,8 @@ RSpec.describe Git::Pr::Release::CLI do
36
36
  conn.builder.handlers.delete(Faraday::Adapter::NetHttp)
37
37
  conn.adapter(:test, Faraday::Adapter::Test::Stubs.new)
38
38
  end
39
- pr_3 = Sawyer::Resource.new(agent, YAML.load_file(file_fixture("pr_3.yml")))
40
- pr_4 = Sawyer::Resource.new(agent, YAML.load_file(file_fixture("pr_4.yml")))
39
+ pr_3 = Sawyer::Resource.new(agent, load_yaml("pr_3.yml"))
40
+ pr_4 = Sawyer::Resource.new(agent, load_yaml("pr_4.yml"))
41
41
  [pr_3, pr_4]
42
42
  }
43
43
  it {
@@ -219,8 +219,8 @@ RSpec.describe Git::Pr::Release::CLI do
219
219
  }
220
220
 
221
221
  client = double(Octokit::Client)
222
- @pr_3 = Sawyer::Resource.new(agent, YAML.load_file(file_fixture("pr_3.yml")))
223
- @pr_4 = Sawyer::Resource.new(agent, YAML.load_file(file_fixture("pr_4.yml")))
222
+ @pr_3 = Sawyer::Resource.new(agent, load_yaml("pr_3.yml"))
223
+ @pr_4 = Sawyer::Resource.new(agent, load_yaml("pr_4.yml"))
224
224
  expect(client).to receive(:pull_request).with("motemen/git-pr-release", 3) { @pr_3 }
225
225
  expect(client).to receive(:pull_request).with("motemen/git-pr-release", 4) { @pr_4 }
226
226
  allow(@cli).to receive(:client).with(no_args) { client }
@@ -241,8 +241,8 @@ RSpec.describe Git::Pr::Release::CLI do
241
241
  end
242
242
 
243
243
  @merged_prs = [
244
- Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_3.yml"))),
245
- Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_4.yml"))),
244
+ Sawyer::Resource.new(@agent, load_yaml("pr_3.yml")),
245
+ Sawyer::Resource.new(@agent, load_yaml("pr_4.yml")),
246
246
  ]
247
247
 
248
248
  allow(@cli).to receive(:detect_existing_release_pr) { existing_release_pr }
@@ -261,7 +261,7 @@ RSpec.describe Git::Pr::Release::CLI do
261
261
 
262
262
  context "When create_mode" do
263
263
  before {
264
- @created_pr = Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_1.yml")))
264
+ @created_pr = Sawyer::Resource.new(@agent, load_yaml("pr_1.yml"))
265
265
  allow(@cli).to receive(:prepare_release_pr) { @created_pr }
266
266
  }
267
267
 
@@ -301,7 +301,7 @@ RSpec.describe Git::Pr::Release::CLI do
301
301
 
302
302
  context "When dry_run with create_mode" do
303
303
  before {
304
- @created_pr = Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_1.yml")))
304
+ @created_pr = Sawyer::Resource.new(@agent, load_yaml("pr_1.yml"))
305
305
  allow(@cli).to receive(:prepare_release_pr) { @created_pr }
306
306
 
307
307
  @cli.instance_variable_set(:@dry_run, true)
@@ -8,13 +8,13 @@ RSpec.describe Git::Pr::Release do
8
8
  conn.builder.handlers.delete(Faraday::Adapter::NetHttp)
9
9
  conn.adapter :test, @stubs
10
10
  end
11
- @release_pr = Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_1.yml")))
11
+ @release_pr = Sawyer::Resource.new(@agent, load_yaml("pr_1.yml"))
12
12
  @merged_prs = [
13
- Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_3.yml"))),
14
- Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_6.yml"))),
13
+ Sawyer::Resource.new(@agent, load_yaml("pr_3.yml")),
14
+ Sawyer::Resource.new(@agent, load_yaml("pr_6.yml")),
15
15
  ]
16
16
  @changed_files = [
17
- Sawyer::Resource.new(@agent, YAML.load_file(file_fixture("pr_1_files.yml"))),
17
+ Sawyer::Resource.new(@agent, load_yaml("pr_1_files.yml")),
18
18
  ]
19
19
  end
20
20
 
@@ -24,8 +24,8 @@ RSpec.describe Git::Pr::Release do
24
24
  pr_title, new_body = build_pr_title_and_body(@release_pr, @merged_prs, @changed_files, nil)
25
25
  expect(pr_title).to eq "Release 2019-02-20 22:58:35 +0900"
26
26
  expect(new_body).to eq <<~MARKDOWN
27
- - [ ] #3 Provides a creating release pull-request object for template @hakobe
28
- - [ ] #6 Support two factor auth @ninjinkun
27
+ - [ ] #3 @hakobe
28
+ - [ ] #6 @ninjinkun
29
29
  MARKDOWN
30
30
  }
31
31
  end
@@ -1,4 +1,12 @@
1
1
  module FileFixtureSupport
2
+ def load_yaml(fixture_name)
3
+ if YAML.respond_to?(:unsafe_load_file)
4
+ YAML.unsafe_load_file(file_fixture(fixture_name))
5
+ else
6
+ YAML.load_file(file_fixture(fixture_name))
7
+ end
8
+ end
9
+
2
10
  def file_fixture(fixture_name)
3
11
  file_fixture_path = RSpec.configuration.file_fixture_path
4
12
  path = Pathname.new(File.join(file_fixture_path, fixture_name))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-pr-release
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - motemen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-14 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit
@@ -117,6 +117,7 @@ executables:
117
117
  extensions: []
118
118
  extra_rdoc_files: []
119
119
  files:
120
+ - ".github/workflows/test.yml"
120
121
  - ".gitignore"
121
122
  - ".rspec"
122
123
  - CHANGELOG.md
@@ -162,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
163
  - !ruby/object:Gem::Version
163
164
  version: '0'
164
165
  requirements: []
165
- rubygems_version: 3.3.0.dev
166
+ rubygems_version: 3.4.0.dev
166
167
  signing_key:
167
168
  specification_version: 4
168
169
  summary: Creates a release pull request