git_helper 3.3.2 → 3.3.7

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: '02607381872b87e3390ddfe00db3a66da5b72698943abfc7af1fb556b69bc5fd'
4
- data.tar.gz: 85ef4555a8f0be75248dc20895a62d3e7660276154c4cee638faceb7f0ff701a
3
+ metadata.gz: aa8dfc9e8dff01f688d1f18ac2db60d0f0d9c193ad9ad1a5d91ab54fa7e2cb47
4
+ data.tar.gz: ed55743cbc0291c9058e8639c8b426d7201e5152d8f7f54c146df614a5cc154b
5
5
  SHA512:
6
- metadata.gz: 354f303f75c86aefa64b8af4378e0006aab40b322ad5fa5b3f18018e45625d5f0e2d57c5a2f6ff8eb5e38d60863f995ac55fdecfe995d922dfff0d5dc3db4a52
7
- data.tar.gz: 2a946bf13c0b36ebe71ca352623aeb6c509a3a3ee2c565ed1e433380713afacd08fddfd69626ca22a88225a65f0f7f5d093f5bf25b58c3cbc2121ebf70d9529b
6
+ metadata.gz: d412a23d9fb0daf6798fd0a364c536451361e3d195925e411b0ff2022ae0d2390f422f1fbcc2f83ce8830e38aa3371a76c10bea381cc565d9418c6b0a8ebdfda
7
+ data.tar.gz: b7eab53f9e11d32d058f9d9b52a05ef7e87e08288ddd115c2011f937c4ccd6a6e1a5e83c2eab9cc85b6488a1f5d727d2945822c254212ac02284d0c8b1748bd6
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- git_helper (3.3.1)
4
+ git_helper (3.3.7)
5
5
  gitlab (~> 4.16)
6
6
  gli (~> 2.13)
7
- highline (~> 2.0)
7
+ highline_wrapper (~> 1.1)
8
8
  octokit (~> 4.18)
9
+ psych (< 4)
9
10
 
10
11
  GEM
11
12
  remote: https://rubygems.org/
@@ -16,19 +17,23 @@ GEM
16
17
  coderay (1.1.3)
17
18
  concurrent-ruby (1.1.8)
18
19
  diff-lcs (1.4.4)
19
- faker (2.15.1)
20
+ faker (2.17.0)
20
21
  i18n (>= 1.6, < 2)
21
- faraday (1.3.0)
22
+ faraday (1.4.1)
23
+ faraday-excon (~> 1.1)
22
24
  faraday-net_http (~> 1.0)
25
+ faraday-net_http_persistent (~> 1.1)
23
26
  multipart-post (>= 1.2, < 3)
24
- ruby2_keywords
27
+ ruby2_keywords (>= 0.0.4)
28
+ faraday-excon (1.1.0)
25
29
  faraday-net_http (1.0.1)
26
- ffi (1.14.2)
30
+ faraday-net_http_persistent (1.1.0)
31
+ ffi (1.15.0)
27
32
  formatador (0.2.5)
28
33
  gitlab (4.17.0)
29
34
  httparty (~> 0.18)
30
35
  terminal-table (~> 1.5, >= 1.5.1)
31
- gli (2.19.2)
36
+ gli (2.20.0)
32
37
  guard (2.16.2)
33
38
  formatador (>= 0.2.4)
34
39
  listen (>= 2.7, < 4.0)
@@ -44,34 +49,37 @@ GEM
44
49
  guard-compat (~> 1.1)
45
50
  rspec (>= 2.99.0, < 4.0)
46
51
  highline (2.0.3)
52
+ highline_wrapper (1.1.0)
53
+ highline (~> 2.0)
47
54
  httparty (0.18.1)
48
55
  mime-types (~> 3.0)
49
56
  multi_xml (>= 0.5.2)
50
- i18n (1.8.8)
57
+ i18n (1.8.10)
51
58
  concurrent-ruby (~> 1.0)
