File: job.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (27 lines) | stat: -rw-r--r-- 1,084 bytes parent folder | download
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
# frozen_string_literal: true

module API
  module Entities
    module Ci
      class Job < JobBasic
        # artifacts_file is included in job_artifacts, but kept for backward compatibility (remove in api/v5)
        expose :artifacts_file, using: ::API::Entities::Ci::JobArtifactFile, if: ->(job, opts) { job.artifacts? }
        expose :job_artifacts, as: :artifacts,
          using: ::API::Entities::Ci::JobArtifact,
          documentation: { is_array: true }
        expose :runner, with: ::API::Entities::Ci::Runner
        expose :runner_manager, with: ::API::Entities::Ci::RunnerManager, if: ->(job) { job.is_a?(::Ci::Build) }
        expose :artifacts_expire_at,
          documentation: { type: 'dateTime', example: '2016-01-19T09:05:50.355Z' }
        expose :archived?, as: :archived, documentation: { type: 'boolean', example: false }

        expose(
          :tag_list,
          documentation: { type: 'string', is_array: true, example: ['ubuntu18', 'docker runner'] }
        ) do |job|
          job.tags.map(&:name).sort
        end
      end
    end
  end
end