terjira 0.4.1 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +12 -6
- data/Gemfile.lock +80 -77
- data/LICENSE.txt +1 -1
- data/README.md +5 -4
- data/bin/terjira +1 -1
- data/lib/terjira/base_cli.rb +1 -1
- data/lib/terjira/client/board.rb +1 -1
- data/lib/terjira/client/issue.rb +2 -4
- data/lib/terjira/client/jql_builder.rb +2 -2
- data/lib/terjira/issue_cli.rb +0 -2
- data/lib/terjira/option_support/editor.rb +0 -2
- data/lib/terjira/option_support/option_selector.rb +6 -12
- data/lib/terjira/option_support/shared_options.rb +4 -4
- data/lib/terjira/option_supportable.rb +11 -11
- data/lib/terjira/presenters/board_presenter.rb +0 -2
- data/lib/terjira/presenters/common_presenter.rb +5 -3
- data/lib/terjira/presenters/issue_presenter.rb +1 -3
- data/lib/terjira/presenters/project_presenter.rb +0 -2
- data/lib/terjira/presenters/sprint_presenter.rb +1 -3
- data/lib/terjira/utils/file_cache.rb +1 -1
- data/lib/terjira/version.rb +1 -2
- data/terjira.gemspec +13 -14
- metadata +26 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: afe7fe912b16f83291b72eb8657ad43dd878ad093ce809062f3f32d5035741a6
|
4
|
+
data.tar.gz: 8f5590f4794c181e11b39c781c74e1de4a33f40cc052471548d17e5037a5e0cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e34df55bb5f59bbd916df2ac0508427d4cb04f95abcaa887af531de2e38eba76e4519e23c1c79fddf226ef1016310715a78c339b1f07fae4b40ea958fb312c2e
|
7
|
+
data.tar.gz: a1629ad950dd3fc36f23ade0d7bbf940e24b5ca6ecf0de68793f9cb94e9fec8ed840b74a4dc307872e9858823bfadd3721a9f3aad9a0d285480d57192ddafe3d
|
data/.travis.yml
CHANGED
@@ -5,15 +5,21 @@ addons:
|
|
5
5
|
repo_token: 98123461fbec752591c40e3e7af46bcdc6576723bfac2d89c084bfae989e4db3
|
6
6
|
|
7
7
|
rvm:
|
8
|
-
- 2.
|
9
|
-
- 2.
|
10
|
-
- 2.
|
11
|
-
- 2.3
|
8
|
+
- 2.5
|
9
|
+
- 2.6
|
10
|
+
- 2.7
|
12
11
|
|
13
12
|
before_install:
|
14
|
-
- gem install i18n --no-
|
13
|
+
- gem install i18n --no-document
|
14
|
+
|
15
|
+
before_script:
|
16
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
17
|
+
- chmod +x ./cc-test-reporter
|
18
|
+
- ./cc-test-reporter before-build
|
15
19
|
|
16
20
|
script: bundle exec rspec spec/
|
17
21
|
|
18
22
|
after_success:
|
19
|
-
|
23
|
+
after_script:
|
24
|
+
- ./cc-test-reporter format-coverage -t simplecov
|
25
|
+
- if [[ "$TRAVIS_TEST_RESULT" == 0 ]]; then ./cc-test-reporter upload-coverage; fi
|
data/Gemfile.lock
CHANGED
@@ -1,107 +1,110 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
terjira (0.4.
|
5
|
-
activesupport (=
|
6
|
-
jira-ruby (= 1.
|
7
|
-
thor (~> 0.
|
8
|
-
tty-prompt (~> 0.
|
9
|
-
tty-spinner (~> 0.
|
10
|
-
tty-table (~> 0.
|
4
|
+
terjira (0.4.6)
|
5
|
+
activesupport (= 6.0.3.1)
|
6
|
+
jira-ruby (= 1.7.1)
|
7
|
+
thor (~> 1.0.1)
|
8
|
+
tty-prompt (~> 0.20.0)
|
9
|
+
tty-spinner (~> 0.9.3)
|
10
|
+
tty-table (~> 0.11.0)
|
11
11
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
14
14
|
specs:
|
15
|
-
activesupport (
|
16
|
-
|
17
|
-
|
15
|
+
activesupport (6.0.3.1)
|
16
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
|
+
i18n (>= 0.7, < 2)
|
18
18
|
minitest (~> 5.1)
|
19
|
-
thread_safe (~> 0.1)
|
20
19
|
tzinfo (~> 1.1)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
20
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
21
|
+
atlassian-jwt (0.2.0)
|
22
|
+
jwt (~> 2.1.0)
|
23
|
+
coderay (1.1.3)
|
24
|
+
concurrent-ruby (1.1.6)
|
25
|
+
diff-lcs (1.4.2)
|
26
|
+
docile (1.3.2)
|
27
|
+
equatable (0.6.1)
|
28
|
+
i18n (1.8.3)
|
29
29
|
concurrent-ruby (~> 1.0)
|
30
|
-
jira-ruby (1.
|
30
|
+
jira-ruby (1.7.1)
|
31
31
|
activesupport
|
32
|
+
atlassian-jwt
|
32
33
|
multipart-post
|
33
34
|
oauth (~> 0.5, >= 0.5.0)
|
34
|
-
|
35
|
-
method_source (0.
|
36
|
-
minitest (5.
|
37
|
-
multipart-post (2.
|
38
|
-
necromancer (0.
|
35
|
+
jwt (2.1.0)
|
36
|
+
method_source (0.9.2)
|
37
|
+
minitest (5.14.1)
|
38
|
+
multipart-post (2.1.1)
|
39
|
+
necromancer (0.5.1)
|
39
40
|
oauth (0.5.4)
|
40
|
-
pastel (0.7.
|
41
|
-
equatable (~> 0.
|
42
|
-
tty-color (~> 0.
|
43
|
-
pry (0.
|
41
|
+
pastel (0.7.4)
|
42
|
+
equatable (~> 0.6)
|
43
|
+
tty-color (~> 0.5)
|
44
|
+
pry (0.12.2)
|
44
45
|
coderay (~> 1.1.0)
|
45
|
-
method_source (~> 0.
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
rspec-
|
50
|
-
rspec-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
rspec-expectations (3.7.0)
|
46
|
+
method_source (~> 0.9.0)
|
47
|
+
rake (13.0.1)
|
48
|
+
rspec (3.9.0)
|
49
|
+
rspec-core (~> 3.9.0)
|
50
|
+
rspec-expectations (~> 3.9.0)
|
51
|
+
rspec-mocks (~> 3.9.0)
|
52
|
+
rspec-core (3.9.2)
|
53
|
+
rspec-support (~> 3.9.3)
|
54
|
+
rspec-expectations (3.9.2)
|
55
55
|
diff-lcs (>= 1.2.0, < 2.0)
|
56
|
-
rspec-support (~> 3.
|
57
|
-
rspec-mocks (3.
|
56
|
+
rspec-support (~> 3.9.0)
|
57
|
+
rspec-mocks (3.9.1)
|
58
58
|
diff-lcs (>= 1.2.0, < 2.0)
|
59
|
-
rspec-support (~> 3.
|
60
|
-
rspec-support (3.
|
61
|
-
simplecov (0.
|
62
|
-
docile (~> 1.1
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
59
|
+
rspec-support (~> 3.9.0)
|
60
|
+
rspec-support (3.9.3)
|
61
|
+
simplecov (0.18.5)
|
62
|
+
docile (~> 1.1)
|
63
|
+
simplecov-html (~> 0.11)
|
64
|
+
simplecov-html (0.12.2)
|
65
|
+
strings (0.1.8)
|
66
|
+
strings-ansi (~> 0.1)
|
67
|
+
unicode-display_width (~> 1.5)
|
68
|
+
unicode_utils (~> 1.4)
|
69
|
+
strings-ansi (0.2.0)
|
70
|
+
thor (1.0.1)
|
68
71
|
thread_safe (0.3.6)
|
69
|
-
tty-color (0.
|
70
|
-
tty-cursor (0.
|
71
|
-
tty-prompt (0.
|
72
|
-
necromancer (~> 0.
|
73
|
-
pastel (~> 0.7.0)
|
74
|
-
tty-cursor (~> 0.4.0)
|
75
|
-
wisper (~> 1.6.1)
|
76
|
-
tty-screen (0.5.1)
|
77
|
-
tty-spinner (0.4.1)
|
78
|
-
tty-table (0.8.0)
|
79
|
-
equatable (~> 0.5.0)
|
80
|
-
necromancer (~> 0.4.0)
|
72
|
+
tty-color (0.5.1)
|
73
|
+
tty-cursor (0.7.1)
|
74
|
+
tty-prompt (0.20.0)
|
75
|
+
necromancer (~> 0.5.0)
|
81
76
|
pastel (~> 0.7.0)
|
82
|
-
tty-
|
83
|
-
|
84
|
-
|
85
|
-
|
77
|
+
tty-reader (~> 0.7.0)
|
78
|
+
tty-reader (0.7.0)
|
79
|
+
tty-cursor (~> 0.7)
|
80
|
+
tty-screen (~> 0.7)
|
81
|
+
wisper (~> 2.0.0)
|
82
|
+
tty-screen (0.7.1)
|
83
|
+
tty-spinner (0.9.3)
|
84
|
+
tty-cursor (~> 0.7)
|
85
|
+
tty-table (0.11.0)
|
86
|
+
equatable (~> 0.6)
|
87
|
+
necromancer (~> 0.5)
|
88
|
+
pastel (~> 0.7.2)
|
89
|
+
strings (~> 0.1.5)
|
90
|
+
tty-screen (~> 0.7)
|
91
|
+
tzinfo (1.2.7)
|
86
92
|
thread_safe (~> 0.1)
|
87
|
-
unicode-display_width (1.
|
93
|
+
unicode-display_width (1.7.0)
|
88
94
|
unicode_utils (1.4.0)
|
89
|
-
|
90
|
-
|
91
|
-
unicode_utils (~> 1.4.0)
|
92
|
-
wisper (1.6.1)
|
95
|
+
wisper (2.0.1)
|
96
|
+
zeitwerk (2.3.0)
|
93
97
|
|
94
98
|
PLATFORMS
|
95
99
|
ruby
|
96
100
|
|
97
101
|
DEPENDENCIES
|
98
|
-
bundler (~> 1
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
rspec (~> 3.5)
|
102
|
+
bundler (~> 2.1)
|
103
|
+
pry (~> 0.12.0)
|
104
|
+
rake (~> 13.0)
|
105
|
+
rspec (~> 3.9)
|
103
106
|
simplecov (~> 0)
|
104
107
|
terjira!
|
105
108
|
|
106
109
|
BUNDLED WITH
|
107
|
-
1.
|
110
|
+
2.1.4
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
Terjira is an interactive and easy to use command line interface (or Application) for Jira. You do not need to remember the resource key or id. Terjira suggests it with an interactive prompt.
|
9
9
|
|
10
|
-
Your Jira must support Rest API 2.0 and Agile Rest API 1.0
|
10
|
+
Your Jira must support Rest API 2.0 and Agile Rest API 1.0.
|
11
11
|
|
12
12
|
## Demo
|
13
13
|
[Watch full demo](https://www.youtube.com/watch?v=T0hbhaXtH-Y)
|
@@ -33,7 +33,8 @@ If you have permission problem,
|
|
33
33
|
## Usage
|
34
34
|
```
|
35
35
|
Authentication:
|
36
|
-
jira login # Login your Jira
|
36
|
+
jira login # Login your Jira using your Jira email & API token
|
37
|
+
# Refer: https://confluence.atlassian.com/cloud/api-tokens-938839638.html
|
37
38
|
# [--ssl-config] with ssl configuration
|
38
39
|
# [--proxy-config] with proxy configuration
|
39
40
|
jira logout # Logout your Jira
|
@@ -60,7 +61,7 @@ Sprint:
|
|
60
61
|
Issue:
|
61
62
|
jira issue help [COMMAND] # Describe one specific subcommand
|
62
63
|
jira issue ( ls | list ) # List of issues
|
63
|
-
#
|
64
|
+
# Default assignee option is current logged-in user
|
64
65
|
# To show issues of all users(include no assignee)
|
65
66
|
# pass `--assignee ALL` or `-a ALL`.
|
66
67
|
jira issue jql "[QUERY]" # Search issues with JQL
|
@@ -80,7 +81,7 @@ Issue:
|
|
80
81
|
jira issue new # Create an issue
|
81
82
|
# pass `-E` or `--editor` to open system default editor for composing issue description
|
82
83
|
jira issue open [ISSUE_KEY] # Open browser
|
83
|
-
jira issue url [ISSUE_KEY] #
|
84
|
+
jira issue url [ISSUE_KEY] # Return url of the issue
|
84
85
|
jira issue take [ISSUE_KEY] # Assign the issue to self
|
85
86
|
jira issue trans [ISSUE_KEY] ([STATUS]) # Do transition
|
86
87
|
|
data/bin/terjira
CHANGED
data/lib/terjira/base_cli.rb
CHANGED
data/lib/terjira/client/board.rb
CHANGED
@@ -20,7 +20,7 @@ module Terjira
|
|
20
20
|
def backlog(board_id, options = {})
|
21
21
|
jql = build_jql(options)
|
22
22
|
resp = if jql.present?
|
23
|
-
|
23
|
+
agile_api_get("board/#{board_id}/backlog", jql: jql)
|
24
24
|
else
|
25
25
|
agile_api_get("board/#{board_id}/backlog")
|
26
26
|
end
|
data/lib/terjira/client/issue.rb
CHANGED
@@ -61,7 +61,7 @@ module Terjira
|
|
61
61
|
def update(issue, options = {})
|
62
62
|
params = extract_to_update_params(options)
|
63
63
|
params.merge!(extract_to_fields_params(options))
|
64
|
-
|
64
|
+
api_put "issue/#{issue.key_value}", params.to_json
|
65
65
|
find(issue)
|
66
66
|
end
|
67
67
|
|
@@ -101,9 +101,7 @@ module Terjira
|
|
101
101
|
end
|
102
102
|
|
103
103
|
[:project, :parent].each do |resource|
|
104
|
-
if opts.key?(resource)
|
105
|
-
params[resource] = { key: opts.delete(resource).key_value }
|
106
|
-
end
|
104
|
+
params[resource] = { key: opts.delete(resource).key_value } if opts.key?(resource)
|
107
105
|
end
|
108
106
|
|
109
107
|
opts.each { |k, v| params[k] = convert_param_key_value_hash(v) }
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Terjira
|
2
2
|
module Client
|
3
3
|
module JQLBuilder
|
4
|
-
STRICT_KEYS = %w
|
5
|
-
SEARCH_KEYS = %w
|
4
|
+
STRICT_KEYS = %w[sprint assignee issuetype priority project status statusCategory].freeze
|
5
|
+
SEARCH_KEYS = %w[summary description].freeze
|
6
6
|
|
7
7
|
def build_jql(options = {})
|
8
8
|
search = options.select { |k, _v| SEARCH_KEYS.include?(k.to_s) }
|
data/lib/terjira/issue_cli.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'tty-prompt'
|
4
|
-
require_relative 'resource_store'
|
5
2
|
require_relative 'editor'
|
3
|
+
require_relative 'resource_store'
|
6
4
|
|
7
5
|
module Terjira
|
8
6
|
module OptionSelector
|
@@ -135,12 +133,12 @@ module Terjira
|
|
135
133
|
|
136
134
|
def write_epiclink_key
|
137
135
|
fetch(:epiclink) do
|
138
|
-
option_prompt.ask('Epic
|
136
|
+
option_prompt.ask('Epic Key?')
|
139
137
|
end
|
140
138
|
end
|
141
139
|
|
142
140
|
def write_epic_name
|
143
|
-
option_prompt.ask('Epic
|
141
|
+
option_prompt.ask('Epic Name?')
|
144
142
|
end
|
145
143
|
|
146
144
|
def write_comment
|
@@ -180,7 +178,7 @@ module Terjira
|
|
180
178
|
end
|
181
179
|
|
182
180
|
def write_parent_issue_key
|
183
|
-
fetch(:parent) { option_prompt.ask('Parent
|
181
|
+
fetch(:parent) { option_prompt.ask('Parent Issue Key?') }
|
184
182
|
end
|
185
183
|
|
186
184
|
private
|
@@ -241,15 +239,11 @@ module Terjira
|
|
241
239
|
@_option_select_prompt.on(:keypress) do |event|
|
242
240
|
# emacs key binding
|
243
241
|
{ "\u000E" => :keydown, "\u0010" => :keyup }.each do |key, action|
|
244
|
-
if event.value == key
|
245
|
-
@_option_select_prompt.trigger(action)
|
246
|
-
end
|
242
|
+
@_option_select_prompt.trigger(action) if event.value == key
|
247
243
|
end
|
248
244
|
# vim key binding
|
249
245
|
{ 'j' => :keydown, 'k' => :keyup, 'h' => :keyleft, 'l' => :keyright }.each do |key, action|
|
250
|
-
if event.value == key
|
251
|
-
@_option_select_prompt.trigger(action)
|
252
|
-
end
|
246
|
+
@_option_select_prompt.trigger(action) if event.value == key
|
253
247
|
end
|
254
248
|
end
|
255
249
|
@_option_select_prompt
|
@@ -3,7 +3,7 @@ module Terjira
|
|
3
3
|
OPTIONS = {
|
4
4
|
'project' => {
|
5
5
|
type: :string,
|
6
|
-
aliases: '-p'
|
6
|
+
aliases: '-p'
|
7
7
|
},
|
8
8
|
'board' => {
|
9
9
|
type: :numeric,
|
@@ -23,9 +23,9 @@ module Terjira
|
|
23
23
|
'state' => {
|
24
24
|
type: :array,
|
25
25
|
aliases: '-s',
|
26
|
-
default: %w
|
27
|
-
lazy_default: %w
|
28
|
-
enum: %w
|
26
|
+
default: %w[Active Future],
|
27
|
+
lazy_default: %w[Active Future],
|
28
|
+
enum: %w[Active Future Closed]
|
29
29
|
},
|
30
30
|
'status' => {
|
31
31
|
type: :string,
|
@@ -13,22 +13,22 @@ module Terjira
|
|
13
13
|
end
|
14
14
|
|
15
15
|
OPTION_TO_SELECTOR = {
|
16
|
-
|
16
|
+
assignee: :select_assignee,
|
17
17
|
board: :select_board,
|
18
|
-
|
18
|
+
comment: :write_comment,
|
19
19
|
description: :write_description,
|
20
|
-
|
20
|
+
editable_comment: :update_comment,
|
21
|
+
epiclink: :write_epiclink_key,
|
21
22
|
issuetype: :select_issuetype,
|
22
|
-
assignee: :select_assignee,
|
23
|
-
status: :select_issue_status,
|
24
23
|
priority: :select_priority,
|
24
|
+
project: :select_project,
|
25
25
|
resolution: :select_resolution,
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
sprint: :select_sprint,
|
27
|
+
status: :select_issue_status,
|
28
|
+
summary: :write_summary
|
29
29
|
}.freeze
|
30
30
|
|
31
|
-
# Transforming and
|
31
|
+
# Transforming and cleaning options
|
32
32
|
# and suggest list of option values
|
33
33
|
def suggest_options(opts = {})
|
34
34
|
origin = options.dup
|
@@ -63,13 +63,13 @@ module Terjira
|
|
63
63
|
default_value_options = Hash[default_value_options]
|
64
64
|
|
65
65
|
# Suggest option values and save to resource store
|
66
|
-
default_value_options.
|
66
|
+
default_value_options.each_key do |k, _v|
|
67
67
|
selector_method = OPTION_TO_SELECTOR[k.to_sym]
|
68
68
|
send(selector_method) if selector_method
|
69
69
|
end
|
70
70
|
|
71
71
|
# Fetch selected values from resource store
|
72
|
-
default_value_options.
|
72
|
+
default_value_options.each_key do |k, _v|
|
73
73
|
default_value_options[k] = resource_store.get(k)
|
74
74
|
end
|
75
75
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'tty-table'
|
4
2
|
require 'pastel'
|
5
3
|
|
@@ -34,7 +32,11 @@ module Terjira
|
|
34
32
|
if user.nil?
|
35
33
|
dim_none
|
36
34
|
else
|
37
|
-
|
35
|
+
begin
|
36
|
+
"#{user.displayName} (#{user.name})"
|
37
|
+
rescue NoMethodError
|
38
|
+
user.displayName.to_s
|
39
|
+
end
|
38
40
|
end
|
39
41
|
end
|
40
42
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'tty-prompt'
|
4
2
|
require 'tty-table'
|
5
3
|
require 'pastel'
|
@@ -203,7 +201,7 @@ module Terjira
|
|
203
201
|
|
204
202
|
def extract_status_names(issues)
|
205
203
|
issue_names = issues.sort_by do |issue|
|
206
|
-
status_key = %w
|
204
|
+
status_key = %w[new indeterminate done]
|
207
205
|
idx = if issue.status.respond_to? :statusCategory
|
208
206
|
status_key.index(issue.status.statusCategory['key'])
|
209
207
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
module Terjira
|
4
2
|
module SprintPresenter
|
5
3
|
def render_sprint_detail(sprint)
|
@@ -15,7 +13,7 @@ module Terjira
|
|
15
13
|
end
|
16
14
|
|
17
15
|
def render_sprints_summary(sprints)
|
18
|
-
headers = %w
|
16
|
+
headers = %w[ID Summary].map { |h| pastel.bold(h) }
|
19
17
|
rows = []
|
20
18
|
sort_sprint_by_state(sprints).each do |sprint|
|
21
19
|
rows << [pastel.bold(sprint.id), summarise_sprint(sprint)]
|
@@ -60,7 +60,7 @@ module Terjira
|
|
60
60
|
|
61
61
|
# Delete the value for the given key from the cache
|
62
62
|
def delete(key)
|
63
|
-
FileUtils.rm(get_path(key)) if File.
|
63
|
+
FileUtils.rm(get_path(key)) if File.exist? get_path(key)
|
64
64
|
end
|
65
65
|
|
66
66
|
# Delete ALL data from the cache, regardless of expiry time
|
data/lib/terjira/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'terjira/utils/file_cache'
|
2
2
|
|
3
3
|
module Terjira
|
4
|
-
VERSION = '0.4.
|
4
|
+
VERSION = '0.4.6'.freeze
|
5
5
|
|
6
6
|
class VersionChecker
|
7
7
|
VERSION_CHECK_DURATION = (60 * 60 * 24 * 5).freeze
|
@@ -43,6 +43,5 @@ module Terjira
|
|
43
43
|
@version_alert_cache ||= Terjira::FileCache.new("version", VERSION_CHECK_DURATION)
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
47
46
|
end
|
48
47
|
end
|
data/terjira.gemspec
CHANGED
@@ -7,11 +7,11 @@ require 'terjira/version'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = "terjira"
|
9
9
|
spec.version = Terjira::VERSION
|
10
|
-
spec.authors = ["Jaehyun Shin"]
|
11
|
-
spec.email = ["keepcosmos@gmail.com"]
|
10
|
+
spec.authors = ["Jaehyun Shin", "Ren Guoy"]
|
11
|
+
spec.email = ["keepcosmos@gmail.com", "guoy.ren@gmail.com"]
|
12
12
|
|
13
13
|
spec.summary = "Terjira is interactive command line application for Jira"
|
14
|
-
spec.description = "Terjira is interactive and easy to use command line interface (or Application) for Jira.\nYou do not need to remember
|
14
|
+
spec.description = "Terjira is interactive and easy to use command line interface (or Application) for Jira.\nYou do not need to remember resource key or id. Terjira suggests with interactive prompt."
|
15
15
|
spec.homepage = "https://github.com/keepcosmos/terjira"
|
16
16
|
spec.license = "MIT"
|
17
17
|
|
@@ -20,18 +20,17 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = ["bin/jira"].map { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_dependency "thor", "~> 0.
|
24
|
-
spec.add_dependency "jira-ruby", "1.
|
25
|
-
spec.add_dependency "activesupport", "
|
23
|
+
spec.add_dependency "thor", "~> 1.0.1"
|
24
|
+
spec.add_dependency "jira-ruby", "1.7.1"
|
25
|
+
spec.add_dependency "activesupport", "6.0.3.1"
|
26
26
|
|
27
|
-
spec.add_dependency "tty-table", "~> 0.
|
28
|
-
spec.add_dependency "tty-prompt", "~> 0.
|
29
|
-
spec.add_dependency "tty-spinner", "~> 0.
|
27
|
+
spec.add_dependency "tty-table", "~> 0.11.0"
|
28
|
+
spec.add_dependency "tty-prompt", "~> 0.20.0"
|
29
|
+
spec.add_dependency "tty-spinner", "~> 0.9.3"
|
30
30
|
|
31
|
-
spec.add_development_dependency "bundler", "~> 1
|
32
|
-
spec.add_development_dependency "rake", "~>
|
33
|
-
spec.add_development_dependency "rspec", "~> 3.
|
31
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
32
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
33
|
+
spec.add_development_dependency "rspec", "~> 3.9"
|
34
34
|
spec.add_development_dependency "simplecov", "~> 0"
|
35
|
-
spec.add_development_dependency "
|
36
|
-
spec.add_development_dependency "pry", "~> 0.10.0"
|
35
|
+
spec.add_development_dependency "pry", "~> 0.12.0"
|
37
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terjira
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jaehyun Shin
|
8
|
+
- Ren Guoy
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-06-29 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: thor
|
@@ -16,126 +17,126 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
20
|
+
version: 1.0.1
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
27
|
+
version: 1.0.1
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: jira-ruby
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
32
|
- - '='
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
34
|
+
version: 1.7.1
|
34
35
|
type: :runtime
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
39
|
- - '='
|
39
40
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
41
|
+
version: 1.7.1
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: activesupport
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
46
|
- - '='
|
46
47
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
+
version: 6.0.3.1
|
48
49
|
type: :runtime
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
53
|
- - '='
|
53
54
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
+
version: 6.0.3.1
|
55
56
|
- !ruby/object:Gem::Dependency
|
56
57
|
name: tty-table
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
60
|
- - "~>"
|
60
61
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
62
|
+
version: 0.11.0
|
62
63
|
type: :runtime
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
67
|
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
69
|
+
version: 0.11.0
|
69
70
|
- !ruby/object:Gem::Dependency
|
70
71
|
name: tty-prompt
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
74
|
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
76
|
+
version: 0.20.0
|
76
77
|
type: :runtime
|
77
78
|
prerelease: false
|
78
79
|
version_requirements: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
81
|
- - "~>"
|
81
82
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
83
|
+
version: 0.20.0
|
83
84
|
- !ruby/object:Gem::Dependency
|
84
85
|
name: tty-spinner
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
88
|
- - "~>"
|
88
89
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
90
|
+
version: 0.9.3
|
90
91
|
type: :runtime
|
91
92
|
prerelease: false
|
92
93
|
version_requirements: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
95
|
- - "~>"
|
95
96
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
97
|
+
version: 0.9.3
|
97
98
|
- !ruby/object:Gem::Dependency
|
98
99
|
name: bundler
|
99
100
|
requirement: !ruby/object:Gem::Requirement
|
100
101
|
requirements:
|
101
102
|
- - "~>"
|
102
103
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1
|
104
|
+
version: '2.1'
|
104
105
|
type: :development
|
105
106
|
prerelease: false
|
106
107
|
version_requirements: !ruby/object:Gem::Requirement
|
107
108
|
requirements:
|
108
109
|
- - "~>"
|
109
110
|
- !ruby/object:Gem::Version
|
110
|
-
version: '1
|
111
|
+
version: '2.1'
|
111
112
|
- !ruby/object:Gem::Dependency
|
112
113
|
name: rake
|
113
114
|
requirement: !ruby/object:Gem::Requirement
|
114
115
|
requirements:
|
115
116
|
- - "~>"
|
116
117
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
118
|
+
version: '13.0'
|
118
119
|
type: :development
|
119
120
|
prerelease: false
|
120
121
|
version_requirements: !ruby/object:Gem::Requirement
|
121
122
|
requirements:
|
122
123
|
- - "~>"
|
123
124
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
125
|
+
version: '13.0'
|
125
126
|
- !ruby/object:Gem::Dependency
|
126
127
|
name: rspec
|
127
128
|
requirement: !ruby/object:Gem::Requirement
|
128
129
|
requirements:
|
129
130
|
- - "~>"
|
130
131
|
- !ruby/object:Gem::Version
|
131
|
-
version: '3.
|
132
|
+
version: '3.9'
|
132
133
|
type: :development
|
133
134
|
prerelease: false
|
134
135
|
version_requirements: !ruby/object:Gem::Requirement
|
135
136
|
requirements:
|
136
137
|
- - "~>"
|
137
138
|
- !ruby/object:Gem::Version
|
138
|
-
version: '3.
|
139
|
+
version: '3.9'
|
139
140
|
- !ruby/object:Gem::Dependency
|
140
141
|
name: simplecov
|
141
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,39 +151,26 @@ dependencies:
|
|
150
151
|
- - "~>"
|
151
152
|
- !ruby/object:Gem::Version
|
152
153
|
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: codeclimate-test-reporter
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '1.0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - "~>"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '1.0'
|
167
154
|
- !ruby/object:Gem::Dependency
|
168
155
|
name: pry
|
169
156
|
requirement: !ruby/object:Gem::Requirement
|
170
157
|
requirements:
|
171
158
|
- - "~>"
|
172
159
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
160
|
+
version: 0.12.0
|
174
161
|
type: :development
|
175
162
|
prerelease: false
|
176
163
|
version_requirements: !ruby/object:Gem::Requirement
|
177
164
|
requirements:
|
178
165
|
- - "~>"
|
179
166
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
167
|
+
version: 0.12.0
|
181
168
|
description: |-
|
182
169
|
Terjira is interactive and easy to use command line interface (or Application) for Jira.
|
183
|
-
You do not need to remember
|
170
|
+
You do not need to remember resource key or id. Terjira suggests with interactive prompt.
|
184
171
|
email:
|
185
172
|
- keepcosmos@gmail.com
|
173
|
+
- guoy.ren@gmail.com
|
186
174
|
executables:
|
187
175
|
- jira
|
188
176
|
extensions: []
|
@@ -260,8 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
248
|
- !ruby/object:Gem::Version
|
261
249
|
version: '0'
|
262
250
|
requirements: []
|
263
|
-
|
264
|
-
rubygems_version: 2.6.8
|
251
|
+
rubygems_version: 3.0.6
|
265
252
|
signing_key:
|
266
253
|
specification_version: 4
|
267
254
|
summary: Terjira is interactive command line application for Jira
|