toolshed 1.0.2 → 1.0.3

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +11 -0
  4. data/.toolshedrc.sample +32 -0
  5. data/README.md +159 -2
  6. data/Rakefile +3 -3
  7. data/bin/toolshed +6 -1
  8. data/lib/toolshed.rb +38 -28
  9. data/lib/toolshed/base.rb +33 -11
  10. data/lib/toolshed/cli.rb +30 -38
  11. data/lib/toolshed/client.rb +87 -293
  12. data/lib/toolshed/commands/base.rb +65 -23
  13. data/lib/toolshed/commands/checkout_branch.rb +15 -2
  14. data/lib/toolshed/commands/create_branch.rb +34 -29
  15. data/lib/toolshed/commands/create_pivotal_tracker_note.rb +9 -3
  16. data/lib/toolshed/commands/create_pull_request.rb +115 -68
  17. data/lib/toolshed/commands/create_ticket_comment.rb +17 -1
  18. data/lib/toolshed/commands/delete_branch.rb +34 -3
  19. data/lib/toolshed/commands/get_daily_time_update.rb +20 -3
  20. data/lib/toolshed/commands/list_branches.rb +16 -5
  21. data/lib/toolshed/commands/push_branch.rb +28 -9
  22. data/lib/toolshed/commands/rename_branch.rb +29 -0
  23. data/lib/toolshed/commands/ssh.rb +44 -3
  24. data/lib/toolshed/commands/ticket_information.rb +30 -4
  25. data/lib/toolshed/commands/update_pivotal_tracker_story_status.rb +9 -3
  26. data/lib/toolshed/commands/update_ticket_status.rb +8 -2
  27. data/lib/toolshed/entry_point.rb +89 -0
  28. data/lib/toolshed/git.rb +59 -0
  29. data/lib/toolshed/git/branch.rb +224 -0
  30. data/lib/toolshed/git/github.rb +45 -57
  31. data/lib/toolshed/git/validator.rb +14 -0
  32. data/lib/toolshed/logger.rb +46 -0
  33. data/lib/toolshed/password.rb +11 -6
  34. data/lib/toolshed/server_administration/ssh.rb +4 -2
  35. data/lib/toolshed/ticket_tracking/jira.rb +8 -6
  36. data/lib/toolshed/ticket_tracking/pivotal_tracker.rb +8 -6
  37. data/lib/toolshed/time_tracking/harvest.rb +8 -14
  38. data/lib/toolshed/version.rb +25 -1
  39. data/test/commands/checkout_branch_test.rb +11 -7
  40. data/test/commands/create_branch_test.rb +29 -24
  41. data/test/commands/create_pull_request_test.rb +39 -31
  42. data/test/commands/delete_branch_test.rb +35 -25
  43. data/test/commands/get_daily_time_update_test.rb +8 -8
  44. data/test/commands/push_branch_test.rb +27 -15
  45. data/test/commands/rename_branch_test.rb +59 -0
  46. data/test/git/git_helper.rb +5 -5
  47. data/test/git/git_test.rb +36 -31
  48. data/test/git/github_test.rb +9 -46
  49. data/test/helper.rb +11 -11
  50. data/test/server_administration/ssh_test.rb +1 -0
  51. data/test/ticket_tracking/jira_test.rb +18 -16
  52. data/test/time_tracking/harvest_test.rb +8 -6
  53. data/toolshed.gemspec +23 -20
  54. metadata +95 -46
  55. data/bin/toolshed.rb +0 -261
  56. data/lib/toolshed/git/git.rb +0 -119
@@ -1,4 +1,5 @@
1
1
  require 'helper'
2
+ require 'toolshed/server_administration/ssh'
2
3
 
3
4
  class SSHTest < Test::Unit::TestCase
4
5
  def test_setting_ssh_options
@@ -1,11 +1,13 @@
1
1
  require 'helper'
2
+ require 'toolshed/ticket_tracking/ticket_tracking'
3
+ require 'toolshed/ticket_tracking/jira'
2
4
 
3
5
  class JiraTest < Test::Unit::TestCase
4
6
  def self.startup
5
- Toolshed::Client::ticket_tracker_username = 'sample'
6
- Toolshed::Client::ticket_tracker_password = 'sample'
7
- Toolshed::Client::ticket_tracker_owner = 'sample'
8
- Toolshed::Client::default_pull_request_title_format = '[id] - [summary]'
7
+ Toolshed::Client.instance.ticket_tracker_username = 'sample'
8
+ Toolshed::Client.instance.ticket_tracker_password = 'sample'
9
+ Toolshed::Client.instance.ticket_tracker_owner = 'sample'
10
+ Toolshed::Client.instance.default_pull_request_title_format = '[id] - [summary]'
9
11
  end
10
12
 
11
13
  def test_add_note
@@ -120,15 +122,15 @@ class JiraTest < Test::Unit::TestCase
120
122
  '11'
121
123
  )
122
124
 
123
- assert_equal("https://#{Toolshed::Client::ticket_tracker_owner}.atlassian.net/browse/11", @jira.url)
125
+ assert_equal("https://#{Toolshed::Client.instance.ticket_tracker_owner}.atlassian.net/browse/11", @jira.url)
124
126
  end
125
127
 
126
128
  def test_username
127
- assert_equal(Toolshed::TicketTracking::Jira.username, Toolshed::Client::ticket_tracker_username)
129
+ assert_equal(Toolshed::TicketTracking::Jira.username, Toolshed::Client.instance.ticket_tracker_username)
128
130
  end
129
131
 
130
132
  def test_password
131
- assert_equal(Toolshed::TicketTracking::Jira.password, Toolshed::Client::ticket_tracker_password)
133
+ assert_equal(Toolshed::TicketTracking::Jira.password, Toolshed::Client.instance.ticket_tracker_password)
132
134
  end
133
135
 
134
136
  def test_create_instance_raise_project_name
@@ -158,9 +160,9 @@ class JiraTest < Test::Unit::TestCase
158
160
 
159
161
  def jira_init
160
162
  @jira = Toolshed::TicketTracking::Jira.create_instance({
161
- username: Toolshed::Client::ticket_tracker_username,
162
- password: Toolshed::Client::ticket_tracker_password,
163
- owner: Toolshed::Client::ticket_tracker_owner,
163
+ username: Toolshed::Client.instance.ticket_tracker_username,
164
+ password: Toolshed::Client.instance.ticket_tracker_password,
165
+ owner: Toolshed::Client.instance.ticket_tracker_owner,
164
166
  project: 'project',
165
167
  ticket_id: '11',
166
168
  })
@@ -180,9 +182,9 @@ class JiraTest < Test::Unit::TestCase
180
182
 
181
183
  JIRA::Client.expects(:new).
182
184
  with({
183
- username: Toolshed::Client::ticket_tracker_username,
184
- password: Toolshed::Client::ticket_tracker_password,
185
- site: "https://#{Toolshed::Client::ticket_tracker_owner}.atlassian.net",
185
+ username: Toolshed::Client.instance.ticket_tracker_username,
186
+ password: Toolshed::Client.instance.ticket_tracker_password,
187
+ site: "https://#{Toolshed::Client.instance.ticket_tracker_owner}.atlassian.net",
186
188
  context_path: '',
187
189
  auth_type: :basic,
188
190
  use_ssl: true
@@ -233,9 +235,9 @@ class JiraTest < Test::Unit::TestCase
233
235
  def jira_http_mock_attributes
234
236
  {
235
237
  options: {
236
- username: Toolshed::Client::ticket_tracker_username,
237
- password: Toolshed::Client::ticket_tracker_password,
238
- site: "https://#{Toolshed::Client::ticket_tracker_owner}.atlassian.net",
238
+ username: Toolshed::Client.instance.ticket_tracker_username,
239
+ password: Toolshed::Client.instance.ticket_tracker_password,
240
+ site: "https://#{Toolshed::Client.instance.ticket_tracker_owner}.atlassian.net",
239
241
  context_path: "",
240
242
  rest_base_path: "/rest/api/2",
241
243
  ssl_verify_mode: 1,
@@ -1,15 +1,17 @@
1
1
  require 'helper'
2
+ require 'toolshed/time_tracking/time_tracking'
3
+ require 'toolshed/time_tracking/harvest'
2
4
 
3
5
  class HarvestTest < Test::Unit::TestCase
4
6
  def self.startup
5
- Toolshed::Client.time_tracking_tool = 'harvest'
6
- Toolshed::Client.time_tracking_default_project_id = '1234'
7
- Toolshed::Client.time_tracking_username = 'sample_username'
8
- Toolshed::Client.time_tracking_password = 'sample1234'
9
- Toolshed::Client.time_tracking_owner = 'me'
7
+ Toolshed::Client.instance.time_tracking_tool = 'harvest'
8
+ Toolshed::Client.instance.time_tracking_default_project_id = '1234'
9
+ Toolshed::Client.instance.time_tracking_username = 'sample_username'
10
+ Toolshed::Client.instance.time_tracking_password = 'sample1234'
11
+ Toolshed::Client.instance.time_tracking_owner = 'me'
10
12
 
11
13
  ::Harvest.expects(:client).
12
- with(subdomain: Toolshed::Client.time_tracking_owner, username: Toolshed::Client.time_tracking_username, password: Toolshed::Client.time_tracking_password).
14
+ with(subdomain: Toolshed::Client.instance.time_tracking_owner, username: Toolshed::Client.instance.time_tracking_username, password: Toolshed::Client.instance.time_tracking_password).
13
15
  returns('')
14
16
  end
15
17
 
data/toolshed.gemspec CHANGED
@@ -4,33 +4,34 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'toolshed/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "toolshed"
7
+ spec.name = 'toolshed'
8
8
  spec.version = Toolshed::VERSION
9
- spec.authors = ["Jake Waller"]
10
- spec.email = ["wallerjake@gmail.com"]
11
- spec.description = %q{Utility that will automate simple daily tasks developers perform like creating a Github pull request}
12
- spec.summary = %q{Create a Github pull request with minimal work. Will automatically read ticket information from pivotal tracker if you use that.}
13
- spec.homepage = ""
14
- spec.license = "MIT"
9
+ spec.authors = ['Jake Waller']
10
+ spec.email = ['wallerjake@gmail.com']
11
+ spec.description = %q{Utility that will automate simple daily tasks developers perform like creating a Github pull request} # rubocop:disable Metrics/LineLength
12
+ spec.summary = %q{Create a Github pull request with minimal work. Will automatically read ticket information from pivotal tracker if you use that.} # rubocop:disable Metrics/LineLength
13
+ spec.homepage = ''
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
- #spec.executables = ["toolshed"]
17
+ #spec.executables = ['toolshed']
18
18
  spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  spec.test_files = spec.files.grep(%r{^(test)/})
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
- spec.add_dependency "httparty"
23
- spec.add_dependency "json"
24
- spec.add_dependency "pivotal-tracker"
25
- spec.add_dependency "harvested"
26
- spec.add_dependency "veto"
27
- spec.add_dependency "launchy"
28
- spec.add_dependency "clipboard"
29
- spec.add_dependency "jira-ruby"
30
- spec.add_dependency "net-ssh"
22
+ spec.add_dependency 'httparty', '0.13.5'
23
+ spec.add_dependency 'pivotal-tracker', '0.5.13'
24
+ spec.add_dependency 'harvested', '3.1.1'
25
+ spec.add_dependency 'veto'
26
+ spec.add_dependency 'launchy', '2.4.3'
27
+ spec.add_dependency 'clipboard', '1.0.6'
28
+ spec.add_dependency 'jira-ruby', '0.1.14'
29
+ spec.add_dependency 'net-ssh', '2.9.2'
30
+ spec.add_dependency 'term-ansicolor', '1.3.0'
31
+ spec.add_dependency 'highline', '1.7.2'
31
32
 
32
- spec.add_development_dependency "bundler"
33
- spec.add_development_dependency "rake"
33
+ spec.add_development_dependency 'bundler'
34
+ spec.add_development_dependency 'rake'
34
35
  spec.add_development_dependency 'mocha'
35
36
  spec.add_development_dependency 'faker'
36
37
  spec.add_development_dependency 'test-unit'
@@ -38,4 +39,6 @@ Gem::Specification.new do |spec|
38
39
  spec.add_development_dependency 'ci_reporter'
39
40
  spec.add_development_dependency 'simplecov'
40
41
  spec.add_development_dependency 'codeclimate-test-reporter'
42
+ spec.add_development_dependency 'rubocop'
43
+ spec.add_development_dependency 'awesome_print'
41
44
  end
metadata CHANGED
@@ -1,59 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toolshed
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Waller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-23 00:00:00.000000000 Z
11
+ date: 2015-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.13.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.13.5
27
27
  - !ruby/object:Gem::Dependency
28
- name: json
28
+ name: pivotal-tracker
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.5.13
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.5.13
41
41
  - !ruby/object:Gem::Dependency
42
- name: pivotal-tracker
42
+ name: harvested
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 3.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 3.1.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: harvested
56
+ name: veto
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,75 +67,89 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: veto
70
+ name: launchy
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 2.4.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 2.4.3
83
83
  - !ruby/object:Gem::Dependency
84
- name: launchy
84
+ name: clipboard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 1.0.6
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 1.0.6
97
97
  - !ruby/object:Gem::Dependency
98
- name: clipboard
98
+ name: jira-ruby
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: 0.1.14
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: 0.1.14
111
111
  - !ruby/object:Gem::Dependency
112
- name: jira-ruby
112
+ name: net-ssh
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 2.9.2
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: 2.9.2
125
125
  - !ruby/object:Gem::Dependency
126
- name: net-ssh
126
+ name: term-ansicolor
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: 1.3.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
138
+ version: 1.3.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: highline
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 1.7.2
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 1.7.2
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: bundler
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -262,24 +276,52 @@ dependencies:
262
276
  - - ">="
263
277
  - !ruby/object:Gem::Version
264
278
  version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: rubocop
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: awesome_print
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
265
307
  description: Utility that will automate simple daily tasks developers perform like
266
308
  creating a Github pull request
267
309
  email:
268
310
  - wallerjake@gmail.com
269
311
  executables:
270
312
  - toolshed
271
- - toolshed.rb
272
313
  extensions: []
273
314
  extra_rdoc_files: []
274
315
  files:
275
316
  - ".gitignore"
317
+ - ".rubocop.yml"
318
+ - ".toolshedrc.sample"
276
319
  - ".travis.yml"
277
320
  - Gemfile
278
321
  - LICENSE.txt
279
322
  - README.md
280
323
  - Rakefile
281
324
  - bin/toolshed
282
- - bin/toolshed.rb
283
325
  - lib/toolshed.rb
284
326
  - lib/toolshed/base.rb
285
327
  - lib/toolshed/cli.rb
@@ -294,13 +336,18 @@ files:
294
336
  - lib/toolshed/commands/get_daily_time_update.rb
295
337
  - lib/toolshed/commands/list_branches.rb
296
338
  - lib/toolshed/commands/push_branch.rb
339
+ - lib/toolshed/commands/rename_branch.rb
297
340
  - lib/toolshed/commands/ssh.rb
298
341
  - lib/toolshed/commands/ticket_information.rb
299
342
  - lib/toolshed/commands/update_pivotal_tracker_story_status.rb
300
343
  - lib/toolshed/commands/update_ticket_status.rb
344
+ - lib/toolshed/entry_point.rb
301
345
  - lib/toolshed/error.rb
302
- - lib/toolshed/git/git.rb
346
+ - lib/toolshed/git.rb
347
+ - lib/toolshed/git/branch.rb
303
348
  - lib/toolshed/git/github.rb
349
+ - lib/toolshed/git/validator.rb
350
+ - lib/toolshed/logger.rb
304
351
  - lib/toolshed/password.rb
305
352
  - lib/toolshed/server_administration/ssh.rb
306
353
  - lib/toolshed/ticket_tracking/jira.rb
@@ -317,6 +364,7 @@ files:
317
364
  - test/commands/delete_branch_test.rb
318
365
  - test/commands/get_daily_time_update_test.rb
319
366
  - test/commands/push_branch_test.rb
367
+ - test/commands/rename_branch_test.rb
320
368
  - test/config.rb
321
369
  - test/git/git_helper.rb
322
370
  - test/git/git_test.rb
@@ -347,7 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
395
  version: '0'
348
396
  requirements: []
349
397
  rubyforge_project:
350
- rubygems_version: 2.2.2
398
+ rubygems_version: 2.4.5
351
399
  signing_key:
352
400
  specification_version: 4
353
401
  summary: Create a Github pull request with minimal work. Will automatically read ticket
@@ -361,6 +409,7 @@ test_files:
361
409
  - test/commands/delete_branch_test.rb
362
410
  - test/commands/get_daily_time_update_test.rb
363
411
  - test/commands/push_branch_test.rb
412
+ - test/commands/rename_branch_test.rb
364
413
  - test/config.rb
365
414
  - test/git/git_helper.rb
366
415
  - test/git/git_test.rb