git_helper 3.3.2 → 3.3.7

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: '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