svn-hook-tools 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,21 @@
1
+ ################################################################################
2
+ # Copyright 2007 Codehaus Foundation #
3
+ # #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); #
5
+ # you may not use this file except in compliance with the License. #
6
+ # You may obtain a copy of the License at #
7
+ # #
8
+ # http://www.apache.org/licenses/LICENSE-2.0 #
9
+ # #
10
+ # Unless required by applicable law or agreed to in writing, software #
11
+ # distributed under the License is distributed on an "AS IS" BASIS, #
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
13
+ # See the License for the specific language governing permissions and #
14
+ # limitations under the License. #
15
+ ################################################################################
16
+
17
+ # This is a pointless file to get around the inflexibility of the WSDL2RUBY code.
18
+ #
19
+ # It appears to be impossible to get it to generate files into a useful directory structure
20
+ #
21
+ # Oh well...
@@ -0,0 +1,21 @@
1
+ ################################################################################
2
+ # Copyright 2007 Codehaus Foundation #
3
+ # #
4
+ # Licensed under the Apache License, Version 2.0 (the "License"); #
5
+ # you may not use this file except in compliance with the License. #
6
+ # You may obtain a copy of the License at #
7
+ # #
8
+ # http://www.apache.org/licenses/LICENSE-2.0 #
9
+ # #
10
+ # Unless required by applicable law or agreed to in writing, software #
11
+ # distributed under the License is distributed on an "AS IS" BASIS, #
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
13
+ # See the License for the specific language governing permissions and #
14
+ # limitations under the License. #
15
+ ################################################################################
16
+
17
+ # This is a pointless file to get around the inflexibility of the WSDL2RUBY code.
18
+ #
19
+ # It appears to be impossible to get it to generate files into a useful directory structure
20
+ #
21
+ # Oh well...
@@ -0,0 +1,77 @@
1
+ # encoding: utf-8
2
+ require "jira4r/jira_tool"
3
+
4
+
5
+ class JiraHook
6
+
7
+ def initialize(base_url)
8
+ @jira = ::Jira4R::JiraTool.new(2, base_url)
9
+ end
10
+
11
+ def login(user, pass)
12
+ @jira.login(user, pass)
13
+ end
14
+
15
+ def self.check(argv)
16
+ repo_path = argv[0]
17
+ transaction = argv[1]
18
+ svnlook = 'svnlook'
19
+
20
+ #commit_dirs_changed = `#{svnlook} dirs-changed #{repo_path} -t #{transaction}`
21
+ #commit_changed = `#{svnlook} changed #{repo_path} -t #{transaction}`
22
+ commit_author = `#{svnlook} author #{repo_path} -t #{transaction}`.chop
23
+ commit_log = `#{svnlook} log #{repo_path} -t #{transaction}`
24
+ #commit_diff = `#{svnlook} diff #{repo_path} -t #{transaction}`
25
+ #commit_date = `#{svnlook} date #{repo_path} -t #{transaction}`
26
+
27
+ if commit_log.nil? || commit_log.empty?
28
+ STDERR.puts("提交注释必须填写,而且需要包括分配给你的bug号!")
29
+ exit(1)
30
+ end
31
+
32
+ jira = JiraHook.new('http://192.168.0.3/jira')
33
+ jira.login('username', 'password')
34
+
35
+ unless jira.check_right(commit_author, '[Ss][Bb]', commit_log)
36
+ STDERR.puts("提交注释中必须包括分配给你的bug号!\n例如: SB-10: 修改说明")
37
+ exit(1)
38
+ end
39
+
40
+ end
41
+
42
+ # check the message is match the issue_key_regex
43
+ # and assign to the user
44
+ def check_right(username, issue_key_regex, message)
45
+ if message.nil? || message.empty?
46
+ return false
47
+ end
48
+ issue_id = getIssueNumber(message, issue_key_regex)
49
+ if issue_id.nil?
50
+ return false
51
+ end
52
+ has_right(username, issue_id)
53
+ end
54
+
55
+ def has_right(username, issue_id)
56
+ begin
57
+ issue = @jira.getIssue(issue_id)
58
+ if issue.assignee == username && issue.status == '3'
59
+ return true
60
+ else
61
+ return false
62
+ end
63
+ rescue SOAP::FaultError
64
+ return false
65
+ end
66
+ end
67
+
68
+ def getIssueNumber(message, keyreg)
69
+ re = Regexp.new("#{keyreg}-[0-9]+")
70
+ if message =~ re
71
+ "#{$&}".upcase
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+
data/pre-commit.sample ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+ require 'rubygems'
4
+ require 'rujira'
5
+
6
+ # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7
+ # new version
8
+
9
+ # /etc/jira-config
10
+ # -
11
+ # url: http://192.168.0.3/jira
12
+ # username: crazycode
13
+ # password: ******
14
+ require 'rubygems'
15
+ require 'svn_jira_hook'
16
+
17
+ # or JiraHook.setup(url, user, pass)
18
+
19
+ JiraHook.check(ARGV)
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/rujira'
4
+
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: svn-hook-tools
3
+ version: !ruby/object:Gem::Version
4
+ hash: 9
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 5
9
+ - 1
10
+ version: 0.5.1
11
+ platform: ruby
12
+ authors:
13
+ - crazycode
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-09 00:00:00 +08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: soap4r
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ description: svn jira hook ruby lib.
36
+ email: crazycode@gmail.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - LICENSE
43
+ - README
44
+ files:
45
+ - LICENSE
46
+ - README
47
+ - Rakefile
48
+ - lib/jira4r/jira4r.rb
49
+ - lib/jira4r/jira_tool.rb
50
+ - lib/jira4r/v2/JiraSoapServiceDriver.rb
51
+ - lib/jira4r/v2/jiraService.rb
52
+ - lib/jira4r/v2/jiraServiceMappingRegistry.rb
53
+ - lib/jiraService.rb
54
+ - lib/jiraServiceMappingRegistry.rb
55
+ - lib/svn_jira_hook.rb
56
+ - pre-commit.sample
57
+ - test/test_helper.rb
58
+ has_rdoc: true
59
+ homepage: http://github.com/crazycode/svn-hook-tools
60
+ licenses: []
61
+
62
+ post_install_message:
63
+ rdoc_options: []
64
+
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ hash: 3
82
+ segments:
83
+ - 0
84
+ version: "0"
85
+ requirements: []
86
+
87
+ rubyforge_project:
88
+ rubygems_version: 1.3.7
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: svn jira hook lib.
92
+ test_files: []
93
+