story_branch 0.5.2 → 0.6.0alpha

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
- SHA1:
3
- metadata.gz: 0b3a60904386aff18987e5417ec525b85300d962
4
- data.tar.gz: 23e79de42834af29be24fdaea8892c30eb184742
2
+ SHA256:
3
+ metadata.gz: c9a02518d7bc7ed6989a8bac354b4586d52268211024e1253f33ca0345c4f08d
4
+ data.tar.gz: 38a6bdff3edc0038164d693964738d7a9eff743ddb9fade2c1a3a9c01cd70fd1
5
5
  SHA512:
6
- metadata.gz: 7791b6bde96724dfac853a9f84e4e0772638af3867c2bfd5a1030cc514a2c0e98544bb23b1c4d92156ddd567452e8328bed1590e6e3b997f92ca61135ed08eee
7
- data.tar.gz: 9b44e870c1e5d67c984d130ea30a900641b7f88f56580976fd28a91bbde5a7a8d93c91b019a1c9263d3a2bfe476e1c999b0845ac5267ca4acb2ef216d23dd4e7
6
+ metadata.gz: fdfc646432ce7e0b952659de39efdadc0fc2e09ede2e3e9651d00a3e5840719a14279ae92cec49552572638fa4fdc23eaffe365f65bceec8df97ee494189e84f
7
+ data.tar.gz: 2eebfaf7313adbb7d48c8f4d91f054db99d3fc1af63b20bb6996a7e260b104d68d23913224d4429e12b3d9d468e5430b99fcb63988700ddb6a0e49c0d00775ef
data/.circleci/config.yml CHANGED
@@ -2,7 +2,7 @@ version: 2
2
2
 
3
3
  defaults: &defaults
4
4
  docker:
5
- - image: circleci/ruby:2.4.1-node-browsers
5
+ - image: circleci/ruby:2.6.5-node
6
6
  working_directory: ~/repo
7
7
 
8
8
  workflows:
@@ -11,15 +11,18 @@ workflows:
11
11
  jobs:
12
12
  - test:
13
13
  filters:
14
- branches:
14
+ tags:
15
+ # this enables circleci to trigger on tags
15
16
  only: /.*/
16
17
 
17
18
  - publish:
18
19
  requires:
19
20
  - test
20
21
  filters:
22
+ tags:
23
+ only: /^v[0-9]\.[0-9]\.[0-9].*/
21
24
  branches:
22
- only: master
25
+ ignore: /.*/
23
26
 
24
27
  jobs:
25
28
  test:
@@ -89,13 +92,6 @@ jobs:
89
92
  name: Publish to Rubygems
90
93
  command: |
91
94
  CURRENT_VERSION=$(ruby -r "./lib/story_branch/version.rb" -e "puts StoryBranch::VERSION")
92
- CURRENT_TAG=$(git tag --points-at HEAD)
93
-
94
- if [[ "${CURRENT_TAG}" == "${CURRENT_VERSION}" ]]; then
95
- gem build story_branch.gemspec
96
- gem push "story_branch-${CURRENT_VERSION}.gem"
97
- else
98
- echo "Not tagged as a new version - skipping gem push"
99
- fi
100
-
95
+ gem build story_branch.gemspec
96
+ gem push "story_branch-${CURRENT_VERSION}.gem"
101
97
  shred -u ~/.gem/credentials
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- story_branch (0.5.2)
4
+ story_branch (0.6.0alpha)
5
5
  blanket_wrapper (~> 3.0)
6
6
  damerau-levenshtein (~> 1.3)
7
+ jira-ruby (~> 1.7)
7
8
  thor (~> 0.20.0)
8
9
  tty-command (~> 0.8.2)
9
10
  tty-config (~> 0.2.0)
@@ -13,49 +14,75 @@ PATH
13
14
  GEM
14
15
  remote: https://rubygems.org/
15
16
  specs:
17
+ activesupport (6.0.0)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 0.7, < 2)
20
+ minitest (~> 5.1)
21
+ tzinfo (~> 1.1)
22
+ zeitwerk (~> 2.1, >= 2.1.8)
23
+ atlassian-jwt (0.2.0)
24
+ jwt (~> 2.1.0)
16
25
  blanket_wrapper (3.0.2)
17
26
  httparty
18
27
  recursive-open-struct
28
+ coderay (1.1.2)
29
+ concurrent-ruby (1.1.5)
19
30
  damerau-levenshtein (1.3.1)
20
31
  diff-lcs (1.3)
21
- equatable (0.6.0)
22
- fakefs (0.18.0)
32
+ equatable (0.6.1)
33
+ fakefs (0.20.1)
23
34
  git (1.5.0)
24
- httparty (0.17.0)
35
+ httparty (0.17.1)
25
36
  mime-types (~> 3.0)
26
37
  multi_xml (>= 0.5.2)
27
- mime-types (3.2.2)
38
+ i18n (1.7.0)
39
+ concurrent-ruby (~> 1.0)
40
+ jira-ruby (1.7.1)
41
+ activesupport
42
+ atlassian-jwt
43
+ multipart-post
44
+ oauth (~> 0.5, >= 0.5.0)
45
+ jwt (2.1.0)
46
+ method_source (0.9.2)
47
+ mime-types (3.3)
28
48
  mime-types-data (~> 3.2015)
29
- mime-types-data (3.2019.0331)
49
+ mime-types-data (3.2019.0904)
50
+ minitest (5.12.2)
30
51
  multi_xml (0.6.0)
52
+ multipart-post (2.1.1)
31
53
  necromancer (0.5.0)
54
+ oauth (0.5.4)
32
55
  ostruct (0.1.0)
33
56
  pastel (0.7.3)
34
57
  equatable (~> 0.6)
35
58
  tty-color (~> 0.5)
59
+ pry (0.11.3)
60
+ coderay (~> 1.1.0)
61
+ method_source (~> 0.9.0)
36
62
  rake (10.5.0)
37
63
  recursive-open-struct (1.1.0)
38
64
  rspec (3.8.0)
39
65
  rspec-core (~> 3.8.0)
40
66
  rspec-expectations (~> 3.8.0)
41
67
  rspec-mocks (~> 3.8.0)
42
- rspec-core (3.8.0)
68
+ rspec-core (3.8.2)
43
69
  rspec-support (~> 3.8.0)
44
- rspec-expectations (3.8.2)
70
+ rspec-expectations (3.8.5)
45
71
  diff-lcs (>= 1.2.0, < 2.0)
46
72
  rspec-support (~> 3.8.0)
47
- rspec-mocks (3.8.0)
73
+ rspec-mocks (3.8.2)
48
74
  diff-lcs (>= 1.2.0, < 2.0)
49
75
  rspec-support (~> 3.8.0)
50
- rspec-support (3.8.0)
76
+ rspec-support (3.8.3)
51
77
  rspec_junit_formatter (0.4.1)
52
78
  rspec-core (>= 2, < 4, != 2.12.0)
53
- strings (0.1.5)
79
+ strings (0.1.6)
54
80
  strings-ansi (~> 0.1)
55
81
  unicode-display_width (~> 1.5)
56
82
  unicode_utils (~> 1.4)
57
83
  strings-ansi (0.1.0)
58
84
  thor (0.20.3)
85
+ thread_safe (0.3.6)
59
86
  tty-color (0.5.0)
60
87
  tty-command (0.8.2)
61
88
  pastel (~> 0.7.0)
@@ -75,9 +102,12 @@ GEM
75
102
  wisper (~> 2.0.0)
76
103
  tty-screen (0.7.0)
77
104
  tty-which (0.4.1)
105
+ tzinfo (1.2.5)
106
+ thread_safe (~> 0.1)
78
107
  unicode-display_width (1.6.0)
