pivotal-github 1.2.0 → 1.2.2
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/README.md +1 -1
- data/lib/pivotal-github/story.rb +26 -1
- data/lib/pivotal-github/story_accept.rb +0 -9
- data/lib/pivotal-github/story_pull_request.rb +1 -9
- data/lib/pivotal-github/version.rb +1 -1
- data/spec/commands/story_commit_spec.rb +4 -2
- data/spec/commands/story_pull_request_spec.rb +2 -6
- data/spec/story_spec.rb +31 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 14cc1b18c4f212885bef01e59a3ec1afb2dee62b
|
|
4
|
+
data.tar.gz: 9db260b070a5e61863d5f1c6bf497291775ad79f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 121e1d1a29a105bf95adba4343c3c6456359549363f32e666f8d0e402e8d787d3d9d10b8313428c34a3e4fb01c04170d110a4188f667ad8fc337bde84548e0f8
|
|
7
|
+
data.tar.gz: da5c6538f8b44413c460de83da555c916a65301f1b5ad07c9ac865de5e4278c1182eb9fa1dbdfae2d14170d8313fc0e54c021bc0c5196b0d5deda44a93fb9434
|
data/README.md
CHANGED
|
@@ -115,7 +115,7 @@ Additionally, `git story-merge` accepts any options valid for `git merge`.
|
|
|
115
115
|
|
|
116
116
|
$ git story-pull-request
|
|
117
117
|
|
|
118
|
-
`git story-pull-request` issues a `git push-branch` as well (from [git-utils](https://github.com/mhartl/git-utils)), just in case the local branch hasn't yet been pushed up to the remote repository. For reference, it then makes a commit containing a message with links to all the delivered story ids. These ids
|
|
118
|
+
`git story-pull-request` issues a `git push-branch` as well (from [git-utils](https://github.com/mhartl/git-utils)), just in case the local branch hasn't yet been pushed up to the remote repository. For reference, it then makes a commit containing a message with links to all the delivered story ids. These ids consist of all the delivered stories that haven't already been delivered by a pull request.
|
|
119
119
|
|
|
120
120
|
As with `git story-merge`, by default `git story-pull-request` exits with a warning if the most recent commit doesn't finish the story.
|
|
121
121
|
|
data/lib/pivotal-github/story.rb
CHANGED
|
@@ -7,11 +7,36 @@ module Story
|
|
|
7
7
|
|
|
8
8
|
# Returns the ids of delivered stories found in the given text.
|
|
9
9
|
def delivered_ids(text)
|
|
10
|
-
delivered
|
|
10
|
+
delivered = text.scan(/\[Deliver(?:s|ed) (.*?)\]/).flatten
|
|
11
11
|
# Handle multiple ids, i.e., '[Delivers #<id 1> #<id 2>]'
|
|
12
12
|
delivered.inject([]) do |ids, element|
|
|
13
13
|
ids.concat(element.scan(/[0-9]{8,}/).flatten)
|
|
14
14
|
ids
|
|
15
15
|
end.uniq
|
|
16
16
|
end
|
|
17
|
+
|
|
18
|
+
# Returns the ids of delivered stories according to the Git log.
|
|
19
|
+
# These ids are of the form [Delivers #<story id>] or
|
|
20
|
+
# [Delivers #<story id> #<another story id>]. The difference is handled
|
|
21
|
+
# by the delivered_ids method.
|
|
22
|
+
def git_log_delivered_story_ids
|
|
23
|
+
delivered_ids(fast_log_delivered_text).uniq
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def fast_log_delivered_text
|
|
27
|
+
@delivered_text ||= `git log -E --grep '\\[Deliver(s|ed) #'`
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Returns the ids delivered since the last pull request.
|
|
31
|
+
# We omit the ids of stories that have already been delivered by a
|
|
32
|
+
# particular pull request, so that each new PR is only tagged with stories
|
|
33
|
+
# delivered since the *last* PR.
|
|
34
|
+
def delivered_ids_since_last_pr(text)
|
|
35
|
+
delivered_ids(text) - pr_ids(text)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Returns the ids included in previous pull requests.
|
|
39
|
+
def pr_ids(text)
|
|
40
|
+
text.scan(/\[Deliver(?:s|ed) #(.*?)\]\(https:\/\//).flatten.uniq
|
|
41
|
+
end
|
|
17
42
|
end
|
|
@@ -37,15 +37,6 @@ class StoryAccept < Command
|
|
|
37
37
|
git_log_delivered_story_ids & pivotal_tracker_delivered_story_ids
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
# Returns the ids of delivered stories according to the Git log.
|
|
41
|
-
# These ids are of the form [Delivers #<story id>] or
|
|
42
|
-
# [Delivers #<story id> #<another story id>]. The difference is handled
|
|
43
|
-
# by the delivered_ids method.
|
|
44
|
-
def git_log_delivered_story_ids
|
|
45
|
-
delivered_text = `git log -E --grep '\\[Deliver(s|ed) #'`
|
|
46
|
-
delivered_ids(delivered_text).uniq
|
|
47
|
-
end
|
|
48
|
-
|
|
49
40
|
def pivotal_tracker_ids(filter)
|
|
50
41
|
uri = URI.parse("#{project_uri}/stories?filter=#{CGI::escape(filter)}")
|
|
51
42
|
response = Net::HTTP.start(uri.host, uri.port) do |http|
|
|
@@ -8,10 +8,6 @@ class StoryPullRequest < FinishedCommand
|
|
|
8
8
|
def parser
|
|
9
9
|
OptionParser.new do |opts|
|
|
10
10
|
opts.banner = "Usage: git story-pull-request [options]"
|
|
11
|
-
opts.on("-b", "--base-branch BRANCH",
|
|
12
|
-
"base branch for delivered ids") do |opt|
|
|
13
|
-
self.options.base_branch = opt
|
|
14
|
-
end
|
|
15
11
|
opts.on("-o", "--override", "override unfinished story warning") do |opt|
|
|
16
12
|
self.options.override = opt
|
|
17
13
|
end
|
|
@@ -26,10 +22,6 @@ class StoryPullRequest < FinishedCommand
|
|
|
26
22
|
"[Delivers ##{id}](#{story_url(id)})"
|
|
27
23
|
end
|
|
28
24
|
|
|
29
|
-
def base_branch
|
|
30
|
-
options.base_branch || 'master'
|
|
31
|
-
end
|
|
32
|
-
|
|
33
25
|
# Returns a commit message with the branch being used for the pull request.
|
|
34
26
|
def short_message
|
|
35
27
|
"Issue pull request for branch #{story_branch}"
|
|
@@ -37,7 +29,7 @@ class StoryPullRequest < FinishedCommand
|
|
|
37
29
|
|
|
38
30
|
# Returns a commit message with links to all the delivered stories.
|
|
39
31
|
def long_message
|
|
40
|
-
ids =
|
|
32
|
+
ids = delivered_ids_since_last_pr(fast_log_delivered_text)
|
|
41
33
|
ids.map { |id| delivers_url(id) }.join("\n")
|
|
42
34
|
end
|
|
43
35
|
|
|
@@ -80,7 +80,8 @@ describe StoryCommit do
|
|
|
80
80
|
|
|
81
81
|
describe "when used with branches containing multiple stories" do
|
|
82
82
|
before do
|
|
83
|
-
command.stub(:story_branch).
|
|
83
|
+
command.stub(:story_branch).
|
|
84
|
+
and_return('62831853-tau-manifesto-31415926')
|
|
84
85
|
end
|
|
85
86
|
its(:cmd) do
|
|
86
87
|
delivered_ids = '#62831853 #31415926'
|
|
@@ -97,7 +98,8 @@ describe StoryCommit do
|
|
|
97
98
|
|
|
98
99
|
describe "when used with branches containing multiple stories" do
|
|
99
100
|
before do
|
|
100
|
-
command.stub(:story_branch).
|
|
101
|
+
command.stub(:story_branch).
|
|
102
|
+
and_return('62831853-tau-manifesto-31415926')
|
|
101
103
|
end
|
|
102
104
|
its(:cmd) do
|
|
103
105
|
delivered_ids = '#62831853 #31415926'
|
|
@@ -7,7 +7,8 @@ describe StoryPullRequest do
|
|
|
7
7
|
before do
|
|
8
8
|
command.stub(:remote_location).
|
|
9
9
|
and_return('https://github.com/mhartl/foo')
|
|
10
|
-
command.stub(:
|
|
10
|
+
command.stub(:delivered_ids_since_last_pr).
|
|
11
|
+
and_return(['62831853', '31415926'])
|
|
11
12
|
command.stub(:write_pr_file).and_return('')
|
|
12
13
|
end
|
|
13
14
|
subject { command }
|
|
@@ -19,11 +20,6 @@ describe StoryPullRequest do
|
|
|
19
20
|
should include '[Delivers #31415926]'
|
|
20
21
|
end
|
|
21
22
|
|
|
22
|
-
describe "base branch override" do
|
|
23
|
-
let(:command) { StoryPullRequest.new(['-b', 'development']) }
|
|
24
|
-
its(:base_branch) { should eq 'development' }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
23
|
describe "command-line command" do
|
|
28
24
|
subject { `bin/git-story-pull-request --debug` }
|
|
29
25
|
it { should_not match /\.git/ }
|
data/spec/story_spec.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Story do
|
|
4
|
+
include Story
|
|
5
|
+
|
|
6
|
+
describe '#story_url' do
|
|
7
|
+
let(:id) { '62831853' }
|
|
8
|
+
subject { story_url(id) }
|
|
9
|
+
it { should include id }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe '#delivered_ids_since_last_pr' do
|
|
13
|
+
let(:text) do <<-EOS
|
|
14
|
+
[Delivers #62831853 #31415926]
|
|
15
|
+
[Delivered #27182818]
|
|
16
|
+
|
|
17
|
+
[Delivers #55203510](https://www.pivotaltracker.com/story/show/55203510)
|
|
18
|
+
[Delivers #55202656](https://www.pivotaltracker.com/story/show/55202656)
|
|
19
|
+
|
|
20
|
+
[Delivers #55202656]
|
|
21
|
+
EOS
|
|
22
|
+
end
|
|
23
|
+
subject { delivered_ids_since_last_pr(text) }
|
|
24
|
+
|
|
25
|
+
it { should include '62831853' }
|
|
26
|
+
it { should include '31415926' }
|
|
27
|
+
it { should include '27182818' }
|
|
28
|
+
it { should_not include '55203510' }
|
|
29
|
+
it { should_not include '55202656' }
|
|
30
|
+
end
|
|
31
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pivotal-github
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Hartl
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2013-
|
|
11
|
+
date: 2013-08-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: git-utils
|
|
@@ -89,6 +89,7 @@ files:
|
|
|
89
89
|
- spec/commands/story_pull_request_spec.rb
|
|
90
90
|
- spec/options/options_spec.rb
|
|
91
91
|
- spec/spec_helper.rb
|
|
92
|
+
- spec/story_spec.rb
|
|
92
93
|
homepage: https://github.com/mhartl/pivotal-github
|
|
93
94
|
licenses:
|
|
94
95
|
- MIT
|
|
@@ -123,3 +124,4 @@ test_files:
|
|
|
123
124
|
- spec/commands/story_pull_request_spec.rb
|
|
124
125
|
- spec/options/options_spec.rb
|
|
125
126
|
- spec/spec_helper.rb
|
|
127
|
+
- spec/story_spec.rb
|