ruby-bugzilla 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +1 -1
- data/bin/bzconsole +7 -8
- data/lib/bugzilla/bugzilla.rb +1 -1
- data/lib/bugzilla/bugzilla.rb~ +161 -0
- data/lib/bugzilla/skeleton.rb +2 -2
- data/lib/bugzilla/skeleton.rb~ +48 -0
- data/lib/bugzilla/user.rb +40 -15
- data/lib/bugzilla/user.rb~ +138 -0
- data/lib/bugzilla/version.rb +2 -2
- data/lib/bugzilla/version.rb~ +31 -0
- data/lib/bugzilla/xmlrpc.rb +28 -4
- data/lib/bugzilla/xmlrpc.rb~ +100 -0
- data/lib/ruby-bugzilla/rhbugzilla.rb +4 -6
- metadata +21 -28
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0307f396074f4bfc609205e13921d0998140cdaf
|
4
|
+
data.tar.gz: db4d1be9d736eb65ee0e71076bb9a4b03181b720
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: af978391061ce95cce0f9e8ff1099f710861eee3800d634a6ef352e6a6530197bb0a93fa9e06899adea6786f83f52914fe48acdef4b6c21ad05edf61417f74e9
|
7
|
+
data.tar.gz: f3c22d1e96bae90fca980d7ba769771263bdb350ee4531e5c6ad8f16f5317bb028bedea651b74d4313401bd82619e8c6535c75ff28f2b5fec36f12e929a08241
|
data/README.rdoc
CHANGED
data/bin/bzconsole
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
# bzconsole
|
4
|
-
# Copyright (C) 2010-
|
4
|
+
# Copyright (C) 2010-2014 Red Hat, Inc.
|
5
5
|
#
|
6
6
|
# Authors:
|
7
7
|
# Akira TAGOH <tagoh@redhat.com>
|
@@ -215,7 +215,7 @@ module BzConsole
|
|
215
215
|
proxy_host, proxy_port = get_proxy(info)
|
216
216
|
timeout = opts[:timeout].nil? ? 60 : opts[:timeout]
|
217
217
|
|
218
|
-
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout)
|
218
|
+
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout, uri.user, uri.password)
|
219
219
|
user = Bugzilla::User.new(xmlrpc)
|
220
220
|
begin
|
221
221
|
result = user.login({'login'=>login, 'password'=>pass, 'remember'=>true})
|
@@ -321,7 +321,7 @@ module BzConsole
|
|
321
321
|
|
322
322
|
@plugin.run(:pre, host, :getbug, opts)
|
323
323
|
|
324
|
-
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout)
|
324
|
+
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout, uri.user, uri.password)
|
325
325
|
user = Bugzilla::User.new(xmlrpc)
|
326
326
|
user.session(login, pass) do
|
327
327
|
bug = Bugzilla::Bug.new(xmlrpc)
|
@@ -435,7 +435,7 @@ module BzConsole
|
|
435
435
|
|
436
436
|
@plugin.run(:pre, host, :search, opts[:command][:query])
|
437
437
|
|
438
|
-
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout)
|
438
|
+
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout, uri.user, uri.password)
|
439
439
|
user = Bugzilla::User.new(xmlrpc)
|
440
440
|
user.session(login, pass) do
|
441
441
|
bug = Bugzilla::Bug.new(xmlrpc)
|
@@ -514,7 +514,7 @@ module BzConsole
|
|
514
514
|
|
515
515
|
@plugin.run(:pre, host, :show, opts)
|
516
516
|
|
517
|
-
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout)
|
517
|
+
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout, uri.user, uri.password)
|
518
518
|
user = Bugzilla::User.new(xmlrpc)
|
519
519
|
user.session(login, pass) do
|
520
520
|
if opts[:command][:show][:mode] == :field then
|
@@ -524,7 +524,6 @@ module BzConsole
|
|
524
524
|
|
525
525
|
@plugin.run(:post, host, :show, result)
|
526
526
|
|
527
|
-
pp result
|
528
527
|
else
|
529
528
|
product = Bugzilla::Product.new(xmlrpc)
|
530
529
|
|
@@ -678,7 +677,7 @@ module BzConsole
|
|
678
677
|
proxy_host, proxy_port = get_proxy(info)
|
679
678
|
timeout = opts[:timeout].nil? ? 60 : opts[:timeout]
|
680
679
|
|
681
|
-
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout)
|
680
|
+
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout, uri.user, uri.password)
|
682
681
|
user = Bugzilla::User.new(xmlrpc)
|
683
682
|
user.session(login, pass) do
|
684
683
|
bug = Bugzilla::Bug.new(xmlrpc)
|
@@ -862,7 +861,7 @@ module BzConsole
|
|
862
861
|
|
863
862
|
@plugin.run(:pre, host, :newbug, opts)
|
864
863
|
|
865
|
-
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout)
|
864
|
+
xmlrpc = Bugzilla::XMLRPC.new(host, port, path, proxy_host, proxy_port, timeout, uri.user, uri.password)
|
866
865
|
user = Bugzilla::User.new(xmlrpc)
|
867
866
|
user.session(login, pass) do
|
868
867
|
bug = Bugzilla::Bug.new(xmlrpc)
|
data/lib/bugzilla/bugzilla.rb
CHANGED
@@ -0,0 +1,161 @@
|
|
1
|
+
# bugzilla.rb
|
2
|
+
# Copyright (C) 2010-2012 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Authors:
|
5
|
+
# Akira TAGOH <tagoh@redhat.com>
|
6
|
+
#
|
7
|
+
# This library is free software: you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU Lesser General Public
|
9
|
+
# License as published by the Free Software Foundation, either
|
10
|
+
# version 3 of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This library is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
require 'bugzilla/skeleton'
|
21
|
+
|
22
|
+
module Bugzilla
|
23
|
+
|
24
|
+
=begin rdoc
|
25
|
+
|
26
|
+
=== Bugzilla::Bugzilla
|
27
|
+
|
28
|
+
Bugzilla::Bugzilla class is to access the
|
29
|
+
Bugzilla::WebService::Bugzilla API that provides functions
|
30
|
+
tell you about Bugzilla in general.
|
31
|
+
|
32
|
+
=end
|
33
|
+
|
34
|
+
class Bugzilla < Skeleton
|
35
|
+
|
36
|
+
=begin rdoc
|
37
|
+
|
38
|
+
==== Bugzilla::Bugzilla#check_version(version_)
|
39
|
+
|
40
|
+
Returns Array contains the result of the version check and
|
41
|
+
Bugzilla version that is running on.
|
42
|
+
|
43
|
+
=end
|
44
|
+
|
45
|
+
def check_version(version_)
|
46
|
+
v = version
|
47
|
+
f = false
|
48
|
+
if v.kind_of?(Hash) && v.include?("version") &&
|
49
|
+
v['version'] >= "#{version_}" then
|
50
|
+
f = true
|
51
|
+
end
|
52
|
+
|
53
|
+
[f, v['version']]
|
54
|
+
end # def check_version
|
55
|
+
|
56
|
+
=begin rdoc
|
57
|
+
|
58
|
+
==== Bugzilla::Bugzilla#requires_version(cmd, version_)
|
59
|
+
|
60
|
+
Raise an exception if the Bugzilla doesn't satisfy
|
61
|
+
the requirement of the _version_.
|
62
|
+
|
63
|
+
=end
|
64
|
+
|
65
|
+
def requires_version(cmd, version_)
|
66
|
+
v = check_version(version_)
|
67
|
+
raise NoMethodError, sprintf("%s is not supported in Bugzilla %s", cmd, v[1]) unless v[0]
|
68
|
+
end # def requires_version
|
69
|
+
|
70
|
+
=begin rdoc
|
71
|
+
|
72
|
+
==== Bugzilla::Bugzilla#version
|
73
|
+
|
74
|
+
Raw Bugzilla API to obtain the Bugzilla version.
|
75
|
+
|
76
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bugzilla.html
|
77
|
+
|
78
|
+
=end
|
79
|
+
|
80
|
+
=begin rdoc
|
81
|
+
|
82
|
+
==== Bugzilla::Bugzilla#extensions
|
83
|
+
|
84
|
+
Raw Bugzilla API to obtain the information about
|
85
|
+
the extensions that are currently installed and enabled in
|
86
|
+
the Bugzilla.
|
87
|
+
|
88
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bugzilla.html
|
89
|
+
|
90
|
+
=end
|
91
|
+
|
92
|
+
=begin rdoc
|
93
|
+
|
94
|
+
==== Bugzilla::Bugzilla#timezone
|
95
|
+
|
96
|
+
Raw Bugzilla API to obtain the timezone that Bugzilla
|
97
|
+
expects dates and times in.
|
98
|
+
|
99
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bugzilla.html
|
100
|
+
|
101
|
+
=end
|
102
|
+
|
103
|
+
=begin rdoc
|
104
|
+
|
105
|
+
==== Bugzilla::Bugzilla#time
|
106
|
+
|
107
|
+
Raw Bugzilla API to obtain the information about what time
|
108
|
+
the bugzilla server thinks it is, and what timezone it's
|
109
|
+
running on.
|
110
|
+
|
111
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bugzilla.html
|
112
|
+
|
113
|
+
=end
|
114
|
+
|
115
|
+
=begin rdoc
|
116
|
+
|
117
|
+
==== Bugzilla::Bugzilla#parameters
|
118
|
+
|
119
|
+
Raw Bugzilla API to obtain parameter values currently used in Bugzilla.
|
120
|
+
|
121
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bugzilla.html
|
122
|
+
|
123
|
+
=end
|
124
|
+
|
125
|
+
protected
|
126
|
+
|
127
|
+
def _version(cmd, *args)
|
128
|
+
@iface.call(cmd)
|
129
|
+
end # def _version
|
130
|
+
|
131
|
+
def _extensions(cmd, *args)
|
132
|
+
requires_version(cmd, 3.2)
|
133
|
+
|
134
|
+
@iface.call(cmd)
|
135
|
+
end # def _extensions
|
136
|
+
|
137
|
+
def _timezone(cmd, *args)
|
138
|
+
@iface.call(cmd)
|
139
|
+
end # def _timezone
|
140
|
+
|
141
|
+
def _time(cmd, *args)
|
142
|
+
requires_version(cmd, 3.4)
|
143
|
+
|
144
|
+
@iface.call(cmd)
|
145
|
+
end # def _time
|
146
|
+
|
147
|
+
def _parameters(cmd, *args)
|
148
|
+
requires_version(cmd, 4.4)
|
149
|
+
|
150
|
+
@iface.call(cmd)
|
151
|
+
end # def _parameters
|
152
|
+
|
153
|
+
def __last_audit_time(cmd, *args)
|
154
|
+
requires_version(cmd, 4.4)
|
155
|
+
|
156
|
+
# FIXME
|
157
|
+
end # def _last_audit_time
|
158
|
+
|
159
|
+
end # class Bugzilla
|
160
|
+
|
161
|
+
end # module Bugzilla
|
data/lib/bugzilla/skeleton.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# skeleton.rb
|
2
|
-
# Copyright (C) 2010-
|
2
|
+
# Copyright (C) 2010-2014 Red Hat, Inc.
|
3
3
|
#
|
4
4
|
# Authors:
|
5
5
|
# Akira TAGOH <tagoh@redhat.com>
|
@@ -36,7 +36,7 @@ module Bugzilla
|
|
36
36
|
m = "_#{symbol}"
|
37
37
|
klass = self.class.to_s.sub(/\ABugzilla::/, '')
|
38
38
|
fm = "#{klass}.#{symbol}"
|
39
|
-
if self.respond_to?(m) then
|
39
|
+
if self.respond_to?(m, true) then
|
40
40
|
__send__(m, fm, *args)
|
41
41
|
else
|
42
42
|
raise NoMethodError, sprintf("No such Bugzilla APIs: %s.%s", klass, symbol)
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# skeleton.rb
|
2
|
+
# Copyright (C) 2010-2012 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Authors:
|
5
|
+
# Akira TAGOH <tagoh@redhat.com>
|
6
|
+
#
|
7
|
+
# This library is free software: you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU Lesser General Public
|
9
|
+
# License as published by the Free Software Foundation, either
|
10
|
+
# version 3 of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This library is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
|
21
|
+
module Bugzilla
|
22
|
+
|
23
|
+
=begin rdoc
|
24
|
+
|
25
|
+
=== Bugzilla::Skeleton
|
26
|
+
|
27
|
+
=end
|
28
|
+
|
29
|
+
class Skeleton
|
30
|
+
|
31
|
+
def initialize(iface)
|
32
|
+
@iface = iface
|
33
|
+
end # def initialize
|
34
|
+
|
35
|
+
def method_missing(symbol, *args)
|
36
|
+
m = "_#{symbol}"
|
37
|
+
klass = self.class.to_s.sub(/\ABugzilla::/, '')
|
38
|
+
fm = "#{klass}.#{symbol}"
|
39
|
+
if self.respond_to?(m) then
|
40
|
+
__send__(m, fm, *args)
|
41
|
+
else
|
42
|
+
raise NoMethodError, sprintf("No such Bugzilla APIs: %s.%s", klass, symbol)
|
43
|
+
end
|
44
|
+
end # def method_missing
|
45
|
+
|
46
|
+
end # class Skeleton
|
47
|
+
|
48
|
+
end # module Bugzilla
|
data/lib/bugzilla/user.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# user.rb
|
2
|
-
# Copyright (C) 2010-
|
2
|
+
# Copyright (C) 2010-2014 Red Hat, Inc.
|
3
3
|
#
|
4
4
|
# Authors:
|
5
5
|
# Akira TAGOH <tagoh@redhat.com>
|
@@ -43,28 +43,48 @@ Keeps the bugzilla session during doing something in the block.
|
|
43
43
|
=end
|
44
44
|
|
45
45
|
def session(user, password)
|
46
|
-
|
46
|
+
r = check_version('4.4.3')
|
47
|
+
key = :cookie
|
48
|
+
if r[0] then
|
49
|
+
# Usisng tokens
|
50
|
+
key = :token
|
51
|
+
fname = File.join(ENV['HOME'], '.ruby-bugzilla-token.yml')
|
52
|
+
else
|
53
|
+
fname = File.join(ENV['HOME'], '.ruby-bugzilla-cookie.yml')
|
54
|
+
end
|
55
|
+
host = @iface.instance_variable_get(:@xmlrpc).instance_variable_get(:@host)
|
56
|
+
val = nil
|
57
|
+
|
47
58
|
if File.exist?(fname) && File.lstat(fname).mode & 0600 == 0600 then
|
48
59
|
conf = YAML.load(File.open(fname).read)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
60
|
+
val = conf[host]
|
61
|
+
else
|
62
|
+
conf = {}
|
63
|
+
end
|
64
|
+
if !val.nil? then
|
65
|
+
if key == :token then
|
66
|
+
print "Using token\n"
|
67
|
+
@iface.token = val
|
68
|
+
else
|
53
69
|
print "Using cookie\n"
|
54
|
-
|
55
|
-
conf[host] = @iface.cookie
|
56
|
-
File.open(fname, 'w') {|f| f.chmod(0600); f.write(conf.to_yaml)}
|
57
|
-
return
|
70
|
+
@iface.cookie = cookie
|
58
71
|
end
|
59
|
-
end
|
60
|
-
if user.nil? || password.nil? then
|
61
72
|
yield
|
73
|
+
elsif user.nil? || password.nil? then
|
74
|
+
yield
|
75
|
+
return
|
62
76
|
else
|
63
77
|
login({'login'=>user, 'password'=>password, 'remember'=>true})
|
64
78
|
yield
|
65
|
-
logout
|
66
79
|
end
|
67
|
-
|
80
|
+
if key == :token then
|
81
|
+
conf[host] = @iface.token
|
82
|
+
else
|
83
|
+
conf[host] = @iface.cookie
|
84
|
+
end
|
85
|
+
File.open(fname, 'w') {|f| f.chmod(0600); f.write(conf.to_yaml)}
|
86
|
+
|
87
|
+
return key
|
68
88
|
end # def session
|
69
89
|
|
70
90
|
=begin rdoc
|
@@ -92,7 +112,12 @@ See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html
|
|
92
112
|
def _login(cmd, *args)
|
93
113
|
raise ArgumentError, "Invalid parameters" unless args[0].kind_of?(Hash)
|
94
114
|
|
95
|
-
@iface.call(cmd,args[0])
|
115
|
+
res = @iface.call(cmd,args[0])
|
116
|
+
unless res['token'].nil? then
|
117
|
+
@iface.token = res['token']
|
118
|
+
end
|
119
|
+
|
120
|
+
return res
|
96
121
|
end # def _login
|
97
122
|
|
98
123
|
def _logout(cmd, *args)
|
@@ -0,0 +1,138 @@
|
|
1
|
+
# user.rb
|
2
|
+
# Copyright (C) 2010-2012 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Authors:
|
5
|
+
# Akira TAGOH <tagoh@redhat.com>
|
6
|
+
#
|
7
|
+
# This library is free software: you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU Lesser General Public
|
9
|
+
# License as published by the Free Software Foundation, either
|
10
|
+
# version 3 of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This library is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
require 'yaml'
|
21
|
+
require 'bugzilla/api_tmpl'
|
22
|
+
|
23
|
+
module Bugzilla
|
24
|
+
|
25
|
+
=begin rdoc
|
26
|
+
|
27
|
+
=== Bugzilla::User
|
28
|
+
|
29
|
+
Bugzilla::User class is to access the
|
30
|
+
Bugzilla::WebService::User API that allows you to create
|
31
|
+
User Accounts and log in/out using an existing account.
|
32
|
+
|
33
|
+
=end
|
34
|
+
|
35
|
+
class User < APITemplate
|
36
|
+
|
37
|
+
=begin rdoc
|
38
|
+
|
39
|
+
==== Bugzilla::User#session(user, password)
|
40
|
+
|
41
|
+
Keeps the bugzilla session during doing something in the block.
|
42
|
+
|
43
|
+
=end
|
44
|
+
|
45
|
+
def session(user, password)
|
46
|
+
r = check_version('4.4.3')
|
47
|
+
key = :cookie
|
48
|
+
if r[0] then
|
49
|
+
# Usisng tokens
|
50
|
+
key = :token
|
51
|
+
fname = File.join(ENV['HOME'], '.ruby-bugzilla-token.yml')
|
52
|
+
else
|
53
|
+
fname = File.join(ENV['HOME'], '.ruby-bugzilla-cookie.yml')
|
54
|
+
end
|
55
|
+
if File.exist?(fname) && File.lstat(fname).mode & 0600 == 0600 then
|
56
|
+
conf = YAML.load(File.open(fname).read)
|
57
|
+
host = @iface.instance_variable_get(:@xmlrpc).instance_variable_get(:@host)
|
58
|
+
val = conf[host]
|
59
|
+
unless val.nil? then
|
60
|
+
if key == :token then
|
61
|
+
print "Using token\n"
|
62
|
+
@iface.token = val
|
63
|
+
else
|
64
|
+
print "Using cookie\n"
|
65
|
+
@iface.cookie = cookie
|
66
|
+
end
|
67
|
+
yield
|
68
|
+
if key == :token then
|
69
|
+
conf[host] = @iface.token
|
70
|
+
else
|
71
|
+
conf[host] = @iface.cookie
|
72
|
+
end
|
73
|
+
File.open(fname, 'w') {|f| f.chmod(0600); f.write(conf.to_yaml)}
|
74
|
+
return
|
75
|
+
end
|
76
|
+
end
|
77
|
+
if user.nil? || password.nil? then
|
78
|
+
yield
|
79
|
+
else
|
80
|
+
login({'login'=>user, 'password'=>password, 'remember'=>true})
|
81
|
+
yield
|
82
|
+
logout
|
83
|
+
end
|
84
|
+
|
85
|
+
end # def session
|
86
|
+
|
87
|
+
=begin rdoc
|
88
|
+
|
89
|
+
==== Bugzilla::User#login(params)
|
90
|
+
|
91
|
+
Raw Bugzilla API to log into Bugzilla.
|
92
|
+
|
93
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html
|
94
|
+
|
95
|
+
=end
|
96
|
+
|
97
|
+
=begin rdoc
|
98
|
+
|
99
|
+
==== Bugzilla::User#logout
|
100
|
+
|
101
|
+
Raw Bugzilla API to log out the user.
|
102
|
+
|
103
|
+
See http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html
|
104
|
+
|
105
|
+
=end
|
106
|
+
|
107
|
+
protected
|
108
|
+
|
109
|
+
def _login(cmd, *args)
|
110
|
+
raise ArgumentError, "Invalid parameters" unless args[0].kind_of?(Hash)
|
111
|
+
|
112
|
+
@iface.call(cmd,args[0])
|
113
|
+
end # def _login
|
114
|
+
|
115
|
+
def _logout(cmd, *args)
|
116
|
+
@iface.call(cmd)
|
117
|
+
end # def _logout
|
118
|
+
|
119
|
+
def __offer_account_by_email(cmd, *args)
|
120
|
+
# FIXME
|
121
|
+
end # def _offer_account_by_email
|
122
|
+
|
123
|
+
def __create(cmd, *args)
|
124
|
+
# FIXME
|
125
|
+
end # def _create
|
126
|
+
|
127
|
+
def __update(cmd, *args)
|
128
|
+
# FIXME
|
129
|
+
end # def _update
|
130
|
+
|
131
|
+
def __get(cmd, *args)
|
132
|
+
requires_version(cmd, 3.4)
|
133
|
+
# FIXME
|
134
|
+
end # def _get
|
135
|
+
|
136
|
+
end # class User
|
137
|
+
|
138
|
+
end # module Bugzilla
|
data/lib/bugzilla/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# version.rb
|
2
|
-
# Copyright (C) 2010-
|
2
|
+
# Copyright (C) 2010-2014 Red Hat, Inc.
|
3
3
|
#
|
4
4
|
# Authors:
|
5
5
|
# Akira TAGOH <tagoh@redhat.com>
|
@@ -26,6 +26,6 @@
|
|
26
26
|
|
27
27
|
module Bugzilla
|
28
28
|
|
29
|
-
VERSION = "0.5.
|
29
|
+
VERSION = "0.5.3"
|
30
30
|
|
31
31
|
end # module Bugzilla
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# version.rb
|
2
|
+
# Copyright (C) 2010-2012 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Authors:
|
5
|
+
# Akira TAGOH <tagoh@redhat.com>
|
6
|
+
#
|
7
|
+
# This library is free software: you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU Lesser General Public
|
9
|
+
# License as published by the Free Software Foundation, either
|
10
|
+
# version 3 of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This library is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
|
21
|
+
=begin rdoc
|
22
|
+
|
23
|
+
== Bugzilla
|
24
|
+
|
25
|
+
=end
|
26
|
+
|
27
|
+
module Bugzilla
|
28
|
+
|
29
|
+
VERSION = "0.5.2"
|
30
|
+
|
31
|
+
end # module Bugzilla
|
data/lib/bugzilla/xmlrpc.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# xmlrpc.rb
|
2
|
-
# Copyright (C) 2010-
|
2
|
+
# Copyright (C) 2010-2014 Red Hat, Inc.
|
3
3
|
#
|
4
4
|
# Authors:
|
5
5
|
# Akira TAGOH <tagoh@redhat.com>
|
@@ -35,10 +35,13 @@ module Bugzilla
|
|
35
35
|
|
36
36
|
=end
|
37
37
|
|
38
|
-
def initialize(host, port = 443, path = '/xmlrpc.cgi', proxy_host = nil, proxy_port = nil, timeout = 60)
|
38
|
+
def initialize(host, port = 443, path = '/xmlrpc.cgi', proxy_host = nil, proxy_port = nil, timeout = 60, http_basic_auth_user = nil, http_basic_auth_pass = nil)
|
39
39
|
path ||= '/xmlrpc.cgi'
|
40
40
|
use_ssl = port == 443 ? true : false
|
41
|
-
@xmlrpc = ::XMLRPC::Client.new(host, path, port, proxy_host, proxy_port,
|
41
|
+
@xmlrpc = ::XMLRPC::Client.new(host, path, port, proxy_host, proxy_port, http_basic_auth_user, http_basic_auth_pass, use_ssl, timeout)
|
42
|
+
|
43
|
+
# workaround for https://bugs.ruby-lang.org/issues/8182
|
44
|
+
@xmlrpc.http_header_extra = {'accept-encoding' => 'identity'}
|
42
45
|
end # def initialize
|
43
46
|
|
44
47
|
=begin rdoc
|
@@ -51,6 +54,7 @@ module Bugzilla
|
|
51
54
|
params = {} if params.nil?
|
52
55
|
params['Bugzilla_login'] = user unless user.nil? || password.nil?
|
53
56
|
params['Bugzilla_password'] = password unless user.nil? || password.nil?
|
57
|
+
params['Bugzilla_token'] = @token unless @token.nil?
|
54
58
|
@xmlrpc.call(cmd, params)
|
55
59
|
end # def call
|
56
60
|
|
@@ -72,7 +76,27 @@ module Bugzilla
|
|
72
76
|
|
73
77
|
def cookie=(val)
|
74
78
|
@xmlrpc.cookie = val
|
75
|
-
end # def cookie
|
79
|
+
end # def cookie=
|
80
|
+
|
81
|
+
=begin rdoc
|
82
|
+
|
83
|
+
==== Bugzilla::XMLRPC#token
|
84
|
+
|
85
|
+
=end
|
86
|
+
|
87
|
+
def token
|
88
|
+
@token
|
89
|
+
end # def token
|
90
|
+
|
91
|
+
=begin rdoc
|
92
|
+
|
93
|
+
==== Bugzilla::XMLRPC#token=(val)
|
94
|
+
|
95
|
+
=end
|
96
|
+
|
97
|
+
def token=(val)
|
98
|
+
@token = val
|
99
|
+
end # def token=
|
76
100
|
|
77
101
|
end # class XMLRPC
|
78
102
|
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# xmlrpc.rb
|
2
|
+
# Copyright (C) 2010-2012 Red Hat, Inc.
|
3
|
+
#
|
4
|
+
# Authors:
|
5
|
+
# Akira TAGOH <tagoh@redhat.com>
|
6
|
+
#
|
7
|
+
# This library is free software: you can redistribute it and/or
|
8
|
+
# modify it under the terms of the GNU Lesser General Public
|
9
|
+
# License as published by the Free Software Foundation, either
|
10
|
+
# version 3 of the License, or (at your option) any later version.
|
11
|
+
#
|
12
|
+
# This library is distributed in the hope that it will be useful,
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
# GNU General Public License for more details.
|
16
|
+
#
|
17
|
+
# You should have received a copy of the GNU General Public License
|
18
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
|
20
|
+
require 'xmlrpc/client'
|
21
|
+
|
22
|
+
module Bugzilla
|
23
|
+
|
24
|
+
=begin rdoc
|
25
|
+
|
26
|
+
=== Bugzilla::XMLRPC
|
27
|
+
|
28
|
+
=end
|
29
|
+
|
30
|
+
class XMLRPC
|
31
|
+
|
32
|
+
=begin rdoc
|
33
|
+
|
34
|
+
==== Bugzilla::XMLRPC#new(host, port = 443, path = '/xmlrpc.cgi', proxy_host = nil, proxy_port = nil)
|
35
|
+
|
36
|
+
=end
|
37
|
+
|
38
|
+
def initialize(host, port = 443, path = '/xmlrpc.cgi', proxy_host = nil, proxy_port = nil, timeout = 60, http_basic_auth_user = nil, http_basic_auth_pass = nil)
|
39
|
+
path ||= '/xmlrpc.cgi'
|
40
|
+
use_ssl = port == 443 ? true : false
|
41
|
+
@xmlrpc = ::XMLRPC::Client.new(host, path, port, proxy_host, proxy_port, http_basic_auth_user, http_basic_auth_pass, use_ssl, timeout)
|
42
|
+
end # def initialize
|
43
|
+
|
44
|
+
=begin rdoc
|
45
|
+
|
46
|
+
==== Bugzilla::XMLRPC#call(cmd, params, user = nil, password = nil)
|
47
|
+
|
48
|
+
=end
|
49
|
+
|
50
|
+
def call(cmd, params = {}, user = nil, password = nil)
|
51
|
+
params = {} if params.nil?
|
52
|
+
params['Bugzilla_login'] = user unless user.nil? || password.nil?
|
53
|
+
params['Bugzilla_password'] = password unless user.nil? || password.nil?
|
54
|
+
params['Bugzilla_token'] = @token unless user.nil? || @token.nil?
|
55
|
+
@xmlrpc.call(cmd, params)
|
56
|
+
end # def call
|
57
|
+
|
58
|
+
=begin rdoc
|
59
|
+
|
60
|
+
==== Bugzilla::XMLRPC#cookie
|
61
|
+
|
62
|
+
=end
|
63
|
+
|
64
|
+
def cookie
|
65
|
+
@xmlrpc.cookie
|
66
|
+
end # def cookie
|
67
|
+
|
68
|
+
=begin rdoc
|
69
|
+
|
70
|
+
==== Bugzilla::XMLRPC#cookie=(val)
|
71
|
+
|
72
|
+
=end
|
73
|
+
|
74
|
+
def cookie=(val)
|
75
|
+
@xmlrpc.cookie = val
|
76
|
+
end # def cookie=
|
77
|
+
|
78
|
+
=begin rdoc
|
79
|
+
|
80
|
+
==== Bugzilla::XMLRPC#token
|
81
|
+
|
82
|
+
=end
|
83
|
+
|
84
|
+
def token
|
85
|
+
@token
|
86
|
+
end # def token
|
87
|
+
|
88
|
+
=begin rdoc
|
89
|
+
|
90
|
+
==== Bugzilla::XMLRPC#token=(val)
|
91
|
+
|
92
|
+
=end
|
93
|
+
|
94
|
+
def token=(val)
|
95
|
+
@token = val
|
96
|
+
end # def token=
|
97
|
+
|
98
|
+
end # class XMLRPC
|
99
|
+
|
100
|
+
end # module Bugzilla
|
@@ -70,12 +70,10 @@ module Bugzilla
|
|
70
70
|
opts.delete(:summary)
|
71
71
|
end
|
72
72
|
if opts.include?(:cc) then
|
73
|
-
|
74
|
-
opts[:
|
75
|
-
|
76
|
-
|
77
|
-
opts[eval(":email#{i}")] = e
|
78
|
-
end
|
73
|
+
# CC should be parsed "any words" by default
|
74
|
+
opts[eval(":emailcc1")] = 1
|
75
|
+
opts[eval(":emailtype1")] = :anywordssubstr
|
76
|
+
opts[eval(":email1")] = opts[:cc]
|
79
77
|
opts.delete(:cc)
|
80
78
|
end
|
81
79
|
if opts.include?(:creation_time) then
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-bugzilla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
5
|
-
prerelease:
|
4
|
+
version: 0.5.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Akira TAGOH
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-09-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rspec
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,65 +27,57 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: gruff
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: highline
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rmagick
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: bundler
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '1.0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '1.0'
|
94
83
|
description: This aims to provide similar features to access to Bugzilla through WebService
|
@@ -101,13 +90,18 @@ extensions: []
|
|
101
90
|
extra_rdoc_files: []
|
102
91
|
files:
|
103
92
|
- lib/bugzilla/version.rb
|
93
|
+
- lib/bugzilla/bugzilla.rb~
|
104
94
|
- lib/bugzilla/product.rb
|
105
95
|
- lib/bugzilla/skeleton.rb
|
106
96
|
- lib/bugzilla/user.rb
|
107
97
|
- lib/bugzilla/xmlrpc.rb
|
98
|
+
- lib/bugzilla/xmlrpc.rb~
|
99
|
+
- lib/bugzilla/skeleton.rb~
|
108
100
|
- lib/bugzilla/group.rb
|
109
101
|
- lib/bugzilla/plugin.rb
|
102
|
+
- lib/bugzilla/version.rb~
|
110
103
|
- lib/bugzilla/bugzilla.rb
|
104
|
+
- lib/bugzilla/user.rb~
|
111
105
|
- lib/bugzilla/classification.rb
|
112
106
|
- lib/bugzilla/bug.rb
|
113
107
|
- lib/bugzilla/api_tmpl.rb
|
@@ -116,28 +110,27 @@ files:
|
|
116
110
|
- README.rdoc
|
117
111
|
- COPYING
|
118
112
|
- bin/bzconsole
|
119
|
-
homepage: http://rubygems.org/ruby-bugzilla
|
113
|
+
homepage: http://rubygems.org/gems/ruby-bugzilla
|
120
114
|
licenses: []
|
115
|
+
metadata: {}
|
121
116
|
post_install_message:
|
122
117
|
rdoc_options: []
|
123
118
|
require_paths:
|
124
119
|
- lib
|
125
120
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
-
none: false
|
127
121
|
requirements:
|
128
|
-
- -
|
122
|
+
- - '>='
|
129
123
|
- !ruby/object:Gem::Version
|
130
124
|
version: '0'
|
131
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
|
-
none: false
|
133
126
|
requirements:
|
134
|
-
- -
|
127
|
+
- - '>='
|
135
128
|
- !ruby/object:Gem::Version
|
136
129
|
version: 1.3.6
|
137
130
|
requirements: []
|
138
131
|
rubyforge_project:
|
139
|
-
rubygems_version: 1.
|
132
|
+
rubygems_version: 2.1.11
|
140
133
|
signing_key:
|
141
|
-
specification_version:
|
134
|
+
specification_version: 4
|
142
135
|
summary: Ruby binding for Bugzilla WebService APIs
|
143
136
|
test_files: []
|