jirify 0.2.2 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/jirify.bash_completion.sh +14 -1
- data/lib/jirify.rb +6 -0
- data/lib/jirify/cli/setup.rb +27 -2
- data/lib/jirify/cli/sprint.rb +24 -20
- data/lib/jirify/config.rb +15 -0
- data/lib/jirify/models/base.rb +0 -4
- data/lib/jirify/models/issue.rb +2 -1
- data/lib/jirify/models/sprint.rb +3 -1
- data/lib/jirify/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0620a5caff8ce1ff95efd9542e4e16e9d8a44e934292cb46bfc8cea1aeb2b1c1
|
4
|
+
data.tar.gz: db06a83b292bd626f059265e8ae24a070a3ef12da70f6a296950c97a946e562c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16578ee5a6a2594cd1ad04bb4ff5fa70197324dd0e30db842705913ba74385188d59e5b5a902769387943648acbe5930028e2894144216575c8c510dea9d47f1
|
7
|
+
data.tar.gz: d7c03119e00de00ac4899b11249dadc2dce0662babba1d5de7f053a965f3b4beec222fd3c31fad26eb668281ee49ad9caef0e50270e7a97259db3917690d162c
|
data/README.md
CHANGED
@@ -27,7 +27,8 @@ options:
|
|
27
27
|
username: <atlassian username (email)>
|
28
28
|
token: <token generated from https://id.atlassian.com>
|
29
29
|
site: <JIRA url>
|
30
|
-
|
30
|
+
projects:
|
31
|
+
- <JIRA project key>
|
31
32
|
filter_by_labels:
|
32
33
|
- <label to filter by when displaying sprint>
|
33
34
|
verbose: <force jirify to always be verbose>
|
data/jirify.bash_completion.sh
CHANGED
@@ -28,7 +28,8 @@ _jirify_completions() {
|
|
28
28
|
|
29
29
|
top_level_commands="help issues projects setup sprint version"
|
30
30
|
projects_commands="help list"
|
31
|
-
setup_commands="help init bash_completion verbose"
|
31
|
+
setup_commands="help init bash_completion projects verbose"
|
32
|
+
sprint_commands="help show"
|
32
33
|
issues_commands="help assignee block close describe mine open review start status take todo transition transitions unassign unblock"
|
33
34
|
|
34
35
|
_compgen_issue_keys() {
|
@@ -49,6 +50,10 @@ _jirify_completions() {
|
|
49
50
|
COMPREPLY=($(compgen -W "${setup_commands}" -- ${current}))
|
50
51
|
}
|
51
52
|
|
53
|
+
_compgen_sprint() {
|
54
|
+
COMPREPLY=($(compgen -W "${sprint_commands}" -- ${current}))
|
55
|
+
}
|
56
|
+
|
52
57
|
_compgen_issues() {
|
53
58
|
COMPREPLY=($(compgen -W "${issues_commands}" -- ${current}))
|
54
59
|
}
|
@@ -74,6 +79,10 @@ _jirify_completions() {
|
|
74
79
|
_compgen_setup
|
75
80
|
return 0
|
76
81
|
;;
|
82
|
+
s|sprint)
|
83
|
+
_compgen_sprint
|
84
|
+
return 0
|
85
|
+
;;
|
77
86
|
i|issues)
|
78
87
|
_compgen_issues
|
79
88
|
return 0
|
@@ -95,6 +104,10 @@ _jirify_completions() {
|
|
95
104
|
_compgen_setup
|
96
105
|
return 0
|
97
106
|
;;
|
107
|
+
s|sprint)
|
108
|
+
_compgen_sprint
|
109
|
+
return 0
|
110
|
+
;;
|
98
111
|
i|issues)
|
99
112
|
_compgen_issues
|
100
113
|
return 0
|
data/lib/jirify.rb
CHANGED
@@ -38,6 +38,12 @@ module Jirify
|
|
38
38
|
desc 'setup [SUBCOMMAND]', 'Jirify setup tools'
|
39
39
|
subcommand 'setup', Subcommands::Setup
|
40
40
|
|
41
|
+
desc 's [SUBCOMMAND]', 'Alias for <jira sprint>'
|
42
|
+
subcommand 's', Subcommands::Sprint
|
43
|
+
|
44
|
+
desc 'sprint [SUBCOMMAND]', 'Work with JIRA Sprints'
|
45
|
+
subcommand 'sprint', Subcommands::Sprint
|
46
|
+
|
41
47
|
desc 'i [SUBCOMMAND]', 'Alias for <jira issues>'
|
42
48
|
subcommand 'i', Subcommands::Issues
|
43
49
|
|
data/lib/jirify/cli/setup.rb
CHANGED
@@ -15,17 +15,23 @@ module Jirify
|
|
15
15
|
username = ask 'Enter username:'
|
16
16
|
token = ask 'Enter token (generate from https://id.atlassian.com):'
|
17
17
|
site = ask 'Enter JIRA url:'
|
18
|
-
project = ask 'Enter JIRA Project
|
18
|
+
project = ask 'Enter a comma-separated list of JIRA Project keys to filter by every time (1 required):'
|
19
19
|
filter_labels = ask 'Enter a comma-separated list of labels to filter by every time (optional):'
|
20
20
|
|
21
21
|
labels = filter_labels.split ', ' if filter_labels
|
22
|
+
projects = project.split ', ' if project
|
23
|
+
|
24
|
+
if projects.nil? or projects.empty?
|
25
|
+
say "You must enter at least one project key!".red
|
26
|
+
exit(0)
|
27
|
+
end
|
22
28
|
|
23
29
|
options = {
|
24
30
|
'options' => {
|
25
31
|
'username' => username,
|
26
32
|
'token' => token,
|
27
33
|
'site' => site,
|
28
|
-
'
|
34
|
+
'projects' => projects
|
29
35
|
}
|
30
36
|
}
|
31
37
|
|
@@ -50,6 +56,25 @@ module Jirify
|
|
50
56
|
|
51
57
|
say 'Done! You have to source the file again or open a new shell! :)'.green
|
52
58
|
end
|
59
|
+
|
60
|
+
desc 'projects', 'Set projects to query'
|
61
|
+
method_option :set, type: :array, aliases: '-s', desc: 'List of projects'
|
62
|
+
def projects
|
63
|
+
if options[:set].nil? || options[:set].empty?
|
64
|
+
say 'Pass a list of projects to set with -s. Run "jira setup help projects" for more information.'.red
|
65
|
+
exit(0)
|
66
|
+
end
|
67
|
+
|
68
|
+
Config.projects = options[:set]
|
69
|
+
end
|
70
|
+
|
71
|
+
desc 'bash_completion', 'Update your bash_completion file when a new version comes out'
|
72
|
+
def bash_completion
|
73
|
+
say "Updating #{Config.config_folder}/jirify.bash_completion.sh ...".blue
|
74
|
+
Config.copy_bash_completion!
|
75
|
+
|
76
|
+
say 'Done! You have to source the file again or open a new shell! :)'.green
|
77
|
+
end
|
53
78
|
end
|
54
79
|
end
|
55
80
|
end
|
data/lib/jirify/cli/sprint.rb
CHANGED
@@ -1,26 +1,30 @@
|
|
1
1
|
module Jirify
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
method_option :all_columns, type: :boolean, aliases: '-c', default: true, desc: 'Show all columns'
|
6
|
-
method_option :assignee, type: :boolean, aliases: '-a', desc: 'Show issue assignee'
|
7
|
-
method_option :summary, type: :boolean, aliases: '-s', desc: 'Show issue summary'
|
8
|
-
method_option :url, type: :boolean, aliases: '-u', desc: 'Show issue url'
|
9
|
-
def sprint
|
10
|
-
verbose = Config.always_verbose || options[:verbose]
|
11
|
-
issues = Models::Sprint.issues_in_current_sprint(options[:mine])
|
2
|
+
module Subcommands
|
3
|
+
class Sprint < Thor
|
4
|
+
default_task :show
|
12
5
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
6
|
+
desc 'show', 'Show the current sprint table'
|
7
|
+
method_option :mine, type: :boolean, aliases: '-m', desc: 'Show only issues assigned to me'
|
8
|
+
method_option :all_columns, type: :boolean, aliases: '-c', default: true, desc: 'Show all columns'
|
9
|
+
method_option :assignee, type: :boolean, aliases: '-a', desc: 'Show issue assignee'
|
10
|
+
method_option :summary, type: :boolean, aliases: '-s', desc: 'Show issue summary'
|
11
|
+
method_option :url, type: :boolean, aliases: '-u', desc: 'Show issue url'
|
12
|
+
def show
|
13
|
+
verbose = Config.always_verbose || options[:verbose]
|
14
|
+
issues = Models::Sprint.issues_in_current_sprint(options[:mine])
|
15
|
+
|
16
|
+
modified_options = options.dup
|
17
|
+
if verbose
|
18
|
+
modified_options[:assignee] = true
|
19
|
+
modified_options[:url] = true
|
20
|
+
modified_options[:summary] = true
|
21
|
+
end
|
19
22
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
23
|
+
say UI::SprintTable.new(issues).to_table(modified_options)
|
24
|
+
rescue UI::WindowTooNarrow
|
25
|
+
say ColorizedString['ERROR: Your terminal window is too narrow to print the sprint table!']
|
26
|
+
.white.on_red.bold
|
27
|
+
end
|
24
28
|
end
|
25
29
|
end
|
26
30
|
end
|
data/lib/jirify/config.rb
CHANGED
@@ -38,6 +38,17 @@ module Jirify
|
|
38
38
|
File.write(config_file, config.to_yaml)
|
39
39
|
end
|
40
40
|
|
41
|
+
def projects=(value)
|
42
|
+
unless initialized?
|
43
|
+
puts ColorizedString['ERROR: You must initialize Jirify first!'].white.on_red.bold
|
44
|
+
exit(0)
|
45
|
+
end
|
46
|
+
|
47
|
+
config = YAML.load_file(config_file)
|
48
|
+
config['options']['projects'] = value
|
49
|
+
write(config)
|
50
|
+
end
|
51
|
+
|
41
52
|
def verbose=(value)
|
42
53
|
unless initialized?
|
43
54
|
puts ColorizedString['ERROR: You must initialize Jirify first!'].white.on_red.bold
|
@@ -70,6 +81,10 @@ module Jirify
|
|
70
81
|
options['username']
|
71
82
|
end
|
72
83
|
|
84
|
+
def projects
|
85
|
+
options['projects']
|
86
|
+
end
|
87
|
+
|
73
88
|
def issue_browse_url
|
74
89
|
"#{atlassian_url}/browse/"
|
75
90
|
end
|
data/lib/jirify/models/base.rb
CHANGED
data/lib/jirify/models/issue.rb
CHANGED
@@ -86,8 +86,9 @@ module Jirify
|
|
86
86
|
protected
|
87
87
|
|
88
88
|
def my_issues_jql(all_issues)
|
89
|
+
project_clause = "project in (#{Config.projects.join(', ')})"
|
89
90
|
all_clause = 'AND sprint in openSprints()' unless all_issues
|
90
|
-
"
|
91
|
+
"#{project_clause} #{all_clause} AND assignee='#{Config.username}'"
|
91
92
|
end
|
92
93
|
end
|
93
94
|
end
|
data/lib/jirify/models/sprint.rb
CHANGED
@@ -12,12 +12,14 @@ module Jirify
|
|
12
12
|
def current_sprint_jql(only_mine)
|
13
13
|
labels = Config.options['filter_by_labels']
|
14
14
|
labels = labels.join(', ') if labels
|
15
|
+
projects = Config.projects.join(', ')
|
15
16
|
|
17
|
+
projects_clause = "project in (#{projects})"
|
16
18
|
labels_clause = "AND labels in (#{labels})" if labels
|
17
19
|
mine_clause = "AND assignee='#{Config.username}'" if only_mine
|
18
20
|
sprint_clause = 'AND sprint in openSprints()'
|
19
21
|
|
20
|
-
"
|
22
|
+
"#{projects_clause} #{sprint_clause} #{labels_clause} #{mine_clause}"
|
21
23
|
end
|
22
24
|
end
|
23
25
|
end
|
data/lib/jirify/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jirify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Georgi Gardev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -284,7 +284,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
284
|
version: '0'
|
285
285
|
requirements: []
|
286
286
|
rubyforge_project:
|
287
|
-
rubygems_version:
|
287
|
+
rubygems_version: 3.0.0.beta1
|
288
288
|
signing_key:
|
289
289
|
specification_version: 4
|
290
290
|
summary: JIRA CLI
|