svn-hook-tools 0.5.8 → 0.5.9

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/Rakefile CHANGED
@@ -13,8 +13,8 @@ begin
13
13
  gem.homepage = "http://github.com/crazycode/svn-hooks"
14
14
  gem.authors = ["crazycode"]
15
15
 
16
- # gem.add_dependency "soap4r"
17
- gem.add_dependency "rubyjedi-soap4r", "~> 1.5.8.20100619003610"
16
+ gem.add_dependency "soap4r-ruby1.9"
17
+ # gem.add_dependency "rubyjedi-soap4r", "~> 1.5.8.20100619003610"
18
18
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
19
19
  end
20
20
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.8
1
+ 0.5.9
@@ -1,29 +1,29 @@
1
1
  require 'logger'
2
2
  require 'rubygems'
3
- gem 'soap4r'
3
+ gem 'soap4r-ruby1.9'
4
4
 
5
5
  module Jira4R
6
-
6
+
7
7
  class JiraTool
8
8
  attr_accessor :enhanced
9
-
9
+
10
10
  # Create a new JiraTool
11
- #
11
+ #
12
12
  # where:
13
13
  # version ... the version of the SOAP API you wish to use - currently supported versions [ 2 ]
14
14
  # base_url ... the base URL of the JIRA instance - eg. http://confluence.atlassian.com
15
15
  def initialize(version, base_url)
16
16
  @version = version
17
- @base_url = base_url
17
+ @base_url = base_url
18
18
  @logger = Logger.new(STDERR)
19
19
  @endpoint_url = "#{@base_url}/rpc/soap/jirasoapservice-v#{version}"
20
20
  end
21
-
21
+
22
22
  #Assign a new logger to the tool. By default a STDERR logger is used.
23
23
  def logger=(logger)
24
24
  @logger = logger
25
25
  end
26
-
26
+
27
27
  #Retrieve the driver, creating as required.
28
28
  def driver()
29
29
  if not @driver
@@ -32,7 +32,7 @@ module Jira4R
32
32
  require "jira4r/v#{@version}/jiraService.rb"
33
33
  require "jira4r/v#{@version}/JiraSoapServiceDriver.rb"
34
34
  require "jira4r/v#{@version}/jiraServiceMappingRegistry.rb"
35
-
35
+
36
36
  service_classname = "Jira4R::V#{@version}::JiraSoapService"
37
37
  puts "Service: #{service_classname}"
38
38
  service = eval(service_classname)
@@ -40,37 +40,37 @@ module Jira4R
40
40
  end
41
41
  @driver
42
42
  end
43
-
43
+
44
44
  #Assign a wiredump file prefix to the driver.
45
45
  def wiredump_file_base=(base)
46
46
  driver().wiredump_file_base = base
47
47
  end
48
-
49
-
50
- #Login to the JIRA instance, storing the token for later calls.
51
- #
48
+
49
+
50
+ #Login to the JIRA instance, storing the token for later calls.
51
+ #
52
52
  #This is typically the first call that is made on the JiraTool.
53
53
  def login(username, password)
54
54
  @token = driver().login(username, password)
55
55
  end
56
56
 
57
- #Clients should avoid using the authentication token directly.
57
+ #Clients should avoid using the authentication token directly.
58
58
  def token()
59
59
  @token
60
60
  end
61
-
61
+
62
62
  #Call a method on the driver, adding in the authentication token previously determined using login()
63
63
  def call_driver(method_name, *args)
64
64
  @logger.debug("Finding method #{method_name}")
65
- method = driver().method(method_name)
66
-
65
+ method = driver().method(method_name)
66
+
67
67
  if args.length > 0
68
- method.call(@token, *args)
68
+ method.call(@token, *args)
69
69
  else
70
70
  method.call(@token)
71
71
  end
72
72
  end
73
-
73
+
74
74
  #Retrieve a project without the associated PermissionScheme.
