lazylead 0.1.1 → 0.4.0

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.0pdd.yml +4 -1
  3. data/.circleci/config.yml +19 -7
  4. data/.circleci/release_image.sh +6 -3
  5. data/.docker/Dockerfile +10 -9
  6. data/.docker/docker-compose.yml +3 -3
  7. data/.docker/readme.md +24 -21
  8. data/.docker/vcs.dockerfile +10 -0
  9. data/.docs/accuracy.md +107 -0
  10. data/.docs/accuracy_email.jpg +0 -0
  11. data/.docs/accuracy_jira_comment.jpg +0 -0
  12. data/.docs/duedate_expired.md +92 -0
  13. data/.docs/propagate_down.md +89 -0
  14. data/.pdd +1 -1
  15. data/.rubocop.yml +7 -1
  16. data/.rultor.yml +13 -14
  17. data/.simplecov +0 -6
  18. data/Rakefile +38 -1
  19. data/bin/lazylead +13 -5
  20. data/lazylead.gemspec +6 -17
  21. data/lib/lazylead/cc.rb +180 -0
  22. data/lib/lazylead/cli/app.rb +4 -3
  23. data/lib/lazylead/exchange.rb +15 -2
  24. data/lib/lazylead/home.rb +38 -0
  25. data/lib/lazylead/log.rb +30 -8
  26. data/lib/lazylead/model.rb +60 -16
  27. data/lib/lazylead/opts.rb +68 -0
  28. data/lib/lazylead/postman.rb +15 -15
  29. data/lib/lazylead/schedule.rb +6 -4
  30. data/lib/lazylead/smtp.rb +1 -1
  31. data/lib/lazylead/system/fake.rb +1 -1
  32. data/lib/lazylead/system/jira.rb +55 -12
  33. data/lib/lazylead/system/synced.rb +2 -1
  34. data/lib/lazylead/task/accuracy/accuracy.rb +140 -0
  35. data/lib/lazylead/task/accuracy/affected_build.rb +43 -0
  36. data/lib/lazylead/task/accuracy/requirement.rb +40 -0
  37. data/lib/lazylead/task/alert.rb +8 -6
  38. data/lib/lazylead/task/confluence_ref.rb +4 -3
  39. data/lib/lazylead/task/echo.rb +4 -0
  40. data/lib/lazylead/task/fix_version.rb +11 -7
  41. data/lib/lazylead/task/missing_comment.rb +7 -5
  42. data/lib/lazylead/task/propagate_down.rb +126 -0
  43. data/lib/lazylead/task/savepoint.rb +58 -0
  44. data/lib/lazylead/task/touch.rb +102 -0
  45. data/lib/lazylead/version.rb +1 -1
  46. data/lib/messages/accuracy.erb +118 -0
  47. data/lib/messages/due_date_expired.erb +8 -7
  48. data/lib/messages/illegal_fixversion_change.erb +9 -8
  49. data/lib/messages/missing_comment.erb +10 -9
  50. data/lib/messages/savepoint.erb +43 -0
  51. data/lib/messages/svn_touch.erb +147 -0
  52. data/readme.md +90 -80
  53. data/test/lazylead/cc_test.rb +153 -0
  54. data/test/lazylead/cli/app_test.rb +3 -4
  55. data/test/lazylead/exchange_test.rb +22 -2
  56. data/test/lazylead/model_test.rb +14 -3
  57. data/test/lazylead/opts_test.rb +66 -0
  58. data/test/lazylead/postman_test.rb +57 -0
  59. data/test/lazylead/smtp_test.rb +1 -1
  60. data/test/lazylead/system/jira_test.rb +43 -1
  61. data/test/lazylead/task/accuracy/accuracy_test.rb +73 -0
  62. data/test/lazylead/task/accuracy/affected_build_test.rb +42 -0
  63. data/test/lazylead/task/assignee_alert_test.rb +47 -0
  64. data/test/lazylead/task/duedate_test.rb +52 -30
  65. data/test/lazylead/task/fix_version_test.rb +11 -10
  66. data/test/lazylead/task/missing_comment_test.rb +13 -13
  67. data/test/lazylead/task/propagate_down_test.rb +88 -0
  68. data/test/lazylead/task/savepoint_test.rb +51 -0
  69. data/test/lazylead/task/touch_test.rb +63 -0
  70. data/test/test.rb +11 -0
  71. data/upgrades/sqlite/001-install-main-lazylead-tables.sql +3 -4
  72. data/upgrades/sqlite/999.testdata.sql +8 -2
  73. metadata +57 -177
  74. data/deploy.sh +0 -16
  75. data/todo.yml +0 -6
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ # The MIT License
4
+ #
5
+ # Copyright (c) 2019-2020 Yurii Dubinka
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the "Software"),
9
+ # to deal in the Software without restriction, including without limitation
10
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
11
+ # and/or sell copies of the Software, and to permit persons to whom
12
+ # the Software is furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included
15
+ # in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
23
+ # OR OTHER DEALINGS IN THE SOFTWARE.
24
+
25
+ require "mail"
26
+ require_relative "../../test"
27
+ require_relative "../../../lib/lazylead/smtp"
28
+
29
+ require_relative "../../../lib/lazylead/postman"
30
+ require_relative "../../../lib/lazylead/task/touch"
31
+
32
+ module Lazylead
33
+ class SvnTouchTest < Lazylead::Test
34
+ # @todo #/DEV Find stable svn repo which can be used for stable test, for
35
+ # now only floating repo used for testing locally. Also, create a new
36
+ # method "ping" which can be used during tests like
37
+ # skip "No connection available to svn repo" unless ping("https://svn.com")
38
+ test "important files changed in svn repo" do
39
+ skip "No svn credentials provided" unless env? "svn_url",
40
+ "svn_user",
41
+ "svn_password"
42
+ Lazylead::Smtp.new.enable
43
+ Task::SvnTouch.new.run(
44
+ nil,
45
+ Postman.new,
46
+ "svn_url" => ENV["svn_url"],
47
+ "svn_user" => ENV["svn_user"],
48
+ "svn_password" => ENV["svn_password"],
49
+ "commit_url" => "https://view.commit.com?rev=",
50
+ "user" => "https://user.com?id=",
51
+ "to" => "lead@fake.com",
52
+ "from" => "ll@fake.com",
53
+ "now" => "2020-07-12T17:24:45+01:00",
54
+ "period" => "864000",
55
+ "files" => "checkstyle.xml,checkstyle_suppressions.xml",
56
+ "subject" => "[SVN] Static analysis configuration has been changed!",
57
+ "template" => "lib/messages/svn_touch.erb"
58
+ )
59
+ assert_email "[SVN] Static analysis configuration has been changed!",
60
+ %w[revision user ticket]
61
+ end
62
+ end
63
+ end
@@ -37,6 +37,7 @@ require "minitest/reporters"
37
37
  require "concurrent"
38
38
  require "timeout"
39
39
  require "active_support"
40
+ require "mail"
40
41
 
41
42
  STDOUT.sync = true
42
43
  Minitest::Reporters.use! [Minitest::Reporters::SpecReporter.new]
@@ -99,5 +100,15 @@ module Lazylead
99
100
  !ENV[keys].blank?
100
101
  end
101
102
  end
103
+
104
+ # Assert that email sent using 'mail' gem in test mode
105
+ # has expected subject and words
106
+ def assert_email(subject, words)
107
+ assert_words words,
108
+ Mail::TestMailer.deliveries
109
+ .filter { |m| m.subject.eql? subject }
110
+ .first
111
+ .body.parts.first.body.raw_source
112
+ end
102
113
  end
103
114
  end
@@ -32,19 +32,19 @@
32
32
  PRAGMA foreign_keys = ON;
33
33
  create table if not exists teams
34
34
  (
35
- id integer primary key autoincrement,
35
+ id integer primary key,
36
36
  name text not null,
37
37
  properties text
38
38
  );
39
39
  create table if not exists systems
40
40
  (
41
- id integer primary key autoincrement,
41
+ id integer primary key,
42
42
  properties text not null
43
43
  );
44
44
  -- @todo #/DEV task.cron - add regexp verification of cron expression.
45
45
  create table if not exists tasks
46
46
  (
47
- id integer primary key autoincrement,
47
+ id integer primary key,
48
48
  name text not null,
49
49
  cron text not null,
50
50
  -- @todo #/DEV task.cron - add support for non-cron based schedule like at, once, every.
@@ -54,7 +54,6 @@ create table if not exists tasks
54
54
  system integer not null,
55
55
  action text not null,
56
56
  team_id integer not null,
57
- description text,
58
57
  enabled text,
59
58
  properties text not null,
60
59
  -- @todo #/DEV tasks.enabled - add index for future search. Research is required.
@@ -27,7 +27,8 @@ values (1,
27
27
  (2,
28
28
  '{"type":"Lazylead::Jira", "username":"${jsi_usr}", "password":"${jsi_psw}", "site":"https://jira.spring.io", "context_path":""}');
29
29
  insert into teams(id, name, properties)
30
- values (1, 'BA squad', '{"from":"basquad@fake.com", "usr":"${usr}"}');
30
+ values (1, 'BA squad', '{"from":"basquad@fake.com", "usr":"${usr}"}'),
31
+ (154, 'Team for issue #154', '{"cc":"lead@fake.com"}');
31
32
  insert into tasks(name, cron, enabled, id, system, team_id, action, properties)
32
33
  values ('echo', '* * * * *', 'false', 1, 1, 1, 'Lazylead::Task::Echo', '{}'),
33
34
  ('expired due date', '* * * * *', 'false', 2, 1, 1,
@@ -36,4 +37,9 @@ values ('echo', '* * * * *', 'false', 1, 1, 1, 'Lazylead::Task::Echo', '{}'),
36
37
  ('task with cc', '* * * * *', 'false', 3, 1, 1, 'Lazylead::Task::Echo',
37
38
  '{"cc":"leelakenny@mail.com,maciecrane@mail.com"}'),
38
39
  ('task', '* * * * *', 'false', 4, 2, 1, 'Lazylead::Task::Echo', '{}'),
39
- ('pman', '', '', 5, 2, 1, '', '{"postman":"Lazylead::Postman"}');
40
+ ('pman', '', '', 5, 2, 1, '', '{"postman":"Lazylead::Postman"}'),
41
+ ('issue 154', '* * * * *', 'false', 154, 1, 154, 'Lazylead::Task::AssigneeAlert', '{}'),
42
+ ('task with complex cc', '* * * * *', 'false', 165, 1, 1, 'Lazylead::Task::Echo',
43
+ '{"cc":{"type":"Lazylead::PredefinedCC","opts": {"jvm":"tom@fake.com","jdbc":"mike@fake.com"}}}'),
44
+ ('issue 171', '* * * * *', 'false', 171, 1, 1, 'Lazylead::Task::Echo', '{"envkey":"${key171}"}'),
45
+ ('issue 195', '* * * * *', 'false', 195, 1, 1, 'Lazylead::Task::Accuracy', '{"key":"value"}');
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazylead
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yurii Dubinka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-06 00:00:00.000000000 Z
11
+ date: 2020-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -38,34 +38,6 @@ dependencies:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.3'
41
- - !ruby/object:Gem::Dependency
42
- name: concurrent-ruby
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 1.1.5
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 1.1.5
55
- - !ruby/object:Gem::Dependency
56
- name: diffy
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
61
- version: 3.3.0
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '='
67
- - !ruby/object:Gem::Version
68
- version: 3.3.0
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: faraday
71
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +52,6 @@ dependencies:
80
52
  - - '='
81
53
  - !ruby/object:Gem::Version
82
54
  version: 1.0.1
83
- - !ruby/object:Gem::Dependency
84
- name: futex
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 0.8.5
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 0.8.5
97
55
  - !ruby/object:Gem::Dependency
98
56
  name: get_process_mem
99
57
  requirement: !ruby/object:Gem::Requirement
@@ -108,20 +66,6 @@ dependencies:
108
66
  - - '='
109
67
  - !ruby/object:Gem::Version
110
68
  version: 0.2.5
111
- - !ruby/object:Gem::Dependency
112
- name: haml
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '='
116
- - !ruby/object:Gem::Version
117
- version: 5.0.4
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '='
123
- - !ruby/object:Gem::Version
124
- version: 5.0.4
125
69
  - !ruby/object:Gem::Dependency
126
70
  name: jira-ruby
127
71
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +86,14 @@ dependencies:
142
86
  requirements:
143
87
  - - '='
144
88
  - !ruby/object:Gem::Version
145
- version: 2.2.0
89
+ version: 2.3.0
146
90
  type: :runtime
147
91
  prerelease: false
148
92
  version_requirements: !ruby/object:Gem::Requirement
149
93
  requirements:
150
94
  - - '='
151
95
  - !ruby/object:Gem::Version
152
- version: 2.2.0
96
+ version: 2.3.0
153
97
  - !ruby/object:Gem::Dependency
154
98
  name: logging
155
99
  requirement: !ruby/object:Gem::Requirement
@@ -248,34 +192,6 @@ dependencies:
248
192
  - - '='
249
193
  - !ruby/object:Gem::Version
250
194
  version: 3.6.0
251
- - !ruby/object:Gem::Dependency
252
- name: semantic
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - '='
256
- - !ruby/object:Gem::Version
257
- version: 1.6.1
258
- type: :runtime
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - '='
263
- - !ruby/object:Gem::Version
264
- version: 1.6.1
265
- - !ruby/object:Gem::Dependency
266
- name: sinatra
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - '='
270
- - !ruby/object:Gem::Version
271
- version: 2.0.5
272
- type: :runtime
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - '='
277
- - !ruby/object:Gem::Version
278
- version: 2.0.5
279
195
  - !ruby/object:Gem::Dependency
280
196
  name: slop
281
197
  requirement: !ruby/object:Gem::Requirement
@@ -304,34 +220,6 @@ dependencies:
304
220
  - - '='
305
221
  - !ruby/object:Gem::Version
306
222
  version: 1.4.2
307
- - !ruby/object:Gem::Dependency
308
- name: sys-proctable
309
- requirement: !ruby/object:Gem::Requirement
310
- requirements:
311
- - - '='
312
- - !ruby/object:Gem::Version
313
- version: 1.2.1
314
- type: :runtime
315
- prerelease: false
316
- version_requirements: !ruby/object:Gem::Requirement
317
- requirements:
318
- - - '='
319
- - !ruby/object:Gem::Version
320
- version: 1.2.1
321
- - !ruby/object:Gem::Dependency
322
- name: threads
323
- requirement: !ruby/object:Gem::Requirement
324
- requirements:
325
- - - '='
326
- - !ruby/object:Gem::Version
327
- version: '0.3'
328
- type: :runtime
329
- prerelease: false
330
- version_requirements: !ruby/object:Gem::Requirement
331
- requirements:
332
- - - '='
333
- - !ruby/object:Gem::Version
334
- version: '0.3'
335
223
  - !ruby/object:Gem::Dependency
336
224
  name: tilt
337
225
  requirement: !ruby/object:Gem::Requirement
@@ -346,34 +234,6 @@ dependencies:
346
234
  - - '='
347
235
  - !ruby/object:Gem::Version
348
236
  version: 2.0.10
349
- - !ruby/object:Gem::Dependency
350
- name: total
351
- requirement: !ruby/object:Gem::Requirement
352
- requirements:
353
- - - '='
354
- - !ruby/object:Gem::Version
355
- version: '0.3'
356
- type: :runtime
357
- prerelease: false
358
- version_requirements: !ruby/object:Gem::Requirement
359
- requirements:
360
- - - '='
361
- - !ruby/object:Gem::Version
362
- version: '0.3'
363
- - !ruby/object:Gem::Dependency
364
- name: typhoeus
365
- requirement: !ruby/object:Gem::Requirement
366
- requirements:
367
- - - '='
368
- - !ruby/object:Gem::Version
369
- version: 1.3.1
370
- type: :runtime
371
- prerelease: false
372
- version_requirements: !ruby/object:Gem::Requirement
373
- requirements:
374
- - - '='
375
- - !ruby/object:Gem::Version
376
- version: 1.3.1
377
237
  - !ruby/object:Gem::Dependency
378
238
  name: tzinfo
379
239
  requirement: !ruby/object:Gem::Requirement
@@ -402,20 +262,6 @@ dependencies:
402
262
  - - '='
403
263
  - !ruby/object:Gem::Version
404
264
  version: 1.2019.3
405
- - !ruby/object:Gem::Dependency
406
- name: usagewatch_ext
407
- requirement: !ruby/object:Gem::Requirement
408
- requirements:
409
- - - '='
410
- - !ruby/object:Gem::Version
411
- version: 0.2.1
412
- type: :runtime
413
- prerelease: false
414
- version_requirements: !ruby/object:Gem::Requirement
415
- requirements:
416
- - - '='
417
- - !ruby/object:Gem::Version
418
- version: 0.2.1
419
265
  - !ruby/object:Gem::Dependency
420
266
  name: vcs4sql
421
267
  requirement: !ruby/object:Gem::Requirement
@@ -444,34 +290,20 @@ dependencies:
444
290
  - - '='
445
291
  - !ruby/object:Gem::Version
446
292
  version: 1.1.0
447
- - !ruby/object:Gem::Dependency
448
- name: zache
449
- requirement: !ruby/object:Gem::Requirement
450
- requirements:
451
- - - '='
452
- - !ruby/object:Gem::Version
453
- version: '0.12'
454
- type: :runtime
455
- prerelease: false
456
- version_requirements: !ruby/object:Gem::Requirement
457
- requirements:
458
- - - '='
459
- - !ruby/object:Gem::Version
460
- version: '0.12'
461
293
  - !ruby/object:Gem::Dependency
462
294
  name: codecov
463
295
  requirement: !ruby/object:Gem::Requirement
464
296
  requirements:
465
297
  - - '='
466
298
  - !ruby/object:Gem::Version
467
- version: 0.1.14
299
+ version: 0.2.3
468
300
  type: :development
469
301
  prerelease: false
470
302
  version_requirements: !ruby/object:Gem::Requirement
471
303
  requirements:
472
304
  - - '='
473
305
  - !ruby/object:Gem::Version
474
- version: 0.1.14
306
+ version: 0.2.3
475
307
  - !ruby/object:Gem::Dependency
476
308
  name: guard
477
309
  requirement: !ruby/object:Gem::Requirement
@@ -654,6 +486,20 @@ dependencies:
654
486
  - - '='
655
487
  - !ruby/object:Gem::Version
656
488
  version: 1.33.0
489
+ - !ruby/object:Gem::Dependency
490
+ name: sqlint
491
+ requirement: !ruby/object:Gem::Requirement
492
+ requirements:
493
+ - - '='
494
+ - !ruby/object:Gem::Version
495
+ version: 0.1.10
496
+ type: :development
497
+ prerelease: false
498
+ version_requirements: !ruby/object:Gem::Requirement
499
+ requirements:
500
+ - - '='
501
+ - !ruby/object:Gem::Version
502
+ version: 0.1.10
657
503
  - !ruby/object:Gem::Dependency
658
504
  name: xcop
659
505
  requirement: !ruby/object:Gem::Requirement
@@ -694,6 +540,12 @@ files:
694
540
  - ".docker/build.sh"
695
541
  - ".docker/docker-compose.yml"
696
542
  - ".docker/readme.md"
543
+ - ".docker/vcs.dockerfile"
544
+ - ".docs/accuracy.md"
545
+ - ".docs/accuracy_email.jpg"
546
+ - ".docs/accuracy_jira_comment.jpg"
547
+ - ".docs/duedate_expired.md"
548
+ - ".docs/propagate_down.md"
697
549
  - ".gitattributes"
698
550
  - ".github/CODE_OF_CONDUCT.md"
699
551
  - ".github/CONTRIBUTING.md"
@@ -718,16 +570,18 @@ files:
718
570
  - bin/.ruby-version
719
571
  - bin/lazylead
720
572
  - build.sh
721
- - deploy.sh
722
573
  - lazylead.gemspec
723
574
  - lib/lazylead.rb
724
575
  - lib/lazylead/allocated.rb
576
+ - lib/lazylead/cc.rb
725
577
  - lib/lazylead/cli/app.rb
726
578
  - lib/lazylead/confluence.rb
727
579
  - lib/lazylead/email.rb
728
580
  - lib/lazylead/exchange.rb
581
+ - lib/lazylead/home.rb
729
582
  - lib/lazylead/log.rb
730
583
  - lib/lazylead/model.rb
584
+ - lib/lazylead/opts.rb
731
585
  - lib/lazylead/postman.rb
732
586
  - lib/lazylead/salt.rb
733
587
  - lib/lazylead/schedule.rb
@@ -736,35 +590,52 @@ files:
736
590
  - lib/lazylead/system/fake.rb
737
591
  - lib/lazylead/system/jira.rb
738
592
  - lib/lazylead/system/synced.rb
593
+ - lib/lazylead/task/accuracy/accuracy.rb
594
+ - lib/lazylead/task/accuracy/affected_build.rb
595
+ - lib/lazylead/task/accuracy/requirement.rb
739
596
  - lib/lazylead/task/alert.rb
740
597
  - lib/lazylead/task/confluence_ref.rb
741
598
  - lib/lazylead/task/echo.rb
742
599
  - lib/lazylead/task/fix_version.rb
743
600
  - lib/lazylead/task/missing_comment.rb
601
+ - lib/lazylead/task/propagate_down.rb
602
+ - lib/lazylead/task/savepoint.rb
603
+ - lib/lazylead/task/touch.rb
744
604
  - lib/lazylead/version.rb
605
+ - lib/messages/accuracy.erb
745
606
  - lib/messages/due_date_expired.erb
746
607
  - lib/messages/illegal_fixversion_change.erb
747
608
  - lib/messages/missing_comment.erb
609
+ - lib/messages/savepoint.erb
610
+ - lib/messages/svn_touch.erb
748
611
  - license.txt
749
612
  - readme.md
750
613
  - test/lazylead/allocated_test.rb
614
+ - test/lazylead/cc_test.rb
751
615
  - test/lazylead/cli/app_test.rb
752
616
  - test/lazylead/confluence_test.rb
753
617
  - test/lazylead/exchange_test.rb
754
618
  - test/lazylead/model_test.rb
619
+ - test/lazylead/opts_test.rb
620
+ - test/lazylead/postman_test.rb
755
621
  - test/lazylead/salt_test.rb
756
622
  - test/lazylead/smoke_test.rb
757
623
  - test/lazylead/smtp_test.rb
758
624
  - test/lazylead/system/jira_test.rb
625
+ - test/lazylead/task/accuracy/accuracy_test.rb
626
+ - test/lazylead/task/accuracy/affected_build_test.rb
627
+ - test/lazylead/task/assignee_alert_test.rb
759
628
  - test/lazylead/task/confluence_ref_test.rb
760
629
  - test/lazylead/task/duedate_test.rb
761
630
  - test/lazylead/task/echo_test.rb
762
631
  - test/lazylead/task/fix_version_test.rb
763
632
  - test/lazylead/task/missing_comment_test.rb
633
+ - test/lazylead/task/propagate_down_test.rb
634
+ - test/lazylead/task/savepoint_test.rb
635
+ - test/lazylead/task/touch_test.rb
764
636
  - test/lazylead/version_test.rb
765
637
  - test/sqlite_test.rb
766
638
  - test/test.rb
767
- - todo.yml
768
639
  - upgrades/sqlite/001-install-main-lazylead-tables.sql
769
640
  - upgrades/sqlite/999.testdata.sql
770
641
  homepage: http://github.com/dgroup/lazylead
@@ -772,7 +643,7 @@ licenses:
772
643
  - MIT
773
644
  metadata: {}
774
645
  post_install_message: |-
775
- Thanks for installing Lazylead v0.0.0!
646
+ Thanks for installing Lazylead v0.4.0!
776
647
  Read our blog posts: https://lazylead.org
777
648
  Stay in touch with the community in Telegram: https://t.me/lazylead
778
649
  Follow us on Twitter: https://twitter.com/lazylead
@@ -798,19 +669,28 @@ specification_version: 2
798
669
  summary: Eliminate the annoying work within bug-trackers.
799
670
  test_files:
800
671
  - test/lazylead/allocated_test.rb
672
+ - test/lazylead/cc_test.rb
801
673
  - test/lazylead/cli/app_test.rb
802
674
  - test/lazylead/confluence_test.rb
803
675
  - test/lazylead/exchange_test.rb
804
676
  - test/lazylead/model_test.rb
677
+ - test/lazylead/opts_test.rb
678
+ - test/lazylead/postman_test.rb
805
679
  - test/lazylead/salt_test.rb
806
680
  - test/lazylead/smoke_test.rb
807
681
  - test/lazylead/smtp_test.rb
808
682
  - test/lazylead/system/jira_test.rb
683
+ - test/lazylead/task/accuracy/accuracy_test.rb
684
+ - test/lazylead/task/accuracy/affected_build_test.rb
685
+ - test/lazylead/task/assignee_alert_test.rb
809
686
  - test/lazylead/task/confluence_ref_test.rb
810
687
  - test/lazylead/task/duedate_test.rb
811
688
  - test/lazylead/task/echo_test.rb
812
689
  - test/lazylead/task/fix_version_test.rb
813
690
  - test/lazylead/task/missing_comment_test.rb
691
+ - test/lazylead/task/propagate_down_test.rb
692
+ - test/lazylead/task/savepoint_test.rb
693
+ - test/lazylead/task/touch_test.rb
814
694
  - test/lazylead/version_test.rb
815
695
  - test/sqlite_test.rb
816
696
  - test/test.rb