devtools-jdiff 1.0.0 → 1.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/.travis.yml +2 -2
- data/devtools-jdiff.gemspec +8 -8
- data/lib/jira_diff.rb +1 -1
- data/lib/jira_diff/git.rb +3 -3
- data/lib/jira_diff/stories.rb +10 -8
- data/lib/jira_diff/story.rb +17 -24
- data/lib/jira_diff/{globals.rb → version.rb} +1 -1
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0724457fede3383a2e9653e143980b65e38f309
|
4
|
+
data.tar.gz: db10e913a6fafc9859d761070fd6f0ae06b26574
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c5eed3c6442333d79b3b6ce1a4ecb0ec4c0cffb65bb5f16c05e5e0dc4ed82d4f86918f1999642a2787d63f6b1aeda114171c43b7d4cf32e42ab483a29743cc2
|
7
|
+
data.tar.gz: b4be7bd611b3426ef1785541729224faffe7817c6273968994e3f517604b2d81e70765a6758646be24494c45c091ae719e0f23ecfde0e1f62d47b04d23b5503e
|
data/.travis.yml
CHANGED
data/devtools-jdiff.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require "jira_diff/
|
4
|
+
require "jira_diff/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "devtools-jdiff"
|
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_dependency "config", "~> 1.
|
25
|
-
spec.add_dependency "octokit", "~> 4.
|
24
|
+
spec.add_dependency "config", "~> 1.4"
|
25
|
+
spec.add_dependency "octokit", "~> 4.6"
|
26
26
|
spec.add_dependency "devtools-base", "~> 2.0"
|
27
27
|
|
28
|
-
spec.add_development_dependency "bundler", "~> 1.
|
29
|
-
spec.add_development_dependency "rake", "~>
|
30
|
-
spec.add_development_dependency "rspec", "~> 3.
|
31
|
-
spec.add_development_dependency "pry", "~> 0.
|
32
|
-
spec.add_development_dependency "factory_girl", "~> 4.
|
28
|
+
spec.add_development_dependency "bundler", "~> 1.14"
|
29
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
30
|
+
spec.add_development_dependency "rspec", "~> 3.5"
|
31
|
+
spec.add_development_dependency "pry", "~> 0.10"
|
32
|
+
spec.add_development_dependency "factory_girl", "~> 4.8"
|
33
33
|
end
|
data/lib/jira_diff.rb
CHANGED
data/lib/jira_diff/git.rb
CHANGED
@@ -12,18 +12,18 @@ module JIRADiff
|
|
12
12
|
|
13
13
|
def log(branch)
|
14
14
|
raise RuntimeError, "Invalid branch: #{branch}" unless branch_valid? branch
|
15
|
-
run_command("\\git --no-pager log --no-merges --pretty='%H|%
|
15
|
+
run_command("\\git --no-pager log --no-merges --pretty='%H|%B\1' #{branch}").split("\1")
|
16
16
|
end
|
17
17
|
|
18
18
|
def branch_valid?(branch)
|
19
|
-
run_command("\\git branch --all --list #{branch}")[0] =~ /#{branch}/
|
19
|
+
run_command("\\git branch --all --list #{branch}").split("/n")[0] =~ /#{branch}/
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def run_command(cmd)
|
25
25
|
Open3.popen3(cmd, chdir: @working_dir) do |_i, o, _e, _t|
|
26
|
-
o.read
|
26
|
+
o.read
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/lib/jira_diff/stories.rb
CHANGED
@@ -5,11 +5,11 @@ module JIRADiff
|
|
5
5
|
class Stories
|
6
6
|
|
7
7
|
def initialize(opts = Options.defaults)
|
8
|
-
@branches
|
8
|
+
@branches = _get_branches(opts[:master], opts[:source])
|
9
9
|
@directory = opts[:directory] || '.'
|
10
|
-
@includes
|
11
|
-
@options
|
12
|
-
@stories
|
10
|
+
@includes = _get_includes(opts.includes)
|
11
|
+
@options = opts
|
12
|
+
@stories = opts[:stories] || {}
|
13
13
|
|
14
14
|
_get_stories if @stories == {}
|
15
15
|
end
|
@@ -43,7 +43,7 @@ module JIRADiff
|
|
43
43
|
|
44
44
|
def master=(new_master)
|
45
45
|
@stories[master] = []
|
46
|
-
@branches[0]
|
46
|
+
@branches[0] = new_master
|
47
47
|
_get_stories(new_master)
|
48
48
|
end
|
49
49
|
|
@@ -77,14 +77,14 @@ module JIRADiff
|
|
77
77
|
|
78
78
|
def diff
|
79
79
|
stories = []
|
80
|
-
opts
|
80
|
+
opts = @options
|
81
81
|
|
82
82
|
source_stories.each do |story|
|
83
83
|
stories << story unless find(master, story.sha)
|
84
84
|
end
|
85
85
|
|
86
|
-
opts.source
|
87
|
-
opts.stories = {'diff' => stories.flatten}
|
86
|
+
opts.source = ['diff']
|
87
|
+
opts.stories = { 'diff' => stories.flatten }
|
88
88
|
Stories.new opts
|
89
89
|
end
|
90
90
|
|
@@ -112,6 +112,8 @@ module JIRADiff
|
|
112
112
|
branches.to_a.each do |branch|
|
113
113
|
puts "checking #{branch}" if @options.debug
|
114
114
|
git.log(branch).each do |line|
|
115
|
+
line.strip!
|
116
|
+
next if line.empty?
|
115
117
|
add_story branch, Story.new(line)
|
116
118
|
end
|
117
119
|
end
|
data/lib/jira_diff/story.rb
CHANGED
@@ -1,31 +1,28 @@
|
|
1
1
|
module JIRADiff
|
2
2
|
|
3
3
|
class Story
|
4
|
-
def initialize(
|
5
|
-
unless story =~ /\
|
6
|
-
raise ArgumentError,
|
4
|
+
def initialize(story)
|
5
|
+
unless story =~ /\w{40}|.*/
|
6
|
+
raise ArgumentError, 'story must follow "SHA|description" format'
|
7
7
|
end
|
8
8
|
|
9
|
-
@sha,
|
9
|
+
@sha, description = story.split("|")
|
10
|
+
@stories, @description = split_story description
|
10
11
|
|
11
12
|
raise ArgumentError if @sha.nil? || @description.nil?
|
12
13
|
end
|
13
|
-
attr_reader :sha
|
14
14
|
|
15
|
-
|
16
|
-
raise RuntimeError 'description cannot be blank' unless description
|
15
|
+
attr_reader :sha, :stories, :description
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
line = description.match(story_pattern)
|
17
|
+
def split_story(description)
|
18
|
+
raise RuntimeError, "description cannot be blank" unless description
|
21
19
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
20
|
+
stories = []
|
21
|
+
story_pattern = /\[?(((SRMPRT|OSMCLOUD)\-\d+)|NO-JIRA)\]?[,:\-\s]?\s*(.*)$/m
|
22
|
+
line = description.match(story_pattern)
|
23
|
+
|
24
|
+
stories.push line ? line.captures[0] : "JIRA-NOT-FOUND"
|
25
|
+
desc = (line ? line.captures[3] : description).strip
|
29
26
|
|
30
27
|
# Perform recursion if there are multiple tickets in the description
|
31
28
|
if desc =~ story_pattern
|
@@ -37,16 +34,12 @@ module JIRADiff
|
|
37
34
|
[stories.flatten, desc]
|
38
35
|
end
|
39
36
|
|
40
|
-
def
|
41
|
-
(
|
42
|
-
end
|
43
|
-
|
44
|
-
def desc
|
45
|
-
(split_story)[1]
|
37
|
+
def subject
|
38
|
+
@description.split("\n")[0].gsub(/[*:-]/, " ").strip rescue "No Description Provided"
|
46
39
|
end
|
47
40
|
|
48
41
|
def to_s
|
49
|
-
|
42
|
+
"[%07.07s] %-14s - %.80s" % [sha, stories.join(", "), subject]
|
50
43
|
end
|
51
44
|
|
52
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devtools-jdiff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Donovan Young
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: config
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: octokit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '4.
|
33
|
+
version: '4.6'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '4.
|
40
|
+
version: '4.6'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: devtools-base
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,70 +58,70 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.14'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.14'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '12.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '12.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '3.
|
89
|
+
version: '3.5'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '3.
|
96
|
+
version: '3.5'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: pry
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0.
|
103
|
+
version: '0.10'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0.
|
110
|
+
version: '0.10'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: factory_girl
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '4.
|
117
|
+
version: '4.8'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '4.
|
124
|
+
version: '4.8'
|
125
125
|
description: Looks for JIRA stories within the commits in a git repositoryand compares
|
126
126
|
branches to find stories included in one branchbut not another
|
127
127
|
email:
|
@@ -146,10 +146,10 @@ files:
|
|
146
146
|
- exe/jdiff
|
147
147
|
- lib/jira_diff.rb
|
148
148
|
- lib/jira_diff/git.rb
|
149
|
-
- lib/jira_diff/globals.rb
|
150
149
|
- lib/jira_diff/options.rb
|
151
150
|
- lib/jira_diff/stories.rb
|
152
151
|
- lib/jira_diff/story.rb
|
152
|
+
- lib/jira_diff/version.rb
|
153
153
|
homepage: https://github.com/dyoung522/devtools-jdiff
|
154
154
|
licenses:
|
155
155
|
- MIT
|
@@ -170,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
170
|
version: '0'
|
171
171
|
requirements: []
|
172
172
|
rubyforge_project:
|
173
|
-
rubygems_version: 2.
|
173
|
+
rubygems_version: 2.6.8
|
174
174
|
signing_key:
|
175
175
|
specification_version: 4
|
176
176
|
summary: Compares git branches, searching for JIRA stories
|