summaryrefslogtreecommitdiff
path: root/app/models/ci/application_setting.rb
blob: 7f5df8ce6c42e1a7a4e3fc6b62e703a997d430c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# == Schema Information
#
# Table name: ci_application_settings
#
#  id                :integer          not null, primary key
#  all_broken_builds :boolean
#  add_pusher        :boolean
#  created_at        :datetime
#  updated_at        :datetime
#

module Ci
  class ApplicationSetting < ActiveRecord::Base
    extend Ci::Model
    CACHE_KEY = 'ci_application_setting.last'

    after_commit do
      Rails.cache.write(CACHE_KEY, self)
    end

    def self.expire
      Rails.cache.delete(CACHE_KEY)
    end

    def self.current
      Rails.cache.fetch(CACHE_KEY) do
        Ci::ApplicationSetting.last
      end
    end

    def self.create_from_defaults
      create(
        all_broken_builds: Settings.gitlab_ci['all_broken_builds'],
        add_pusher: Settings.gitlab_ci['add_pusher'],
      )
    end
  end
end