dude-cli 2.0.7 → 2.1.0.alpha5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +0 -1
- data/.rubocop.yml +5 -1
- data/Gemfile.lock +36 -15
- data/README.md +43 -35
- data/dude.gemspec +3 -2
- data/lib/dude.rb +12 -2
- data/lib/dude/code_management.rb +10 -0
- data/lib/dude/code_management/github/client.rb +27 -0
- data/lib/dude/code_management/github/create_pull_request.rb +61 -0
- data/lib/dude/commands.rb +7 -0
- data/lib/dude/commands/health_check.rb +15 -0
- data/lib/dude/commands/install.rb +63 -41
- data/lib/dude/commands/pr.rb +11 -0
- data/lib/dude/commands/pr/create.rb +49 -0
- data/lib/dude/commands/pr/remove.rb +15 -0
- data/lib/dude/commands/start.rb +10 -8
- data/lib/dude/commands/stop.rb +0 -2
- data/lib/dude/commands/tasks.rb +0 -2
- data/lib/dude/commands/track.rb +2 -4
- data/lib/dude/config.rb +18 -0
- data/lib/dude/git.rb +1 -0
- data/lib/dude/git/remote_name.rb +21 -0
- data/lib/dude/health_check.rb +39 -0
- data/lib/dude/project_management/client.rb +8 -4
- data/lib/dude/project_management/entities/issue.rb +8 -7
- data/lib/dude/project_management/jira/client.rb +21 -8
- data/lib/dude/project_management/jira/fetch_current_task.rb +37 -0
- data/lib/dude/project_management/jira/fetch_current_tasks.rb +3 -4
- data/lib/dude/project_management/jira/get_task_name_by_id.rb +0 -2
- data/lib/dude/project_management/jira/move_task_to_list.rb +0 -2
- data/lib/dude/project_management/{entities/board.rb → trello.rb} +1 -3
- data/lib/dude/project_management/trello/client.rb +56 -0
- data/lib/dude/project_management/trello/fetch_current_task.rb +41 -0
- data/lib/dude/project_management/trello/fetch_current_tasks.rb +51 -0
- data/lib/dude/project_management/trello/fetch_lists.rb +22 -0
- data/lib/dude/project_management/trello/get_task_name_by_id.rb +23 -0
- data/lib/dude/project_management/trello/move_task_to_list.rb +53 -0
- data/lib/dude/setup/github.rb +35 -0
- data/lib/dude/setup/jira.rb +64 -0
- data/lib/dude/setup/toggl.rb +47 -0
- data/lib/dude/setup/trello.rb +58 -0
- data/lib/dude/templates/duderc_template +32 -0
- data/lib/dude/time_trackers/toggl/base.rb +2 -4
- data/lib/dude/version.rb +1 -1
- metadata +42 -6
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dude
|
4
|
+
module Setup
|
5
|
+
class Toggl
|
6
|
+
def initialize(prompt)
|
7
|
+
@prompt = prompt
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(settings:)
|
11
|
+
settings[:toggl][:token] = setup_token
|
12
|
+
settings[:toggl][:project_name] = setup_project_name
|
13
|
+
settings[:toggl][:workspace_id] = setup_workspace_id
|
14
|
+
settings
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
attr_reader :prompt
|
20
|
+
|
21
|
+
def setup_token
|
22
|
+
puts <<~HEREDOC
|
23
|
+
You need to create personal token
|
24
|
+
|
25
|
+
#{'1.'.bold} Log in to https://trello.com/app-key
|
26
|
+
#{'2.'.bold} Your Toggl API token can be found at the bottom of the page
|
27
|
+
#{'3.'.bold} Press --Click to Reveal-- and paste token below
|
28
|
+
HEREDOC
|
29
|
+
|
30
|
+
if prompt.yes?(Dude::Config.style_prompt('Open Toggl profile page in your browser?'))
|
31
|
+
`open https://track.toggl.com/profile`
|
32
|
+
end
|
33
|
+
|
34
|
+
prompt.ask(Dude::Config.style_prompt('Toggl token:'), required: true)
|
35
|
+
end
|
36
|
+
|
37
|
+
def setup_project_name
|
38
|
+
prompt.ask(Dude::Config.style_prompt('Your Toggl project name:'), required: true)
|
39
|
+
end
|
40
|
+
|
41
|
+
def setup_workspace_id
|
42
|
+
puts 'Can be copied from url here: https://toggl.com/app/projects/ (Example: 123456)'
|
43
|
+
prompt.ask(Dude::Config.style_prompt('Workspace ID:'), required: true)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dude
|
4
|
+
module Setup
|
5
|
+
class Trello
|
6
|
+
def initialize(prompt)
|
7
|
+
@prompt = prompt
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(settings:)
|
11
|
+
settings[:trello][:key] = setup_key
|
12
|
+
settings[:trello][:token] = setup_token
|
13
|
+
settings[:trello][:board_id] = setup_board_id
|
14
|
+
settings
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
attr_reader :prompt
|
20
|
+
|
21
|
+
def setup_email
|
22
|
+
prompt.ask(Dude::Config.style_prompt('Jira user email:'), required: true)
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup_key
|
26
|
+
puts <<~HEREDOC
|
27
|
+
You need to create personal token
|
28
|
+
|
29
|
+
#{'1.'.bold} Log in to https://trello.com/app-key
|
30
|
+
#{'2.'.bold} Copy KEY and paste it below
|
31
|
+
HEREDOC
|
32
|
+
|
33
|
+
if prompt.yes?(Dude::Config.style_prompt('Open Trello token creation page in your browser?'))
|
34
|
+
`open https://trello.com/app-key`
|
35
|
+
end
|
36
|
+
|
37
|
+
prompt.ask(Dude::Config.style_prompt('Trello key:'), required: true)
|
38
|
+
end
|
39
|
+
|
40
|
+
def setup_token
|
41
|
+
puts <<~HEREDOC
|
42
|
+
You need to create personal token
|
43
|
+
|
44
|
+
#{'1.'.bold} Log in to https://trello.com/app-key
|
45
|
+
#{'2.'.bold} From the dialog that appears click 'Allow'
|
46
|
+
#{'3.'.bold} Copy created token to clipboard and paste the it below
|
47
|
+
HEREDOC
|
48
|
+
|
49
|
+
prompt.ask(Dude::Config.style_prompt('Trello token:'), required: true)
|
50
|
+
end
|
51
|
+
|
52
|
+
def setup_board_id
|
53
|
+
puts 'Just open your Trello main board and copy id from the url (Example: 123aBcdE)'
|
54
|
+
prompt.ask(Dude::Config.style_prompt('Board ID:'), required: true)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
:project_management_tool: jira
|
3
|
+
:jira:
|
4
|
+
:email:
|
5
|
+
:token:
|
6
|
+
:project:
|
7
|
+
:url:
|
8
|
+
:key:
|
9
|
+
:board_id:
|
10
|
+
:trello:
|
11
|
+
:board_id:
|
12
|
+
:key:
|
13
|
+
:token:
|
14
|
+
:todo_list_name: To Do
|
15
|
+
:in_progress_list_name: In Progress
|
16
|
+
:code_review_list_name: Code Review
|
17
|
+
:testing_list_name: TESTABLE
|
18
|
+
:done_list_name: Done
|
19
|
+
:toggl:
|
20
|
+
:project_name:
|
21
|
+
:token:
|
22
|
+
:workspace_id:
|
23
|
+
:task_format: "[{issue_id}] {issue_title}"
|
24
|
+
:github:
|
25
|
+
:token:
|
26
|
+
:pr_template:
|
27
|
+
:title: "[{issue_id}] {issue_title}\n"
|
28
|
+
:body: |
|
29
|
+
## Story
|
30
|
+
[**\[{issue_id}\] {issue_title}**]({issue_url})
|
31
|
+
## Description
|
32
|
+
Example description of the issue
|
@@ -5,17 +5,15 @@ require 'faraday'
|
|
5
5
|
module Dude
|
6
6
|
module Toggl
|
7
7
|
class Base
|
8
|
-
include Settings
|
9
|
-
|
10
8
|
def toggl_api
|
11
9
|
Faraday.new('https://api.track.toggl.com') do |conn|
|
12
|
-
conn.basic_auth
|
10
|
+
conn.basic_auth Dude::SETTINGS.dig(:toggl, :token), 'api_token'
|
13
11
|
conn.headers['Content-Type'] = 'application/json'
|
14
12
|
end
|
15
13
|
end
|
16
14
|
|
17
15
|
def projects_response
|
18
|
-
toggl_api.get("/api/v8/workspaces/#{
|
16
|
+
toggl_api.get("/api/v8/workspaces/#{Dude::SETTINGS.dig(:toggl, :workspace_id)}/projects")
|
19
17
|
end
|
20
18
|
end
|
21
19
|
end
|
data/lib/dude/version.rb
CHANGED
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: 2.0.
|
4
|
+
version: 2.1.0.alpha5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikita Pupko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: tty-prompt
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.23.1
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.23.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: pry
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -178,27 +192,49 @@ files:
|
|
178
192
|
- bin/setup
|
179
193
|
- dude.gemspec
|
180
194
|
- lib/dude.rb
|
195
|
+
- lib/dude/code_management.rb
|
196
|
+
- lib/dude/code_management/github/client.rb
|
197
|
+
- lib/dude/code_management/github/create_pull_request.rb
|
181
198
|
- lib/dude/commands.rb
|
182
199
|
- lib/dude/commands/checkout.rb
|
200
|
+
- lib/dude/commands/health_check.rb
|
183
201
|
- lib/dude/commands/install.rb
|
184
202
|
- lib/dude/commands/move.rb
|
203
|
+
- lib/dude/commands/pr.rb
|
204
|
+
- lib/dude/commands/pr/create.rb
|
205
|
+
- lib/dude/commands/pr/remove.rb
|
185
206
|
- lib/dude/commands/start.rb
|
186
207
|
- lib/dude/commands/stop.rb
|
187
208
|
- lib/dude/commands/tasks.rb
|
188
209
|
- lib/dude/commands/track.rb
|
189
210
|
- lib/dude/commands/version.rb
|
211
|
+
- lib/dude/config.rb
|
190
212
|
- lib/dude/git.rb
|
191
213
|
- lib/dude/git/checkout.rb
|
192
214
|
- lib/dude/git/current_branch_name.rb
|
215
|
+
- lib/dude/git/remote_name.rb
|
216
|
+
- lib/dude/health_check.rb
|
193
217
|
- lib/dude/project_management/client.rb
|
194
|
-
- lib/dude/project_management/entities/board.rb
|
195
218
|
- lib/dude/project_management/entities/issue.rb
|
196
219
|
- lib/dude/project_management/jira.rb
|
197
220
|
- lib/dude/project_management/jira/client.rb
|
221
|
+
- lib/dude/project_management/jira/fetch_current_task.rb
|
198
222
|
- lib/dude/project_management/jira/fetch_current_tasks.rb
|
199
223
|
- lib/dude/project_management/jira/get_task_name_by_id.rb
|
200
224
|
- lib/dude/project_management/jira/move_task_to_list.rb
|
225
|
+
- lib/dude/project_management/trello.rb
|
226
|
+
- lib/dude/project_management/trello/client.rb
|
227
|
+
- lib/dude/project_management/trello/fetch_current_task.rb
|
228
|
+
- lib/dude/project_management/trello/fetch_current_tasks.rb
|
229
|
+
- lib/dude/project_management/trello/fetch_lists.rb
|
230
|
+
- lib/dude/project_management/trello/get_task_name_by_id.rb
|
231
|
+
- lib/dude/project_management/trello/move_task_to_list.rb
|
201
232
|
- lib/dude/settings.rb
|
233
|
+
- lib/dude/setup/github.rb
|
234
|
+
- lib/dude/setup/jira.rb
|
235
|
+
- lib/dude/setup/toggl.rb
|
236
|
+
- lib/dude/setup/trello.rb
|
237
|
+
- lib/dude/templates/duderc_template
|
202
238
|
- lib/dude/time_trackers/toggl.rb
|
203
239
|
- lib/dude/time_trackers/toggl/base.rb
|
204
240
|
- lib/dude/time_trackers/toggl/start_time_entry.rb
|
@@ -219,12 +255,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
219
255
|
requirements:
|
220
256
|
- - ">="
|
221
257
|
- !ruby/object:Gem::Version
|
222
|
-
version: 2.
|
258
|
+
version: 2.7.0
|
223
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
224
260
|
requirements:
|
225
|
-
- - "
|
261
|
+
- - ">"
|
226
262
|
- !ruby/object:Gem::Version
|
227
|
-
version:
|
263
|
+
version: 1.3.1
|
228
264
|
requirements: []
|
229
265
|
rubygems_version: 3.1.4
|
230
266
|
signing_key:
|