lazylead 0.3.0 → 0.3.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/.circleci/config.yml +2 -0
- data/bin/lazylead +3 -0
- data/lazylead.gemspec +2 -2
- data/lib/lazylead/cc.rb +12 -6
- data/lib/lazylead/cli/app.rb +4 -3
- data/lib/lazylead/model.rb +4 -0
- data/lib/lazylead/schedule.rb +4 -2
- data/lib/lazylead/system/fake.rb +1 -1
- data/lib/lazylead/system/jira.rb +1 -1
- data/lib/lazylead/version.rb +1 -1
- data/readme.md +2 -2
- data/test/lazylead/cc_test.rb +20 -0
- data/test/lazylead/task/duedate_test.rb +1 -1
- metadata +3 -4
- data/todo.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4564fa672731c29fe8e9dc32d2f09c56bf0b9245fce2900b4335c49442d08fb2
|
4
|
+
data.tar.gz: 58ff724cc12437d3106978913f0c2ef12a189f2e80b87ec07a2202bcd0f90267
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7b23097dca908102e6863d5527769bfe3d5405003cbab920da7ee6fd7f4118b554eb3d3a5f1170830dfdbf8fb08f752e6276fae4157f919f6e39ec070a91089
|
7
|
+
data.tar.gz: be8745b87907ab9ad30e9e4eb67f0ebf44ae0dcc01dcdbedefd79ab480e1222bbdc8835a397d465b5e491e995ee7ceaf685464385d7d87c0f0014900325d38ac
|
data/.circleci/config.yml
CHANGED
@@ -21,6 +21,7 @@ jobs:
|
|
21
21
|
command: |
|
22
22
|
set -e
|
23
23
|
COMMIT_URL="https://github.com/dgroup/lazylead/commit/${CIRCLE_SHA1}"
|
24
|
+
sed -i "s/0\.0\.0/${DOCKER_RELEASE_TAGS}/g" lib/lazylead/version.rb
|
24
25
|
docker build --build-arg release_tags="${CIRCLE_SHA1}, ${CIRCLE_BRANCH}, ${COMMIT_URL}" --build-arg version="${DOCKER_RELEASE_TAGS:7}" \
|
25
26
|
-t dgroup/lazylead:$CIRCLE_BRANCH . \
|
26
27
|
-f .docker/Dockerfile
|
@@ -40,6 +41,7 @@ jobs:
|
|
40
41
|
name: "Build & push LL VCS image"
|
41
42
|
command: |
|
42
43
|
sed -i "s/0\.0\.0/${DOCKER_RELEASE_TAGS}/g" .docker/vcs.dockerfile
|
44
|
+
sed -i "s/0\.0\.0/${DOCKER_RELEASE_TAGS}/g" lib/lazylead/version.rb
|
43
45
|
docker build -t dgroup/lazylead:${DOCKER_RELEASE_TAGS}-vcs . -f .docker/vcs.dockerfile
|
44
46
|
docker push dgroup/lazylead:${DOCKER_RELEASE_TAGS}-vcs
|
45
47
|
- run:
|
data/bin/lazylead
CHANGED
@@ -60,6 +60,9 @@ Available options:"
|
|
60
60
|
o.string "--vcs4sql",
|
61
61
|
"Home directory with database version control(vcs) scripts",
|
62
62
|
default: "upgrades/sqlite"
|
63
|
+
o.integer "--max-connections",
|
64
|
+
"SQL connections pool size",
|
65
|
+
default: 5
|
63
66
|
o.bool "--testdata",
|
64
67
|
"Apply the database VCS migration with test data",
|
65
68
|
default: false
|
data/lazylead.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.rubygems_version = "2.2"
|
33
33
|
s.required_ruby_version = ">=2.6.5"
|
34
34
|
s.name = "lazylead"
|
35
|
-
s.version = "0.3.
|
35
|
+
s.version = "0.3.1"
|
36
36
|
s.license = "MIT"
|
37
37
|
s.summary = "Eliminate the annoying work within bug-trackers."
|
38
38
|
s.description = "Ticketing systems (Github, Jira, etc.) are strongly
|
@@ -45,7 +45,7 @@ tasks instead of solving technical problems."
|
|
45
45
|
s.authors = ["Yurii Dubinka"]
|
46
46
|
s.email = "yurii.dubinka@gmail.com"
|
47
47
|
s.homepage = "http://github.com/dgroup/lazylead"
|
48
|
-
s.post_install_message = "Thanks for installing Lazylead v0.3.
|
48
|
+
s.post_install_message = "Thanks for installing Lazylead v0.3.1!
|
49
49
|
Read our blog posts: https://lazylead.org
|
50
50
|
Stay in touch with the community in Telegram: https://t.me/lazylead
|
51
51
|
Follow us on Twitter: https://twitter.com/lazylead
|
data/lib/lazylead/cc.rb
CHANGED
@@ -37,20 +37,26 @@ module Lazylead
|
|
37
37
|
# - Empty
|
38
38
|
#
|
39
39
|
def detect(emails, sys)
|
40
|
+
return emails if recognized?(emails)
|
40
41
|
return PlainCC.new(emails) if plain?(emails)
|
41
|
-
return EmptyCC
|
42
|
-
return EmptyCC if emails["type"].blank? || emails["type"].nil?
|
42
|
+
return EmptyCC.new if undefined?(emails)
|
43
43
|
type = emails["type"].constantize
|
44
44
|
return ComponentCC.new(emails["project"], sys) if type.is_a? ComponentCC
|
45
45
|
type.new(emails["opts"])
|
46
46
|
end
|
47
47
|
|
48
|
-
private
|
49
|
-
|
50
48
|
# Detect that raw CC is a string which may has plain email addresses
|
51
49
|
def plain?(text)
|
52
|
-
(text.is_a? String) &&
|
53
|
-
|
50
|
+
(text.is_a? String) && text.to_s.include?("@")
|
51
|
+
end
|
52
|
+
|
53
|
+
def recognized?(emails)
|
54
|
+
[EmptyCC, PlainCC, ComponentCC, PredefinedCC].member? emails.class
|
55
|
+
end
|
56
|
+
|
57
|
+
def undefined?(emails)
|
58
|
+
return true unless emails.key? "type"
|
59
|
+
emails["type"].nil? || emails["type"].blank?
|
54
60
|
end
|
55
61
|
end
|
56
62
|
|
data/lib/lazylead/cli/app.rb
CHANGED
@@ -48,7 +48,7 @@ module Lazylead
|
|
48
48
|
|
49
49
|
def run(opts)
|
50
50
|
apply_vcs_migration opts
|
51
|
-
enable_active_record
|
51
|
+
enable_active_record opts
|
52
52
|
@smtp.enable
|
53
53
|
schedule_tasks
|
54
54
|
end
|
@@ -63,10 +63,11 @@ module Lazylead
|
|
63
63
|
@log.debug "Migration applied to #{@db} from #{vcs}"
|
64
64
|
end
|
65
65
|
|
66
|
-
def enable_active_record
|
66
|
+
def enable_active_record(opts)
|
67
67
|
ActiveRecord::Base.establish_connection(
|
68
68
|
adapter: "sqlite3",
|
69
|
-
database: @db
|
69
|
+
database: @db,
|
70
|
+
pool: opts[:max_connections]
|
70
71
|
)
|
71
72
|
@log.debug "Database connection established"
|
72
73
|
end
|
data/lib/lazylead/model.rb
CHANGED
@@ -91,6 +91,10 @@ module Lazylead
|
|
91
91
|
belongs_to :team, foreign_key: "team_id"
|
92
92
|
belongs_to :system, foreign_key: "system"
|
93
93
|
|
94
|
+
# @todo #/DEV Add error handling for StandartError with support of
|
95
|
+
# verbose key from ARGV like in /bin/lazylead. That will make error
|
96
|
+
# messages more human readable. Maybe there is some integration between
|
97
|
+
# Slop and ARGV in order to avoid logic duplication.
|
94
98
|
def exec(log = Log::NOTHING)
|
95
99
|
log.debug("Task ##{id} '#{name}' is started")
|
96
100
|
sys = system.connect(log)
|
data/lib/lazylead/schedule.rb
CHANGED
@@ -22,7 +22,7 @@
|
|
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
|
-
require "
|
25
|
+
require "active_support"
|
26
26
|
require "rufus-scheduler"
|
27
27
|
require_relative "log"
|
28
28
|
require_relative "model"
|
@@ -51,7 +51,9 @@ module Lazylead
|
|
51
51
|
def register(task)
|
52
52
|
raise "ll-002: task can't be a null" if task.nil?
|
53
53
|
@trigger.cron task.cron do
|
54
|
-
|
54
|
+
ActiveRecord::Base.connection_pool.with_connection do
|
55
|
+
task.exec @log
|
56
|
+
end
|
55
57
|
end
|
56
58
|
@log.debug "Task scheduled: #{task}"
|
57
59
|
end
|
data/lib/lazylead/system/fake.rb
CHANGED
data/lib/lazylead/system/jira.rb
CHANGED
data/lib/lazylead/version.rb
CHANGED
data/readme.md
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
[](http://www.rultor.com/p/dgroup/lazylead)
|
20
20
|
[](http://www.elegantobjects.org/#principles)
|
21
21
|
|
22
|
-
⚠️ We're still in a very early alpha version, the API may change frequently until we release version 1.0
|
22
|
+
⚠️ We're still in a very early alpha version, the API may change frequently until we release version `1.0`.
|
23
23
|
|
24
24
|
### Overview
|
25
25
|
Ticketing systems (Github, Jira, etc.) are strongly integrated into our processes and everyone understands their necessity. As soon as a developer becomes a lead/technical manager, he or she faces a set of routine tasks that are related to ticketing work. On large projects this becomes a problem, more and more you spend time running around on dashboards and tickets, looking for incorrect deviations in tickets and performing routine tasks instead of solving technical problems.
|
@@ -61,7 +61,7 @@ Join our telegram group [lazylead.org](https://t.me/lazyleads) for discussions.
|
|
61
61
|
New ideas, bugs, suggestions or questions are welcome [via GitHub issues](https://github.com/dgroup/lazylead/issues/new)!
|
62
62
|
|
63
63
|
### Get started
|
64
|
-
⚠️ We're still in a very early alpha version, the API may change frequently until we release version 1.0
|
64
|
+
⚠️ We're still in a very early alpha version, the API may change frequently until we release version `1.0`.
|
65
65
|
|
66
66
|
Let's assume that:
|
67
67
|
- your team is using jira as a ticketing system
|
data/test/lazylead/cc_test.rb
CHANGED
@@ -29,6 +29,26 @@ require_relative "../../lib/lazylead/cc"
|
|
29
29
|
require_relative "../../lib/lazylead/system/jira"
|
30
30
|
|
31
31
|
module Lazylead
|
32
|
+
class CcTest < Lazylead::Test
|
33
|
+
test "plain cc detected as text" do
|
34
|
+
assert Lazylead::CC.new.plain? "a@fake.com,b@fake.com"
|
35
|
+
end
|
36
|
+
test "plain cc not found in text" do
|
37
|
+
refute Lazylead::CC.new.plain? "justatext.com,eeeee.com"
|
38
|
+
end
|
39
|
+
test "plain cc detected as object" do
|
40
|
+
assert Lazylead::CC.new.recognized? Lazylead::PlainCC.new("a@fake.com")
|
41
|
+
end
|
42
|
+
test "cc is incorrect" do
|
43
|
+
refute Lazylead::CC.new.recognized? key: "value"
|
44
|
+
end
|
45
|
+
test "cc is not found in hash" do
|
46
|
+
assert Lazylead::CC.new.undefined? key: "value"
|
47
|
+
end
|
48
|
+
test "cc type is blank" do
|
49
|
+
assert Lazylead::CC.new.undefined? "type" => " "
|
50
|
+
end
|
51
|
+
end
|
32
52
|
class PlainCcTest < Lazylead::Test
|
33
53
|
test "cc has valid email" do
|
34
54
|
assert_equal "a@fake.com", Lazylead::PlainCC.new("a@fake.com").cc.first
|
@@ -119,7 +119,7 @@ module Lazylead
|
|
119
119
|
.first.cc
|
120
120
|
end
|
121
121
|
|
122
|
-
test "reporter got alert about his/her tickets with expired
|
122
|
+
test "reporter got alert about his/her tickets with expired DD" do
|
123
123
|
Smtp.new.enable
|
124
124
|
Task::ReporterAlert.new.run(
|
125
125
|
NoAuthJira.new("https://jira.spring.io"),
|
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.3.
|
4
|
+
version: 0.3.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: 2020-07-
|
11
|
+
date: 2020-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -622,7 +622,6 @@ files:
|
|
622
622
|
- test/lazylead/version_test.rb
|
623
623
|
- test/sqlite_test.rb
|
624
624
|
- test/test.rb
|
625
|
-
- todo.yml
|
626
625
|
- upgrades/sqlite/001-install-main-lazylead-tables.sql
|
627
626
|
- upgrades/sqlite/999.testdata.sql
|
628
627
|
homepage: http://github.com/dgroup/lazylead
|
@@ -630,7 +629,7 @@ licenses:
|
|
630
629
|
- MIT
|
631
630
|
metadata: {}
|
632
631
|
post_install_message: |-
|
633
|
-
Thanks for installing Lazylead v0.3.
|
632
|
+
Thanks for installing Lazylead v0.3.1!
|
634
633
|
Read our blog posts: https://lazylead.org
|
635
634
|
Stay in touch with the community in Telegram: https://t.me/lazylead
|
636
635
|
Follow us on Twitter: https://twitter.com/lazylead
|
data/todo.yml
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
# @todo #/DEV Enable Travis CI as second CI server once the project
|
2
|
-
# became a public. This might be alternative for Circle CI (just in case)
|
3
|
-
|
4
|
-
# @todo #/DEV Add Github integration for lazylead with the same methods as in Jira.
|
5
|
-
|
6
|
-
# @todo #/DEV Add Trello integration for lazylead with the same methods as in Jira.
|