52
- listen (3.4.1)
59
+ listen (3.5.1)
53
60
  rb-fsevent (~> 0.10, >= 0.10.3)
54
61
  rb-inotify (~> 0.9, >= 0.9.10)
55
62
  lumberjack (1.2.8)
56
63
  method_source (1.0.0)
57
64
  mime-types (3.3.1)
58
65
  mime-types-data (~> 3.2015)
59
- mime-types-data (3.2020.1104)
66
+ mime-types-data (3.2021.0225)
60
67
  multi_xml (0.6.0)
61
68
  multipart-post (2.1.1)
62
69
  nenv (0.3.0)
63
70
  notiffany (0.1.3)
64
71
  nenv (~> 0.1)
65
72
  shellany (~> 0.0)
66
- octokit (4.20.0)
73
+ octokit (4.21.0)
67
74
  faraday (>= 0.9)
68
75
  sawyer (~> 0.8.0, >= 0.5.3)
69
76
  parallel (1.20.1)
70
- parser (3.0.0.0)
77
+ parser (3.0.1.1)
71
78
  ast (~> 2.4.1)
72
- pry (0.14.0)
79
+ pry (0.14.1)
73
80
  coderay (~> 1.1)
74
81
  method_source (~> 1.0)
82
+ psych (3.3.2)
75
83
  public_suffix (4.0.6)
76
84
  rainbow (3.0.0)
77
85
  rake (13.0.3)
@@ -79,7 +87,7 @@ GEM
79
87
  rb-inotify (0.10.1)
80
88
  ffi (~> 1.0)
81
89
  regexp_parser (2.1.1)
82
- rexml (3.2.4)
90
+ rexml (3.2.5)
83
91
  rspec (3.10.0)
84
92
  rspec-core (~> 3.10.0)
85
93
  rspec-expectations (~> 3.10.0)
@@ -93,17 +101,17 @@ GEM
93
101
  diff-lcs (>= 1.2.0, < 2.0)
94
102
  rspec-support (~> 3.10.0)
95
103
  rspec-support (3.10.2)
96
- rubocop (1.10.0)
104
+ rubocop (1.14.0)
97
105
  parallel (~> 1.10)
98
106
  parser (>= 3.0.0.0)
99
107
  rainbow (>= 2.2.2, < 4.0)
100
108
  regexp_parser (>= 1.8, < 3.0)
101
109
  rexml
102
- rubocop-ast (>= 1.2.0, < 2.0)
110
+ rubocop-ast (>= 1.5.0, < 2.0)
103
111
  ruby-progressbar (~> 1.7)
104
112
  unicode-display_width (>= 1.4.0, < 3.0)
105
- rubocop-ast (1.4.1)
106
- parser (>= 2.7.1.5)
113
+ rubocop-ast (1.5.0)
114
+ parser (>= 3.0.1.1)
107
115
  ruby-progressbar (1.11.0)
108
116
  ruby2_keywords (0.0.4)
109
117
  sawyer (0.8.2)
@@ -123,9 +131,10 @@ DEPENDENCIES
123
131
  faker (~> 2.15)
124
132
  git_helper!
125
133
  guard-rspec (~> 4.3)
134
+ pry (~> 0.13)
126
135
  rake (~> 13.0)
127
136
  rspec (~> 3.9)
128
- rubocop
137
+ rubocop (~> 1.10)
129
138
 
130
139
  BUNDLED WITH
131
- 2.2.9
140
+ 2.2.17
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # git_helper [![Main](https://github.com/emmahsax/git_helper/actions/workflows/main.yml/badge.svg)](https://github.com/emmahsax/git_helper/actions/workflows/main.yml)
1
+ # Git Helper [![Main](https://github.com/emmahsax/git_helper/actions/workflows/main.yml/badge.svg)](https://github.com/emmahsax/git_helper/actions/workflows/main.yml)
2
2
 