75
75
  #This will be significantly faster for larger Jira installations.
76
76
  #See: JRA-10660
@@ -78,17 +78,17 @@ module Jira4R
78
78
  puts "getProjectNoScheme is deprecated. Please call getProjectNoSchemes."
79
79
  getProjectNoSchemes(key)
80
80
  end
81
-
81
+
82
82
  def getProjectNoSchemes(key)
83
83
  self.getProjectsNoSchemes().find { |project| project.key == key }
84
84
  end
85
-
85
+
86
86
  def getProject(key)
87
87
  #Jira > 3.10 has been patched to support this method directly as getProjectByKey
88
88
  puts "Using deprecated JIRA4R API call getProject(key); replace with getProjectByKey(key)"
89
89
  return getProjectByKey(key)
90
90
  end
91
-
91
+
92
92
  def getProjectByKey( projectKey )
93
93
  begin
94
94
  return call_driver( "getProjectByKey", projectKey )
@@ -101,7 +101,7 @@ module Jira4R
101
101
  end
102
102
  end
103
103
  end
104
-
104
+
105
105
  def getGroup( groupName )
106
106
  begin
107
107
  return call_driver( "getGroup", groupName )
@@ -114,78 +114,78 @@ module Jira4R
114
114
  end
115
115
  end
116
116
  end
117
-
117
+
118
118
  def getProjectRoleByName( projectRoleName )
119
119
  getProjectRoles.each{ |projectRole|
120
120
  return projectRole if projectRole.name == projectRoleName
121
121
  }
122
122
  end
123
-
123
+
124
124
  def getPermissionScheme( permissionSchemeName )
125
- self.getPermissionSchemes().each { |permission_scheme|
125
+ self.getPermissionSchemes().each { |permission_scheme|
126
126
  return permission_scheme if permission_scheme.name == permissionSchemeName
127
127
  }
128
128
  return nil
129
129
  end
130
-
130
+
131
131
  def getNotificationScheme( notificationSchemeName )
132
- self.getNotificationSchemes().each { |notification_scheme|
132
+ self.getNotificationSchemes().each { |notification_scheme|
133
133
  return notification_scheme if notification_scheme.name == notificationSchemeName
134
134
  }
135
135
  return nil
136
136
  end
137
-
137
+
138
138
  def getPermission( permissionName )
139
139
  if not @permissions
140
140
  @permissions = self.getAllPermissions()
141
141
  end
142
-
142
+
143
143
  @permissions.each { |permission|
144
144
  return permission if permission.name.downcase == permissionName.downcase
145
145
  }
146
-
146
+
147
147
  @logger.warn("No permission #{permissionName} found")
148
148
  return nil
149
149
  end
150
-
150
+
151
151
  def findPermission(allowedPermissions, permissionName)
152
- allowedPermissions.each { |allowedPermission|
153
- #puts "Checking #{allowedPermission.name} against #{permissionName} "
154
- return allowedPermission if allowedPermission.name == permissionName
155
- }
156
- return nil
152
+ allowedPermissions.each { |allowedPermission|
153
+ #puts "Checking #{allowedPermission.name} against #{permissionName} "
154
+ return allowedPermission if allowedPermission.name == permissionName
155
+ }
156
+ return nil
157
157
  end
158
-
158
+
159
159
  def findEntityInPermissionMapping(permissionMapping, entityName)
160
160
  permissionMapping.remoteEntities.each { |entity|
161
- return entity if entity.name == entityName
162
- }
163
- return nil
164
- end
165
-
161
+ return entity if entity.name == entityName
162
+ }
163
+ return nil
164
+ end
165
+
166
166
  #Removes entity
167
167
  def setPermissions( permissionScheme, allowedPermissions, entity)
168
168
  allowedPermissions = [ allowedPermissions ].flatten.compact
169
169
  #Remove permissions that are no longer allowed
170
170
  permissionScheme.permissionMappings.each { |mapping|
171
171
  next unless findEntityInPermissionMapping(mapping, entity.name)
172
-
172
+
173
173
  allowedPermission = findPermission(allowedPermissions, mapping.permission.name)
174
- if allowedPermission
175
- puts "Already has #{allowedPermission.name} in #{permissionScheme.name} for #{entity.name}"
176
- allowedPermissions.delete(allowedPermission)
177
- next
178
- end
174
+ if allowedPermission
175
+ puts "Already has #{allowedPermission.name} in #{permissionScheme.name} for #{entity.name}"
176
+ allowedPermissions.delete(allowedPermission)
177
+ next
178
+ end
179
179
 
180
- puts "Deleting #{mapping.permission.name} from #{permissionScheme.name} for #{entity.name}"
180
+ puts "Deleting #{mapping.permission.name} from #{permissionScheme.name} for #{entity.name}"
181
181
  deletePermissionFrom( permissionScheme, mapping.permission, entity)
182
182
  }
183
-
183
+
184
184
  puts allowedPermissions.inspect
185
185
  allowedPermissions.each { |allowedPermission|
186
- puts "Granting #{allowedPermission.name} to #{permissionScheme.name} for #{entity.name}"
187
- addPermissionTo(permissionScheme, allowedPermission, entity)
188
- }
186
+ puts "Granting #{allowedPermission.name} to #{permissionScheme.name} for #{entity.name}"
187
+ addPermissionTo(permissionScheme, allowedPermission, entity)
188
+ }
189
189
  end
