diff options
author | Alfredo Sumaran <alfredo@gitlab.com> | 2016-02-24 22:06:55 +0300 |
---|---|---|
committer | Alfredo Sumaran <alfredo@gitlab.com> | 2016-02-24 22:06:55 +0300 |
commit | a4e522a889b24d7d7768ac3b77d0b544a25c3782 (patch) | |
tree | 5133df88a0bf7d5cdb8aeef7acd6232f9d6aadcb /app/models/ci/runner.rb | |
parent | 9f0a71f4fe0eade788c1c722c70873b319492dbe (diff) | |
parent | 4a9affa7330f2099f6385d3d74150f93cfd008f1 (diff) |
Merge branch 'master' into minimize-on-diff
Diffstat (limited to 'app/models/ci/runner.rb')
-rw-r--r-- | app/models/ci/runner.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb index 38b20cd7faa..e725a6d468c 100644 --- a/app/models/ci/runner.rb +++ b/app/models/ci/runner.rb @@ -22,6 +22,7 @@ module Ci extend Ci::Model LAST_CONTACT_TIME = 5.minutes.ago + AVAILABLE_SCOPES = ['specific', 'shared', 'active', 'paused', 'online'] has_many :builds, class_name: 'Ci::Build' has_many :runner_projects, dependent: :destroy, class_name: 'Ci::RunnerProject' @@ -38,6 +39,11 @@ module Ci scope :online, ->() { where('contacted_at > ?', LAST_CONTACT_TIME) } scope :ordered, ->() { order(id: :desc) } + scope :owned_or_shared, ->(project_id) do + joins('LEFT JOIN ci_runner_projects ON ci_runner_projects.runner_id = ci_runners.id') + .where("ci_runner_projects.gl_project_id = :project_id OR ci_runners.is_shared = true", project_id: project_id) + end + acts_as_taggable def self.search(query) |