tempest_time 0.7.3 → 0.7.4

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
  SHA256:
3
- metadata.gz: 395c3e3aebddc706adb56c6a571b18284fe40e6d010801a75e21eac16e9d3230
4
- data.tar.gz: bc89069cf804120b82a4fb0c2b959f37f79f6dad9c388d18885363a7576b9ea8
3
+ metadata.gz: e9063e95fed5afa9e1fc6737a7411ef662ce7d67468dad0d7aa755d5c95e0fe2
4
+ data.tar.gz: d2553e4623e3f70881b082f74fc506b50bf219dc6fe28ab59918b34614330439
5
5
  SHA512:
6
- metadata.gz: 81b3f953f4cefa4ea0d9cac41385cc3bc1736abd60696acffe436b724e87fa5c5c7cc98b7f35ef1f5e8bcb0a106ddc7a6ef3572a561b77919ce29194c5a014e3
7
- data.tar.gz: 2a1e8ac3d73a2f5977c5a242a9110198e73d319d651b996aa3eab2deb8a23e95879247e9fe1cc639bce8e60dfa6ffe226e4fd7544853477978d518b6b068d7d5
6
+ metadata.gz: f1d085090a5274bd8a65db7b23a33f4ce9703ce530586b177f14b0759391565a88deb2c2a414f36e9b5643757657544acafc37083e91226c879dcc915509a8a8
7
+ data.tar.gz: 833ed9330dacef6e846de522985fc06e6b31b11bb517ff9d040c2774b024f1a3a9f60e12f6fd9c8ce89fb831a31d94d1372e1427e8a3cb59c7f83456fd8a066e
data/.rubocop.yml ADDED
@@ -0,0 +1 @@
1
+ ---
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+ # Install git hooks
3
+
4
+ ln -s -f $(pwd)/git-hooks/pre-commit $(pwd)/.git/hooks/pre-commit
5
+ chmod +x $(pwd)/.git/hooks/pre-commit
@@ -0,0 +1,45 @@
1
+ #!/bin/sh
2
+ #
3
+ # Check for ruby style errors
4
+ red='\033[0;31m'
5
+ green='\033[0;32m'
6
+ yellow='\033[0;33m'
7
+ NC='\033[0m'
8
+
9
+ RUBY_FAIL=0
10
+
11
+ # Check if rubocop is installed for the current project
12
+ rubocop -v >/dev/null 2>&1 || { echo >&2 "${red}[Ruby Style][Fatal]: Add rubocop to your Gemfile"; exit 1; }
13
+
14
+ # Get only the staged files
15
+ RUBY_FILES="$(git diff --cached --name-only --diff-filter=AMC | grep -e "\.rb$" -e "\.decorator$" | tr '\n' ' ')"
16
+ echo "${green}[Ruby Style][Info]: Checking Ruby Style${NC}"
17
+
18
+ if [ -n "$RUBY_FILES" ]
19
+ then
20
+ echo "${green}[Ruby Style][Info]: ${RUBY_FILES}${NC}"
21
+
22
+ # Run rubocop on the staged files
23
+ rubocop --auto-correct --fail-level A --format quiet ${RUBY_FILES}
24
+ if [ $? -ne 0 ]; then
25
+ echo "${red}[Ruby Style][Error]: Errors found, autofix attempted. Check the diff and commit again${NC}"
26
+ git add $RUBY_FILES
27
+ RUBY_FAIL=1
28
+ fi
29
+ else
30
+ echo "${green}[Ruby Style][Info]: No files to check${NC}"
31
+ fi
32
+
33
+ if [ $RUBY_FAIL == 0 ]
34
+ then
35
+ echo "${yellow}[Ruby Style][Info]: Rubocop is pleased!${NC}"
36
+ fi
37
+
38
+ sleep 1
39
+
40
+ if [ $RUBY_FAIL == 0 ]
41
+ then
42
+ exit 0
43
+ else
44
+ exit 1
45
+ fi
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../request'
4
+ require_relative '../responses/get_current_user'
5
+
6
+ module JiraAPI
7
+ module Requests
8
+ # :no-doc:
9
+ class GetCurrentUser < JiraAPI::Request
10
+ private
11
+
12
+ def request_method
13
+ 'get'
14
+ end
15
+
16
+ def request_path
17
+ '/myself'
18
+ end
19
+
20
+ def response_klass
21
+ JiraAPI::Responses::GetCurrentUser
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../response'
4
+
5
+ module JiraAPI
6
+ module Responses
7
+ # :no-doc:
8
+ class GetCurrentUser < JiraAPI::Response; end
9
+ end
10
+ end
@@ -1,12 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../request'
2
4
  require_relative '../responses/list_worklogs'
