git_helper 1.3.0 → 1.3.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: 7959639f26bda279bb9154f76ba1d5041802d5ac63fbb02d6df3ca85d55040ca
4
- data.tar.gz: 59144b9c94dd74ac2bc8c05417363ee37f926a2266fe623e3c13032750910025
3
+ metadata.gz: d7f6658d90f9abf6f52b670fcd9e09ac4fc5964abbf70d0e88d21c6d3838d598
4
+ data.tar.gz: 420511dc29ead38efe88f841b76bb42f1b086b5c76369202056d7856002886ef
5
5
  SHA512:
6
- metadata.gz: 104ed8f0605c4471b0e4163dfe7148a4a5b2139871150e5577ed371035419122d9c64571aa2ff0897d812e5a08982c3cbd544e6d9936d36d792df2f0fbe9248d
7
- data.tar.gz: 4eef1f32e7c147279228388ade7056a46568cacae9fe61dcd58534b42b50c2eb422a8fd9c043ff9fdf138595dccf8a17d7771be877fa2c2ba6bf13eaaa9ec5ff
6
+ metadata.gz: e8ee96f3180249acb8a25a549fa937852ff8a3a836a41d445dd7e5ea9f941f5b00408e174378e7c0b259a137cc96ce0ee3f52f3af7c3156f263e10f3253e1c3d
7
+ data.tar.gz: bd1b57e904dcb2a29a2f85688038af87908499240e0b86f0e75c5cebb0ebd6de4e538b25dab598df247ff8a2bc82da665d0a6c57e2c41ac470a47cb20c226a46
@@ -43,8 +43,7 @@ module GitHelper
43
43
  !!(answer =~ /^y/i)
44
44
  end
45
45
 
46
- def merge_method
47
- merge_options = [ 'merge', 'squash', 'rebase' ]
46
+ def merge_method(merge_options)
48
47
  index = ask_options("Merge method?", merge_options)
49
48
  merge_options[index]
50
49
  end
@@ -12,6 +12,8 @@ module GitHelper
12
12
  options = {
13
13
  source_branch: local_branch,
14
14
  target_branch: base_branch,
15
+ squash: squash_merge_request,
16
+ remove_source_branch: remove_source_branch,
15
17
  description: new_mr_body
16
18
  }
17
19
 
@@ -37,12 +39,18 @@ module GitHelper
37
39
  # Ask these questions right away
38
40
  mr_id
39
41
  options = {}
40
- options[:should_remove_source_branch] = remove_source_branch
41
- options[:squash] = squash_merge_request
42
- options[:squash_commit_message] = existing_mr_title
42
+ options[:should_remove_source_branch] = existing_mr.should_remove_source_branch || existing_mr.force_remove_source_branch
43
+ options[:squash] = existing_mr.squash
44
+ options[:squash_commit_message] = existing_mr.title
43
45
 
44
46
  puts "Merging merge request: #{mr_id}"
45
47
  merge = gitlab_client.accept_merge_request(local_project, mr_id, options)
48
+
49
+ if merge.merge_commit_sha.nil?
50
+ options[:squash] = true
51
+ merge = gitlab_client.accept_merge_request(local_project, mr_id, options)
52
+ end
53
+
46
54
  puts "Merge request successfully merged: #{merge.merge_commit_sha}"
47
55
  rescue Gitlab::Error::MethodNotAllowed => e
48
56
  puts 'Could not merge merge request:'
@@ -88,7 +96,7 @@ module GitHelper
88
96
  end
89
97
 
90
98
  private def remove_source_branch
91
- @remove_source_branch ||= cli.remove_source_branch?
99
+ @remove_source_branch ||= existing_project.remove_source_branch_after_merge || cli.remove_source_branch?
92
100
  end
93
101
 
94
102
  private def new_mr_title
@@ -128,8 +136,12 @@ module GitHelper
128
136
  @template_name_to_apply
129
137
  end
130
138
 
131
- private def existing_mr_title
132
- @existing_mr_title ||= gitlab_client.merge_request(local_project, mr_id).title
139
+ private def existing_mr
140
+ @existing_mr ||= gitlab_client.merge_request(local_project, mr_id)
141
+ end
142
+
143
+ private def existing_project
144
+ @existing_project ||= gitlab_client.project(local_project)
133
145
  end
134
146
 
135
147
  private def gitlab_client
@@ -36,7 +36,7 @@ module GitHelper
36
36
  merge_method
37
37
 
38
38
  puts "Merging pull request: #{pr_id}"
39
- merge = octokit_client.merge_pull_request(local_repo, pr_id, existing_pr_title, { merge_method: merge_method })
39
+ merge = octokit_client.merge_pull_request(local_repo, pr_id, existing_pr.title, { merge_method: merge_method })
40
40
  puts "Pull request successfully merged: #{merge.sha}"
41
41
  rescue Octokit::UnprocessableEntity => e
42
42
  puts 'Could not merge pull request:'
@@ -95,7 +95,16 @@ module GitHelper
95
95
  end
96
96
 
97
97
  private def merge_method
98
- @merge_method ||= cli.merge_method
98
+ @merge_method ||= merge_options.length == 1 ? merge_options.first : cli.merge_method(merge_options)
99
+ end
100
+
101
+ private def merge_options
102
+ return @merge_options if @merge_options
103
+ merge_options = []
104
+ merge_options << 'merge' if existing_project.allow_merge_commit
105
+ merge_options << 'squash' if existing_project.allow_squash_merge
106
+ merge_options << 'rebase' if existing_project.allow_rebase_merge
107
+ @merge_options = merge_options
99
108
  end
100
109
 
101
110
  private def new_pr_title
@@ -135,8 +144,12 @@ module GitHelper
135
144
  @template_name_to_apply
136
145
  end
137
146
 
138
- private def existing_pr_title
139
- @existing_pr_title ||= octokit_client.pull_request(local_repo, pr_id).title
147
+ private def existing_pr
148
+ @existing_pr ||= octokit_client.pull_request(local_repo, pr_id)
149
+ end
150
+
151
+ private def existing_project
152
+ @existing_project ||= octokit_client.repository(local_repo)
140
153
  end
141
154
 
142
155
  private def octokit_client
@@ -1,3 +1,3 @@
1
1
  module GitHelper
2
- VERSION = '1.3.0'
2
+ VERSION = '1.3.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emma Sax