3
3
  ## Gem Usage
4
4
 
@@ -115,7 +115,7 @@ git-helper clean-branches
115
115
 
116
116
  ### `code-request`
117
117
 
118
- This command can be used to handily make new GitHub/GitLab pull/merge requests from the command line. The command uses either the [`Octokit::Client`](https://octokit.github.io/octokit.rb/Octokit/Client.html) or [`Gitlab` client](https://github.com/NARKOZ/gitlab) to do this, so make sure you have a `~/.git_helper/config.yml` file set up in the home directory of your computer. For instructions on how to do that, see [Gem Usage](#gem-usage).
118
+ This command can be used to handily make new GitHub/GitLab pull/merge requests from the command-line. The command uses either the [`Octokit::Client`](https://octokit.github.io/octokit.rb/Octokit/Client.html) or [`Gitlab` client](https://github.com/NARKOZ/gitlab) to do this, so make sure you have a `~/.git_helper/config.yml` file set up in the home directory of your computer. For instructions on how to do that, see [Gem Usage](#gem-usage).
119
119
 
120
120
  After setup is complete, you can call the command like this:
121
121
 
@@ -149,7 +149,7 @@ git-helper forget-local-commits
149
149
 
150
150
  ### `merge-code-request`
151
151
 
152
- This command can be used to merge pull/merge requests from the command line. The command uses either the [`Octokit::Client`](https://octokit.github.io/octokit.rb/Octokit/Client.html) or [`Gitlab` client](https://github.com/NARKOZ/gitlab) to do this, so make sure you have a `~/.git_helper/config.yml` file set up in the home directory of your computer. For instructions on how to do that, see [Gem Usage](#gem-usage).
152
+ This command can be used to merge pull/merge requests from the command-line. The command uses either the [`Octokit::Client`](https://octokit.github.io/octokit.rb/Octokit/Client.html) or [`Gitlab` client](https://github.com/NARKOZ/gitlab) to do this, so make sure you have a `~/.git_helper/config.yml` file set up in the home directory of your computer. For instructions on how to do that, see [Gem Usage](#gem-usage).
153
153
 
154
154
  After setup is complete, you can call the proper command like this:
155
155
 
@@ -166,7 +166,7 @@ For GitLab, the command will use whatever squash/source branch deletion/etc sett
166
166
 
167
167
  ### `new-branch`
168
168
 
169
- This command is useful for making new branches in a repository on the command line. To run the command, run:
169
+ This command is useful for making new branches in a repository on the command-line. To run the command, run:
170
170
 
171
171
  ```bash
172
172
  git-helper new-branch
data/lib/git_helper.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'yaml'
4
4
  require 'gitlab'
5
- require 'highline'
5
+ require 'highline_wrapper'
6
6
  require 'octokit'
7
7
 
8
8
  files = "#{File.expand_path(File.join(File.dirname(File.absolute_path(__FILE__)), 'git_helper'))}/**/*.rb"
@@ -24,8 +24,9 @@ module GitHelper
24
24
  private def process_dir(current_dir, original_dir)
25
25
  Dir.chdir(current_dir)
26
26
 
27
- if File.exist?('.git') && cli.ask_yes_no(
28
- "Found git directory: #{current_dir}. Do you wish to proceed in updating #{current_dir}'s remote URLs? (y/n)"
27
+ if File.exist?('.git') && highline.ask_yes_no(
28
+ "Found git directory: #{current_dir}. Do you wish to proceed in updating #{current_dir}'s remote URLs? (y/n)",
29
+ { required: true }
29
30
  )
30
31
  process_git_repository
31
32
  end
@@ -41,7 +42,7 @@ module GitHelper
41
42
  puts " Found remote is not pointing to #{old_owner}."
42
43
  end
43
44
  end
44
- puts "\n"
45
+ puts
45
46
  end
46
47
 
47
48
  # rubocop:disable Metrics/AbcSize
@@ -69,8 +70,8 @@ module GitHelper
69
70
  @local_code ||= GitHelper::LocalCode.new
70
71
  end
71
72
 
72
- private def cli
73
- @cli ||= GitHelper::HighlineCli.new
73
+ private def highline
74
+ @highline ||= HighlineWrapper.new
74
75
  end
75
76
  end
76
77
  end
@@ -29,9 +29,10 @@ module GitHelper
29
29
 
30
30
  # rubocop:disable Metrics/MethodLength
31
31
  private def ask_for_clarification
32
- resp = cli.ask(
32
+ resp = highline.ask(
33
33
  'Found git remotes for both GitHub and GitLab. Would you like to proceed ' \
34
- 'with GitLab or GitHub? (github/gitlab)'
34
+ 'with GitLab or GitHub? (github/gitlab)',
35
+ { required: true }
35
36
  ).downcase
36
37
 
37
38
  if resp.include?('hub')
@@ -58,7 +59,7 @@ module GitHelper
58
59
  local_project: local_project,
59
60
  local_branch: local_branch,
60
61
  local_code: local_code,
61
- cli: cli
62
+ highline: highline
62
63
  }
63
64
  end
64
65
 
@@ -72,10 +73,10 @@ module GitHelper
72
73
 
73
74
  private def base_branch
74
75
  @base_branch ||=
75
- if cli.ask_yes_no("Is '#{default_branch}' the correct base branch for your new code request? (y/n)")
76
+ if highline.ask_yes_no("Is '#{default_branch}' the correct base branch for your new code request? (y/n)")
76
77
  default_branch
77
78
  else
78
- cli.ask('Base branch?')
79
+ highline.ask('Base branch?', { required: true })
79
80
  end
80
81
  end
81
82
 
@@ -89,17 +90,17 @@ module GitHelper
89
90
 
90
91
  private def new_code_request_title
91
92
  @new_code_request_title ||=
92
- if autogenerated_title && cli.ask_yes_no(
93
+ if autogenerated_title && highline.ask_yes_no(
93
94
  "Accept the autogenerated code request title '#{autogenerated_title}'? (y/n)"
94
95
  )
95
96
  autogenerated_title
96
97
  else
97
- cli.ask('Title?')
98
+ highline.ask('Title?', { required: true })
98
99
  end
99
100
  end
100
101
 
101
- private def cli
102
- @cli ||= GitHelper::HighlineCli.new
102
+ private def highline
103
+ @highline ||= HighlineWrapper.new
103
104
  end
104
105
 
105
106
  private def local_code
@@ -2,13 +2,13 @@
2
2
 
3
3
  module GitHelper
4
4
  class GitLabMergeRequest
5
- attr_accessor :local_project, :local_branch, :local_code, :cli, :base_branch, :new_mr_title
5
+ attr_accessor :local_project, :local_branch, :local_code, :highline, :base_branch, :new_mr_title
6
6
 
7
7
  def initialize(options)
8
8
  @local_project = options[:local_project]
9
9
  @local_branch = options[:local_branch]
10
10
  @local_code = options[:local_code]
11
- @cli = options[:cli]
11
+ @highline = options[:highline]
12
12
  end
13
13
 
14
14
  # rubocop:disable Metrics/MethodLength
@@ -97,12 +97,12 @@ module GitHelper
97
97
  # rubocop:disable Metrics/MethodLength
98
98
  private def determine_template
99
99
  if mr_template_options.count == 1
100
- apply_single_template = cli.ask_yes_no(
100
+ apply_single_template = highline.ask_yes_no(
101
101
  "Apply the merge request template from #{mr_template_options.first}? (y/n)"
102
102
  )
103
103
  @template_name_to_apply = mr_template_options.first if apply_single_template
104
104
  else
105
- response = cli.ask_options(
105
+ response = highline.ask_options(
106
106
  'Which merge request template should be applied?', mr_template_options << 'None'
107
107
  )
108
108
  @template_name_to_apply = response unless response == 'None'
@@ -121,16 +121,16 @@ module GitHelper
121
121
  end
122
122
 
123
123
  private def mr_id
124
- @mr_id ||= cli.ask('Merge Request ID?')
124
+ @mr_id ||= highline.ask('Merge Request ID?')
125
125
  end
126
126
 
127
127
  private def squash_merge_request
128
- @squash_merge_request ||= cli.ask_yes_no('Squash merge request? (y/n)')
128
+ @squash_merge_request ||= highline.ask_yes_no('Squash merge request? (y/n)')
129
129
  end
130
130
 
131
131
  private def remove_source_branch
132
132
  @remove_source_branch ||=
133
- existing_project.remove_source_branch_after_merge || cli.ask_yes_no(
133
+ existing_project.remove_source_branch_after_merge || highline.ask_yes_no(
134
134
  'Remove source branch after merging? (y/n)'
135
135
  )
136
136
  end
@@ -3,7 +3,7 @@
3
3
  module GitHelper
4
4
  class NewBranch
5
5
  def execute(new_branch_name = nil)
6
- branch_name = new_branch_name || GitHelper::HighlineCli.new.ask('New branch name?')
6
+ branch_name = new_branch_name || HighlineWrapper.new.ask('New branch name?', { required: true })
7
7
  puts "Attempting to create a new branch: #{branch_name}"
8
8
  GitHelper::LocalCode.new.new_branch(branch_name)
9
9
  end
@@ -2,13 +2,13 @@
2
2
 
3
3
  module GitHelper
4
4
  class GitHubPullRequest
5
- attr_accessor :local_repo, :local_branch, :local_code, :cli, :base_branch, :new_pr_title
5
+ attr_accessor :local_repo, :local_branch, :local_code, :highline, :base_branch, :new_pr_title
6
6
 
7
7
  def initialize(options)
8
8
  @local_repo = options[:local_project]
9
9
  @local_branch = options[:local_branch]
10
10
  @local_code = options[:local_code]
11
- @cli = options[:cli]
11
+ @highline = options[:highline]
12
12
  end
13
13
 
14
14
  # rubocop:disable Metrics/MethodLength
@@ -102,12 +102,12 @@ module GitHelper
102
102
  # rubocop:disable Metrics/MethodLength
103
103
  private def determine_template
104
104
  if pr_template_options.count == 1
105
- apply_single_template = cli.ask_yes_no(
105
+ apply_single_template = highline.ask_yes_no(
106
106
  "Apply the pull request template from #{pr_template_options.first}? (y/n)"
107
107
  )
108
108
  @template_name_to_apply = pr_template_options.first if apply_single_template
109
109
  else
110
- response = cli.ask_options(
110
+ response = highline.ask_options(
111
111
  'Which pull request template should be applied?', pr_template_options << 'None'
112
112
  )
113
113
  @template_name_to_apply = response unless response == 'None'
@@ -126,7 +126,7 @@ module GitHelper
126
126
  end
127
127
 
128
128
  private def pr_id
129
- @pr_id ||= cli.ask('Pull Request ID?')
129
+ @pr_id ||= highline.ask('Pull Request ID?')
130
130
  end
131
131
 
132
132
  private def merge_method
@@ -134,7 +134,7 @@ module GitHelper
134
134
  if merge_options.length == 1
135
135
  merge_options.first
136
136
  else
137
- cli.ask_options('Merge method?', merge_options)
137
+ highline.ask_options('Merge method?', merge_options)
138
138
  end
139
139
  end
140
140
 
@@ -7,23 +7,26 @@ module GitHelper
7
7
  execute_plugins
8
8
  end
9
9
 
10
+ # rubocop:disable Style/ConditionalAssignment
10
11
  private def execute_config_file
11
12
  if config_file_exists?
12
13
  answer = highline.ask_yes_no(
13
- "It looks like the #{config_file} file already exists. Do you wish to replace it? (y/n)"
14
+ "It looks like the #{config_file} file already exists. Do you wish to replace it? (y/n)",
15
+ { required: true }
14
16
  )
15
- puts
16
17
  else
17
18
  answer = true
18
19
  end
19
20
 
20
21
  create_or_update_config_file if answer
21
22
  end
23
+ # rubocop:enable Style/ConditionalAssignment
22
24
 
23
25
  private def execute_plugins
24
26
  answer = highline.ask_yes_no(
25
27
  'Do you wish to set up the Git Helper plugins? (y/n) (This process will ' \
26
- 'attempt to use your GitHub personal access token to authenticate)'
28
+ 'attempt to use your GitHub personal access token to authenticate)',
29
+ { required: true }
27
30
  )
28
31
 
29
32
  return unless answer
@@ -36,7 +39,7 @@ module GitHelper
36
39
 
37
40
  private def create_or_update_config_file
38
41
  contents = generate_file_contents
39
- puts "\nCreating or updating your #{config_file} file..."
42
+ puts "Creating or updating your #{config_file} file..."
40
43
  File.open(config_file, 'w') { |file| file.puts contents }
41
44
  puts "\nDone!\n\n"
42
45
  end
@@ -49,19 +52,23 @@ module GitHelper
49
52
  private def generate_file_contents
50
53
  file_contents = ''.dup
51
54
 
52
- if highline.ask_yes_no('Do you wish to set up GitHub credentials? (y/n)')
55
+ if highline.ask_yes_no('Do you wish to set up GitHub credentials? (y/n)', { required: true })
53
56
  file_contents << ":github_user: #{ask_question('GitHub username?')}\n"
54
57
  file_contents << ':github_token: ' \
55
- "#{ask_question('GitHub personal access token? (Navigate to https://github.com/settings/tokens ' \
56
- 'to create a new personal access token)')}\n"
58
+ "#{ask_question(
59
+ 'GitHub personal access token? (Navigate to https://github.com/settings/tokens ' \
60
+ 'to create a new personal access token)',
61
+ secret: true
62
+ )}\n"
57
63
  end
58
64
 
59
- if highline.ask_yes_no("\nDo you wish to set up GitLab credentials? (y/n)")
65
+ if highline.ask_yes_no('Do you wish to set up GitLab credentials? (y/n)', { required: true })
60
66
  file_contents << ":gitlab_user: #{ask_question('GitLab username?')}\n"
61
67
  file_contents << ':gitlab_token: ' \
62
68
  "#{ask_question(
63
69
  'GitLab personal access token? (Navigate to https://gitlab.com/-/profile/personal_access_tokens' \
64
- ' to create a new personal access token)'
70
+ ' to create a new personal access token)',
71
+ secret: true
65
72
  )}\n"
66
73
  end
67
74
 
@@ -69,15 +76,8 @@ module GitHelper
69
76
  end
70
77
  # rubocop:enable Metrics/MethodLength
71
78
 
72
- private def ask_question(prompt)
73
- answer = highline.ask("\n#{prompt}")
74
-
75
- if answer.empty?
76
- puts "\nThis question is required."
77
- ask_question(prompt)
78
- else
79
- answer
80
- end
79
+ private def ask_question(prompt, secret: false)
80
+ highline.ask(prompt, { required: true, secret: secret })
81
81
  end
82
82
 
83
83
  # rubocop:disable Metrics/MethodLength
@@ -110,7 +110,7 @@ module GitHelper
110
110
  end
111
111
 
112
112
  private def highline
113
- @highline ||= GitHelper::HighlineCli.new
113
+ @highline ||= HighlineWrapper.new
114
114
  end
115
115
  end
116
116
  end