pivotal_tracker_pr 0.3.6 → 0.3.7
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 005c323ab54a3990810c73c1ed29ab41435034f7
|
4
|
+
data.tar.gz: 25bc2261cad1ca9c0d17a4f0d2b6bdd5921649b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7de211db0144a54bfa9682eaf285c8fc8726eeba126d59ca93135c076953de8a563a39787cb7b0570c412ebe910d615be11fc76bb8c1b461939e7ece0499972e
|
7
|
+
data.tar.gz: a29ffc6b17011871c8471d443b546b8a803dd5248609315824bebfc41dcc40d5f3051e6b9410554a5b42819ff8853c607d90f9e455b9ffe7401285717fc2d4b9
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
[](https://travis-ci.org/blueplanet/pivotal_tracker_pr)
|
1
|
+
# PivotalTrackerPr [](https://badge.fury.io/rb/pivotal_tracker_pr) [](https://travis-ci.org/blueplanet/pivotal_tracker_pr) [](https://coveralls.io/github/blueplanet/pivotal_tracker_pr?branch=master) [](https://codeclimate.com/github/blueplanet/pivotal_tracker_pr)
|
2
|
+
|
2
3
|
|
3
|
-
# PivotalTrackerPr
|
4
4
|
- `PivotalTracker`のストリーIDとストリー名を取得し、カレントブランチの`PullRequest`を作成する
|
5
5
|
|
6
6
|
## インストール
|
@@ -1,26 +1,26 @@
|
|
1
1
|
require "pivotal_tracker_pr"
|
2
|
+
require 'pivotal_tracker_pr/pivotal_tracker_api'
|
3
|
+
require 'pivotal_tracker_pr/pull_request_writer'
|
2
4
|
require 'json'
|
3
5
|
require 'net/http'
|
4
6
|
require 'thor'
|
5
7
|
|
6
8
|
module PivotalTrackerPr
|
7
|
-
PULL_REQUEST_MESSAGE = 'PULLREQ_EDITMSG'.freeze
|
8
|
-
MESSAGE_TEMPLATE = 'PULLREQ_MSG_TEMPLATE'.freeze
|
9
|
-
|
10
9
|
class CLI < Thor
|
11
10
|
default_command :create
|
12
11
|
desc 'create [STORY_ID]', 'Create pull request use story id / story name of PivotalTracker.'
|
13
12
|
def create(story_id = nil)
|
13
|
+
story_id = story_id[1..-1] if story_id && story_id[0] == '#'
|
14
14
|
story_id ||= parse_story_id
|
15
15
|
if story_id
|
16
16
|
say "story id : #{story_id}", :green
|
17
17
|
|
18
18
|
check_env_vars
|
19
19
|
|
20
|
-
story_name = get_story_name(story_id)
|
20
|
+
story_name = PivotalTrackerApi.get_story_name(story_id)
|
21
21
|
if story_name
|
22
22
|
say "Story name : #{story_name}", :green
|
23
|
-
|
23
|
+
PullRequestWriter.new(story_id, story_name).write
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -35,31 +35,6 @@ module PivotalTrackerPr
|
|
35
35
|
$1
|
36
36
|
end
|
37
37
|
|
38
|
-
def get_story_name(story_id)
|
39
|
-
url = URI.parse("https://www.pivotaltracker.com/services/v5/projects/#{ENV['PT_PROJECT_ID']}/stories/#{story_id}")
|
40
|
-
https = Net::HTTP.new(url.host, 443)
|
41
|
-
https.use_ssl = true
|
42
|
-
https.open_timeout = 5
|
43
|
-
https.read_timeout = 5
|
44
|
-
|
45
|
-
response = https.get(url.path, 'X-TrackerToken' => ENV['PT_TOKEN'])
|
46
|
-
case response
|
47
|
-
when Net::HTTPSuccess
|
48
|
-
JSON(response.body)['name']
|
49
|
-
else
|
50
|
-
say 'Please check story id for following message:', :red
|
51
|
-
say JSON(response.body)['error'] || response.body, :red
|
52
|
-
|
53
|
-
nil
|
54
|
-
end
|
55
|
-
rescue Timeout::Error
|
56
|
-
say 'Timeout::Error, Please check network', :red
|
57
|
-
nil
|
58
|
-
rescue => e
|
59
|
-
say e.message, :red
|
60
|
-
nil
|
61
|
-
end
|
62
|
-
|
63
38
|
def check_env_vars
|
64
39
|
unless ENV['PT_TOKEN']
|
65
40
|
say 'Please export PT_TOKEN', :red
|
@@ -71,41 +46,5 @@ module PivotalTrackerPr
|
|
71
46
|
exit 1
|
72
47
|
end
|
73
48
|
end
|
74
|
-
|
75
|
-
def write_pull_request_template(story_id, story_name)
|
76
|
-
message_context =
|
77
|
-
if File.exists?(message_template_path)
|
78
|
-
message_from_template(story_id, story_name)
|
79
|
-
else
|
80
|
-
default_message story_id, story_name
|
81
|
-
end
|
82
|
-
|
83
|
-
open(pull_request_message, 'w') { |file| file.puts message_context }
|
84
|
-
end
|
85
|
-
|
86
|
-
def message_template_path
|
87
|
-
File.join(Dir.pwd, '.git', MESSAGE_TEMPLATE)
|
88
|
-
end
|
89
|
-
|
90
|
-
def message_from_template(story_id, story_name)
|
91
|
-
template_content = File.open(message_template_path).read
|
92
|
-
template_content.gsub('{{STORY_ID}}', story_id).gsub('{{STORY_NAME}}', story_name).gsub('{{STORY_LINK}}', story_link(story_id))
|
93
|
-
end
|
94
|
-
|
95
|
-
def pull_request_message
|
96
|
-
File.join(Dir.pwd, '.git', PULL_REQUEST_MESSAGE)
|
97
|
-
end
|
98
|
-
|
99
|
-
def default_message(story_id, story_name)
|
100
|
-
<<-EOF
|
101
|
-
[fixed ##{story_id}]#{story_name}
|
102
|
-
|
103
|
-
#{story_link story_id}
|
104
|
-
EOF
|
105
|
-
end
|
106
|
-
|
107
|
-
def story_link(story_id)
|
108
|
-
"https://www.pivotaltracker.com/story/show/#{story_id}"
|
109
|
-
end
|
110
49
|
end
|
111
50
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module PivotalTrackerPr
|
2
|
+
class PivotalTrackerApi
|
3
|
+
STORY_URL_PREFIX = 'https://www.pivotaltracker.com/services/v5/projects'.freeze
|
4
|
+
|
5
|
+
def self.get_story_name(story_id)
|
6
|
+
url = URI.parse(File.join(STORY_URL_PREFIX, ENV['PT_PROJECT_ID'], 'stories', story_id.to_s))
|
7
|
+
|
8
|
+
https = Net::HTTP.new(url.host, 443)
|
9
|
+
https.use_ssl = true
|
10
|
+
https.open_timeout = 5
|
11
|
+
https.read_timeout = 5
|
12
|
+
|
13
|
+
response = https.get(url.path, 'X-TrackerToken' => ENV['PT_TOKEN'])
|
14
|
+
case response
|
15
|
+
when Net::HTTPSuccess
|
16
|
+
JSON(response.body)['name']
|
17
|
+
else
|
18
|
+
puts 'Please check story id for following message:'
|
19
|
+
puts JSON(response.body)['error'] || response.body
|
20
|
+
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
rescue Timeout::Error
|
24
|
+
puts 'Timeout::Error, Please check network', :red
|
25
|
+
nil
|
26
|
+
rescue => e
|
27
|
+
puts e.message
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module PivotalTrackerPr
|
2
|
+
class PullRequestWriter
|
3
|
+
PULL_REQUEST_MESSAGE = 'PULLREQ_EDITMSG'.freeze
|
4
|
+
MESSAGE_TEMPLATE = 'PULLREQ_MSG_TEMPLATE'.freeze
|
5
|
+
|
6
|
+
def initialize(story_id, story_name)
|
7
|
+
@story_id = story_id
|
8
|
+
@story_name = story_name
|
9
|
+
end
|
10
|
+
|
11
|
+
def write
|
12
|
+
message_context =
|
13
|
+
if File.exist?(message_template_path)
|
14
|
+
message_from_template(@story_id, @story_name)
|
15
|
+
else
|
16
|
+
default_message @story_id, @story_name
|
17
|
+
end
|
18
|
+
|
19
|
+
open(pull_request_message, 'w') { |file| file.puts message_context }
|
20
|
+
end
|
21
|
+
|
22
|
+
def message_template_path
|
23
|
+
File.join(Dir.pwd, '.git', MESSAGE_TEMPLATE)
|
24
|
+
end
|
25
|
+
|
26
|
+
def message_from_template(story_id, story_name)
|
27
|
+
template_content = File.open(message_template_path).read
|
28
|
+
template_content.gsub('{{STORY_ID}}', story_id).gsub('{{STORY_NAME}}', story_name).gsub('{{STORY_LINK}}', story_link(story_id))
|
29
|
+
end
|
30
|
+
|
31
|
+
def pull_request_message
|
32
|
+
File.join(Dir.pwd, '.git', PULL_REQUEST_MESSAGE)
|
33
|
+
end
|
34
|
+
|
35
|
+
def default_message(story_id, story_name)
|
36
|
+
<<-EOF
|
37
|
+
[fixed ##{story_id}]#{story_name}
|
38
|
+
|
39
|
+
#{story_link story_id}
|
40
|
+
EOF
|
41
|
+
end
|
42
|
+
|
43
|
+
def story_link(story_id)
|
44
|
+
"https://www.pivotaltracker.com/story/show/#{story_id}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/pivotal_tracker_pr.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.11"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.0"
|
24
|
+
spec.add_development_dependency "coveralls"
|
24
25
|
spec.add_dependency 'thor'
|
25
26
|
spec.add_dependency 'hub'
|
26
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pivotal_tracker_pr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- blueplanet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coveralls
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: thor
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +115,8 @@ files:
|
|
101
115
|
- bin/setup
|
102
116
|
- lib/pivotal_tracker_pr.rb
|
103
117
|
- lib/pivotal_tracker_pr/cli.rb
|
118
|
+
- lib/pivotal_tracker_pr/pivotal_tracker_api.rb
|
119
|
+
- lib/pivotal_tracker_pr/pull_request_writer.rb
|
104
120
|
- lib/pivotal_tracker_pr/version.rb
|
105
121
|
- pivotal_tracker_pr.gemspec
|
106
122
|
homepage: https://github.com/blueplanet/pivotal_tracker_pr
|