jira_cmd 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.
- data/bin/jira +33 -0
- data/lib/jira_cmd.rb +94 -0
- metadata +80 -0
data/bin/jira
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'jira_cmd'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
opts = JiraOptions.new
|
7
|
+
opts.parse_options
|
8
|
+
|
9
|
+
config_file = "#{ENV['HOME']}/.jira_cmd"
|
10
|
+
|
11
|
+
if File.exists? config_file
|
12
|
+
config_data = YAML.load_file config_file
|
13
|
+
server = config_data['server']
|
14
|
+
current_user = config_data['current_user']
|
15
|
+
end
|
16
|
+
|
17
|
+
server = opts.config[:server] if opts.config[:server]
|
18
|
+
current_user = opts.config[:current_user] if opts.config[:current_user]
|
19
|
+
|
20
|
+
jira_cmd = JiraCmd.new(server, current_user)
|
21
|
+
|
22
|
+
opts.config.each do |k,v|
|
23
|
+
case k
|
24
|
+
when /mine/
|
25
|
+
jira_cmd.get_mine
|
26
|
+
when /user/
|
27
|
+
jira_cmd.get_user(v)
|
28
|
+
when /release/
|
29
|
+
jira_cmd.get_in_release(v)
|
30
|
+
when /issue/
|
31
|
+
jira_cmd.get_issue(v)
|
32
|
+
end
|
33
|
+
end
|
data/lib/jira_cmd.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'open-uri'
|
3
|
+
require 'mixlib/cli'
|
4
|
+
|
5
|
+
# OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
6
|
+
class JiraOptions
|
7
|
+
include Mixlib::CLI
|
8
|
+
|
9
|
+
option :mine,
|
10
|
+
long: '--mine',
|
11
|
+
short: '-m'
|
12
|
+
|
13
|
+
option :issue,
|
14
|
+
long: '--issue ISSUE',
|
15
|
+
short: '-i ISSUE'
|
16
|
+
|
17
|
+
option :user,
|
18
|
+
long: '--user USER',
|
19
|
+
short: '-u USER'
|
20
|
+
|
21
|
+
option :release,
|
22
|
+
long: '--release RELEASE',
|
23
|
+
short: '-r RELEASE'
|
24
|
+
|
25
|
+
option :server,
|
26
|
+
long: '--server SERVER',
|
27
|
+
short: '-s SERVER'
|
28
|
+
|
29
|
+
option :current_user,
|
30
|
+
long: '--current_user CURRENT_USER',
|
31
|
+
short: '-c CURRENT_USER'
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
class JiraQuery
|
36
|
+
|
37
|
+
attr_accessor :issues
|
38
|
+
|
39
|
+
def initialize(params={})
|
40
|
+
@search_url = params[:url]
|
41
|
+
@issues = []
|
42
|
+
end
|
43
|
+
|
44
|
+
def process
|
45
|
+
@document = Nokogiri::XML(open(@search_url))
|
46
|
+
# puts @document
|
47
|
+
@document.xpath('//item').each do |item|
|
48
|
+
@issues << "#{item.css('status').first.content.chomp.ljust(20)} #{item.css('title').first.content.chomp}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
class JiraCmd
|
54
|
+
|
55
|
+
attr_accessor :server, :user
|
56
|
+
|
57
|
+
def initialize(server_name, user_name)
|
58
|
+
@server = server_name
|
59
|
+
@user = user_name
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_mine
|
63
|
+
get_user user
|
64
|
+
end
|
65
|
+
|
66
|
+
def get_user(user)
|
67
|
+
my_issues_url = "https://#{server}/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=assignee+%3d+'#{user}'+and+status+!%3d+'closed'"
|
68
|
+
jira = JiraQuery.new url: my_issues_url
|
69
|
+
jira.process
|
70
|
+
puts "#{user.upcase} ISSUES"
|
71
|
+
puts jira.issues
|
72
|
+
end
|
73
|
+
|
74
|
+
def get_issue(issue)
|
75
|
+
my_issues_url = "https://#{server}/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=key+%3d+'#{issue}'"
|
76
|
+
jira = JiraQuery.new url: my_issues_url
|
77
|
+
jira.process
|
78
|
+
puts jira.issues
|
79
|
+
end
|
80
|
+
|
81
|
+
def get_in_release(release)
|
82
|
+
return if release.nil? || release.empty?
|
83
|
+
|
84
|
+
all_in_release="https://#{server}/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3d+CTII+and+fixVersion+%3d+#{release}+and+status+%3d+%22Todo/User+Story%22+and+type+!%3d+%22Automated+Test%22+order+by+priority"
|
85
|
+
all_jira = JiraQuery.new url: all_in_release
|
86
|
+
all_jira.process
|
87
|
+
|
88
|
+
puts "IN #{release}"
|
89
|
+
puts all_jira.issues
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jira_cmd
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- John Brosnan
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-07-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: nokogiri
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.5.9
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.9
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: mixlib-cli
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.2.2
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.2.2
|
46
|
+
description: Just a litte script to query Jira from the command line
|
47
|
+
email: john@thepond.com
|
48
|
+
executables:
|
49
|
+
- jira
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- lib/jira_cmd.rb
|
54
|
+
- bin/jira
|
55
|
+
homepage: ''
|
56
|
+
licenses:
|
57
|
+
- MIT
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ! '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 1.8.23
|
77
|
+
signing_key:
|
78
|
+
specification_version: 3
|
79
|
+
summary: Command line interface for interacting with Jira
|
80
|
+
test_files: []
|