diff options
author | Tomasz Maczukin <tomasz@maczukin.pl> | 2016-01-26 17:03:38 +0100 |
---|---|---|
committer | Tomasz Maczukin <tomasz@maczukin.pl> | 2016-02-19 13:18:46 +0100 |
commit | 128be3c0103f601b2c80f3489646e57e202f6327 (patch) | |
tree | 293399797a6cb9cc5814eac25acd6e5d57c9f1ea /app | |
parent | e586858eb58cc628f700c4f0d6ae7b574def3be9 (diff) | |
download | gitlab-ce-128be3c0103f601b2c80f3489646e57e202f6327.tar.gz |
Add basic runners management API
- add feature to list runners
- add feature to show runners details
- add feature to delete runner
- add feature to update runner
Diffstat (limited to 'app')
-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..1e914b44499 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") + end + acts_as_taggable def self.search(query) |