git-pr-release 2.1.2 → 2.2.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: b48c8fc61f0a1f281f36cb2a94ae3a59c72a820c7f65944fdd1967c7ea8d75b4
4
- data.tar.gz: 2ba81d0823e1cb879e163141605d298adca9ee7b925e7c737b1600662d411560
3
+ metadata.gz: 8a0c2d1ded6d8e250d8cafcce83e7148ebaf274a1afb92ce5b4b5469a29e3cec
4
+ data.tar.gz: 26eb1888e585695c2f2cdd0154b59d61ff80c2781c423b175227e7156aadd9d8
5
5
  SHA512:
6
- metadata.gz: 1ed66465c516ca863af0e1f23d3d35071310df0e98f2c82ad8f9af4da4ddf24c959a3bf21f56ef58aaf0f8fc63b76a73e96ec17f14f6f2430cac91b2c4e0ce6a
7
- data.tar.gz: 5bbb75eb2add20db771af9663b23fcb8afa52171d620088961550ca2f50357f4a08023e2ac726d219ffe7817b658e6672b7efe3e183d7f68ad59acd4d4931d6e
6
+ metadata.gz: e25446387c28b266051d6e1d40b6dd8b553ba5d84f174bf32804c70f96e9591e3fdbb9b00a74ccb45364de68a7d33fed0a65d00ab68ec696528320b0321a1fac
7
+ data.tar.gz: 9d5cf6118e614100257bc7959357da6206e9f40f6bb07c7cc010e66be5c7d30f32e7629aee92b3cbac5e85780e0add3da4334e9267c5a0b42ed761b9c87ab476
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # git-pr-release
2
2
 
3
+ ## v2.2.0 (2022-08-17)
4
+
5
+ [full changelog](https://github.com/x-motemen/git-pr-release/compare/v2.1.2...v2.2.0)
6
+
7
+ * (#88) unshallow if a shallow repository (@Songmu)
8
+ * (#89) Add overwrite-description option (@onk)
9
+
3
10
  ## v2.1.2 (2022-07-29)
4
11
 
5
12
  [full changelog](https://github.com/x-motemen/git-pr-release/compare/v2.1.1...v2.1.2)
data/README.md CHANGED
@@ -102,18 +102,6 @@ Errors and exit statuses
102
102
 
103
103
  exit status is 1.
104
104
 
105
- ### Failed to create a new pull request
106
-
107
- exit status is 2.
108
-
109
- ### Failed to update a pull request
110
-
111
- exit status is 3.
112
-
113
- ### Failed to add labels
114
-
115
- exit status is 4.
116
-
117
105
  Author
118
106
  ------
119
107
 
@@ -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 = '2.1.2'
7
+ spec.version = '2.2.0'
8
8
  spec.authors = ["motemen"]
9
9
  spec.email = ["motemen@gmail.com"]
10
10
  spec.summary = 'Creates a release pull request'
@@ -34,6 +34,9 @@ module Git
34
34
  opts.on('--squashed', 'Handle squash merged PRs') do |v|
35
35
  @squashed = v
36
36
  end
37
+ opts.on('--overwrite-description', 'Force overwrite PR description') do |v|
38
+ @overwrite_description = v
39
+ end
37
40
  end.parse!
38
41
 
39
42
  ### Set up configuration
@@ -87,6 +90,10 @@ module Git
87
90
  end
88
91
 
89
92
  def fetch_merged_prs
93
+ bool = git(:'rev-parse', '--is-shallow-repository').first.chomp
94
+ if bool == 'true'
95
+ git(:fetch, '--unshallow')
96
+ end
90
97
  git :remote, 'update', 'origin' unless @no_fetch
91
98
 
92
99
  merged_pull_request_numbers = fetch_merged_pr_numbers_from_git_remote
@@ -191,7 +198,11 @@ module Git
191
198
  changed_files = pull_request_files(release_pr)
192
199
  end
193
200
 
194
- pr_title, pr_body = build_and_merge_pr_title_and_body(release_pr, merged_prs, changed_files)
201
+ pr_title, pr_body = if @overwrite_description
202
+ build_pr_title_and_body(release_pr, merged_prs, changed_files, template_path)
203
+ else
204
+ build_and_merge_pr_title_and_body(release_pr, merged_prs, changed_files)
205
+ end
195
206
 
196
207
  if @dry_run
197
208
  say 'Dry-run. Not updating PR', :info
@@ -194,6 +194,7 @@ RSpec.describe Git::Pr::Release::CLI do
194
194
  conn.adapter(:test, Faraday::Adapter::Test::Stubs.new)
195
195
  end
196
196
 
197
+ expect(@cli).to receive(:git).with(:'rev-parse', "--is-shallow-repository") { ["false\n"] }
197
198
  expect(@cli).to receive(:git).with(:remote, "update", "origin") {
198
199
  []
199
200
  }
@@ -319,6 +320,32 @@ RSpec.describe Git::Pr::Release::CLI do
319
320
  expect(@cli).not_to have_received(:update_release_pr).with(@created_pr, @pr_title, @pr_body)
320
321
  }
321
322
  end
323
+
324
+ context "When overwrite_description" do
325
+ before {
326
+ @cli.instance_variable_set(:@overwrite_description, true)
327
+ @new_pr_title = "2022-08-17 12:34:58 +0900"
328
+ @new_pr_body = <<~BODY.chomp
329
+ - [ ] #3 @hakobe
330
+ - [ ] #4 @hakobe
331
+ BODY
332
+ allow(@cli).to receive(:build_pr_title_and_body) {
333
+ [@new_pr_title, @new_pr_body]
334
+ }
335
+ }
336
+
337
+ let(:existing_release_pr) { double(
338
+ number: 1023,
339
+ rels: { html: double(href: "https://github.com/motemen/git-pr-release/pull/1023") },
340
+ )}
341
+
342
+ it {
343
+ subject
344
+
345
+ expect(@cli).not_to have_received(:build_and_merge_pr_title_and_body)
346
+ expect(@cli).to have_received(:update_release_pr).with(existing_release_pr, @new_pr_title, @new_pr_body)
347
+ }
348
+ end
322
349
  end
323
350
 
324
351
  describe "#prepare_release_pr" do
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: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - motemen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-29 00:00:00.000000000 Z
11
+ date: 2022-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: octokit