dude-cli 0.4.0 → 0.5.0

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