pivotal_tracker_pr 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd1f80ed93c9ef919f48b100415178a80153bcae
4
- data.tar.gz: aa7e9925ad62380fe3d26a503c3d3f56b2777877
3
+ metadata.gz: 005c323ab54a3990810c73c1ed29ab41435034f7
4
+ data.tar.gz: 25bc2261cad1ca9c0d17a4f0d2b6bdd5921649b4
5
5
  SHA512:
6
- metadata.gz: b59678639def419950f13b2c8ae7b3617a65742b423365bbf6fc7b912433f603f218e90335f3123f79932c80162ec8aa646f33106d79a15dfee6f713d9b6a644
7
- data.tar.gz: 913aca7d0de455de8324281734d07e0dc551633f334b56a01691dd60cf6693ec3d8f0a083d26fa6ce17fb635e70cc7b746bcdba0d9e356bf12605b71e3ba1d0c
6
+ metadata.gz: 7de211db0144a54bfa9682eaf285c8fc8726eeba126d59ca93135c076953de8a563a39787cb7b0570c412ebe910d615be11fc76bb8c1b461939e7ece0499972e
7
+ data.tar.gz: a29ffc6b17011871c8471d443b546b8a803dd5248609315824bebfc41dcc40d5f3051e6b9410554a5b42819ff8853c607d90f9e455b9ffe7401285717fc2d4b9
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- [![Build Status](https://travis-ci.org/blueplanet/pivotal_tracker_pr.svg?branch=master)](https://travis-ci.org/blueplanet/pivotal_tracker_pr)
1
+ # PivotalTrackerPr [![Gem Version](https://badge.fury.io/rb/pivotal_tracker_pr.svg)](https://badge.fury.io/rb/pivotal_tracker_pr) [![Build Status](https://travis-ci.org/blueplanet/pivotal_tracker_pr.svg?branch=master)](https://travis-ci.org/blueplanet/pivotal_tracker_pr) [![Coverage Status](https://coveralls.io/repos/github/blueplanet/pivotal_tracker_pr/badge.svg?branch=master)](https://coveralls.io/github/blueplanet/pivotal_tracker_pr?branch=master) [![Code Climate](https://codeclimate.com/github/blueplanet/pivotal_tracker_pr/badges/gpa.svg)](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
- write_pull_request_template story_id, story_name
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
@@ -1,3 +1,3 @@
1
1
  module PivotalTrackerPr
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.7"
3
3
  end
@@ -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.6
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-17 00:00:00.000000000 Z
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