git-story-workflow 1.6.0 → 1.7.1

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
  SHA256:
3
- metadata.gz: 71a678629ab94d345b9362db3a9632978eecccf4a0b42074b8926a8caa8e7793
4
- data.tar.gz: c709d15f03f8a751ec2c61626210ec240fbd5ab1e89b4cd314d9548499ab3284
3
+ metadata.gz: 9281d7ee0268375c1962f2e770d845eb3cbf8ebb26f0655b5362d52174698558
4
+ data.tar.gz: 8c0dfe010aaee441b7548f877492cfa68b394f2896862fa0e184991004302703
5
5
  SHA512:
6
- metadata.gz: c1b06bbac8125456cb8095081affae06ee3105f3d157ae2b5f24f970d92072cac0b5aa129d6abde397fdf8d91e7040232673dbb43c55e46aebf30b8cddf66fc4
7
- data.tar.gz: 03b2db927c695b5c16b1c0503ff26dbd570e4fe1e12317cf4dd69e3332c2329b2c8fe6c75709b8c4738bd6a4eec68b8dc71bf60c15728e9a163837f09457c734
6
+ metadata.gz: 6fd7c0939eb952e7f3e92d2ba3366fe469e829f70a238b5f54ed53cd101e05132651c62097ea0069a9761b3e95c148b726ff2c30112321d1f80bd829859e8ce7
7
+ data.tar.gz: 781376972c269ebd38e1ac0993d07daafd97365c6a4b6d4d41ba7280c02f9967794247df69c1104ed81db47357e232acebb644540faefc57cae723a7793a8496
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.7.1
data/config/story.yml CHANGED
@@ -5,4 +5,3 @@ pivotal_reference_prefix: pivotal
5
5
  deploy_tag_prefix: production_deploy_
6
6
  semaphore_auth_token: <%= ENV['SEMAPHORE_AUTH_TOKEN'] %>
7
7
  semaphore_project_url: https://betterplace.semaphoreci.com/projects/betterplace
8
- todo_nudging: <%= ENV['TODO_NUDGING'].to_i == 1 %>
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: git-story-workflow 1.6.0 ruby lib
2
+ # stub: git-story-workflow 1.7.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "git-story-workflow".freeze
6
- s.version = "1.6.0"
6
+ s.version = "1.7.1"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2021-11-15"
11
+ s.date = "2022-01-17"
12
12
  s.description = "Gem abstracting a git workflow\u2026".freeze
13
13
  s.email = "flori@ping.de".freeze
14
14
  s.executables = ["git-story".freeze]
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.homepage = "http://flori.github.com/git-story-workflow".freeze
18
18
  s.licenses = ["Apache-2.0".freeze]
19
19
  s.rdoc_options = ["--title".freeze, "Git-story-workflow".freeze, "--main".freeze, "README.md".freeze]
20
- s.rubygems_version = "3.2.15".freeze
20
+ s.rubygems_version = "3.2.22".freeze
21
21
  s.summary = "Gem abstracting a git workflow".freeze
22
22
  s.test_files = ["spec/git/story/app_spec.rb".freeze, "spec/spec_helper.rb".freeze]
23
23
 
data/lib/git/story/app.rb CHANGED
@@ -205,7 +205,8 @@ class Git::Story::App
205
205
  fetch_tags
206
206
  opts = ([
207
207
  '--color=never',
208
- '--pretty=%B'
208
+ '--pretty=%B',
209
+ '--reverse',
209
210
  ] | rest) * ' '
210
211
  output = capture("git log #{opts} #{ref}")
211
212
  pivotal_ids = SortedSet[]
@@ -229,6 +230,10 @@ class Git::Story::App
229
230
  attendees = Set[]
230
231
  fetch_stories(pivotal_ids) do |pid|
231
232
  story = fetch_story(pid, with_owner: true)
233
+ if !story
234
+ stories << "• ** Story with id #{pid} could not be found **"
235
+ next
236
+ end
232
237
  attendees.merge story.owners
233
238
  stories << <<~end