79
108
  unicode_utils (1.4.0)
80
109
  wisper (2.0.0)
110
+ zeitwerk (2.1.10)
81
111
 
82
112
  PLATFORMS
83
113
  ruby
@@ -87,6 +117,7 @@ DEPENDENCIES
87
117
  fakefs (~> 0.14)
88
118
  git (~> 1.5)
89
119
  ostruct (~> 0.1)
120
+ pry (~> 0.11)
90
121
  rake (~> 10.0)
91
122
  rspec (~> 3)
92
123
  rspec_junit_formatter (~> 0.4)
data/README.md CHANGED
@@ -113,8 +113,8 @@ the full list.
113
113
  ## Configuring PivotalTracker
114
114
 
115
115
  When running the command `story_branch add` you'll be asked 3 things:
116
- 1. project id - This can be fetched from the PivotalTracker url. E.g in the url `https://www.pivotaltracker.com/n/projects/651417`, the project id would be `651417`
117
- 2. tracker - You should select Pivotal Tracker
116
+ 1. tracker - You should select Pivotal Tracker
117
+ 2. project id - This can be fetched from the PivotalTracker url. E.g in the url `https://www.pivotaltracker.com/n/projects/651417`, the project id would be `651417`
118
118
  3. api key - this is your personal api key. You can get that from [your profile page](https://www.pivotaltracker.com/profile)
119
119
 
120
120
  ## Configuring Github
@@ -125,6 +125,16 @@ When running the command `story_branch add` you'll be asked 3 things:
125
125
  3. api key - this is your personal api token. You can create one under your
126
126
  [developer profile tokens page](https://github.com/settings/tokens)
127
127
 
128
+ ## Configuring JIRA
129
+
130
+ The configuration for JIRA is slightly more complex as the endpoint changes according
131
+ to your project setup. You will need an API token, which you can create a new one in your [JIRA id management page](https://id.atlassian.com/manage/api-tokens)
132
+ 1. tracker - You should select JIRA
133
+ 2. JIRA's subdomain - you should type the JIRA's subdomain that you use to access in your browser. E.g I'd type perxtechnologies to access to https://perxtechnologies.atlassian.net
134
+ 3. JIRA's project key - this should match which project you want to fetch the issues from. E.g. PW is the key for my Project Whistler, so I'd type PW
135
+ 4. API key that you should have gotten in the first description step
136
+ 5. username used for login in the JIRA usually. If you use google email authentication, the username should be your email
137
+
128
138
  ## Migrating
129
139
 
130
140
  ### Old configuration
@@ -20,8 +20,8 @@ module StoryBranch
20
20
  end
21
21
 
22
22
  def execute(_input: $stdin, output: $stdout)
23
- create_global_config
24
23
  create_local_config
24
+ create_global_config
25
25
  output.puts 'Configuration added successfully'
26
26
  end
27
27
 
@@ -30,24 +30,44 @@ module StoryBranch
30
30
  def create_local_config
31
31
  return if local_config_has_value?
32
32
 
33
+ puts "Setting #{tracker}"
34
+ @local_config.set(:tracker, value: tracker)
35
+
33
36
  puts "Appending #{project_id}"
34
37
  @local_config.append(project_id, to: :project_id)
35
38
 
36
- puts "Setting #{tracker}"
37
- @local_config.set(:tracker, value: tracker)
38
39
  @local_config.write(force: true)
39
40
  end
40
41
 
41
42
  def create_global_config
42
- api_key = prompt.ask 'Please provide the api key:'
43
+ api_key = prompt.ask('Please provide the api key:', required: true)
43
44
  @config.set(project_id, :api_key, value: api_key)
44
45
  @config.write(force: true)
46
+
47
+ return unless tracker == 'jira'
48
+
49
+ # rubocop:disable Metrics/LineLength
50
+ username = prompt.ask('Please provide username (email most of the times) for this key:',
51
+ required: true)
52
+ # rubocop:enable Metrics/LineLength
53
+ @config.set(project_id, :username, value: username)
54
+ @config.write(force: true)
45
55
  end
46
56
 
47
57
  def project_id
48
58
  return @project_id if @project_id
49
59
 
50
- @project_id = prompt.ask "Please provide this project's id:"
60
+ if tracker == 'jira'
61
+ # rubocop:disable Metrics/LineLength
62
+ project_domain = prompt.ask("What is your JIRA's subdomain?", required: true)
63
+ project_key = prompt.ask("What is your JIRA's project key?", required: true)
64
+ # rubocop:enable Metrics/LineLength
65
+ @project_id = "#{project_domain}|#{project_key}"
66
+ else
67
+ # rubocop:disable Metrics/LineLength
68
+ @project_id = prompt.ask("Please provide this project's id:", required: true)
69
+ # rubocop:enable Metrics/LineLength
70
+ end
51
71
  end
52
72
 
53
73
  def tracker
@@ -55,7 +75,8 @@ module StoryBranch
55
75
 
56
76
  trackers = {
57
77
  'Pivotal Tracker' => 'pivotal-tracker',
58
- 'Github' => 'github'
78
+ 'Github' => 'github',
79
+ 'JIRA' => 'jira'
59
80
  }
60
81
  @tracker = prompt.select('Which tracker are you using?', trackers)
61
82
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module StoryBranch
4
+ module Jira
5
+ # Jira Issue representation
6
+ class Issue
7
+ attr_accessor :title, :id
8
+
9
+ # TODO: Add component and labels to the info of the issue
10
+ def initialize(jira_issue, project)
11
+ @project = project
12
+ @story = jira_issue
13
+ @title = jira_issue.summary
14
+ @id = jira_issue.key
15
+ end
16
+
17
+ def update_state
18
+ puts 'What to do in github for this?'
19
+ end
20
+
21
+ def to_s
22
+ "#{@id} - #{@title}"
23
+ end
24
+
25
+ def dashed_title
26
+ StoryBranch::StringUtils.normalised_branch_name @title
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './issue'
4
+
5
+ module StoryBranch
6
+ module Jira
7
+ # Jira Project representation
8
+ class Project
9
+ def initialize(jira_project)
10
+ @project = jira_project
11
+ end
12
+
13
+ # Returns an array of Jira issues (Issue Class)
14
+ # TODO: Support different options being passed.
15
+ # Probably will need a specific query builder per tracker
16
+ def stories(options = {})
17
+ stories = if options[:id]
18
+ [@project.issues.find(options[:id])]
19
+ else
20
+ # rubocop:disable Metrics/LineLength
21
+ @project.client.Issue.jql(
22
+ "project=#{@project.key} AND status='To Do' AND assignee=currentUser()"
23
+ )
24
+ # rubocop:enable Metrics/LineLength
25
+ end
26
+
27
+ stories.map { |s| Issue.new(s, @project) }
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ # NOTE: The JIRA api is restful but I don't seem to be able to wrap it
4
+ # with blanket, so I'm using a gem that has wrapped the whole api, but
5
+ # my tracker and issues will still provide a similar api. This jira-ruby
6
+ # is used to get the data.
7
+ require 'jira-ruby'
8
+ require_relative './project'
9
+
10
+ module StoryBranch
11
+ module Jira
12
+ # JIRA API wrapper for story branch tracker
13
+ class Tracker
14
+ TYPE = 'jira'
15
+
16
+ attr_reader :type
17
+
18
+ def initialize(tracker_domain:, project_id:, api_key:, username:)
19
+ @tracker_url = "https://#{tracker_domain}.atlassian.net"
20
+ @project_id = project_id
21
+ @api_key = api_key
22
+ @username = username
23
+ @type = TYPE
24
+ end
25
+
26
+ def valid?
27
+ [@api_key, @project_id, @username, @tracker_url].none?(&:nil?)
28
+ end
29
+
30
+ # TODO: This should probably be renamed to something more meaningful
31
+ # in the sense that it should be workable stories/issues
32
+ # which depend on the tracker's workflow. PivotalTracker they need to
33
+ # be started and estimated, while for Github they just need to be open
34
+ def stories
35
+ project.stories
36
+ end
37
+
38
+ def get_story_by_id(story_id)
39
+ project.stories(id: story_id).first
40
+ end
41
+
42
+ private
43
+
44
+ def options
45
+ {
46
+ username: @username,
47
+ password: @api_key,
48
+ site: @tracker_url,
49
+ auth_type: :basic,
50
+ read_timeout: 120,
51
+ context_path: ''
52
+ }
53
+ end
54
+
55
+ def api
56
+ raise 'API key must be specified' unless @api_key
57
+
58
+ @api ||= JIRA::Client.new(options)
59
+ end
60
+
61
+ def project
62
+ return @project if @project
63
+ raise 'project key must be set' unless @project_id
64
+
65
+ jira_project = api.Project.find(@project_id)
66
+ @project = Project.new(jira_project)
67
+ end
68
+ end
69
+ end
70
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative './pivotal/tracker'
4
4
  require_relative './github/tracker'
5
+ require_relative './jira/tracker'
5
6
  require_relative './git_utils'
6
7
  require_relative './git_wrapper'
7
8
  require_relative './config_manager'
@@ -10,6 +11,7 @@ require 'tty-prompt'
10
11
  module StoryBranch
11
12
  # Main story branch class. It is resposnible for the main interaction between
12
13
  # the user and Pivotal Tracker. It is also responsible for config init.
14
+ # rubocop:disable Metrics/ClassLength
13
15
  class Main
14
16
  attr_accessor :tracker
15
17
 
@@ -43,7 +45,9 @@ module StoryBranch
43
45
  return if unstaged_changes?
44
46
  return if nothing_to_add?
45
47
 
48
+ # rubocop:disable Metrics/LineLength
46
49
  commit_message = "[#{finish_tag} ##{current_story[:id]}] #{current_story[:title]}"
50
+ # rubocop:enable Metrics/LineLength
47
51
  proceed = prompt.yes?("Commit with standard message? #{commit_message}")
48
52
  if proceed
49
53
  GitWrapper.commit commit_message
@@ -112,6 +116,8 @@ module StoryBranch
112
116
  true
113
117
  end
114
118
 
119
+ # rubocop:disable Metrics/AbcSize
120
+ # rubocop:disable Metrics/MethodLength
115
121
  def update_status(current_status, next_status, action)
116
122
  stories = @tracker.stories_with_state(current_status)
117
123
  if stories.empty?
@@ -134,6 +140,8 @@ module StoryBranch
134
140
  prompt.ok("#{story.id} #{next_status}")
135
141
  story
136
142
  end
143
+ # rubocop:enable Metrics/MethodLength
144
+ # rubocop:enable Metrics/AbcSize
137
145
 
138
146
  def build_stories_structure(stories)
139
147
  options = {}
@@ -170,7 +178,9 @@ module StoryBranch
170
178
  return unless validate_branch_name(feature_branch_name, story.id)
171
179
 
172
180
  feature_branch_name_with_story_id = "#{feature_branch_name}-#{story.id}"
181
+ # rubocop:disable Metrics/LineLength
173
182
  prompt.say("Creating: #{feature_branch_name_with_story_id} with #{current_branch} as parent")
183
+ # rubocop:enable Metrics/LineLength
174
184
  GitWrapper.create_branch feature_branch_name_with_story_id
175
185
  end
176
186
 
@@ -181,7 +191,9 @@ module StoryBranch
181
191
  return false
182
192
  end
183
193
  if GitUtils.existing_branch? name
194
+ # rubocop:disable Metrics/LineLength
184
195
  prompt.error('This name is very similar to an existing branch. Avoid confusion and use a more unique name.')
196
+ # rubocop:enable Metrics/LineLength
185
197
  return false
186
198
  end
187
199
  true
@@ -202,9 +214,15 @@ module StoryBranch
202
214
  end
203
215
 
204
216
  def api_key
205
- @api_key || @api_key = @global_config.fetch(project_id, :api_key)
217
+ @api_key ||= @global_config.fetch(project_id, :api_key)
206
218
  end
207
219
 
220
+ def username
221
+ @username ||= @global_config.fetch(project_id, :username)
222
+ end
223
+
224
+ # rubocop:disable Metrics/AbcSize
225
+ # rubocop:disable Metrics/MethodLength
208
226
  def initialize_tracker
209
227
  if project_id.nil?
210
228
  prompt.say 'Project ID not set'
@@ -214,9 +232,21 @@ module StoryBranch
214
232
  @tracker = case tracker_type
215
233
  when 'github'
216
234
  StoryBranch::Github::Tracker.new(project_id, api_key)
217
- else
235
+ when 'pivotal-tracker'
218
236
  StoryBranch::Pivotal::Tracker.new(project_id, api_key)
237
+ when 'jira'
238
+ tracker_domain, project_key = project_id.split('|')
239
+ options = {
240
+ tracker_domain: tracker_domain,
241
+ project_id: project_key,
242
+ api_key: api_key,
243
+ username: username
244
+ }
245
+ StoryBranch::Jira::Tracker.new(options)
219
246
  end
220
247
  end
248
+ # rubocop:enable Metrics/AbcSize
249
+ # rubocop:enable Metrics/MethodLength
221
250
  end
251
+ # rubocop:enable Metrics/ClassLength
222
252
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StoryBranch
4
- VERSION = '0.5.2'
4
+ VERSION = '0.6.0alpha'
5
5
  end
data/story_branch.gemspec CHANGED
@@ -24,11 +24,11 @@ Gem::Specification.new do |spec|
24
24
  'gabe@neo.com'
25
25
  ]
26
26
 
27
- spec.summary = 'Create git branches based on pivotal tracker stories'
27
+ spec.summary = 'Create git branches based on your preferred tracker tickets'
28
28
  spec.description = <<~DESCRIPTION
29
- Simple gem that fetches the available stories in your PivotalTracker
30
- project and allows you to create a git branch with the name based
31
- on the selected story
29
+ This simple gem allows you to create a branch based on the existing issues
30
+ in your preferred tracker. It integrates with PivotalTracker, Github and
31
+ JIRA. Different workflows shall be supported in the next versions.
32
32
  DESCRIPTION
33
33
 
34
34
  spec.metadata = {
@@ -38,7 +38,7 @@ Gem::Specification.new do |spec|
38
38
  'homepage_uri' => 'https://github.com/story-branch/story_branch',
39
39
  'source_code_uri' => 'https://github.com/story-branch/story_branch'
40
40
  }
41
- spec.required_ruby_version = ['>= 2.3', '< 2.7']
41
+ spec.required_ruby_version = ['>= 2.4', '< 2.7']
42
42
 
43
43
  # Specify which files should be added to the gem when it is released.
44
44
  # The `git ls-files -z` loads the files in the RubyGem that have been
@@ -54,6 +54,7 @@ Gem::Specification.new do |spec|
54
54
 
55
55
  spec.add_runtime_dependency 'blanket_wrapper', '~> 3.0'
56
56
  spec.add_runtime_dependency 'damerau-levenshtein', '~> 1.3'
57
+ spec.add_runtime_dependency 'jira-ruby', '~> 1.7'
57
58
  spec.add_runtime_dependency 'thor', '~> 0.20.0'
58
59
  spec.add_runtime_dependency 'tty-command', '~> 0.8.2'
59
60
  spec.add_runtime_dependency 'tty-config', '~> 0.2.0'
@@ -64,6 +65,7 @@ Gem::Specification.new do |spec|
64
65
  spec.add_development_dependency 'fakefs', '~> 0.14'
65
66
  spec.add_development_dependency 'git', '~> 1.5'
66
67
  spec.add_development_dependency 'ostruct', '~> 0.1'
68
+ spec.add_development_dependency 'pry', '~> 0.11'
67
69
  spec.add_development_dependency 'rake', '~> 10.0'
68
70
  spec.add_development_dependency 'rspec', '~> 3'
69
71
  spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: story_branch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.0alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rui Baltazar
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: exe
14
14
  cert_chain: []
15
- date: 2019-06-20 00:00:00.000000000 Z
15
+ date: 2019-10-06 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: blanket_wrapper
@@ -42,6 +42,20 @@ dependencies:
42
42
  - - "~>"
43
43
  - !ruby/object:Gem::Version
44
44
  version: '1.3'
45
+ - !ruby/object:Gem::Dependency
46
+ name: jira-ruby
47
+ requirement: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '1.7'
52
+ type: :runtime
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '1.7'
45
59
  - !ruby/object:Gem::Dependency
46
60
  name: thor
47
61
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +182,20 @@ dependencies:
168
182
  - - "~>"
169
183
  - !ruby/object:Gem::Version
170
184
  version: '0.1'
185
+ - !ruby/object:Gem::Dependency
186
+ name: pry
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '0.11'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "~>"
197
+ - !ruby/object:Gem::Version
198
+ version: '0.11'
171
199
  - !ruby/object:Gem::Dependency
172
200
  name: rake
173
201
  requirement: !ruby/object:Gem::Requirement
@@ -211,9 +239,9 @@ dependencies:
211
239
  - !ruby/object:Gem::Version
212
240
  version: '0.4'
213
241
  description: |
214
- Simple gem that fetches the available stories in your PivotalTracker
215
- project and allows you to create a git branch with the name based
216
- on the selected story
242
+ This simple gem allows you to create a branch based on the existing issues
243
+ in your preferred tracker. It integrates with PivotalTracker, Github and
244
+ JIRA. Different workflows shall be supported in the next versions.
217
245
  email:
218
246
  - rui.p.baltazar@gmail.com
219
247
  - jasonm23@gmail.com
@@ -267,6 +295,9 @@ files:
267
295
  - lib/story_branch/github/milestone.rb
268
296
  - lib/story_branch/github/project.rb
269
297
  - lib/story_branch/github/tracker.rb
298
+ - lib/story_branch/jira/issue.rb
299
+ - lib/story_branch/jira/project.rb
300
+ - lib/story_branch/jira/tracker.rb
270
301
  - lib/story_branch/main.rb
271
302
  - lib/story_branch/pivotal/project.rb
272
303
  - lib/story_branch/pivotal/story.rb
@@ -299,19 +330,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
299
330
  requirements:
300
331
  - - ">="
301
332
  - !ruby/object:Gem::Version
302
- version: '2.3'
333
+ version: '2.4'
303
334
  - - "<"
304
335
  - !ruby/object:Gem::Version
305
336
  version: '2.7'
306
337
  required_rubygems_version: !ruby/object:Gem::Requirement
307
338
  requirements:
308
- - - ">="
339
+ - - ">"
309
340
  - !ruby/object:Gem::Version
310
- version: '0'
341
+ version: 1.3.1
311
342
  requirements: []
312
- rubyforge_project:
313
- rubygems_version: 2.6.13
343
+ rubygems_version: 3.0.3
314
344
  signing_key:
315
345
  specification_version: 4
316
- summary: Create git branches based on pivotal tracker stories
346
+ summary: Create git branches based on your preferred tracker tickets
317
347
  test_files: []