opsask 2.0.2 → 2.0.3
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/Gemfile.lock +1 -1
- data/VERSION +1 -1
- data/lib/opsask/app.rb +22 -17
- data/lib/opsask/main.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75097b91c96acd45e9e062c321d28fa89853675e
|
4
|
+
data.tar.gz: 22a2612de1a3f395f367d6adda5df21097af4329
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e467bb33932be0df2a37b5dbfc671dd66fe38f10183622eb3ca8e0d4381eaaa3eec72e1ad8220e72478051f6695664e47250a52fd5273566390485301ba0303
|
7
|
+
data.tar.gz: 9f2775c5d956cbdbd5c7dff1e3019d40f4e60564084c37383b83410e28420a1ad169269cd94550669b28451afac0e5d2ae1b04ab002ffca4eefd8a74e0a41f40
|
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.3
|
data/lib/opsask/app.rb
CHANGED
@@ -62,13 +62,13 @@ module OpsAsk
|
|
62
62
|
sprint: sprint,
|
63
63
|
ask_stats: stats_for(
|
64
64
|
asks_in_sprint(num),
|
65
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "labels in (Sprint#{num}) AND resolution is not EMPTY"}",
|
66
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "labels in (Sprint#{num}) AND resolution is EMPTY"}"
|
65
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("labels in (Sprint#{num}) AND resolution is not EMPTY", nil)}",
|
66
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("labels in (Sprint#{num}) AND resolution is EMPTY", nil)}"
|
67
67
|
),
|
68
68
|
sprint_stats: stats_for(
|
69
69
|
items_in_sprint(num),
|
70
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "sprint = #{id} AND resolution is not EMPTY"}",
|
71
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "sprint = #{id} AND resolution is EMPTY"}"
|
70
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("sprint = #{id} AND resolution is not EMPTY", nil)}",
|
71
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("sprint = #{id} AND resolution is EMPTY", nil)}"
|
72
72
|
),
|
73
73
|
untracked_jiras: untracked_issues,
|
74
74
|
stragglers: straggling_issues
|
@@ -82,13 +82,13 @@ module OpsAsk
|
|
82
82
|
sprint: current_sprint,
|
83
83
|
ask_stats: stats_for(
|
84
84
|
asks_in_current_sprint,
|
85
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "labels in (Sprint#{num}) AND resolution is not EMPTY"}",
|
86
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "labels in (Sprint#{num}) AND resolution is EMPTY"}"
|
85
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("labels in (Sprint#{num}) AND resolution is not EMPTY", nil)}",
|
86
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("labels in (Sprint#{num}) AND resolution is EMPTY", nil)}"
|
87
87
|
),
|
88
88
|
sprint_stats: stats_for(
|
89
89
|
items_in_current_sprint,
|
90
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "sprint = #{id} AND resolution is not EMPTY"}",
|
91
|
-
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape "sprint = #{id} AND resolution is EMPTY"}"
|
90
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("sprint = #{id} AND resolution is not EMPTY", nil)}",
|
91
|
+
"#{settings.config[:jira_url]}/issues/?jql=#{URI::escape normalized_jql("sprint = #{id} AND resolution is EMPTY", nil)}"
|
92
92
|
),
|
93
93
|
untracked_jiras: untracked_issues,
|
94
94
|
stragglers: straggling_issues
|
@@ -287,7 +287,7 @@ module OpsAsk
|
|
287
287
|
return [] unless logged_in?
|
288
288
|
issues = []
|
289
289
|
id = get_sprint(num)['id']
|
290
|
-
@jira_client.Issue.jql("sprint = #{id}", max_results: 500).each do |i|
|
290
|
+
@jira_client.Issue.jql(normalized_jql("sprint = #{id}", nil), max_results: 500).each do |i|
|
291
291
|
issues << i.attrs
|
292
292
|
end
|
293
293
|
return issues
|
@@ -300,7 +300,7 @@ module OpsAsk
|
|
300
300
|
def asks_in_sprint num
|
301
301
|
return [] unless logged_in?
|
302
302
|
issues = []
|
303
|
-
@jira_client.Issue.jql("labels in (Sprint#{num})", max_results: 500).each do |i|
|
303
|
+
@jira_client.Issue.jql(normalized_jql("labels in (Sprint#{num})", nil), max_results: 500).each do |i|
|
304
304
|
issues << i.attrs
|
305
305
|
end
|
306
306
|
return issues
|
@@ -410,9 +410,9 @@ module OpsAsk
|
|
410
410
|
def jiras_for date
|
411
411
|
return [] unless logged_in?
|
412
412
|
unless ops?
|
413
|
-
return @jira_client.Issue.jql("due = #{date} AND
|
413
|
+
return @jira_client.Issue.jql normalized_jql("due = #{date} AND type != Change AND labels in (OpsAsk) AND labels not in (OpsOnly)"), max_results: 100
|
414
414
|
end
|
415
|
-
return @jira_client.Issue.jql("due = #{date} AND
|
415
|
+
return @jira_client.Issue.jql normalized_jql("due = #{date} AND labels in (OpsAsk) AND type != Change"), max_results: 100
|
416
416
|
end
|
417
417
|
|
418
418
|
def jira_count_for date
|
@@ -498,6 +498,7 @@ module OpsAsk
|
|
498
498
|
components = [ { name: component } ] unless component
|
499
499
|
labels = [ 'OpsAsk', current_sprint_name ].compact
|
500
500
|
labels << 'OpsOnly' if ops_only
|
501
|
+
labels << settings.config[:require_label] if settings.config[:require_label]
|
501
502
|
data = {
|
502
503
|
fields: {
|
503
504
|
project: { key: settings.config[:project_key] },
|
@@ -543,12 +544,11 @@ module OpsAsk
|
|
543
544
|
def untracked_issues
|
544
545
|
return [] unless logged_in?
|
545
546
|
constraints = [
|
546
|
-
"project = #{settings.config[:project_name]}",
|
547
547
|
"due < #{today}",
|
548
548
|
"resolution = unresolved",
|
549
549
|
"assignee = denimcores"
|
550
550
|
].join(' AND ')
|
551
|
-
@jira_client.Issue.jql(constraints, max_results: 100).sort_by do |jira|
|
551
|
+
@jira_client.Issue.jql(normalized_jql(constraints), max_results: 100).sort_by do |jira|
|
552
552
|
sorting_key_for(jira)
|
553
553
|
end.reverse
|
554
554
|
end
|
@@ -556,20 +556,19 @@ module OpsAsk
|
|
556
556
|
def straggling_issues
|
557
557
|
return [] unless logged_in?
|
558
558
|
constraints = [
|
559
|
-
"project = #{settings.config[:project_name]}",
|
560
559
|
"due < #{today}",
|
561
560
|
"labels in (OpsAsk)",
|
562
561
|
"resolution = unresolved",
|
563
562
|
"assignee != denimcores"
|
564
563
|
].join(' AND ')
|
565
|
-
@jira_client.Issue.jql(constraints, max_results: 100).sort_by do |jira|
|
564
|
+
@jira_client.Issue.jql(normalized_jql(constraints), max_results: 100).sort_by do |jira|
|
566
565
|
sorting_key_for(jira)
|
567
566
|
end.reverse
|
568
567
|
end
|
569
568
|
|
570
569
|
def epics
|
571
570
|
data = {
|
572
|
-
jql: "type = Epic
|
571
|
+
jql: normalized_jql("type = Epic"),
|
573
572
|
startAt: 0,
|
574
573
|
maxResults: 1000
|
575
574
|
}
|
@@ -622,5 +621,11 @@ module OpsAsk
|
|
622
621
|
'name' => response['fields']['customfield_10351'] || response['fields']['summary']
|
623
622
|
}
|
624
623
|
end
|
624
|
+
|
625
|
+
def normalized_jql query, project=settings.config[:project_name], label=settings.config[:require_label]
|
626
|
+
query += " AND project = #{project}" if project
|
627
|
+
query += " AND labels in (#{label})" if label
|
628
|
+
return query
|
629
|
+
end
|
625
630
|
end
|
626
631
|
end
|
data/lib/opsask/main.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opsask
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Clemmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|