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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 89132fdc953500cb0c632aaf392488db90b93377
4
- data.tar.gz: 5e970e273dde8a2bd2c6a564159524c6afc74640
3
+ metadata.gz: 75097b91c96acd45e9e062c321d28fa89853675e
4
+ data.tar.gz: 22a2612de1a3f395f367d6adda5df21097af4329
5
5
  SHA512:
6
- metadata.gz: fbdd5dbf1e9412869e6f0c6828d7071396e12699af7a8e5236e31fed45b4ac7afe803344325ebd2163dc5e23a6c841d8a8556be990c15e8b7988fd41ef992d3d
7
- data.tar.gz: 54afc4d82b2df6bb5a5e2c787a1610aeadfe7655005456484e9fd6b0d73eeda699b4fc8c84a245b807d36b99c2cafd29b30affba3ff2e284c4f6fc408cea965d
6
+ metadata.gz: 1e467bb33932be0df2a37b5dbfc671dd66fe38f10183622eb3ca8e0d4381eaaa3eec72e1ad8220e72478051f6695664e47250a52fd5273566390485301ba0303
7
+ data.tar.gz: 9f2775c5d956cbdbd5c7dff1e3019d40f4e60564084c37383b83410e28420a1ad169269cd94550669b28451afac0e5d2ae1b04ab002ffca4eefd8a74e0a41f40
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opsask (2.0.1)
4
+ opsask (2.0.2)
5
5
  curb (~> 0.8)
6
6
  rack (~> 1)
7
7
  rack-flash3 (~> 1)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.2
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 project = #{settings.config[:project_name]} AND type != Change AND labels in (OpsAsk) AND labels not in (OpsOnly)", max_results: 100)
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 project = #{settings.config[:project_name]} AND labels in (OpsAsk) AND type != Change", max_results: 100)
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 AND project = #{settings.config[:project_name]}",
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
@@ -41,7 +41,8 @@ module OpsAsk
41
41
  version: 'Un-targeted',
42
42
  jira_private_key: 'opsask.pem',
43
43
  jira_consumer_key: 'opsask-test',
44
- app_version: OpsAsk::VERSION
44
+ app_version: OpsAsk::VERSION,
45
+ require_label: nil
45
46
  }
46
47
 
47
48
  if options[:config]
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.2
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-19 00:00:00.000000000 Z
11
+ date: 2014-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor