firespring_dev_commands 2.2.0 → 2.2.1.pre.alpha.2

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: e21d0927fcb2bd86ade4738cf7cd0f95821200e63b8d58ab9fea8f095e7d85e5
4
- data.tar.gz: 0bbeaf7d375ce02212e2c4b08cc27474a372cd41389f5b1012449b7b979af316
3
+ metadata.gz: 80f7cbb7c7fd0fa661779ae3693d16d3b2a9be96f836c998eac45b9163282212
4
+ data.tar.gz: 6633fe3fe43c94b4da08743e629c7e7a16c92376f8350b0bf121ab79fc7f08e8
5
5
  SHA512:
6
- metadata.gz: f4b0b807ef65b476a93fe875e5b9cfd94532729a824417adac7d621b2ba012312341da1d6fde1bde207ad12d5c26b5d5e7a77d64ca47e05d6fca7032be544b9c
7
- data.tar.gz: 3f65efdb513bd1ff812161c49d4bce4967aa7eed9aa61b3f164d530f05bf06fc65222058e6ecda08c3c5848b85b4be7a4ef3eff521775edaadabe96449e686b7
6
+ metadata.gz: e7c4cf41cbf9dd669c9c2cc05550335e33d873105b3e37a1099a95560f16e9d920719b170de3719c67f5981c42d7e48f445e18cf35aed4dd1bd00194d6b00c26
7
+ data.tar.gz: 9e0f0898fad325bd3903fd773584ce5e4ef16114a8fd4fb60530db07a585a2b4cedd4900b53e43d4e74fd42ec0db0d3040770d7d836f7555500d0a39b8ac3f59
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
  require 'git'
3
+ require 'octokit'
3
4
 
4
5
  module Dev
5
6
  # Class for performing git functions
@@ -425,6 +426,19 @@ module Dev
425
426
  g.fetch('origin', prune: true)
426
427
  end
427
428
 
429
+ def commit_status(token:, repository:, branch:, status:, organization: 'firespring', options: {})
430
+ # Set up the GitHub client
431
+ client = Octokit::Client.new(access_token: token)
432
+
433
+ # Fetch the latest commit SHA for the given branch
434
+ repo = "#{organization}/#{repository}"
435
+ ref = "heads/#{branch}"
436
+ sha = client.ref(repo, ref).object.sha
437
+
438
+ # Create the commit status
439
+ client.create_status(repo, sha, status, options)
440
+ end
441
+
428
442
  # Builds an ssh repo URL using the org and repo name given
429
443
  def ssh_repo_url(name, org)
430
444
  "git@github.com:#{org}/#{name}.git"
@@ -159,6 +159,58 @@ module Dev
159
159
  end
160
160
  end
161
161
  end
162
+
163
+ # rubocop:disable Metrics/MethodLength
164
+ # Create the rake task for the git commit status task.
165
+ def create_commit_status_task!
166
+ # Have to set a local variable to be accessible inside of the instance_eval block
167
+ exclude = @exclude
168
+ DEV_COMMANDS_TOP_LEVEL.instance_eval do
169
+ namespace :git do
170
+ return if exclude.include?(:commit_status)
171
+
172
+ desc 'Add status to PR' \
173
+ "\n\tuse GITHUB_TOKEN=abc123 enables write options for the check (required)" \
174
+ "\n\tuse REPOSITORY=abc123 to specify the repository (required)" \
175
+ "\n\tuse BRANCH=abc123 to specify the branch of code (required)" \
176
+ "\n\tuse CONTEXT=abc123 names the check on the PR (optional)" \
177
+ "\n\tuse TARGET_URL={url} adds 'detail' hyperlink to check on the PR (optional)"
178
+
179
+ # Key Values
180
+ token = ENV['GITHUB_TOKEN'].to_s.strip
181
+ repository = ENV['REPOSITORY'].to_s.strip
182
+ branch = ENV['BRANCH'].to_s.strip
183
+
184
+ raise 'GITHUB_TOKEN is required' unless token
185
+ raise 'Repository name is required' unless repository
186
+ raise 'Branch name is required' unless branch
187
+
188
+ options = {}
189
+ options[:context] = ENV['CONTEXT'].to_s.strip unless ENV['CONTEXT'].to_s.strip.empty?
190
+ options[:target_url] = ENV['TARGET_URL'].to_s.strip unless ENV['TARGET_URL'].to_s.strip.empty?
191
+
192
+ namespace :commit_status do
193
+ desc 'Add status success'
194
+ task :success do
195
+ Dev::Git.new.commit_status(token:, repository:, branch:, status: 'success', options:)
196
+ end
197
+ desc 'Add status pending'
198
+ task :pending do
199
+ Dev::Git.new.commit_status(token:, repository:, branch:, status: 'pending', options:)
200
+ end
201
+ desc 'Add status error'
202
+ task :error do
203
+ Dev::Git.new.commit_status(token:, repository:, branch:, status: 'error', options:)
204
+ end
205
+ desc 'Add status failure'
206
+ task :failure do
207
+ Dev::Git.new.commit_status(token:, repository:, branch:, status: 'failure', options:)
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
213
+ # rubocop:enable Metrics/MethodLength
162
214
  end
163
215
  end
164
216
  end
@@ -6,6 +6,6 @@ module Dev
6
6
  # Use 'v.v.v.pre.alpha.v' for pre-release vesions
7
7
  # Use 'v.v.v.beta.v for beta versions
8
8
  # Use semantic versioning for any releases (https://semver.org/)
9
- VERSION = '2.2.0'.freeze
9
+ VERSION = '2.2.1.pre.alpha.2'.freeze
10
10
  end
11
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firespring_dev_commands
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1.pre.alpha.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Firespring
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-05 00:00:00.000000000 Z
11
+ date: 2024-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -220,6 +220,20 @@ dependencies:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: 2.8.1
223
+ - !ruby/object:Gem::Dependency
224
+ name: faraday-retry
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '2.0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '2.0'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: git
225
239
  requirement: !ruby/object:Gem::Requirement
@@ -262,6 +276,20 @@ dependencies:
262
276
  - - "~>"
263
277
  - !ruby/object:Gem::Version
264
278
  version: 2.3.0
279
+ - !ruby/object:Gem::Dependency
280
+ name: octokit
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - "~>"
284
+ - !ruby/object:Gem::Version
285
+ version: '8.1'
286
+ type: :runtime
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - "~>"
291
+ - !ruby/object:Gem::Version
292
+ version: '8.1'
265
293
  - !ruby/object:Gem::Dependency
266
294
  name: ox
267
295
  requirement: !ruby/object:Gem::Requirement
@@ -432,9 +460,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
432
460
  version: '3.1'
433
461
  required_rubygems_version: !ruby/object:Gem::Requirement
434
462
  requirements:
435
- - - ">="
463
+ - - ">"
436
464
  - !ruby/object:Gem::Version
437
- version: '0'
465
+ version: 1.3.1
438
466
  requirements: []
439
467
  rubygems_version: 3.4.10
440
468
  signing_key: