dude-cli 0.4.0 → 0.5.0

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
- SHA1:
3
- metadata.gz: 94e6437616a753a65881406ba1ff48d589adb3c2
4
- data.tar.gz: 79f21de88cba3c52642dcb49d9955a7da823fee2
2
+ SHA256:
3
+ metadata.gz: 98ed50be4846a92dc016ee7f61ab6e12f13412d01262e8c6c597180e54d26bfd
4
+ data.tar.gz: '00595bb336d907da0c26486317f6b30c9c8a23172708ba0bd345e422cf5a299b'
5
5
  SHA512:
6
- metadata.gz: fafe9d6d4eba6c8ef9f4ee2543f0da5f0b3573b40e79f95f84c845e0edb74587325ed17d5ec90a39f35e37d0370416aa3b4c27f14702b8b1964ca08fe30a60c2
7
- data.tar.gz: 8c0c06316e8286b2e861461e3bcdcd5c54ce0be92fb9d66db5602867d24c32633f3619e389f3f1e2b14c33bfec00ba7ac7e6dc9075026e0d2bb21e4f8da290b6
6
+ metadata.gz: 1c353f3ea350b5686618af1708ff88436bfe9ae6b602c6f9ebf98e790a060737cf64b7afff1c5949cd68bbcae617a5350447f06563c204c3a597518a463eabbb
7
+ data.tar.gz: d7c027e164d023ac3c23f18387101ceae3a2b29b728b50e49fd131aa14bd9be382e93ae1793e6706f83f123d230eef71726ccf82c94eeb702b33e0945efd22f5
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dude-cli (0.4.0)
4
+ dude-cli (0.4.1)
5
5
  colorize (~> 0.8)
6
6
  git (~> 1.3)
7
- gitlab (~> 4.2)
7
+ gitlab (~> 4.3)
8
8
  rest-client (~> 2.0)
9
9
  thor (~> 0.20)
10
10
 
data/dude.gemspec CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.bindir = "bin"
18
18
  spec.executables = ["dude"]
19
19
  spec.require_paths = ["lib"]
20
+ spec.required_ruby_version = '>= 2.2.0'
20
21
 
21
22
  spec.add_development_dependency "bundler", "~> 1.16"
22
23
  spec.add_development_dependency "rake", "~> 10.0"
@@ -25,7 +26,7 @@ Gem::Specification.new do |spec|
25
26
 
26
27
  spec.add_runtime_dependency "thor", "~> 0.20"
27
28
  spec.add_runtime_dependency "colorize", "~> 0.8"
28
- spec.add_runtime_dependency "gitlab", "~> 4.2"
29
+ spec.add_runtime_dependency "gitlab", "~> 4.3"
29
30
  spec.add_runtime_dependency "git", "~> 1.3"
30
31
  spec.add_runtime_dependency "rest-client", "~> 2.0"
31
32
  end
data/lib/dude/cli.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'thor'
2
- require 'byebug'
2
+ require "dude/version"
3
+ require 'colorize'
3
4
  require_relative 'gitlab'
4
5
  require_relative 'git'
5
6
  require_relative 'toggl'
@@ -23,15 +24,23 @@ module Dude
23
24
  desc 'checkout [ISSUE_ID]', 'checkout to branch with name "ID-issue-title"'
24
25
  def checkout(issue_id, project_title = folder_name)
25
26
  issue_title = get_issue_title(issue_id, project_title)
26
- Git.new(branch_name: git_branch_name(issue_title, issue_id)).call
27
+ branch_name = git_branch_name(issue_title, issue_id)
28
+ git(branch_name: branch_name).call
29
+ puts "Branch changed to '#{branch_name}'".colorize(:green)
27
30
  end
28
31
 
29
- desc 'start [ISSUE_ID]', 'start task in Toggl with issue title, checkout to branch and estimate time if it is needed'
32
+ desc 'start [ISSUE_ID]', 'do checkout, track and move actions'
30
33
  def start(issue_id, project_title = folder_name)
31
34
  checkout(issue_id, project_title)
35
+ track(issue_id, project_title)
36
+ move('Doing', issue_id, project_title)
37
+ end
38
+
39
+ desc 'track [ISSUE_ID]', 'start task in Toggl with issue title'
40
+ def track(issue_id, project_title = folder_name)
32
41
  issue_title = get_issue_title(issue_id, project_title)
33
42
  Toggl.new(title: "##{issue_id} #{issue_title}", project_title: project_title).start_time_entry
34
- puts "Starting Toggl task"
43
+ puts "Toggl task '#{get_issue_title(issue_id, project_title)}' is started".colorize(:green)
35
44
  end
36
45
 
37
46
  desc 'tasks', 'Show issues in current project assigned to you'
@@ -43,11 +52,14 @@ module Dude
43
52
  desc 'estimate [DURATION] [ISSUE_ID]', 'estimate time'
44
53
  def estimate(duration, issue_id = current_issue_id, project_title = folder_name)
45
54
  Gitlab.new(issue_id: issue_id, project_title: project_title).estimate_time(duration)
55
+ puts "Changed time estimate to #{duration}".colorize(:green)
46
56
  end
47
57
 
48
- desc 'stop', 'stop current time entry in Toggl'
49
- def stop
58
+ desc 'stop', 'stop current time entry in Toggl, move issue to `To Do`'
59
+ def stop(project_title = folder_name)
50
60
  Toggl.new.stop_current_time_entry
61
+ move('To Do', current_issue_id, project_title)
62
+ puts 'Work suspended'
51
63
  end
52
64
 
53
65
  desc 'issue', 'Information about issue'
@@ -60,8 +72,23 @@ module Dude
60
72
  Toggl.new.report
61
73
  end
62
74
 
75
+ desc 'move', 'move issue to another column'
76
+ def move(label, issue_id = current_issue_id, project_title = folder_name)
77
+ Gitlab.new(issue_id: issue_id, project_title: project_title, label: label).move_issue
78
+ puts "Issue ##{issue_id} moved to '#{label}'".colorize(:green)
79
+ end
80
+
81
+ desc 'version', 'Show version'
82
+ def version
83
+ puts "Dude CLI v#{Dude::VERSION}"
84
+ end
85
+
63
86
  private
64
87
 
88
+ def git(branch_name)
89
+ Git.new(branch_name: branch_name)
90
+ end
91
+
65
92
  def current_issue_id
66
93
  Git.new.current_branch_name.chomp.split('-').first
67
94
  end
@@ -81,7 +108,7 @@ module Dude
81
108
  end
82
109
 
83
110
  def git_branch_name(issue_title, issue_id)
84
- issue_title.downcase.split(' ').unshift(issue_id).join('-')
111
+ issue_title.downcase.gsub(/[^a-z0-9\-_]+/, '-').prepend("#{issue_id}-")
85
112
  end
86
113
  end
87
114
  end
data/lib/dude/gitlab.rb CHANGED
@@ -39,6 +39,14 @@ module Dude
39
39
  Interface.new.draw_issue_info(issue_info)
40
40
  end
41
41
 
42
+ def move_issue
43
+ test_input_data
44
+ labels = ::Gitlab.issue(project_id, options[:issue_id]).labels
45
+ labels = labels.reject {|e| ['To Do', 'Doing', 'To Verify'].include?(e)}.
46
+ push(options[:label]).join(',')
47
+ ::Gitlab.edit_issue(project_id, options[:issue_id], { labels: labels })
48
+ end
49
+
42
50
  private
43
51
 
44
52
  def test_input_data
data/lib/dude/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dude
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dude-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikita Pupko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-11 00:00:00.000000000 Z
11
+ date: 2018-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '4.2'
103
+ version: '4.3'
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: '4.2'
110
+ version: '4.3'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: git
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -177,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: '0'
180
+ version: 2.2.0
181
181
  required_rubygems_version: !ruby/object:Gem::Requirement
182
182
  requirements:
183
183
  - - ">="
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  version: '0'
186
186
  requirements: []
187
187
  rubyforge_project:
188
- rubygems_version: 2.6.14
188
+ rubygems_version: 2.7.3
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: Daily assistant