groundskeeper-bitcore 0.18.0 → 0.22.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
  SHA256:
3
- metadata.gz: 8aba462cf19e6cba7461724cdd192f643f0d174f4d6ae3f078759ac21103cb18
4
- data.tar.gz: 5586ffa52b9576701b6839166d951bdb9524d46252427b89d6858b0ab0eb2341
3
+ metadata.gz: 7d4f46740d1ddb1bae4d6bc8992e3b35ac04e4eb2f150344b792509d476d7bb0
4
+ data.tar.gz: ca464350273ce97cbfe8397129bf741eb1d75c0df36f046caa4746f418b8c24a
5
5
  SHA512:
6
- metadata.gz: 9dd9e1d9c8b91e8313dfc40e127a5630c2b0f048206dee4dad900f2c60c443afed3617679e47622d9c29035dbbc52436c25f8427c2ae5cb849b055dedc191b60
7
- data.tar.gz: 5de0587c1b110b9a0a4bb5ffa3f475c2ba5a08f8ff68077a24a9ff5a4db77e873316c83ababd9c0b5c547c41ca4ca02060ec72c271ced41fb966d9b7ddf0d9e5
6
+ metadata.gz: 6626ba1e74879f74aa3afb5f71542e2078fca42c824849451d7e798f6c892bd163d7de4ef416224ae3c53a4bb160c69fb6baef51b0af5639576a2128dca909e6
7
+ data.tar.gz: 656fea63b23a3c28320cc43e80c7fe3c65f5e6a5e97bf9783172bf8d57786c47197a854e6ef0941f3eb2b9e2a70e591de16d40a841a79edf48aa1699e434d3bb
data/config/deploy.rb CHANGED
@@ -37,7 +37,7 @@ set :shared_files, fetch(:shared_files, []).push(
37
37
 
38
38
  # Each deploy, these directories will be checked for changes. If changes are
39
39
  # detected, assets will be precompiled. Otherwise that step will be skipped.
40
- set :asset_dirs, ["app/javascript/"]
40
+ set :asset_dirs, ["app/javascript/", "app/packs/"]
41
41
 
42
42
  # This task is the environment that is loaded for all remote run commands, such
43
43
  # as `mina deploy` or `mina rake`.
data/config/git_config.rb CHANGED
@@ -2,7 +2,10 @@
2
2
 
3
3
  require "yaml"
4
4
  require "json"
5
- require "groundskeeper"
5
+ require "groundskeeper/project"
6
+ require "groundskeeper/document"
7
+ require "groundskeeper/git"
8
+ require "groundskeeper/executable"
6
9
 
7
10
  desc "Sets up project details."
8
11
  # rubocop:disable Metrics/BlockLength
@@ -7,13 +7,12 @@ require "groundskeeper/version"
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = "groundskeeper-bitcore"
9
9
  spec.version = Groundskeeper::VERSION
10
- spec.authors = ["BIT Core"]
11
- spec.email = ["ericcf@northwestern.edu"]
10
+ spec.authors = ["RADD"]
11
+ spec.email = ["radd@northwestern.edu"]
12
12
 
13
13
  spec.summary = "A gem for managing releases and deployments."
14
- spec.homepage = "https://github.com/NU-CBITS/groundskeeper.git"
14
+ spec.homepage = "https://bitbucket.org/isgmh-radd/groundskeeper/src/master/"
15
15
  spec.license = "MIT"
16
- spec.cert_chain = ["certs/ericcf.pem"]
17
16
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the
18
17
  # 'allowed_push_host' to allow pushing to a single host or delete this
19
18
  # section to allow pushing to any host.
@@ -31,15 +30,16 @@ Gem::Specification.new do |spec|
31
30
  spec.executables = "ground"
32
31
  spec.require_paths = %w[lib config]
33
32
 
33
+ spec.required_ruby_version = ">= 2.4"
34
34
  spec.add_dependency "jira-ruby", "~> 2.0"
35
35
  spec.add_dependency "mina", "~> 1.2"
36
36
  spec.add_dependency "mina-whenever", "~> 1.0.1"
37
37
  spec.add_dependency "thor", "~> 1.0"
38
38
 
39
39
  spec.add_development_dependency "bundler", "~> 2.0"
40
- spec.add_development_dependency "byebug"
40
+ spec.add_development_dependency "byebug", "~> 11.1"
41
41
  spec.add_development_dependency "minitest", "~> 5.0"
42
42
  spec.add_development_dependency "rubocop", "~> 0.63"
43
- spec.add_development_dependency "rubocop-performance"
43
+ spec.add_development_dependency "rubocop-performance", "~> 1.12"
44
44
  spec.add_development_dependency "simplecov", "~> 0.14"
45
45
  end
@@ -5,6 +5,7 @@ require "thor"
5
5
  module Groundskeeper
6
6
  # Bootstrap this as a Thor application.
7
7
  class Application < Thor
8
+ include Thor::Actions
8
9
  attr_reader :commands
9
10
 
10
11
  class_option :simulate, desc: "Simulate mina"
@@ -95,7 +95,7 @@ module Groundskeeper
95
95
  # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
96
96
  def info(options = {})
97
97
  return unrecognized_version unless version_file.exists?
98
- return unless check_groundskeeper_version
98
+ return groundskeeper_outdated unless check_groundskeeper_version
99
99
 
100
100
  Executable.verbose = options[:verbose]
101
101
  pull_project_details
@@ -114,13 +114,12 @@ module Groundskeeper
114
114
  # rubocop:enable Metrics/AbcSize
115
115
 
116
116
  # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity,
117
- # rubocop:disable Metrics/PerceivedComplexity
118
117
  def release(options = {})
119
118
  is_initial_release = !version_file.exists?
120
119
 
121
120
  return missing_jira_credentials unless jira.credentials?
122
121
  return missing_bitbucket_credentials unless bitbucket.credentials?
123
- return unless check_groundskeeper_version
122
+ return groundskeeper_outdated unless check_groundskeeper_version
124
123
  return unrecognized_version unless version_file.rails?
125
124
 
126
125
  version_file.create_initial_version! unless version_file.exists?
@@ -139,12 +138,12 @@ module Groundskeeper
139
138
  create_pr
140
139
  end
141
140
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
142
- # rubocop:enable Metrics/MethodLength, Metrics/PerceivedComplexity
141
+ # rubocop:enable Metrics/MethodLength
143
142
 
144
143
  # :nocov:
145
144
  def predeploy(options = {})
146
145
  return unrecognized_version unless version_file.exists?
147
- return unless check_groundskeeper_version
146
+ return groundskeeper_outdated unless check_groundskeeper_version
148
147
 
149
148
  Executable.verbose = options[:verbose]
150
149
  pull_project_details
@@ -161,7 +160,7 @@ module Groundskeeper
161
160
  return missing_jira_credentials unless jira.credentials?
162
161
  return missing_sentry_credentials unless sentry.credentials?
163
162
  return missing_slack_credentials unless slack.credentials?
164
- return unless check_groundskeeper_version
163
+ return groundskeeper_outdated unless check_groundskeeper_version
165
164
  return unable_to_ssh unless ssh.can_connect?
166
165
 
167
166
  Executable.verbose = options[:verbose]
@@ -205,7 +204,6 @@ module Groundskeeper
205
204
  end
206
205
  end
207
206
 
208
- # rubocop:disable Metrics/MethodLength
209
207
  def check_groundskeeper_version
210
208
  @check_groundskeeper_version ||= begin
211
209
  console.say("Groundskeeper version #{Groundskeeper::VERSION}\n\n",
@@ -214,19 +212,24 @@ module Groundskeeper
214
212
 
215
213
  return true unless SemanticVersion.new(latest_version) > VERSION
216
214
 
217
- question = <<~TEXT.squish
218
- Groundskeeper is outdated,
219
- would you like the latest version installed?
220
- TEXT
221
-
222
- response = console.ask(question, :red, limited_to: %w[yes no])
223
-
224
- return true if response == "no"
215
+ return false unless install_latest_groundskeeper?
225
216
 
226
217
  console.run("gem install groundskeeper-bitcore")
218
+
219
+ true
227
220
  end
228
221
  end
229
- # rubocop:enable Metrics/MethodLength
222
+
223
+ # :nocov:
224
+ def install_latest_groundskeeper?
225
+ question = <<~TEXT.squish
226
+ Groundskeeper is outdated,
227
+ would you like the latest version installed?
228
+ TEXT
229
+
230
+ console.ask(question, :red, limited_to: %w[yes no]) == "yes"
231
+ end
232
+ # :nocov:
230
233
 
231
234
  def announce_latest_tag
232
235
  console.say(
@@ -285,8 +288,14 @@ module Groundskeeper
285
288
 
286
289
  def add_version_to_jira_issues
287
290
  issue_ids = jira.included_issues(recent_commits)
288
- jira.add_version_to_remote_issues(next_jira_version_name, issue_ids)
289
- console.say("# added version to Jira issues #{issue_ids}", :green)
291
+ message = jira.add_version_to_remote_issues(
292
+ next_jira_version_name, issue_ids
293
+ )
294
+ if message.blank?
295
+ console.say("# added version to Jira issues #{issue_ids}", :green)
296
+ else
297
+ announce_error(message)
298
+ end
290
299
  end
291
300
 
292
301
  def create_pr
@@ -311,6 +320,10 @@ module Groundskeeper
311
320
  tag.nil? ? false : git.list_tags.include?(tag)
312
321
  end
313
322
 
323
+ def announce_error(message)
324
+ console.say("# #{message}", :red)
325
+ end
326
+
314
327
  def unrecognized_tag
315
328
  console.say(
316
329
  "Tag not found, try again with an existing tag.",
@@ -325,6 +338,10 @@ module Groundskeeper
325
338
  )
326
339
  end
327
340
 
341
+ def groundskeeper_outdated
342
+ console.say("Groundskeeper outdated. Install the latest version.", :red)
343
+ end
344
+
328
345
  def missing_bitbucket_credentials
329
346
  console.say(
330
347
  "Please configure your Bitbucket environment variables.",
@@ -377,7 +394,7 @@ module Groundskeeper
377
394
  end
378
395
  end
379
396
 
380
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
397
+ # rubocop:disable Metrics/MethodLength
381
398
  def update_deployed_issues
382
399
  tries = 0
383
400
 
@@ -406,7 +423,7 @@ module Groundskeeper
406
423
  # :nocov:
407
424
  end
408
425
  end
409
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
426
+ # rubocop:enable Metrics/MethodLength
410
427
 
411
428
  # :nocov:
412
429
  def release_version
@@ -4,6 +4,8 @@ require "cgi"
4
4
  require "date"
5
5
  require "jira-ruby"
6
6
 
7
+ class IssueNotFoundError < StandardError; end
8
+
7
9
  module Groundskeeper
8
10
  # Wraps an interface to Jira.
9
11
  class Jira
@@ -46,6 +48,8 @@ module Groundskeeper
46
48
 
47
49
  # :nocov:
48
50
  def add_version_to_issue(issue_id:, version_name:)
51
+ raise IssueNotFoundError if client.Issue.find(issue_id).nil?
52
+
49
53
  client.Issue
50
54
  .find(issue_id)
51
55
  .save(update: { fixVersions: [{ add: { name: version_name } }] })
@@ -120,11 +124,22 @@ module Groundskeeper
120
124
  client.create_version(name: name, prefix: prefix)
121
125
  end
122
126
 
127
+ # rubocop:disable Metrics/MethodLength
123
128
  def add_version_to_remote_issues(name, issue_ids)
129
+ failed_issues = []
124
130
  issue_ids.each do |issue_id|
125
- client.add_version_to_issue(issue_id: issue_id, version_name: name)
131
+ begin
132
+ client.add_version_to_issue(issue_id: issue_id, version_name: name)
133
+ rescue IssueNotFoundError
134
+ failed_issues << issue_id
135
+ next
136
+ end
126
137
  end
138
+ return "" unless failed_issues.count.positive?
139
+
140
+ "Jira issue(s) not found, is #{failed_issues.join(', ')} correct?"
127
141
  end
142
+ # rubocop:enable Metrics/MethodLength
128
143
 
129
144
  def transition_remote_issues(transition_type, issue_ids)
130
145
  issue_ids.each do |issue_id|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Groundskeeper
4
- VERSION = "0.18.0"
4
+ VERSION = "0.22.0"
5
5
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groundskeeper-bitcore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
- - BIT Core
8
- autorequire:
7
+ - RADD
8
+ autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - certs/ericcf.pem
12
- date: 2020-06-05 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2021-12-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: jira-ruby
@@ -85,16 +84,16 @@ dependencies:
85
84
  name: byebug
86
85
  requirement: !ruby/object:Gem::Requirement
87
86
  requirements:
88
- - - ">="
87
+ - - "~>"
89
88
  - !ruby/object:Gem::Version
90
- version: '0'
89
+ version: '11.1'
91
90
  type: :development
92
91
  prerelease: false
93
92
  version_requirements: !ruby/object:Gem::Requirement
94
93
  requirements:
95
- - - ">="
94
+ - - "~>"
96
95
  - !ruby/object:Gem::Version
97
- version: '0'
96
+ version: '11.1'
98
97
  - !ruby/object:Gem::Dependency
99
98
  name: minitest
100
99
  requirement: !ruby/object:Gem::Requirement
@@ -127,16 +126,16 @@ dependencies:
127
126
  name: rubocop-performance
128
127
  requirement: !ruby/object:Gem::Requirement
129
128
  requirements:
130
- - - ">="
129
+ - - "~>"
131
130
  - !ruby/object:Gem::Version
132
- version: '0'
131
+ version: '1.12'
133
132
  type: :development
134
133
  prerelease: false
135
134
  version_requirements: !ruby/object:Gem::Requirement
136
135
  requirements:
137
- - - ">="
136
+ - - "~>"
138
137
  - !ruby/object:Gem::Version
139
- version: '0'
138
+ version: '1.12'
140
139
  - !ruby/object:Gem::Dependency
141
140
  name: simplecov
142
141
  requirement: !ruby/object:Gem::Requirement
@@ -151,9 +150,9 @@ dependencies:
151
150
  - - "~>"
152
151
  - !ruby/object:Gem::Version
153
152
  version: '0.14'
154
- description:
153
+ description:
155
154
  email:
156
- - ericcf@northwestern.edu
155
+ - radd@northwestern.edu
157
156
  executables:
158
157
  - ground
159
158
  extensions: []
@@ -203,12 +202,12 @@ files:
203
202
  - lib/groundskeeper/string_utils.rb
204
203
  - lib/groundskeeper/version.rb
205
204
  - lib/groundskeeper/website.rb
206
- homepage: https://github.com/NU-CBITS/groundskeeper.git
205
+ homepage: https://bitbucket.org/isgmh-radd/groundskeeper/src/master/
207
206
  licenses:
208
207
  - MIT
209
208
  metadata:
210
209
  allowed_push_host: https://rubygems.org
211
- post_install_message:
210
+ post_install_message:
212
211
  rdoc_options: []
213
212
  require_paths:
214
213
  - lib
@@ -217,15 +216,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
216
  requirements:
218
217
  - - ">="
219
218
  - !ruby/object:Gem::Version
220
- version: '0'
219
+ version: '2.4'
221
220
  required_rubygems_version: !ruby/object:Gem::Requirement
222
221
  requirements:
223
222
  - - ">="
224
223
  - !ruby/object:Gem::Version
225
224
  version: '0'
226
225
  requirements: []
227
- rubygems_version: 3.1.2
228
- signing_key:
226
+ rubygems_version: 3.2.32
227
+ signing_key:
229
228
  specification_version: 4
230
229
  summary: A gem for managing releases and deployments.
231
230
  test_files: []