create_ticket 0.3.1 → 0.4.0

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: 82a50ea4b4c273abc499fce01d3556f87b9f1c85
4
- data.tar.gz: 7df404627ee109b49a5a62f992a8226d70dfcbf9
3
+ metadata.gz: 25260f0f4dc288acb2027a10c2be1afe361a66ec
4
+ data.tar.gz: 99033ee879798834f415c1323c43f279ad9fcc81
5
5
  SHA512:
6
- metadata.gz: ae40a531514e2e1f60aefe48dfd7001ab04f8b85ba69b73b80504d0f4ade0e098932ed3fb156ca823411c714817c36552e49d7da96f99817451c8f8a5dee2f3a
7
- data.tar.gz: 7fdffd00e88eb132184ac69199fe070767f6fa9024ceb6341566689c1bd67c095e445327de87b29b0b095436a4a2502c30696fea6181954d833fad29623faa3d
6
+ metadata.gz: b5232da953a64edff3124d5bfb0fa5e5db9e3c9eccc67aa763ccb944b1bdad54921904d0ce692d1fc6a1b68bfb84b1079039a29e00a517508c28cd830cffe5b0
7
+ data.tar.gz: 463ba37b5ffe282409ceafd7979c8e11b6b8de57e04a35470f4a9d8e6603137346eba6e24ed10ae4d7dcb7755470b6c771609f2d528f499321be0de73e4dbc69
data/README.md CHANGED
@@ -20,7 +20,7 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- export JIRA_TOKEN="your JIRA token"
23
+ export JIRA_TOKEN="your JIRA token" # If this is unset, it will ask for your JIRA username and password
24
24
  export TEMPLATE_FILENAME=a-template.md.erb
25
25
  export JIRA_URL=https://jira.yourwebsite.com
26
26
  export JIRA_PROJECT=YOURPROJECT
@@ -31,4 +31,5 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'faraday'
32
32
  spec.add_dependency 'json'
33
33
  spec.add_dependency 'markdown2confluence'
34
+ spec.add_dependency 'highline'
34
35
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'base64'
4
+ require 'highline'
3
5
  require 'create_ticket'
4
6
 
5
7
  class CreateTicket
@@ -12,8 +14,15 @@ class CreateTicket
12
14
  ENV.fetch('JIRA_PROJECT')
13
15
  end
14
16
 
17
+ def prompt_for_jira_token
18
+ cli = HighLine.new
19
+ username = cli.ask('Username: ')
20
+ password = cli.ask('Password: ') { |q| q.echo = '*' }
21
+ Base64.encode64 "#{username}:#{password}"
22
+ end
23
+
15
24
  def jira_token
16
- ENV.fetch('JIRA_TOKEN')
25
+ ENV.fetch('JIRA_TOKEN') { prompt_for_jira_token }
17
26
  end
18
27
 
19
28
  def template_filename
@@ -40,7 +49,7 @@ class CreateTicket
40
49
  def run!
41
50
  ticket_url = CreateTicket.new(self).create_ticket!
42
51
  puts ticket_url
43
- rescue KeyError, JSON::ParserError => e
52
+ rescue CouldNotCreateTicketError, KeyError, JSON::ParserError => e
44
53
  puts e.message
45
54
  exit 1
46
55
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class CreateTicket
4
+ class CouldNotCreateTicketError < RuntimeError; end
5
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class CreateTicket
4
- VERSION = '0.3.1'
4
+ VERSION = '0.4.0'
5
5
  end
data/lib/create_ticket.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'create_ticket/version'
4
+ require 'create_ticket/could_not_create_ticket_error'
4
5
  require 'markdown2confluence'
5
6
  require 'faraday'
6
7
  require 'json'
@@ -38,7 +39,12 @@ class CreateTicket
38
39
  req.body = jira_ticket_json
39
40
  end
40
41
 
41
- key = JSON.parse(response.body).fetch('key')
42
+ begin
43
+ key = JSON.parse(response.body).fetch('key')
44
+ rescue KeyError
45
+ raise CouldNotCreateTicketError, "Response from JIRA was: #{response.body}"
46
+ end
47
+
42
48
  "#{jira_url}/browse/#{key}"
43
49
  end
44
50
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: create_ticket
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Marek-Spartz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-18 00:00:00.000000000 Z
11
+ date: 2017-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: highline
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: Create JIRA tickets
112
126
  email:
113
127
  - kyle.marekspartz@govdelivery.com
@@ -132,6 +146,7 @@ files:
132
146
  - exe/create_ticket
133
147
  - lib/create_ticket.rb
134
148
  - lib/create_ticket/cli.rb
149
+ - lib/create_ticket/could_not_create_ticket_error.rb
135
150
  - lib/create_ticket/version.rb
136
151
  homepage: https://github.com/govdelivery/create_ticket
137
152
  licenses:
@@ -153,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
168
  version: '0'
154
169
  requirements: []
155
170
  rubyforge_project:
156
- rubygems_version: 2.5.1
171
+ rubygems_version: 2.6.13
157
172
  signing_key:
158
173
  specification_version: 4
159
174
  summary: Create JIRA tickets