opsask 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
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