jira-cli 0.0.9 → 0.1.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 +4 -4
- data/bin/jira +8 -2
- data/lib/jira.rb +11 -2
- data/lib/jira/commands/comment.rb +1 -0
- data/lib/jira/commands/commit.rb +14 -0
- data/lib/jira/commands/describe.rb +1 -3
- data/lib/jira/commands/new.rb +1 -0
- data/lib/jira/commands/transition.rb +1 -1
- data/lib/jira/constants.rb +1 -1
- data/lib/jira/core.rb +13 -12
- data/lib/jira/exceptions.rb +2 -0
- data/lib/jira/mixins.rb +4 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ca6267c77e326c0be178c9b35257a49553174d2
|
4
|
+
data.tar.gz: a0320f7c4ae0fc4196c6b4386b7efd3da643f98d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 176917e6f4b0eb6773ea0ee302788b0b5957215ffa1deb3c48233c3d0ad867dce4a9f065b4cf8c829d83eb05de010cdc28d85e200de3a7df870db8557b5b1f54
|
7
|
+
data.tar.gz: 3578a7a0559bf7c51ff21a28d519a47ef571ab1c163f6d6cfcad1e3c8fb29fc091bcfb537938ebc838029cb531282dd823df554423e674aaca3218ce2c36930b
|
data/bin/jira
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
|
3
3
|
require 'jira'
|
4
|
-
|
5
|
-
Jira::CLI.start
|
4
|
+
begin
|
5
|
+
Jira::CLI.start
|
6
|
+
rescue GitException
|
7
|
+
puts "JIRA commands can only be run within a git repository."
|
8
|
+
rescue InstallationException
|
9
|
+
puts "Please run #{Jira::Format.summary('jira install')} before "\
|
10
|
+
"running this command."
|
11
|
+
end
|
data/lib/jira.rb
CHANGED
@@ -6,6 +6,7 @@ require 'jira/core'
|
|
6
6
|
require 'jira/api'
|
7
7
|
require 'jira/format'
|
8
8
|
require 'jira/mixins'
|
9
|
+
require 'jira/exceptions'
|
9
10
|
# include jira/commands/*
|
10
11
|
Dir.glob(
|
11
12
|
File.dirname(File.absolute_path(__FILE__)) + '/jira/commands/*',
|
@@ -17,9 +18,17 @@ module Jira
|
|
17
18
|
|
18
19
|
def initialize(args=[], options={}, config={})
|
19
20
|
super
|
20
|
-
Jira::Core.setup
|
21
|
-
self.api
|
21
|
+
self.suppress{ Jira::Core.setup }
|
22
|
+
self.suppress{ self.api }
|
22
23
|
end
|
23
24
|
|
25
|
+
protected
|
26
|
+
|
27
|
+
def suppress
|
28
|
+
yield
|
29
|
+
rescue GitException
|
30
|
+
rescue InstallationException
|
31
|
+
end
|
32
|
+
|
24
33
|
end
|
25
34
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Jira
|
2
|
+
class CLI < Thor
|
3
|
+
|
4
|
+
desc "commit", "Commits uncommitted work with the ticket name and summary."
|
5
|
+
def commit(ticket=Jira::Core.ticket)
|
6
|
+
if Jira::Core.ticket?(ticket)
|
7
|
+
self.api.get("issue/#{ticket}") do |json|
|
8
|
+
`git commit -m '#{ticket}. #{json['fields']['summary'].periodize}'`
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -6,8 +6,6 @@ module Jira
|
|
6
6
|
if Jira::Core.ticket?(ticket)
|
7
7
|
output = description(ticket.strip, false, true)
|
8
8
|
puts output if !output.strip.empty?
|
9
|
-
else
|
10
|
-
puts "The ticket #{ticket} is not a valid JIRA ticket."
|
11
9
|
end
|
12
10
|
end
|
13
11
|
|
@@ -22,7 +20,7 @@ module Jira
|
|
22
20
|
branches = `git branch`.strip.split("\n")
|
23
21
|
branches.each do |branch|
|
24
22
|
ticket = branch.delete('*').strip
|
25
|
-
if Jira::Core.ticket?(ticket)
|
23
|
+
if Jira::Core.ticket?(ticket, false)
|
26
24
|
if branch.include?('*')
|
27
25
|
tickets[:current] = ticket
|
28
26
|
else
|
data/lib/jira/commands/new.rb
CHANGED
@@ -13,7 +13,7 @@ module Jira
|
|
13
13
|
self.cli.choose do |menu|
|
14
14
|
menu.index = :number
|
15
15
|
menu.index_suffix = ") "
|
16
|
-
menu.header = "Transition #{Jira::Format.ticket(ticket)} to
|
16
|
+
menu.header = "Transition #{Jira::Format.ticket(ticket)} to"
|
17
17
|
menu.prompt = "Transition to: "
|
18
18
|
options.keys.each do |choice|
|
19
19
|
menu.choice choice do
|
data/lib/jira/constants.rb
CHANGED
data/lib/jira/core.rb
CHANGED
@@ -42,14 +42,20 @@ module Jira
|
|
42
42
|
|
43
43
|
#
|
44
44
|
# Determines whether or not the input ticket matches the expected JIRA
|
45
|
-
# ticketing syntax.
|
45
|
+
# ticketing syntax. Outputs a warning that the input ticket isn't a valid
|
46
|
+
# ticket.
|
46
47
|
#
|
47
48
|
# @param ticket [String] input ticket name
|
49
|
+
# @param verbose [Boolean] verbose output of the ticket warning
|
48
50
|
#
|
49
51
|
# @return [Boolean] whether input string matches JIRA ticket syntax
|
50
52
|
#
|
51
|
-
def ticket?(ticket)
|
52
|
-
!!ticket.to_s[/^[a-zA-Z]+-[0-9]+$/]
|
53
|
+
def ticket?(ticket, verbose=true)
|
54
|
+
!!ticket.to_s[/^[a-zA-Z]+-[0-9]+$/] and return true
|
55
|
+
if verbose
|
56
|
+
puts "#{Jira::Format.ticket(ticket)} is not a valid JIRA ticket."
|
57
|
+
end
|
58
|
+
return false
|
53
59
|
end
|
54
60
|
|
55
61
|
### Relevant Paths
|
@@ -73,10 +79,7 @@ module Jira
|
|
73
79
|
#
|
74
80
|
def root_path
|
75
81
|
return @root_path if !@root_path.nil?
|
76
|
-
if !system('git rev-parse 2> /dev/null')
|
77
|
-
puts "JIRA commands can only be run within a git repository."
|
78
|
-
abort
|
79
|
-
end
|
82
|
+
raise GitException.new if !system('git rev-parse 2> /dev/null')
|
80
83
|
@root_path ||= `git rev-parse --show-toplevel`.strip
|
81
84
|
end
|
82
85
|
|
@@ -89,7 +92,7 @@ module Jira
|
|
89
92
|
# @return [String] JIRA password
|
90
93
|
#
|
91
94
|
def auth
|
92
|
-
self.read(self.auth_path).split(':')
|
95
|
+
@auth ||= self.read(self.auth_path).split(':')
|
93
96
|
end
|
94
97
|
|
95
98
|
### Core Actions
|
@@ -99,6 +102,7 @@ module Jira
|
|
99
102
|
#
|
100
103
|
def discard_memoized
|
101
104
|
@url = nil
|
105
|
+
@auth = nil
|
102
106
|
@username = nil
|
103
107
|
@password = nil
|
104
108
|
end
|
@@ -121,10 +125,7 @@ module Jira
|
|
121
125
|
# @param path [String] path to validate
|
122
126
|
#
|
123
127
|
def validate_path!(path)
|
124
|
-
if !File.exists?(path)
|
125
|
-
say "Please run `jira install` before running this command."
|
126
|
-
abort
|
127
|
-
end
|
128
|
+
raise InstallationException.new if !File.exists?(path)
|
128
129
|
end
|
129
130
|
|
130
131
|
end
|
data/lib/jira/mixins.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jira-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darren Lin Cheng
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -63,6 +63,7 @@ files:
|
|
63
63
|
- lib/jira/api.rb
|
64
64
|
- lib/jira/commands/browse.rb
|
65
65
|
- lib/jira/commands/comment.rb
|
66
|
+
- lib/jira/commands/commit.rb
|
66
67
|
- lib/jira/commands/describe.rb
|
67
68
|
- lib/jira/commands/install.rb
|
68
69
|
- lib/jira/commands/log.rb
|
@@ -72,6 +73,7 @@ files:
|
|
72
73
|
- lib/jira/commands/version.rb
|
73
74
|
- lib/jira/constants.rb
|
74
75
|
- lib/jira/core.rb
|
76
|
+
- lib/jira/exceptions.rb
|
75
77
|
- lib/jira/format.rb
|
76
78
|
- lib/jira/mixins.rb
|
77
79
|
- lib/jira.rb
|