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: 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