Class: Hiiro::CheckRun

Inherits:
Object
  • Object
show all
Defined in:
lib/hiiro/check_run.rb

Class Method Summary collapse

Class Method Details

.create_table!(db) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/hiiro/check_run.rb', line 7

def self.create_table!(db)
  db.create_table?(:check_runs) do
    primary_key :id
    Integer :pr_number, null: false
    String :name
    String :url
    String :status      # COMPLETED, IN_PROGRESS, QUEUED, WAITING, PENDING
    String :conclusion  # SUCCESS, FAILURE, CANCELLED, SKIPPED, NEUTRAL, TIMED_OUT
    String :updated_at
    index :pr_number
  end
end

.for_pr(number) ⇒ Object



20
# File 'lib/hiiro/check_run.rb', line 20

def self.for_pr(number) = where(pr_number: number.to_i).all

.upsert_for_pr(number, runs) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/hiiro/check_run.rb', line 21

def self.upsert_for_pr(number, runs)
  where(pr_number: number.to_i).delete
  Array(runs).each do |run|
    next unless run.is_a?(Hash)
    insert(
      pr_number:  number.to_i,
      name:       run['name']&.to_s,
      url:        (run['url'] || run['detailsUrl'])&.to_s,
      status:     run['status']&.to_s,
      conclusion: run['conclusion']&.to_s,
      updated_at: Time.now.iso8601
    )
  end
end