3
5
 
4
6
  module TempoAPI
5
7
  module Requests
8
+ # :no-doc:
6
9
  class ListWorklogs < TempoAPI::Request
7
10
  attr_reader :start_date, :end_date
8
11
 
9
- def initialize(start_date, end_date, requested_user)
12
+ def initialize(start_date, end_date = nil, requested_user = nil)
10
13
  super
11
14
  @start_date = start_date
12
15
  @end_date = end_date || start_date
@@ -38,4 +41,4 @@ module TempoAPI
38
41
  end
39
42
  end
40
43
  end
41
- end
44
+ end
@@ -2,52 +2,98 @@
2
2
 
3
3
  require_relative '../../command'
4
4
  require_relative '../../settings/authorization'
5
+ require_relative '../../api/jira_api/requests/get_current_user'
6
+ require_relative '../../api/tempo_api/requests/list_worklogs'
5
7
 
6
8
  module TempestTime
7
9
  module Commands
8
10
  class Config
11
+ # :no-doc:
9
12
  class Setup < TempestTime::Command
10
13
  def initialize(options)
11
14
  @options = options
12
15
  end
13
16
 
14
- def execute(input: $stdin, output: $stdout)
15
- email = prompt.ask(
17
+ def execute
18
+ check_for_completion
19
+ set_authorization_values
20
+ with_spinner('Checking credentials...') do |spinner|
21
+ check_for_validity
22
+ spinner.stop(pastel.green("Success! You're ready to go!"))
23
+ rescue StandardError
24
+ spinner.stop(
25
+ pastel.red("Something isn't right... please re-run setup.")
26
+ )
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def credentials
33
+ @credentials ||= {
34
+ 'email' => email,
35
+ 'username' => username,
36
+ 'subdomain' => subdomain,
37
+ 'jira_token' => jira_token,
38
+ 'tempo_token' => tempo_token
39
+ }
40
+ end
41
+
42
+ def authorization
43
+ @authorization ||= TempestTime::Settings::Authorization.new
44
+ end
45
+
46
+ def check_for_completion
47
+ return true unless credentials.any? { |_, value| value.nil? }
48
+ abort(
49
+ pastel.red('Setup failed!') + ' ' \
50
+ 'One or more credentials were missing. Please try again.'
51
+ )
52
+ end
53
+
54
+ def set_authorization_values
55
+ credentials.map { |key, value| authorization.set(key, value) }
56
+ end
57
+
58
+ def check_for_validity
59
+ jira = JiraAPI::Requests::GetCurrentUser.new
60
+ tempo = TempoAPI::Requests::ListWorklogs.new(Date.today)
61
+ raise StandardError unless jira.send_request.success?
62
+ raise StandardError unless tempo.send_request.success?
63
+ end
64
+
65
+ def email
66
+ prompt.ask(
16
67
  'Please enter your Atlassian ID. '\
17
68
  'This is typically your login email.'
18
69
  )
19
- username = prompt.ask(
20
- 'Please enter your Atlassian username.'
21
- )
22
- subdomain = prompt.ask(
70
+ end
71
+
72
+ def username
73
+ prompt.ask('Please enter your Atlassian username.')
74
+ end
75
+
76
+ def subdomain
77
+ prompt.ask(
23
78
  'Please enter your Atlassian subdomain. '\
24
79
  'i.e. [THIS VALUE].atlassian.net'
25
80
  )
26
- jira_token = prompt.ask(
81
+ end
82
+
83
+ def jira_token
84
+ prompt.ask(
27
85
  'Please enter your Atlassian API token. '\
28
- 'Your token can be generated at https://id.atlassian.com/manage/api-tokens'
86
+ 'Your token can be generated at '\
87
+ 'https://id.atlassian.com/manage/api-tokens'
29
88
  )
30
- tempo_token = prompt.ask(
89
+ end
90
+
91
+ def tempo_token
92
+ prompt.ask(
31
93
  'Please enter your Tempo API token. '\
32
- "Your token can be generated through your worksheet's settings page."
94
+ 'Your token can be generated through '\
95
+ "your worksheet's settings page."
33
96
  )
34
-
35
- if [email, username, subdomain, jira_token, tempo_token].any?(&:nil?)
36
- abort(
37
- pastel.red('Setup failed!') + ' ' +
38
- 'One or more credentials were missing. Please try again.'
39
- )
40
- end
41
-
42
- authorization = TempestTime::Settings::Authorization.new
43
-
44
- authorization.set('email', email)
45
- authorization.set('username', username)
46
- authorization.set('subdomain', subdomain)
47
- authorization.set('jira_token', jira_token)
48
- authorization.set('tempo_token', tempo_token)
49
-
50
- puts pastel.green('Setup complete!')
51
97
  end
52
98
  end
53
99
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TempestTime
4
- VERSION = '0.7.3'
4
+ VERSION = '0.7.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tempest_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Devan Hurst
@@ -215,6 +215,7 @@ extensions: []
215
215
  extra_rdoc_files: []
216
216
  files:
217
217
  - ".gitignore"
218
+ - ".rubocop.yml"
218
219
  - ".ruby-version"
219
220
  - ".travis.yml"
220
221
  - Gemfile
@@ -224,14 +225,18 @@ files:
224
225
  - bin/console
225
226
  - bin/setup
226
227
  - bin/tempest
228
+ - git-hooks/install.sh
229
+ - git-hooks/pre-commit
227
230
  - lib/tempest_time.rb
228
231
  - lib/tempest_time/api/authorization.rb
229
232
  - lib/tempest_time/api/jira_api/authorization.rb
230
233
  - lib/tempest_time/api/jira_api/models/issue.rb
231
234
  - lib/tempest_time/api/jira_api/request.rb
235
+ - lib/tempest_time/api/jira_api/requests/get_current_user.rb
232
236
  - lib/tempest_time/api/jira_api/requests/get_issue.rb
233
237
  - lib/tempest_time/api/jira_api/requests/get_user_issues.rb
234
238
  - lib/tempest_time/api/jira_api/response.rb
239
+ - lib/tempest_time/api/jira_api/responses/get_current_user.rb
235
240
  - lib/tempest_time/api/jira_api/responses/get_issue.rb
236
241
  - lib/tempest_time/api/jira_api/responses/get_user_issues.rb
237
242
  - lib/tempest_time/api/request.rb
@@ -243,7 +248,6 @@ files:
243
248
  - lib/tempest_time/api/tempo_api/requests/delete_worklog.rb
244
249
  - lib/tempest_time/api/tempo_api/requests/get_worklog.rb
245
250
  - lib/tempest_time/api/tempo_api/requests/list_worklogs.rb
246
- - lib/tempest_time/api/tempo_api/requests/report.rb
247
251
  - lib/tempest_time/api/tempo_api/requests/submit_timesheet.rb
248
252
  - lib/tempest_time/api/tempo_api/response.rb
249
253
  - lib/tempest_time/api/tempo_api/responses/create_worklog.rb
File without changes