tracker-git 0.0.3 → 0.0.4
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 +7 -0
- data/.gitignore +0 -1
- data/Gemfile.lock +69 -0
- data/README.md +6 -0
- data/bin/tracker +12 -1
- data/lib/tracker-git/deliverer.rb +2 -1
- data/lib/tracker-git/project.rb +6 -0
- data/lib/tracker-git/version.rb +1 -1
- data/spec/deliverer_spec.rb +14 -0
- data/spec/project_spec.rb +29 -0
- data/tracker-git.gemspec +1 -0
- metadata +22 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 73a17722e09a98741a2b270a4c3cb222a6b7ea02
|
4
|
+
data.tar.gz: 85e5c5168e6002be4cc8f486918d101bd7561eb1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 83d79a0250ade8e2fb51c72b449b214a19219edacdcfe55fa7b8c56d2ccee4beda374acebd4ce57ab424eb6af40e0809b6d9068456fe4bac80687d5ffcffe080
|
7
|
+
data.tar.gz: e739c358d8a5fcf378cbb7191ee01965a64415a8792981b25aab3898f8632e8411f9a416f3af76883f059edda2d4ef65d3dd083825b3e49bddeb421233e2f692
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
tracker-git (0.0.4)
|
5
|
+
pivotal-tracker (>= 0.5.10)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
builder (3.1.4)
|
11
|
+
coderay (1.0.8)
|
12
|
+
crack (0.3.1)
|
13
|
+
diff-lcs (1.1.3)
|
14
|
+
guard (1.5.4)
|
15
|
+
listen (>= 0.4.2)
|
16
|
+
lumberjack (>= 1.0.2)
|
17
|
+
pry (>= 0.9.10)
|
18
|
+
thor (>= 0.14.6)
|
19
|
+
guard-rspec (2.3.1)
|
20
|
+
guard (>= 1.1)
|
21
|
+
rspec (~> 2.11)
|
22
|
+
happymapper (0.4.0)
|
23
|
+
libxml-ruby (~> 2.0)
|
24
|
+
libxml-ruby (2.4.0)
|
25
|
+
listen (0.6.0)
|
26
|
+
lumberjack (1.0.2)
|
27
|
+
method_source (0.8.1)
|
28
|
+
mime-types (1.19)
|
29
|
+
nokogiri (1.5.5)
|
30
|
+
nokogiri-happymapper (0.5.6)
|
31
|
+
nokogiri (~> 1.5)
|
32
|
+
pivotal-tracker (0.5.10)
|
33
|
+
builder
|
34
|
+
crack
|
35
|
+
happymapper (>= 0.3.2)
|
36
|
+
nokogiri (>= 1.4.3)
|
37
|
+
nokogiri (>= 1.5.5)
|
38
|
+
nokogiri-happymapper (>= 0.5.4)
|
39
|
+
rest-client (~> 1.6.0)
|
40
|
+
pry (0.9.10)
|
41
|
+
coderay (~> 1.0.5)
|
42
|
+
method_source (~> 0.8)
|
43
|
+
slop (~> 3.3.1)
|
44
|
+
rake (10.0.3)
|
45
|
+
rest-client (1.6.7)
|
46
|
+
mime-types (>= 1.16)
|
47
|
+
rspec (2.12.0)
|
48
|
+
rspec-core (~> 2.12.0)
|
49
|
+
rspec-expectations (~> 2.12.0)
|
50
|
+
rspec-mocks (~> 2.12.0)
|
51
|
+
rspec-core (2.12.2)
|
52
|
+
rspec-expectations (2.12.0)
|
53
|
+
diff-lcs (~> 1.1.3)
|
54
|
+
rspec-mocks (2.12.0)
|
55
|
+
slop (3.3.3)
|
56
|
+
thor (0.16.0)
|
57
|
+
|
58
|
+
PLATFORMS
|
59
|
+
ruby
|
60
|
+
|
61
|
+
DEPENDENCIES
|
62
|
+
guard-rspec
|
63
|
+
happymapper
|
64
|
+
nokogiri
|
65
|
+
pivotal-tracker (>= 0.5.10)
|
66
|
+
rake
|
67
|
+
rest-client
|
68
|
+
rspec
|
69
|
+
tracker-git!
|
data/README.md
CHANGED
@@ -10,6 +10,7 @@ This has proved useful as part of a 'deploy to staging' strategy. If you automat
|
|
10
10
|
|
11
11
|
[](http://travis-ci.org/robb1e/tracker-git)
|
12
12
|
[](https://codeclimate.com/github/robb1e/tracker-git)
|
13
|
+
[](https://gemnasium.com/robb1e/tracker-git)
|
13
14
|
|
14
15
|
## Installation
|
15
16
|
|
@@ -34,6 +35,11 @@ delivered.
|
|
34
35
|
|
35
36
|
export TRACKER_PROJECT_ID=123456
|
36
37
|
export TRACKER_TOKEN=abc123
|
38
|
+
tracker
|
39
|
+
|
40
|
+
You can also pass the project id and token in as parameters
|
41
|
+
|
42
|
+
tracker 123456 abc123
|
37
43
|
|
38
44
|
Optionally you can specify a git branch to search for completed story IDs as
|
39
45
|
the third command line argument or with the GIT\_BRANCH environment variable.
|
data/bin/tracker
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
require 'optparse'
|
3
|
+
|
2
4
|
begin
|
3
5
|
require 'tracker-git'
|
4
6
|
rescue LoadError
|
@@ -6,6 +8,15 @@ rescue LoadError
|
|
6
8
|
require 'tracker-git'
|
7
9
|
end
|
8
10
|
|
11
|
+
options = {}
|
12
|
+
OptionParser.new do |opts|
|
13
|
+
opts.banner = "Usage: example.rb [options]"
|
14
|
+
|
15
|
+
opts.on("-l", "--label LABEL", "Add a label to a story marked as deployed") do |label|
|
16
|
+
options[:label] = label if label =~ /[^[:space:]]/
|
17
|
+
end
|
18
|
+
end.parse!
|
19
|
+
|
9
20
|
project_id, tracker_token, git_branch = \
|
10
21
|
if [2, 3].include? ARGV.size
|
11
22
|
ARGV
|
@@ -29,4 +40,4 @@ end
|
|
29
40
|
project = Tracker::Project.new(tracker_token, project_id)
|
30
41
|
git = Tracker::Git.new
|
31
42
|
deliverer = Tracker::Deliverer.new(project, git)
|
32
|
-
deliverer.mark_as_delivered(git_branch)
|
43
|
+
deliverer.mark_as_delivered(git_branch, options[:label])
|
@@ -6,13 +6,14 @@ module Tracker
|
|
6
6
|
@git = git
|
7
7
|
end
|
8
8
|
|
9
|
-
def mark_as_delivered(branch = nil)
|
9
|
+
def mark_as_delivered(branch = nil, label = nil)
|
10
10
|
options = {}
|
11
11
|
options[:branch] = branch if branch
|
12
12
|
|
13
13
|
project.finished.each do |story|
|
14
14
|
if git.contains?(story.id, options)
|
15
15
|
project.deliver(story)
|
16
|
+
project.add_label(story, label) if label
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
data/lib/tracker-git/project.rb
CHANGED
@@ -21,6 +21,12 @@ module Tracker
|
|
21
21
|
story.update(current_state: "delivered")
|
22
22
|
end
|
23
23
|
|
24
|
+
def add_label(story, label)
|
25
|
+
labels = (story.labels || "").split(",")
|
26
|
+
labels << label
|
27
|
+
story.update(labels: labels.join(","))
|
28
|
+
end
|
29
|
+
|
24
30
|
private
|
25
31
|
def _project
|
26
32
|
@project ||= PivotalTracker::Project.find(project_id)
|
data/lib/tracker-git/version.rb
CHANGED
data/spec/deliverer_spec.rb
CHANGED
@@ -35,6 +35,20 @@ describe Tracker::Deliverer do
|
|
35
35
|
deliverer.mark_as_delivered('develop')
|
36
36
|
end
|
37
37
|
end
|
38
|
+
|
39
|
+
context 'when given a label to add' do
|
40
|
+
it('should mark stories as delivered and add a label') do
|
41
|
+
project.should_receive(:finished) { finished_stories }
|
42
|
+
git.should_receive(:contains?).with(1, {}) { true }
|
43
|
+
git.should_receive(:contains?).with(2, {}) { false }
|
44
|
+
project.should_receive(:deliver).with(commited_story)
|
45
|
+
project.should_not_receive(:deliver).with(uncommited_story)
|
46
|
+
project.should_receive(:add_label).with(commited_story, 'label')
|
47
|
+
project.should_not_receive(:add_label).with(uncommited_story, 'label')
|
48
|
+
|
49
|
+
deliverer.mark_as_delivered(nil, 'label')
|
50
|
+
end
|
51
|
+
end
|
38
52
|
end
|
39
53
|
|
40
54
|
end
|
data/spec/project_spec.rb
CHANGED
@@ -43,4 +43,33 @@ describe Tracker::Project do
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
describe "#add_label" do
|
47
|
+
let(:project) { Tracker::Project.new(stub, stub) }
|
48
|
+
let(:story) { stub }
|
49
|
+
|
50
|
+
context 'there is no label on the story' do
|
51
|
+
it "adds a label" do
|
52
|
+
story.should_receive(:labels) { '' }
|
53
|
+
story.should_receive(:update).with(labels: 'label')
|
54
|
+
project.add_label(story, 'label')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'there is already one label on the story' do
|
59
|
+
it "adds a label" do
|
60
|
+
story.should_receive(:labels) { 'foo' }
|
61
|
+
story.should_receive(:update).with(labels: 'foo,label')
|
62
|
+
project.add_label(story, 'label')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context 'there is already two labels on the story' do
|
67
|
+
it "adds a label" do
|
68
|
+
story.should_receive(:labels) { 'foo,bar' }
|
69
|
+
story.should_receive(:update).with(labels: 'foo,bar,label')
|
70
|
+
project.add_label(story, 'label')
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
46
75
|
end
|
data/tracker-git.gemspec
CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.description = %q{Tracker integration: Update Tracker based on current Git repo.}
|
8
8
|
gem.summary = %q{Tracker integration.}
|
9
9
|
gem.homepage = ""
|
10
|
+
gem.license = 'MIT'
|
10
11
|
|
11
12
|
gem.add_runtime_dependency('pivotal-tracker', '>= 0.5.10')
|
12
13
|
gem.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,81 +1,72 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracker-git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Robbie Clutton
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-06-20 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: pivotal-tracker
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.5.10
|
22
20
|
type: :runtime
|
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
|
29
26
|
version: 0.5.10
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
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: :development
|
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: guard-rspec
|
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: :development
|
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: rake
|
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: :development
|
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
|
-
description:
|
69
|
+
description: 'Tracker integration: Update Tracker based on current Git repo.'
|
79
70
|
email:
|
80
71
|
- robert.clutton@gmail.com
|
81
72
|
executables:
|
@@ -83,10 +74,11 @@ executables:
|
|
83
74
|
extensions: []
|
84
75
|
extra_rdoc_files: []
|
85
76
|
files:
|
86
|
-
- .gitignore
|
87
|
-
- .rspec
|
88
|
-
- .travis.yml
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
79
|
+
- ".travis.yml"
|
89
80
|
- Gemfile
|
81
|
+
- Gemfile.lock
|
90
82
|
- Guardfile
|
91
83
|
- LICENSE
|
92
84
|
- README.md
|
@@ -103,34 +95,28 @@ files:
|
|
103
95
|
- spec/spec_helper.rb
|
104
96
|
- tracker-git.gemspec
|
105
97
|
homepage: ''
|
106
|
-
licenses:
|
98
|
+
licenses:
|
99
|
+
- MIT
|
100
|
+
metadata: {}
|
107
101
|
post_install_message:
|
108
102
|
rdoc_options: []
|
109
103
|
require_paths:
|
110
104
|
- lib
|
111
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
106
|
requirements:
|
114
|
-
- -
|
107
|
+
- - ">="
|
115
108
|
- !ruby/object:Gem::Version
|
116
109
|
version: '0'
|
117
|
-
segments:
|
118
|
-
- 0
|
119
|
-
hash: -4280214816853618428
|
120
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
111
|
requirements:
|
123
|
-
- -
|
112
|
+
- - ">="
|
124
113
|
- !ruby/object:Gem::Version
|
125
114
|
version: '0'
|
126
|
-
segments:
|
127
|
-
- 0
|
128
|
-
hash: -4280214816853618428
|
129
115
|
requirements: []
|
130
116
|
rubyforge_project:
|
131
|
-
rubygems_version:
|
117
|
+
rubygems_version: 2.2.2
|
132
118
|
signing_key:
|
133
|
-
specification_version:
|
119
|
+
specification_version: 4
|
134
120
|
summary: Tracker integration.
|
135
121
|
test_files:
|
136
122
|
- spec/deliverer_spec.rb
|