git_helper 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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