lazylead 0.8.0 → 0.9.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 +4 -4
- data/.docker/docker-compose.yml +1 -1
- data/.rubocop.yml +2 -0
- data/Rakefile +1 -1
- data/bin/lazylead +3 -0
- data/lazylead.gemspec +10 -9
- data/lib/lazylead/cc.rb +16 -22
- data/lib/lazylead/log.rb +11 -0
- data/lib/lazylead/model.rb +5 -7
- data/lib/lazylead/system/jira.rb +11 -7
- data/lib/lazylead/task/accuracy/accuracy.rb +22 -11
- data/lib/lazylead/task/accuracy/onlyll.rb +5 -7
- data/lib/lazylead/task/accuracy/screenshots.rb +65 -0
- data/lib/lazylead/task/assignment.rb +9 -13
- data/lib/lazylead/task/loading.rb +5 -1
- data/lib/lazylead/task/micromanager.rb +87 -0
- data/lib/lazylead/task/svn/diff.rb +28 -6
- data/lib/lazylead/version.rb +1 -1
- data/lib/messages/illegal_duedate_change.erb +120 -0
- data/lib/messages/loading.erb +8 -7
- data/readme.md +26 -18
- data/test/lazylead/task/accuracy/score_test.rb +38 -0
- data/test/lazylead/task/accuracy/screenshots_test.rb +140 -0
- data/test/lazylead/task/loading_test.rb +3 -2
- data/{Guardfile → test/lazylead/task/micromanager_test.rb} +28 -7
- data/test/lazylead/task/svn/diff_test.rb +7 -3
- data/test/test.rb +12 -0
- metadata +38 -18
@@ -40,10 +40,11 @@ module Lazylead
|
|
40
40
|
Opts.new(
|
41
41
|
"to" => "lead@company.com",
|
42
42
|
"from" => "ll@company.com",
|
43
|
-
"jql" => "key
|
43
|
+
"jql" => "key in (STS-3599, XD-3739, XD-3744)",
|
44
44
|
"team" => "mclaren:Tom McLaren,milesparker:Mi Pa",
|
45
45
|
"user_link" => "https://user.com?id=",
|
46
|
-
"
|
46
|
+
"search_link" => "https://jira.spring.io/issues/?jql=",
|
47
|
+
"fields" => "assignee,duedate,customfield_10480",
|
47
48
|
"subject" => "[LL] Team loading",
|
48
49
|
"template" => "lib/messages/loading.erb"
|
49
50
|
)
|
@@ -22,12 +22,33 @@
|
|
22
22
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
23
23
|
# OR OTHER DEALINGS IN THE SOFTWARE.
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
25
|
+
require "mail"
|
26
|
+
|
27
|
+
require_relative "../../test"
|
28
|
+
require_relative "../../../lib/lazylead/smtp"
|
29
|
+
require_relative "../../../lib/lazylead/opts"
|
30
|
+
require_relative "../../../lib/lazylead/postman"
|
31
|
+
require_relative "../../../lib/lazylead/task/micromanager"
|
32
|
+
|
33
|
+
module Lazylead
|
34
|
+
class MicromanagerTest < Lazylead::Test
|
35
|
+
test "alert in case duedate changed by not authorized person" do
|
36
|
+
Lazylead::Smtp.new.enable
|
37
|
+
Task::Micromanager.new.run(
|
38
|
+
NoAuthJira.new("https://jira.spring.io"),
|
39
|
+
Postman.new,
|
40
|
+
Opts.new(
|
41
|
+
"to" => "lead@company.com",
|
42
|
+
"from" => "ll@company.com",
|
43
|
+
"jql" => "key in ('STS-3599','SPR-6541') and duedate is not empty",
|
44
|
+
"fields" => "assignee,duedate,priority,created,summary,reporter",
|
45
|
+
"allowed" => "tom,mike,bob",
|
46
|
+
"subject" => "DD: How dare you?",
|
47
|
+
"template" => "lib/messages/illegal_duedate_change.erb"
|
48
|
+
)
|
49
|
+
)
|
50
|
+
assert_email "DD: How dare you?",
|
51
|
+
%w[SPR-6541 Major (kdonald) 2009-12-10 Spring's\ Maven\ Central tom,mike,bob]
|
52
|
+
end
|
32
53
|
end
|
33
54
|
end
|
@@ -31,6 +31,10 @@ require_relative "../../../../lib/lazylead/task/svn/diff"
|
|
31
31
|
|
32
32
|
module Lazylead
|
33
33
|
class DiffTest < Lazylead::Test
|
34
|
+
# @todo #/DEV Right now its impossible to check that attachment is present in email as we
|
35
|
+
# removing the directory with attachments once SVN::Diff is sent the email through the postman.
|
36
|
+
# Think about how to test this case in automatically, because for now we are doing it manually
|
37
|
+
# during the development.
|
34
38
|
test "changes since revision" do
|
35
39
|
skip "No svn credentials provided" unless env? "svn_log_user",
|
36
40
|
"svn_log_password"
|
@@ -53,8 +57,8 @@ module Lazylead
|
|
53
57
|
"template-attachment" => "lib/messages/svn_diff_attachment.erb"
|
54
58
|
)
|
55
59
|
)
|
56
|
-
assert_email_line "[SVN] Changed since rev1",
|
57
|
-
|
60
|
+
assert_email_line "[SVN] Changed since rev1", %w[r2 by dgroup at 2020-08-16]
|
61
|
+
# assert_attachment "[SVN] Changed since rev1", /^.*svn-log-.*.html.zip$/
|
58
62
|
end
|
59
63
|
|
60
64
|
test "changes since revision with attachment" do
|
@@ -68,7 +72,7 @@ module Lazylead
|
|
68
72
|
"LL_SMTP_TO",
|
69
73
|
"LL_SMTP_FROM"
|
70
74
|
Lazylead::Smtp.new(
|
71
|
-
Log.new,
|
75
|
+
Log.new.verbose,
|
72
76
|
NoSalt.new,
|
73
77
|
smtp_host: ENV["LL_SMTP_HOST"],
|
74
78
|
smtp_port: ENV["LL_SMTP_PORT"],
|
data/test/test.rb
CHANGED
@@ -126,6 +126,18 @@ module Lazylead
|
|
126
126
|
"Words '#{words.join(',')}' wasn't found in '#{mail.join('\n')}'"
|
127
127
|
end
|
128
128
|
|
129
|
+
def assert_attachment(subject, regexp)
|
130
|
+
parts = Mail::TestMailer.deliveries
|
131
|
+
.find { |m| m.subject.eql? subject }
|
132
|
+
.body.parts.parts
|
133
|
+
.select do |p|
|
134
|
+
p.header.fields.any? { |f| f.value.start_with? "attachment" }
|
135
|
+
end
|
136
|
+
refute_empty parts, "No attachments found within the email"
|
137
|
+
assert parts.first.header.fields.any? { |f| f.value.match regexp },
|
138
|
+
"No attachments found matches to '#{regexp}' in #{subject}"
|
139
|
+
end
|
140
|
+
|
129
141
|
# Ping remote host
|
130
142
|
# https://github.com/eitoball/net-ping
|
131
143
|
# https://stackoverflow.com/a/35508446/6916890
|
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.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yurii Dubinka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.4.1
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.4.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: get_process_mem
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - '='
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: 3.0.0
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rubyzip
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - '='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 2.3.0
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - '='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 2.3.0
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
224
|
name: rufus-scheduler
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -338,14 +352,14 @@ dependencies:
|
|
338
352
|
requirements:
|
339
353
|
- - '='
|
340
354
|
- !ruby/object:Gem::Version
|
341
|
-
version: 0.5.
|
355
|
+
version: 0.5.2
|
342
356
|
type: :development
|
343
357
|
prerelease: false
|
344
358
|
version_requirements: !ruby/object:Gem::Requirement
|
345
359
|
requirements:
|
346
360
|
- - '='
|
347
361
|
- !ruby/object:Gem::Version
|
348
|
-
version: 0.5.
|
362
|
+
version: 0.5.2
|
349
363
|
- !ruby/object:Gem::Dependency
|
350
364
|
name: guard
|
351
365
|
requirement: !ruby/object:Gem::Requirement
|
@@ -492,42 +506,42 @@ dependencies:
|
|
492
506
|
requirements:
|
493
507
|
- - '='
|
494
508
|
- !ruby/object:Gem::Version
|
495
|
-
version: 1.
|
509
|
+
version: 1.13.0
|
496
510
|
type: :development
|
497
511
|
prerelease: false
|
498
512
|
version_requirements: !ruby/object:Gem::Requirement
|
499
513
|
requirements:
|
500
514
|
- - '='
|
501
515
|
- !ruby/object:Gem::Version
|
502
|
-
version: 1.
|
516
|
+
version: 1.13.0
|
503
517
|
- !ruby/object:Gem::Dependency
|
504
518
|
name: rubocop-minitest
|
505
519
|
requirement: !ruby/object:Gem::Requirement
|
506
520
|
requirements:
|
507
521
|
- - '='
|
508
522
|
- !ruby/object:Gem::Version
|
509
|
-
version: 0.
|
523
|
+
version: 0.12.1
|
510
524
|
type: :development
|
511
525
|
prerelease: false
|
512
526
|
version_requirements: !ruby/object:Gem::Requirement
|
513
527
|
requirements:
|
514
528
|
- - '='
|
515
529
|
- !ruby/object:Gem::Version
|
516
|
-
version: 0.
|
530
|
+
version: 0.12.1
|
517
531
|
- !ruby/object:Gem::Dependency
|
518
532
|
name: rubocop-performance
|
519
533
|
requirement: !ruby/object:Gem::Requirement
|
520
534
|
requirements:
|
521
535
|
- - '='
|
522
536
|
- !ruby/object:Gem::Version
|
523
|
-
version: 1.
|
537
|
+
version: 1.11.0
|
524
538
|
type: :development
|
525
539
|
prerelease: false
|
526
540
|
version_requirements: !ruby/object:Gem::Requirement
|
527
541
|
requirements:
|
528
542
|
- - '='
|
529
543
|
- !ruby/object:Gem::Version
|
530
|
-
version: 1.
|
544
|
+
version: 1.11.0
|
531
545
|
- !ruby/object:Gem::Dependency
|
532
546
|
name: rubocop-rake
|
533
547
|
requirement: !ruby/object:Gem::Requirement
|
@@ -548,28 +562,28 @@ dependencies:
|
|
548
562
|
requirements:
|
549
563
|
- - '='
|
550
564
|
- !ruby/object:Gem::Version
|
551
|
-
version: 2.
|
565
|
+
version: 2.3.0
|
552
566
|
type: :development
|
553
567
|
prerelease: false
|
554
568
|
version_requirements: !ruby/object:Gem::Requirement
|
555
569
|
requirements:
|
556
570
|
- - '='
|
557
571
|
- !ruby/object:Gem::Version
|
558
|
-
version: 2.
|
572
|
+
version: 2.3.0
|
559
573
|
- !ruby/object:Gem::Dependency
|
560
574
|
name: sqlint
|
561
575
|
requirement: !ruby/object:Gem::Requirement
|
562
576
|
requirements:
|
563
577
|
- - '='
|
564
578
|
- !ruby/object:Gem::Version
|
565
|
-
version: 0.
|
579
|
+
version: 0.2.0
|
566
580
|
type: :development
|
567
581
|
prerelease: false
|
568
582
|
version_requirements: !ruby/object:Gem::Requirement
|
569
583
|
requirements:
|
570
584
|
- - '='
|
571
585
|
- !ruby/object:Gem::Version
|
572
|
-
version: 0.
|
586
|
+
version: 0.2.0
|
573
587
|
- !ruby/object:Gem::Dependency
|
574
588
|
name: tempfile
|
575
589
|
requirement: !ruby/object:Gem::Requirement
|
@@ -648,7 +662,6 @@ files:
|
|
648
662
|
- ".simplecov"
|
649
663
|
- CNAME
|
650
664
|
- Gemfile
|
651
|
-
- Guardfile
|
652
665
|
- Rakefile
|
653
666
|
- appveyor.yml
|
654
667
|
- bin/.ruby-version
|
@@ -683,6 +696,7 @@ files:
|
|
683
696
|
- lib/lazylead/task/accuracy/onlyll.rb
|
684
697
|
- lib/lazylead/task/accuracy/records.rb
|
685
698
|
- lib/lazylead/task/accuracy/requirement.rb
|
699
|
+
- lib/lazylead/task/accuracy/screenshots.rb
|
686
700
|
- lib/lazylead/task/accuracy/servers.rb
|
687
701
|
- lib/lazylead/task/accuracy/stacktrace.rb
|
688
702
|
- lib/lazylead/task/accuracy/testcase.rb
|
@@ -695,6 +709,7 @@ files:
|
|
695
709
|
- lib/lazylead/task/echo.rb
|
696
710
|
- lib/lazylead/task/fix_version.rb
|
697
711
|
- lib/lazylead/task/loading.rb
|
712
|
+
- lib/lazylead/task/micromanager.rb
|
698
713
|
- lib/lazylead/task/missing_comment.rb
|
699
714
|
- lib/lazylead/task/propagate_down.rb
|
700
715
|
- lib/lazylead/task/savepoint.rb
|
@@ -707,6 +722,7 @@ files:
|
|
707
722
|
- lib/messages/created_recently.erb
|
708
723
|
- lib/messages/due_date_expired.erb
|
709
724
|
- lib/messages/illegal_assignee_change.erb
|
725
|
+
- lib/messages/illegal_duedate_change.erb
|
710
726
|
- lib/messages/illegal_fixversion_change.erb
|
711
727
|
- lib/messages/loading.erb
|
712
728
|
- lib/messages/missing_comment.erb
|
@@ -738,6 +754,7 @@ files:
|
|
738
754
|
- test/lazylead/task/accuracy/onlyll_test.rb
|
739
755
|
- test/lazylead/task/accuracy/records_test.rb
|
740
756
|
- test/lazylead/task/accuracy/score_test.rb
|
757
|
+
- test/lazylead/task/accuracy/screenshots_test.rb
|
741
758
|
- test/lazylead/task/accuracy/servers_test.rb
|
742
759
|
- test/lazylead/task/accuracy/stacktrace_test.rb
|
743
760
|
- test/lazylead/task/accuracy/testcase_test.rb
|
@@ -752,6 +769,7 @@ files:
|
|
752
769
|
- test/lazylead/task/echo_test.rb
|
753
770
|
- test/lazylead/task/fix_version_test.rb
|
754
771
|
- test/lazylead/task/loading_test.rb
|
772
|
+
- test/lazylead/task/micromanager_test.rb
|
755
773
|
- test/lazylead/task/missing_comment_test.rb
|
756
774
|
- test/lazylead/task/propagate_down_test.rb
|
757
775
|
- test/lazylead/task/savepoint_test.rb
|
@@ -768,7 +786,7 @@ licenses:
|
|
768
786
|
- MIT
|
769
787
|
metadata: {}
|
770
788
|
post_install_message: |-
|
771
|
-
Thanks for installing Lazylead v0.
|
789
|
+
Thanks for installing Lazylead v0.9.1!
|
772
790
|
Read our blog posts: https://lazylead.org
|
773
791
|
Stay in touch with the community in Telegram: https://t.me/lazylead
|
774
792
|
Follow us on Twitter: https://twitter.com/lazylead
|
@@ -813,6 +831,7 @@ test_files:
|
|
813
831
|
- test/lazylead/task/accuracy/onlyll_test.rb
|
814
832
|
- test/lazylead/task/accuracy/records_test.rb
|
815
833
|
- test/lazylead/task/accuracy/score_test.rb
|
834
|
+
- test/lazylead/task/accuracy/screenshots_test.rb
|
816
835
|
- test/lazylead/task/accuracy/servers_test.rb
|
817
836
|
- test/lazylead/task/accuracy/stacktrace_test.rb
|
818
837
|
- test/lazylead/task/accuracy/testcase_test.rb
|
@@ -827,6 +846,7 @@ test_files:
|
|
827
846
|
- test/lazylead/task/echo_test.rb
|
828
847
|
- test/lazylead/task/fix_version_test.rb
|
829
848
|
- test/lazylead/task/loading_test.rb
|
849
|
+
- test/lazylead/task/micromanager_test.rb
|
830
850
|
- test/lazylead/task/missing_comment_test.rb
|
831
851
|
- test/lazylead/task/propagate_down_test.rb
|
832
852
|
- test/lazylead/task/savepoint_test.rb
|