git-story-workflow 1.6.0 → 1.7.1

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