234
239
  • [##{story.id}] #{story.name}
@@ -493,8 +498,9 @@ class Git::Story::App
493
498
  end
494
499
 
495
500
  def fetch_story(story_id, with_owner: false)
496
- story = pivotal_get("projects/#{pivotal_project}/stories/#{story_id}").full?
497
- story.owners = Array((fetch_story_owners(story_id) if with_owner))
501
+ if story = pivotal_get("projects/#{pivotal_project}/stories/#{story_id}").full?
502
+ story.owners = Array((fetch_story_owners(story_id) if with_owner))
503
+ end
498
504
  story
499
505
  end
500
506
 
@@ -613,15 +619,22 @@ class Git::Story::App
613
619
 
614
620
  def fetch_stories(pivotal_ids, &block)
615
621
  block or raise ArgumentError, '&block parameter is required'
616
- tg = ThreadGroup.new
622
+ threads = []
617
623
  pivotal_ids.each do |pid|
618
- tg.add Thread.new { Thread.current[:result] = block.(pid) }
624
+ order = 0
625
+ threads.push(
626
+ Thread.new do
627
+ Thread.current[:order] = order
628
+ Thread.current[:result] = block.(pid)
629
+ rescue
630
+ end
631
+ )
619
632
  end
620
- tg.list.with_infobar(label: 'Story').map do |t|
633
+ threads.with_infobar(label: 'Story').map do |t|
621
634
  t.join
622
635
  +infobar
623
- t[:result]
624
- end
636
+ [ t[:order], t[:result] ]
637
+ end.sort_by(&:first).transpose[1].to_a
625
638
  end
626
639
 
627
640
  def fetch_statuses(pivotal_ids)
@@ -26,12 +26,8 @@ class CommitMesssageParser
26
26
  def parse(template)
27
27
  @message_data = template.readlines
28
28
  @message_data.each do |line|
29
- if /^\s*\[.*(?:#\d+|TODO|(?<done>DONE)).*\]/i =~ line
29
+ if /^\s*\[.*(?:#\d{7,}).*\]/i =~ line
30
30
  @story_number_found = true
31
- if @story_number_done = !!done
32
- @message_data.slice!(@line_index)
33
- next
34
- end
35
31
  end
36
32
  if line =~ /^\s*#/
37
33
  break
@@ -58,7 +54,7 @@ class CommitMesssageParser
58
54
  end
59
55
 
60
56
  story_numbers =
61
- `git branch --no-color`.sub!(/^\* .*?(?:_(\d+(?:_\d+)*))$/) {
57
+ `git branch --no-color`.sub!(/^\* .*?(?:_(\d{7,}(?:_\d{7,})*))$/) {
62
58
  break $1.split(/_/)
63
59
  } || []
64
60
  story_numbers.map!(&:chomp)
@@ -67,8 +63,9 @@ Tempfile.open('commit') do |output|
67
63
  message_parsed = CommitMesssageParser.new.parse(template)
68
64
  if message_parsed.story_number_found?
69
65
  output.puts message_parsed.total
70
- elsif complex_config.story.todo_nudging? && story_numbers.empty? && !message_parsed.story_number_done?
71
- output.puts message_parsed.data, "", "[TODO]", "", message_parsed.footer
66
+ elsif story_numbers.empty?
67
+ template.rewind
68
+ output.puts template.read
72
69
  else
73
70
  full_message = [ message_parsed.data, "", ]
74
71
  if prefix = complex_config.story.pivotal_reference_prefix?
@@ -1,6 +1,6 @@
1
1
  module Git::Story
2
2
  # Git::Story version
3
- VERSION = '1.6.0'
3
+ VERSION = '1.7.1'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-story-workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-15 00:00:00.000000000 Z
11
+ date: 2022-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
218
  - !ruby/object:Gem::Version
219
219
  version: '0'
220
220
  requirements: []
221
- rubygems_version: 3.2.15
221
+ rubygems_version: 3.2.22
222
222
  signing_key:
223
223
  specification_version: 4
224
224
  summary: Gem abstracting a git workflow