diff options
author | karen Carias <karen@gitlab.com> | 2015-09-30 13:33:51 -0700 |
---|---|---|
committer | karen Carias <karen@gitlab.com> | 2015-09-30 13:33:51 -0700 |
commit | 126dd008e110dce5dfe7d1d076bc57f33250ee7b (patch) | |
tree | 4ce96f2fd7e50faff65df7b556153c08d16a888c /lib/ci/api/helpers.rb | |
parent | 6a1d695f861e4c5251a2333c673f78705b34891f (diff) | |
parent | 54452412f765d9e6e6166e105db9adbc7553aec2 (diff) | |
download | gitlab-ce-126dd008e110dce5dfe7d1d076bc57f33250ee7b.tar.gz |
solved conflict
Diffstat (limited to 'lib/ci/api/helpers.rb')
-rw-r--r-- | lib/ci/api/helpers.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/ci/api/helpers.rb b/lib/ci/api/helpers.rb new file mode 100644 index 00000000000..8e893aa5cc6 --- /dev/null +++ b/lib/ci/api/helpers.rb @@ -0,0 +1,41 @@ +module Ci + module API + module Helpers + UPDATE_RUNNER_EVERY = 60 + + def check_enable_flag! + unless current_application_settings.ci_enabled + render_api_error!('400 (Bad request) CI is disabled', 400) + end + end + + def authenticate_runners! + forbidden! unless params[:token] == GitlabCi::REGISTRATION_TOKEN + end + + def authenticate_runner! + forbidden! unless current_runner + end + + def authenticate_project_token!(project) + forbidden! unless project.valid_token?(params[:project_token]) + end + + def update_runner_last_contact + if current_runner.contacted_at.nil? || Time.now - current_runner.contacted_at >= UPDATE_RUNNER_EVERY + current_runner.update_attributes(contacted_at: Time.now) + end + end + + def current_runner + @runner ||= Runner.find_by_token(params[:token].to_s) + end + + def update_runner_info + return unless params["info"].present? + info = attributes_for_keys(["name", "version", "revision", "platform", "architecture"], params["info"]) + current_runner.update(info) + end + end + end +end |