190
190
 
191
191
  private
@@ -198,14 +198,14 @@ private
198
198
  end
199
199
  }
200
200
  end
201
-
201
+
202
202
  def method_missing(method_name, *args)
203
203
  args = fix_args(args)
204
204
  call_driver(method_name, *args)
205
205
  end
206
-
207
-
208
-
209
- end
206
+
207
+
208
+
209
+ end
210
210
 
211
211
  end
@@ -4,14 +4,6 @@ require "yaml"
4
4
 
5
5
  class JiraHook
6
6
 
7
- def initialize(base_url = nil)
8
- @jira = ::Jira4R::JiraTool.new(2, base_url) unless base_url.nil?
9
- end
10
-
11
- def login(user, pass)
12
- @jira.login(user, pass)
13
- end
14
-
15
7
  def self.init(config = nil)
16
8
  if config
17
9
  @@config = config
@@ -20,9 +12,17 @@ class JiraHook
20
12
  end
21
13
  end
22
14
 
15
+ def self.configuration
16
+ if defined?(SVN_HOOKS_CONFIG_PATH)
17
+ config_file = SVN_HOOKS_CONFIG_PATH
18
+ else
19
+ config_file = '/etc/svn_hooks.yml'
20
+ end
21
+
22
+ YAML::load(IO.read(config_file))
23
+ end
23
24
 
24
25
  def self.check(keyprefix, argv, config = nil)
25
- #self.init(nil)
26
26
  repo_path = argv[0]
27
27
  transaction = argv[1]
28
28
  svnlook = 'svnlook'
@@ -42,6 +42,8 @@ class JiraHook
42
42
  check_log(commit_author, commit_log, keyprefix, config)
43
43
  end
44
44
 
45
+ private
46
+
45
47
  def self.check_log(commit_author, commit_log, keyprefix, config = nil)
46
48
  if config
47
49
  jira_configuration = config
@@ -50,14 +52,24 @@ class JiraHook
50
52
  jira_configuration = configuration()
51
53
  end
52
54
 
53
- jira = JiraHook.new(jira_configuration['jira_url'])
54
- jira.login(jira_configuration['jira_username'], jira_configuration['jira_password'])
55
+ @jira = JiraProxy.new(jira_configuration['jira_url'])
56
+ @jira.login(jira_configuration['jira_username'], jira_configuration['jira_password'])
55
57
 
56
- unless jira.check_right(commit_author, keyprefix, commit_log)
58
+ unless @jira.check_right(commit_author, keyprefix, commit_log)
57
59
  STDERR.puts("Doesn't exist as a issue on Jira!\n: #{keyprefix}-10: 修改说明")
58
60
  exit(1)
59
61
  end
62
+ end
60
63
 
64
+ end
65
+
66
+ class JiraProxy
67
+ def initialize(base_url = nil)
68
+ @jira = ::Jira4R::JiraTool.new(2, base_url) unless base_url.nil?
69
+ end
70
+
71
+ def login(user, pass)
72
+ @jira.login(user, pass)
61
73
  end
62
74
 
63
75
  # check the message is match the issue_key_regex
@@ -99,16 +111,4 @@ class JiraHook
99
111
  end
100
112
  end
101
113
 
102
- def self.configuration
103
- if defined?(SVN_HOOKS_CONFIG_PATH)
104
- config_file = SVN_HOOKS_CONFIG_PATH
105
- else
106
- config_file = '/etc/svn_hooks.yml'
107
- end
108
-
109
- YAML::load(IO.read(config_file))
110
- end
111
-
112
114
  end
113
-
114
-
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "svn-hook-tools"
8
- s.version = "0.5.8"
8
+ s.version = "0.5.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["crazycode"]
12
- s.date = "2012-01-04"
12
+ s.date = "2012-01-05"
13
13
  s.description = "svn jira hook ruby lib."
14
14
  s.email = "crazycode@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -45,12 +45,12 @@ Gem::Specification.new do |s|
45
45
  s.specification_version = 3
46
46
 
47
47
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
- s.add_runtime_dependency(%q<rubyjedi-soap4r>, ["~> 1.5.8.20100619003610"])
48
+ s.add_runtime_dependency(%q<soap4r-ruby1.9>, [">= 0"])
49
49
  else
50
- s.add_dependency(%q<rubyjedi-soap4r>, ["~> 1.5.8.20100619003610"])
50
+ s.add_dependency(%q<soap4r-ruby1.9>, [">= 0"])
51
51
  end
52
52
  else
53
- s.add_dependency(%q<rubyjedi-soap4r>, ["~> 1.5.8.20100619003610"])
53
+ s.add_dependency(%q<soap4r-ruby1.9>, [">= 0"])
54
54
  end
55
55
  end
56
56
 
@@ -1,4 +1,4 @@
1
1
  require 'rubygems'
2
2
  require 'test/unit'
3
- require 'svn_hook_tools'
4
- #require File.dirname(__FILE__) + '/../lib/svn_hook_tools'
3
+ # require 'svn_hook_tools'
4
+ require File.dirname(__FILE__) + '/../lib/svn_hook_tools'
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require File.dirname(__FILE__) + '/test_helper'
2
2
 
3
3
  SVN_HOOKS_CONFIG_PATH = File.dirname(__FILE__) + '/config/svn_hooks.yml'
4
4
 
@@ -30,6 +30,9 @@ class TestJira < Test::Unit::TestCase
30
30
 
31
31
  def test_check_jira
32
32
  # JiraHook.check_log("tangliqun", "Message-99:hello", 'Message')
33
+ jira = JiraHook.new('http://dev.uhuila.cn/jira')
34
+ jira.login('daemon', '1qaz@WSX#EDC')
35
+
33
36
  end
34
37
 
35
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svn-hook-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
4
+ version: 0.5.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,19 +9,19 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-04 00:00:00.000000000 Z
12
+ date: 2012-01-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rubyjedi-soap4r
16
- requirement: &17442420 !ruby/object:Gem::Requirement
15
+ name: soap4r-ruby1.9
16
+ requirement: &6176920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.5.8.20100619003610
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *17442420
24
+ version_requirements: *6176920
25
25
  description: svn jira hook ruby lib.
26
26
  email: crazycode@gmail.com
27
27
  executables: []